![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <ecvGlobalShiftManager.h>
Classes | |
| struct | ShiftInfo |
| Shift and scale info. More... | |
Public Types | |
| enum | Mode { NO_DIALOG , NO_DIALOG_AUTO_SHIFT , DIALOG_IF_NECESSARY , ALWAYS_DISPLAY_DIALOG } |
| Strategy to handle coordinates shift/scale. More... | |
Static Public Member Functions | |
| static bool | Handle (const CCVector3d &P, double diagonal, Mode mode, bool useInputCoordinatesShiftIfPossible, CCVector3d &coordinatesShift, bool *preserveCoordinateShift, double *coordinatesScale, bool *applyAll=0) |
| static bool | NeedShift (const CCVector3d &P) |
| Returns whether a particular point (coordinates) is too big or not. More... | |
| static bool | NeedShift (double d) |
| Returns whether a particular point coordinate is too big or not. More... | |
| static bool | NeedRescale (double d) |
| Returns whether a particular dimension (e.g. diagonal) is too big or not. More... | |
| static CCVector3d | BestShift (const CCVector3d &P) |
| Suggests a shift for a given point expressed in global coordinate space. More... | |
| static double | BestScale (double d) |
| static double | MaxCoordinateAbsValue () |
| Returns the max coordinate (absolute) value. More... | |
| static void | SetMaxCoordinateAbsValue (double value) |
| Sets the max coordinate (absolute) value. More... | |
| static double | MaxBoundgBoxDiagonal () |
| Returns max bounding-box diagonal. More... | |
| static void | SetMaxBoundgBoxDiagonal (double value) |
| Sets the max bounding-box diagonal. More... | |
| static void | StoreShift (const CCVector3d &shift, double scale, bool preserve=true) |
| Adds a new shift / scale couple. More... | |
| static bool | GetLast (ShiftInfo &info) |
| static bool | GetLast (std::vector< ShiftInfo > &infos) |
Static Protected Attributes | |
| static double | MAX_COORDINATE_ABS_VALUE = 1.0e4 |
| static double | MAX_DIAGONAL_LENGTH = 1.0e6 |
Helper class to handle big coordinates shift/scale (typically while loading entities)
Definition at line 26 of file ecvGlobalShiftManager.h.
Strategy to handle coordinates shift/scale.
| Enumerator | |
|---|---|
| NO_DIALOG | |
| NO_DIALOG_AUTO_SHIFT | |
| DIALOG_IF_NECESSARY | |
| ALWAYS_DISPLAY_DIALOG | |
Definition at line 29 of file ecvGlobalShiftManager.h.
|
static |
Suggests a scale for a given dimension (e.g. diagonal) in global coordinate space
Definition at line 308 of file ecvGlobalShiftManager.cpp.
References cloudViewer::utility::ceil(), and MAX_DIAGONAL_LENGTH.
Referenced by Handle().
|
static |
Suggests a shift for a given point expressed in global coordinate space.
Definition at line 291 of file ecvGlobalShiftManager.cpp.
References MAX_COORDINATE_ABS_VALUE, NeedShift(), Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by Handle().
|
static |
Definition at line 51 of file ecvGlobalShiftManager.cpp.
References s_lastInfoBuffer.
|
static |
Definition at line 59 of file ecvGlobalShiftManager.cpp.
References s_lastInfoBuffer, and CVLog::Warning().
|
static |
Handles coordinates shift/scale given the first 3D point and current related parameters
Definition at line 82 of file ecvGlobalShiftManager.cpp.
References ecvShiftAndScaleCloudDlg::addFileInfo(), ecvShiftAndScaleCloudDlg::addShiftInfo(), ALWAYS_DISPLAY_DIALOG, ecvShiftAndScaleCloudDlg::applyAll(), BestScale(), BestShift(), ecvShiftAndScaleCloudDlg::getInfo(), ecvShiftAndScaleCloudDlg::getScale(), ecvShiftAndScaleCloudDlg::getShift(), ecvShiftAndScaleCloudDlg::infoCount(), NeedRescale(), NeedShift(), NO_DIALOG, NO_DIALOG_AUTO_SHIFT, Vector3Tpl< Type >::norm2(), ecvShiftAndScaleCloudDlg::preserveShiftOnSave(), s_lastInfoBuffer, ecvGlobalShiftManager::ShiftInfo::scale, ecvShiftAndScaleCloudDlg::setCurrentProfile(), ecvShiftAndScaleCloudDlg::setPreserveShiftOnSave(), ecvGlobalShiftManager::ShiftInfo::shift, ecvShiftAndScaleCloudDlg::showApplyAllButton(), ecvShiftAndScaleCloudDlg::showPreserveShiftOnSave(), ecvShiftAndScaleCloudDlg::showScaleItems(), ecvShiftAndScaleCloudDlg::showTitle(), ecvShiftAndScaleCloudDlg::showWarning(), StoreShift(), CVLog::Warning(), and ZERO_TOLERANCE_D.
Referenced by ccPointPairRegistrationDlg::addReferencePoint(), MainWindow::addToDB(), and FileIOFilter::HandleGlobalShift().
|
inlinestatic |
Returns max bounding-box diagonal.
Definition at line 68 of file ecvGlobalShiftManager.h.
Referenced by InitEnvironment(), and main().
|
inlinestatic |
Returns the max coordinate (absolute) value.
Definition at line 61 of file ecvGlobalShiftManager.h.
Referenced by InitEnvironment(), and main().
|
static |
Returns whether a particular dimension (e.g. diagonal) is too big or not.
Definition at line 78 of file ecvGlobalShiftManager.cpp.
References MAX_DIAGONAL_LENGTH.
Referenced by Handle(), and ecvShiftAndScaleCloudDlg::updateLocalSystem().
|
static |
Returns whether a particular point (coordinates) is too big or not.
Definition at line 70 of file ecvGlobalShiftManager.cpp.
References Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by BestShift(), Handle(), LASFWFFilter::saveToFile(), LasIOFilter::saveToFile(), LASFilter::saveToFile(), and ecvShiftAndScaleCloudDlg::updateLocalSystem().
|
static |
Returns whether a particular point coordinate is too big or not.
Definition at line 74 of file ecvGlobalShiftManager.cpp.
References MAX_COORDINATE_ABS_VALUE.
|
inlinestatic |
Sets the max bounding-box diagonal.
Definition at line 70 of file ecvGlobalShiftManager.h.
Referenced by InitEnvironment().
|
inlinestatic |
Sets the max coordinate (absolute) value.
Definition at line 63 of file ecvGlobalShiftManager.h.
Referenced by InitEnvironment().
|
static |
Adds a new shift / scale couple.
Definition at line 25 of file ecvGlobalShiftManager.cpp.
References ecvGlobalShiftManager::ShiftInfo::name, Vector3Tpl< Type >::norm2d(), ecvGlobalShiftManager::ShiftInfo::preserve, s_lastInfoBuffer, ecvGlobalShiftManager::ShiftInfo::scale, and ecvGlobalShiftManager::ShiftInfo::shift.
Referenced by Handle().
|
staticprotected |
Definition at line 100 of file ecvGlobalShiftManager.h.
Referenced by BestShift(), and NeedShift().
|
staticprotected |
Definition at line 103 of file ecvGlobalShiftManager.h.
Referenced by BestScale(), and NeedRescale().