41 bool useInputCoordinatesShiftIfPossible,
43 bool* preserveCoordinateShift,
44 double* coordinatesScale,
64 MAX_COORDINATE_ABS_VALUE = value;
71 MAX_DIAGONAL_LENGTH = value;
77 bool preserve =
true);
89 : shift(0, 0, 0), scale(1.0),
name(str), preserve(true) {}
92 : shift(T), scale(s),
name(str), preserve(true) {}
96 static bool GetLast(std::vector<ShiftInfo>& infos);
Hierarchical CLOUDVIEWER Object.
static void StoreShift(const CCVector3d &shift, double scale, bool preserve=true)
Adds a new shift / scale couple.
static bool Handle(const CCVector3d &P, double diagonal, Mode mode, bool useInputCoordinatesShiftIfPossible, CCVector3d &coordinatesShift, bool *preserveCoordinateShift, double *coordinatesScale, bool *applyAll=0)
static double MaxCoordinateAbsValue()
Returns the max coordinate (absolute) value.
static bool NeedShift(double d)
Returns whether a particular point coordinate is too big or not.
static bool GetLast(std::vector< ShiftInfo > &infos)
static bool GetLast(ShiftInfo &info)
static void SetMaxCoordinateAbsValue(double value)
Sets the max coordinate (absolute) value.
static void SetMaxBoundgBoxDiagonal(double value)
Sets the max bounding-box diagonal.
static bool NeedShift(const CCVector3d &P)
Returns whether a particular point (coordinates) is too big or not.
static CCVector3d BestShift(const CCVector3d &P)
Suggests a shift for a given point expressed in global coordinate space.
static double MAX_DIAGONAL_LENGTH
static bool NeedRescale(double d)
Returns whether a particular dimension (e.g. diagonal) is too big or not.
Mode
Strategy to handle coordinates shift/scale.
static double MaxBoundgBoxDiagonal()
Returns max bounding-box diagonal.
static double MAX_COORDINATE_ABS_VALUE
static double BestScale(double d)
ShiftInfo(QString str=QString("unnamed"))
Default constructor.
ShiftInfo(QString str, const CCVector3d &T, double s=1.0)
Constructor from a vector and a scale value.