Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JGEOMETRY2D::JOmega2D Class Reference

Direction set covering (part of) circle. More...

#include <JOmega2D.hh>

Inheritance diagram for JGEOMETRY2D::JOmega2D:
JGEOMETRY2D::JOmega2D_t std::vector< JAngle2D >

Public Member Functions

 JOmega2D ()
 Default constructor.
 
 JOmega2D (const double grid)
 Constructor.
 
 JOmega2D (const JAngle2D &dir, const double phiMax, const double grid)
 Constructor.
 
void configure (const JAngle2D &dir, const double phiMax, const double grid)
 Configure direction set.
 
int find (const JAngle2D &dir) const
 Get index of direction closest to given direction.
 

Detailed Description

Direction set covering (part of) circle.

Definition at line 60 of file JOmega2D.hh.

Constructor & Destructor Documentation

◆ JOmega2D() [1/3]

JGEOMETRY2D::JOmega2D::JOmega2D ( )
inline

Default constructor.

Definition at line 67 of file JOmega2D.hh.

67 :
68 JOmega2D_t()
69 {}

◆ JOmega2D() [2/3]

JGEOMETRY2D::JOmega2D::JOmega2D ( const double grid)
inline

Constructor.

Parameters
gridangular spacing [rad]

Definition at line 77 of file JOmega2D.hh.

77 :
78 JOmega2D_t()
79 {
80 configure(JAngle2D(0.0), PI, grid);
81 }
void configure(const JAngle2D &dir, const double phiMax, const double grid)
Configure direction set.
Definition JOmega2D.hh:108

◆ JOmega2D() [3/3]

JGEOMETRY2D::JOmega2D::JOmega2D ( const JAngle2D & dir,
const double phiMax,
const double grid )
inline

Constructor.

Parameters
dirprincipal direction
phiMaxmaximal angle [rad]
gridangular spacing [rad]

Definition at line 92 of file JOmega2D.hh.

94 :
95 JOmega2D_t()
96 {
97 configure(dir, phiMax, grid);
98 }

Member Function Documentation

◆ configure()

void JGEOMETRY2D::JOmega2D::configure ( const JAngle2D & dir,
const double phiMax,
const double grid )
inline

Configure direction set.

Parameters
dirprincipal direction
phiMaxmaximal angle [rad]
gridangular spacing [rad]

Definition at line 108 of file JOmega2D.hh.

111 {
112 clear();
113
114 // sanity checks
115
116 double phi_min = 0.0;
117 double phi_max = phiMax;
118
119 if (phi_max < 0.0) phi_max = 0.0;
120 if (phi_max > PI) phi_max = PI;
121
122 if (phi_max > phi_min) {
123
124 const double rad = phi_max - phi_min;
125 const double bin = rad / floor(rad/grid + 0.5); // angle step size
126
127 for (double phi = phi_min; phi < phi_max + 0.5*bin; phi += bin) {
128
129 if (phi < 0.5*bin) {
130 push_back(dir);
131 } else if (PI - phi < 0.5*bin) {
132 push_back(dir + PI);
133 } else {
134 push_back(dir + phi);
135 push_back(dir - phi);
136 }
137 }
138 }
139 }

◆ find()

int JGEOMETRY2D::JOmega2D_t::find ( const JAngle2D & dir) const
inlineinherited

Get index of direction closest to given direction.

Parameters
dirdirection
Returns
index (-1 if error)

Definition at line 37 of file JOmega2D.hh.

38 {
39 double dot = -1.0;
40 int index = -1;
41
42 for (const_iterator i = this->begin(); i != this->end(); ++i) {
43
44 const double x = dir.getDot(*i);
45
46 if (x > dot) {
47 dot = x;
48 index = std::distance(this->begin(), i);
49 }
50 }
51
52 return index;
53 }

The documentation for this class was generated from the following file: