Class containing the definition of a Direction used for the calculation of the experimental Spatial Characteristics as calculated experimentally from the data (contained in a Db). This class corresponds to one item of the list of criteria stored in VarioParam and use for the calculation of Vario.
The Direction consists in a series of rules (some are optional) for comparing two active samples of the Db:
- their distance must be assigned to a lag: i.e. the distance must correspond to a multiple of the lag (lag), up to a tolerance (tolerance) expressed as a percentage of the lag. The rank of this multiple must be smaller than the number of lags (nlag).
- the lag definition can be replaced by a series of intervals (breaks): the pair is selected if the distance belongs to one of these intervals.
- the orientation of the segment joining the two points must be assigned to the current direction characterized by its angle (expressed by its direction coefficients codir), up to a tolerance on angle (tolangle) given in degrees.
- the distance between the two points (measured along the axis perpendicular to the direction) must be smaller than a maximum cylinder distance (cylrad).
- the distance between the two points (measured along the highest space dimension) must be smaller than a bench height (bench)
- the difference between the code values (locator ELoc::CODE) defined at both samples must be either smaller or larger than the tolerance on the code (tolcode).
- the two saples must share the same data (ELoc::DATE)
In the case, the Db correspond to a grid, the lag is defined as an increment on the grid meshes (grincr)
|
| DirParam (int npas=10, double dpas=1., double toldis=0.5, double tolang=90., int opt_code=0, int idate=0, double bench=TEST, double cylrad=TEST, double tolcode=0., const VectorDouble &breaks=VectorDouble(), const VectorDouble &codir=VectorDouble(), double angle2D=TEST, const ASpace *space=nullptr) |
|
| DirParam (const DbGrid *dbgrid, int npas, const VectorInt &grincr, const ASpace *space) |
|
| DirParam (const DirParam &r) |
|
DirParam & | operator= (const DirParam &r) |
|
virtual | ~DirParam () |
|
virtual String | toString (const AStringFormat *strfmt=nullptr) const override |
| AStringable Interface. More...
|
|
virtual bool | isConsistent (const ASpace *space) const override |
| ASpaceObject Interface. More...
|
|
const ASpace * | getSpace () const |
|
double | getBench () const |
|
const VectorDouble & | getBreaks () const |
|
double | getBreak (int i) const |
|
const VectorDouble & | getCodirs () const |
|
double | getCodir (int i) const |
|
double | getCylRad () const |
|
double | getDPas () const |
|
double | getLag () const |
|
int | getIdate () const |
|
int | getLagNumber () const |
|
int | getOptionCode () const |
|
double | getTolAngle () const |
|
double | getTolCode () const |
|
double | getTolDist () const |
|
VectorInt | getGrincrs () const |
|
int | getGrincr (int i) const |
|
double | getMaximumDistance () const |
|
int | getBreakNumber () const |
|
bool | getFlagRegular () const |
|
void | setLagNumber (int npas) |
|
void | setOptionCode (int option_code) |
|
void | setIdate (int idate) |
|
void | setDPas (double dpas) |
|
void | setDLag (double dlag) |
|
void | setDPas (const DbGrid *db) |
|
void | setBench (double bench) |
|
void | setCylRad (double cylrad) |
|
void | setTolDist (double toldist) |
|
void | setTolAngle (double tolang) |
|
void | setTolCode (double tolcode) |
|
void | setBreaks (const VectorDouble &breaks) |
|
void | setCodir (const VectorDouble &codir) |
|
void | setGrincr (const VectorInt &grincr) |
|
bool | isLagValid (int ilag, bool flagAsym=false, bool flagCheck=true) const |
|
bool | isDimensionValid (int idim) const |
|
bool | isDefinedForGrid () const |
|
int | getLagRank (double dist) const |
|
| ASpaceObject (const ASpace *space=nullptr) |
|
| ASpaceObject (const ASpace &space) |
|
| ASpaceObject (const ASpaceObject &r) |
|
ASpaceObject & | operator= (const ASpaceObject &r) |
|
virtual | ~ASpaceObject () |
|
const ASpace * | getSpace () const |
| Accessor to the current object space context. More...
|
|
bool | isConsistent () const |
| Indicate if I am consistent with my current space context. More...
|
|
VectorDouble | getUnitaryVector () const |
| Return unitary vector for the current space context. More...
|
|
unsigned int | getNDim (int ispace=-1) const |
| Shortcuts to ASpace methods. More...
|
|
const VectorDouble & | getOrigin (int ispace=-1) const |
| Return the current space context origin coordinates. More...
|
|
double | getDistance (const SpacePoint &p1, const SpacePoint &p2, int ispace=0) const |
| Return the distance between two space points for the current space context. More...
|
|
VectorDouble | getDistances (const SpacePoint &p1, const SpacePoint &p2) const |
| Return all the distances (space composits) between two space points for the current space context. More...
|
|
VectorDouble | getIncrement (const SpacePoint &p1, const SpacePoint &p2, int ispace=0) const |
| Return the increment vector between two space points for the current space context. More...
|
|
| AStringable () |
|
| AStringable (const AStringable &r) |
|
AStringable & | operator= (const AStringable &r) |
|
virtual | ~AStringable () |
|
virtual void | display (const AStringFormat *strfmt=nullptr) const final |
|
virtual void | display (int level) const final |
|
|
static DirParam * | create (int npas=10, double dpas=1., double toldis=0.5, double tolang=90., int opt_code=0, int idate=0, double bench=TEST, double cylrad=TEST, double tolcode=0., const VectorDouble &breaks=VectorDouble(), const VectorDouble &codir=VectorDouble(), double angle2D=TEST, const ASpace *space=nullptr) |
|
static DirParam * | createOmniDirection (int npas=10, double dpas=1., double toldis=0.5, int opt_code=0, int idate=0, double bench=TEST, double cylrad=TEST, double tolcode=0., const VectorDouble &breaks=VectorDouble(), const ASpace *space=nullptr) |
|
static DirParam * | createFromGrid (const DbGrid *dbgrid, int npas=10, const VectorInt &grincr=VectorInt(), const ASpace *space=nullptr) |
|
static std::vector< DirParam > | createMultiple (int ndir, int npas=10, double dpas=1., double toldis=0.5, double angref=0., const ASpace *space=nullptr) |
|
static std::vector< DirParam > | createSeveral2D (const VectorDouble &angles, int npas=10, double dpas=1., double toldis=0.5, double tolang=TEST, const ASpace *space=nullptr) |
|
static std::vector< DirParam > | createMultipleInSpace (int npas, double dpas=1., const ASpace *space=nullptr) |
|