![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
Compressed normal vectors handler. More...
#include <ecvNormalVectors.h>
Public Types | |
| enum | Orientation { PLUS_X = 0 , MINUS_X = 1 , PLUS_Y = 2 , MINUS_Y = 3 , PLUS_Z = 4 , MINUS_Z = 5 , PLUS_BARYCENTER , MINUS_BARYCENTER = 7 , PLUS_ORIGIN = 8 , MINUS_ORIGIN = 9 , PREVIOUS = 10 , PLUS_SENSOR_ORIGIN , MINUS_SENSOR_ORIGIN , UNDEFINED = 255 } |
| 'Default' orientations More... | |
Public Member Functions | |
| const CCVector3 & | getNormal (unsigned normIndex) const |
| Returns the precomputed normal corresponding to a given compressed index. More... | |
| CCVector3 & | getNormal (unsigned normIndex) |
| const std::vector< CCVector3 > & | getNormals () const |
| std::vector< CCVector3 > & | getNormals () |
| virtual | ~ccNormalVectors () |
| Default destructor. More... | |
| bool | enableNormalHSVColorsArray () |
| Allocates normal HSV colors array. More... | |
| const ecvColor::Rgb & | getNormalHSVColor (unsigned index) const |
| Returns the HSV color equivalent to a given compressed normal index. More... | |
| const std::vector< ecvColor::Rgb > & | getNormalHSVColorArray () const |
| Returns the HSV color array. More... | |
Static Public Member Functions | |
| static ccNormalVectors * | GetUniqueInstance () |
| Returns unique instance. More... | |
| static void | ReleaseUniqueInstance () |
| Releases unique instance. More... | |
| static unsigned | GetNumberOfVectors () |
| Returns the number of compressed normal vectors. More... | |
| static const CCVector3 & | GetNormal (unsigned normIndex) |
| Static access to ccNormalVectors::getNormal. More... | |
| static CCVector3 & | GetNormalPtr (unsigned normIndex) |
| static const std::vector< CCVector3 > & | GetNormals () |
| static std::vector< CCVector3 > & | GetNormalsPtr () |
| static CompressedNormType | GetNormIndex (const PointCoordinateType N[]) |
| Returns the compressed index corresponding to a normal vector. More... | |
| static CompressedNormType | GetNormIndex (const CCVector3 &N) |
| Returns the compressed index corresponding to a normal vector (shortcut) More... | |
| static bool | ComputeCloudNormals (ccGenericPointCloud *cloud, NormsIndexesTableType &theNormsCodes, CV_LOCAL_MODEL_TYPES localModel, PointCoordinateType localRadius, Orientation preferredOrientation=UNDEFINED, cloudViewer::GenericProgressCallback *progressCb=nullptr, cloudViewer::DgmOctree *inputOctree=nullptr) |
| Computes normal at each point of a given cloud. More... | |
| static PointCoordinateType | GuessNaiveRadius (ccGenericPointCloud *cloud) |
| static PointCoordinateType | GuessBestRadius (ccGenericPointCloud *cloud, cloudViewer::DgmOctree *cloudOctree=nullptr, cloudViewer::GenericProgressCallback *progressCb=nullptr) |
| static bool | UpdateNormalOrientations (ccGenericPointCloud *theCloud, NormsIndexesTableType &theNormsCodes, Orientation preferredOrientation) |
| Updates normals orientation based on a preferred orientation. More... | |
| static void | ConvertNormalToStrikeAndDip (const CCVector3 &N, PointCoordinateType &strike_deg, PointCoordinateType &dip_deg) |
| static void | ConvertNormalToDipAndDipDir (const CCVector3 &N, PointCoordinateType &dip_deg, PointCoordinateType &dipDir_deg) |
| Converts a normal vector to geological 'dip direction & dip' parameters. More... | |
| static CCVector3 | ConvertDipAndDipDirToNormal (PointCoordinateType dip_deg, PointCoordinateType dipDir_deg, bool upward=true) |
| static QString | ConvertStrikeAndDipToString (double &strike_deg, double &dip_deg) |
| static QString | ConvertDipAndDipDirToString (PointCoordinateType dip_deg, PointCoordinateType dipDir_deg) |
| Converts geological 'dip direction & dip' parameters to a string. More... | |
| static void | ConvertNormalToHSV (const CCVector3 &N, float &H, float &S, float &V) |
| Converts a normal vector to HSV color space. More... | |
| static ecvColor::Rgb | ConvertNormalToRGB (const CCVector3 &N) |
| Converts a normal vector to RGB color space. More... | |
| static bool | ComputeNormalWithLS (cloudViewer::GenericIndexedCloudPersist *pointAndNeighbors, CCVector3 &N) |
| Helper: computes the normal (with best LS fit) More... | |
| static bool | ComputeNormalWithTri (cloudViewer::GenericIndexedCloudPersist *pointAndNeighbors, CCVector3 &N) |
| Helper: computes the normal (with Delaunay 2.5D) More... | |
| static bool | ComputeNormalWithQuadric (cloudViewer::GenericIndexedCloudPersist *points, const CCVector3 &P, CCVector3 &N) |
| Helper: computes the normal (with Delaunay 2.5D) More... | |
Protected Member Functions | |
| ccNormalVectors () | |
| Default constructor. More... | |
| bool | init () |
| Inits internal structures. More... | |
Static Protected Member Functions | |
| static bool | ComputeNormsAtLevelWithQuadric (const cloudViewer::DgmOctree::octreeCell &cell, void **additionalParameters, cloudViewer::NormalizedProgress *nProgress=nullptr) |
| Cellular method for octree-based normal computation. More... | |
| static bool | ComputeNormsAtLevelWithLS (const cloudViewer::DgmOctree::octreeCell &cell, void **additionalParameters, cloudViewer::NormalizedProgress *nProgress=nullptr) |
| Cellular method for octree-based normal computation. More... | |
| static bool | ComputeNormsAtLevelWithTri (const cloudViewer::DgmOctree::octreeCell &cell, void **additionalParameters, cloudViewer::NormalizedProgress *nProgress=nullptr) |
| Cellular method for octree-based normal computation. More... | |
Protected Attributes | |
| std::vector< CCVector3 > | m_theNormalVectors |
| Compressed normal vectors. More... | |
| std::vector< ecvColor::Rgb > | m_theNormalHSVColors |
| 'HSV' colors corresponding to each compressed normal index More... | |
Compressed normal vectors handler.
Definition at line 20 of file ecvNormalVectors.h.
'Default' orientations
Definition at line 70 of file ecvNormalVectors.h.
|
virtual |
Default destructor.
Definition at line 51 of file ecvNormalVectors.cpp.
|
protected |
Default constructor.
Shouldn't be called directly. Use 'GetUniqueInstance' instead.
Definition at line 49 of file ecvNormalVectors.cpp.
References init().
Referenced by GetUniqueInstance().
|
static |
Computes normal at each point of a given cloud.
| cloud | point cloud on which to process the normals. |
| theNormsCodes | array in which the normals indexes are stored |
| localModel | which kind of model to use for the computation (LS = plane, QUADRIC = quadratic Height Function, TRI = triangulation) |
| localRadius | local neighborhood radius (not necessary for TRI) |
| preferredOrientation | specifies a preferred orientation for normals (optional) |
| progressCb | progress notification (optional) |
| inputOctree | inputOctree input cloud octree (optional). |
Definition at line 403 of file ecvNormalVectors.cpp.
References cloudViewer::DgmOctree::build(), ComputeNormsAtLevelWithLS(), ComputeNormsAtLevelWithQuadric(), ComputeNormsAtLevelWithTri(), ccArray< Type, N, ComponentType >::currentSize(), cloudViewer::DgmOctree::executeFunctionForAllCellsAtLevel(), cloudViewer::DgmOctree::executeFunctionForAllCellsStartingAtLevel(), cloudViewer::DgmOctree::findBestLevelForAGivenNeighbourhoodSizeExtraction(), cloudViewer::DgmOctree::findBestLevelForAGivenPopulationPerCell(), GetNormIndex(), ccArray< Type, N, ComponentType >::isAllocated(), cloudViewer::GenericProgressCallback::isCancelRequested(), LS, NUMBER_OF_POINTS_FOR_NORM_WITH_TRI, QUADRIC, CCShareable::release(), ccArray< Type, N, ComponentType >::resizeSafe(), ccArray< Type, N, ComponentType >::setValue(), cloudViewer::GenericCloud::size(), TRI, UNDEFINED, and UpdateNormalOrientations().
Referenced by ccPointCloud::computeNormalsWithOctree().
|
static |
Helper: computes the normal (with best LS fit)
Definition at line 550 of file ecvNormalVectors.cpp.
References cloudViewer::Neighbourhood::getLSPlaneNormal(), and cloudViewer::GenericCloud::size().
Referenced by ComputeNormsAtLevelWithLS().
|
static |
Helper: computes the normal (with Delaunay 2.5D)
The normal is computed at the first point (assuming the others are its neighbors).
Definition at line 518 of file ecvNormalVectors.cpp.
References cloudViewer::Neighbourhood::getGravityCenter(), cloudViewer::Neighbourhood::getQuadric(), Vector3Tpl< Type >::normalize(), points, Tuple3Tpl< Type >::u, Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by ComputeNormsAtLevelWithQuadric().
|
static |
Helper: computes the normal (with Delaunay 2.5D)
The normal is computed at the first point (assuming the others are its neighbors).
Definition at line 574 of file ecvNormalVectors.cpp.
References cloudViewer::Neighbourhood::DO_NOT_DUPLICATE_VERTICES, cloudViewer::GenericIndexedCloud::getPoint(), cloudViewer::GenericIndexedMesh::getTriangleVertIndexes(), cloudViewer::VerticesIndexes::i1, cloudViewer::VerticesIndexes::i2, cloudViewer::VerticesIndexes::i3, cloudViewer::Neighbourhood::IGNORE_MAX_EDGE_LENGTH, Vector3Tpl< Type >::normalize(), cloudViewer::GenericMesh::placeIteratorAtBeginning(), cloudViewer::GenericCloud::size(), cloudViewer::GenericMesh::size(), and cloudViewer::Neighbourhood::triangulateOnPlane().
Referenced by ComputeNormsAtLevelWithTri().
|
staticprotected |
Cellular method for octree-based normal computation.
Definition at line 690 of file ecvNormalVectors.cpp.
References cloudViewer::DgmOctree::NearestNeighboursSearchStruct::alreadyVisitedNeighbourhoodSize, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellCenter, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellPos, cloudViewer::DgmOctree::computeCellCenter(), ComputeNormalWithLS(), cloudViewer::DgmOctree::findNeighborsInASphereStartingFromCell(), cloudViewer::DgmOctree::getCellPos(), cloudViewer::DgmOctree::getCellSize(), cloudViewer::ReferenceCloud::getPoint(), cloudViewer::ReferenceCloud::getPointGlobalIndex(), cloudViewer::ReferenceCloud::getPointPersistentPtr(), cloudViewer::DgmOctree::NearestNeighboursSearchStruct::level, cloudViewer::DgmOctree::octreeCell::level, nProgress, NUMBER_OF_POINTS_FOR_NORM_WITH_LS, cloudViewer::NormalizedProgress::oneStep(), cloudViewer::DgmOctree::octreeCell::parentOctree, cloudViewer::DgmOctree::octreeCell::points, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::pointsInNeighbourhood, cloudViewer::DgmOctree::NearestNeighboursSphericalSearchStruct::prepare(), cloudViewer::DgmOctree::NearestNeighboursSearchStruct::queryPoint, ccArray< Type, N, ComponentType >::setValue(), cloudViewer::ReferenceCloud::size(), and cloudViewer::DgmOctree::octreeCell::truncatedCode.
Referenced by ComputeCloudNormals().
|
staticprotected |
Cellular method for octree-based normal computation.
Definition at line 631 of file ecvNormalVectors.cpp.
References cloudViewer::DgmOctree::NearestNeighboursSearchStruct::alreadyVisitedNeighbourhoodSize, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellCenter, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellPos, cloudViewer::DgmOctree::computeCellCenter(), ComputeNormalWithQuadric(), cloudViewer::DgmOctree::findNeighborsInASphereStartingFromCell(), cloudViewer::DgmOctree::getCellPos(), cloudViewer::DgmOctree::getCellSize(), cloudViewer::ReferenceCloud::getPoint(), cloudViewer::ReferenceCloud::getPointGlobalIndex(), cloudViewer::ReferenceCloud::getPointPersistentPtr(), cloudViewer::DgmOctree::NearestNeighboursSearchStruct::level, cloudViewer::DgmOctree::octreeCell::level, nProgress, NUMBER_OF_POINTS_FOR_NORM_WITH_QUADRIC, cloudViewer::NormalizedProgress::oneStep(), cloudViewer::DgmOctree::octreeCell::parentOctree, cloudViewer::DgmOctree::octreeCell::points, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::pointsInNeighbourhood, cloudViewer::DgmOctree::NearestNeighboursSphericalSearchStruct::prepare(), cloudViewer::DgmOctree::NearestNeighboursSearchStruct::queryPoint, ccArray< Type, N, ComponentType >::setValue(), cloudViewer::ReferenceCloud::size(), and cloudViewer::DgmOctree::octreeCell::truncatedCode.
Referenced by ComputeCloudNormals().
|
staticprotected |
Cellular method for octree-based normal computation.
Definition at line 753 of file ecvNormalVectors.cpp.
References cloudViewer::DgmOctree::NearestNeighboursSearchStruct::alreadyVisitedNeighbourhoodSize, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellCenter, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::cellPos, cloudViewer::DgmOctree::computeCellCenter(), ComputeNormalWithTri(), cloudViewer::DgmOctree::findNearestNeighborsStartingFromCell(), cloudViewer::DgmOctree::getCellPos(), cloudViewer::ReferenceCloud::getPoint(), cloudViewer::ReferenceCloud::getPointGlobalIndex(), cloudViewer::ReferenceCloud::getPointPersistentPtr(), cloudViewer::DgmOctree::NearestNeighboursSearchStruct::level, cloudViewer::DgmOctree::octreeCell::level, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::minNumberOfNeighbors, nProgress, NUMBER_OF_POINTS_FOR_NORM_WITH_TRI, cloudViewer::NormalizedProgress::oneStep(), cloudViewer::DgmOctree::octreeCell::parentOctree, cloudViewer::DgmOctree::octreeCell::points, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::pointsInNeighbourhood, cloudViewer::DgmOctree::NearestNeighboursSearchStruct::queryPoint, ccArray< Type, N, ComponentType >::setValue(), cloudViewer::ReferenceCloud::size(), and cloudViewer::DgmOctree::octreeCell::truncatedCode.
Referenced by ComputeCloudNormals().
|
static |
Converts a couple of geological 'dip direction & dip' parameters to a unit normal vector
| [in] | dip_deg | value (in degrees) |
| [in] | dipDir_deg | dip direction value(in degrees) |
| [in] | upward | whether the output normal vector should point towards Z+ (true) or Z- (false) |
Definition at line 892 of file ecvNormalVectors.cpp.
References ConvertNormalToDipAndDipDir(), and cloudViewer::DegreesToRadians().
Referenced by ccCompass::importFoliations(), ccCompassImport::importFoliations(), ccApplyTransformationDlg::initFromDipAndDipDir(), ccPlaneEditDlg::onDipDirChanged(), and ccPlaneEditDlg::updatePlane().
|
static |
Converts geological 'dip direction & dip' parameters to a string.
| [in] | dip_deg | dip angle value (in degrees) |
| [in] | dipDir_deg | dip direction value (in degrees) |
Definition at line 815 of file ecvNormalVectors.cpp.
Referenced by StereogramDialog::init(), and CommandMatchBestFitPlane::process().
|
static |
Converts a normal vector to geological 'dip direction & dip' parameters.
See http://en.wikipedia.org/wiki/Strike_and_dip The dip direction is the azimuth of the direction (in [0,360[). The dip is always in [0,90].
| [in] | N | normal (should be normalized!) |
| [out] | dip_deg | value (in degrees) |
| [out] | dipDir_deg | dip direction value (in degrees) |
Definition at line 848 of file ecvNormalVectors.cpp.
References M_PI, Vector3Tpl< Type >::norm2d(), cloudViewer::RadiansToDegrees(), Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by ccFitPlane::ccFitPlane(), masc::NeighborhoodFeature::computeValue(), ConvertDipAndDipDirToNormal(), ccPointCloud::convertNormalToDipDirSFs(), ConvertNormalToHSV(), qFacets::createFacets(), StereogramDialog::exportCurrentSelection(), ccPropertiesTreeDelegate::fillWithPlanarEntity(), GetFacetMetaData(), FacetsClassifier::GetFamilyIndexes(), StereogramWidget::init(), ccPlaneEditDlg::onNormalChanged(), NormDipAndDipDirFieldWrapper::pointValue(), CommandMatchBestFitPlane::process(), ccFitPlane::updateAttributes(), and StereogramDialog::updateFacetsFilter().
|
static |
Converts a normal vector to HSV color space.
Uses 'strike & dip' parameters (H=strike, S=dip, V=constant)
| [in] | N | normal (should be normalized!) |
| [out] | H | hue [0;360[ |
| [out] | S | saturation [0;1] |
| [out] | V | value [0;1] |
Definition at line 922 of file ecvNormalVectors.cpp.
References ConvertNormalToDipAndDipDir().
|
static |
Converts a normal vector to RGB color space.
Uses 'ConvertNormalToHSV' then converts HSV to RGB.
| [in] | N | normal (should be normalized!) |
Definition at line 936 of file ecvNormalVectors.cpp.
References ecvColor::RgbTpl< Type >::b, ecvColor::RgbTpl< Type >::g, ecvColor::MAX, ecvColor::RgbTpl< Type >::r, Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by enableNormalHSVColorsArray().
|
static |
Converts a normal vector to geological 'strike & dip' parameters (N[dip]°E - [strike]°)
| [in] | N | normal (should be normalized!) |
| [out] | strike_deg | strike value (in degrees) |
| [out] | dip_deg | dip value (in degrees) |
Definition at line 825 of file ecvNormalVectors.cpp.
References Vector3Tpl< Type >::norm2(), cloudViewer::RadiansToDegrees(), Tuple3Tpl< Type >::x, x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
|
static |
Converts geological 'strike & dip' parameters (N[dip]°E - [strike]°) to a string
| [in] | strike_deg | strike value (in degrees) |
| [in] | dip_deg | dip value (in degrees) |
Definition at line 805 of file ecvNormalVectors.cpp.
| bool ccNormalVectors::enableNormalHSVColorsArray | ( | ) |
Allocates normal HSV colors array.
Mandatory for HSV color related methods (getNormalHSVColor, etc.)
Definition at line 60 of file ecvNormalVectors.cpp.
References ConvertNormalToRGB(), m_theNormalHSVColors, and m_theNormalVectors.
|
inlinestatic |
Static access to ccNormalVectors::getNormal.
Definition at line 37 of file ecvNormalVectors.h.
References getNormal().
Referenced by ccPointCloud::addNormAtIndex(), ccPointCloud::applyRigidTransformation(), ComputeM3C2DistForPoint(), define_ccNormalVectors(), ccTrace::fitPlane(), ccPointCloud::getNormal(), cc2smReader::getPclCloud2(), ccPointCloud::getPointNormal(), cc2smReader::getVtkPolyDataFromMeshCloud(), ccMesh::interpolateNormals(), qM3C2Normals::MakeNormalsHorizontal(), OrientPointNormalWithCloud(), ObjFilter::saveToFile(), VTKFilter::saveToFile(), ToFbxMesh(), ccMesh::transformTriNormals(), UpdateNormalOrientations(), and ccFastMarchingForNormsDirection::updateResolvedTable().
|
inline |
Definition at line 54 of file ecvNormalVectors.h.
|
inline |
Returns the precomputed normal corresponding to a given compressed index.
Definition at line 51 of file ecvNormalVectors.h.
Referenced by GetNormal(), GetNormalPtr(), cc2smReader::getPclCloud2(), ccMesh::getTriangleNorm(), ccMesh::getTriangleNormals(), ccMesh::getTriangleNormalsPtr(), and cc2smReader::getVtkPolyDataFromMeshCloud().
| const ecvColor::Rgb & ccNormalVectors::getNormalHSVColor | ( | unsigned | index | ) | const |
Returns the HSV color equivalent to a given compressed normal index.
Definition at line 85 of file ecvNormalVectors.cpp.
References m_theNormalHSVColors, and m_theNormalVectors.
|
inline |
Returns the HSV color array.
Definition at line 224 of file ecvNormalVectors.h.
Referenced by ccPointCloud::convertNormalToRGB().
|
inlinestatic |
Definition at line 40 of file ecvNormalVectors.h.
References getNormal().
Referenced by ccPointCloud::getPointNormalPtr(), ccMesh::NormalizeNormals(), and ccPointCloud::NormalizeNormals().
|
inlinestatic |
Definition at line 43 of file ecvNormalVectors.h.
References getNormals().
|
inline |
Definition at line 60 of file ecvNormalVectors.h.
|
inline |
Definition at line 57 of file ecvNormalVectors.h.
Referenced by GetNormals(), and GetNormalsPtr().
|
inlinestatic |
Definition at line 46 of file ecvNormalVectors.h.
References getNormals().
|
inlinestatic |
Returns the compressed index corresponding to a normal vector (shortcut)
Definition at line 65 of file ecvNormalVectors.h.
References Tuple3Tpl< Type >::u.
|
static |
Returns the compressed index corresponding to a normal vector.
Definition at line 53 of file ecvNormalVectors.cpp.
References ccNormalCompressor::Compress().
Referenced by ccPointCloud::addNorm(), ccPointCloud::addNormAtIndex(), ccMesh::addTriangleNorm(), ccPointCloud::applyRigidTransformation(), ccCone::buildUp(), ccDisc::buildUp(), ccExtru::buildUp(), ccPlane::buildUp(), ccTorus::buildUp(), ComputeCloudNormals(), ComputeCorePointNormal(), ccMesh::computePerTriangleNormals(), define_ccNormalVectors(), ccOctree::DrawCellAsAPrimitive(), FromFbxMesh(), STLFilter::loadASCIIFile(), STLFilter::loadBinaryFile(), ObjFilter::loadFile(), VTKFilter::loadFile(), qM3C2Normals::MakeNormalsHorizontal(), ccPointCloud::orientNormalsTowardViewPoint(), ccPointCloud::orientNormalsWithGrids(), OrientPointNormalWithCloud(), ccPointCloud::setPointNormal(), ccMesh::setTriangleNorm(), ccMesh::transformTriNormals(), UpdateNormalOrientations(), and ccFastMarchingForNormsDirection::updateResolvedTable().
|
inlinestatic |
Returns the number of compressed normal vectors.
Definition at line 31 of file ecvNormalVectors.h.
References m_theNormalVectors.
Referenced by ccPointCloud::applyRigidTransformation(), define_ccNormalVectors(), and ccMesh::transformTriNormals().
|
static |
Returns unique instance.
Definition at line 41 of file ecvNormalVectors.cpp.
References ccNormalVectors(), and s_uniqueInstance.
Referenced by ccPointCloud::convertNormalToRGB(), define_ccNormalVectors(), cc2smReader::getPclCloud2(), ccMesh::getTriangleNorm(), ccMesh::getTriangleNormals(), ccMesh::getTriangleNormalsPtr(), cc2smReader::getVtkPolyDataFromMeshCloud(), and InitEnvironment().
|
static |
Tries to guess the best 'local radius' for normals computation (see ComputeCloudNormals)
| cloud | point cloud on which to process the normals. |
| cloudOctree | input cloud octree (optional) |
| progressCb | progress notification (optional) |
Definition at line 236 of file ecvNormalVectors.cpp.
References cloudViewer::DgmOctree::build(), cloudViewer::DgmOctree::findBestLevelForAGivenNeighbourhoodSizeExtraction(), cloudViewer::GenericIndexedCloud::getPoint(), cloudViewer::DgmOctree::getPointsInSphericalNeighbourhood(), GuessNaiveRadius(), octree, octreeLevel, CVLog::Print(), cloudViewer::GenericCloud::size(), size, and CVLog::Warning().
Referenced by ccNormalComputationDlg::autoEstimateRadius(), and CommandOctreeNormal::process().
|
static |
Tries to guess a very naive 'local radius' for normals computation (see ComputeCloudNormals)
| cloud | point cloud on which to process the normals. |
Definition at line 223 of file ecvNormalVectors.cpp.
References cloudViewer::BoundingBoxTpl< T >::getMaxBoxDim(), ccGenericPointCloud::getOwnBB(), and cloudViewer::GenericCloud::size().
Referenced by ccEntityAction::computeNormals(), and GuessBestRadius().
|
protected |
Inits internal structures.
Definition at line 90 of file ecvNormalVectors.cpp.
References ccNormalCompressor::Decompress(), m_theNormalVectors, ccNormalCompressor::NULL_NORM_CODE, and CVLog::Warning().
Referenced by ccNormalVectors().
|
static |
Releases unique instance.
Call to this method is now optional.
Definition at line 47 of file ecvNormalVectors.cpp.
References s_uniqueInstance.
Referenced by define_ccNormalVectors().
|
static |
Updates normals orientation based on a preferred orientation.
| theCloud | point cloud on which to process the normals. |
| theNormsCodes | array in which the normals indexes are stored |
| preferredOrientation | specifies a preferred orientation for normals |
Definition at line 107 of file ecvNormalVectors.cpp.
References cloudViewer::GeometricalAnalysisTools::ComputeGravityCenter(), ccArray< Type, N, ComponentType >::currentSize(), Vector3Tpl< Type >::dot(), ccSensor::getActiveAbsoluteCenter(), ccHObject::getChild(), ccHObject::getChildrenNumber(), GetNormal(), GetNormIndex(), cloudViewer::GenericIndexedCloud::getPoint(), ccGenericPointCloud::getPointNormal(), ccArray< Type, N, ComponentType >::getValue(), ccDrawableObject::hasNormals(), ccObject::isKindOf(), MINUS_BARYCENTER, MINUS_ORIGIN, MINUS_SENSOR_ORIGIN, MINUS_X, MINUS_Y, MINUS_Z, PC_ONE, PLUS_BARYCENTER, PLUS_ORIGIN, PLUS_SENSOR_ORIGIN, PLUS_X, PLUS_Y, PLUS_Z, PREVIOUS, CVLog::Print(), CV_TYPES::SENSOR, ccArray< Type, N, ComponentType >::setValue(), ccHObjectCaster::ToSensor(), Tuple3Tpl< Type >::u, CVLog::Warning(), Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.
Referenced by qM3C2Process::Compute(), and ComputeCloudNormals().
|
protected |
'HSV' colors corresponding to each compressed normal index
In fact, HSV color has already been converted to RGB here for faster display.
Definition at line 266 of file ecvNormalVectors.h.
Referenced by enableNormalHSVColorsArray(), and getNormalHSVColor().
|
protected |
Compressed normal vectors.
Definition at line 260 of file ecvNormalVectors.h.
Referenced by enableNormalHSVColorsArray(), getNormalHSVColor(), GetNumberOfVectors(), and init().