ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccSphere Class Reference

Sphere (primitive) More...

#include <ecvSphere.h>

Inheritance diagram for ccSphere:
Collaboration diagram for ccSphere:

Public Member Functions

 ccSphere (PointCoordinateType radius, const ccGLMatrix *transMat=0, QString name=QString("Sphere"), unsigned precision=24)
 Default constructor. More...
 
 ccSphere (QString name=QString("Sphere"))
 Simplified constructor. More...
 
virtual CV_CLASS_ENUM getClassID () const override
 Returns class ID. More...
 
virtual QString getTypeName () const override
 Returns type name (sphere, cylinder, etc.) More...
 
virtual bool hasDrawingPrecision () const override
 Whether drawing is dependent on 'precision' parameter. More...
 
virtual ccGenericPrimitiveclone () const override
 Clones primitive. More...
 
PointCoordinateType getRadius () const
 Returns radius. More...
 
void setRadius (PointCoordinateType radius)
 Sets radius. More...
 
- Public Member Functions inherited from ccGenericPrimitive
 ccGenericPrimitive (QString name=QString(), const ccGLMatrix *transMat=nullptr)
 Default constructor. More...
 
virtual void setColor (const ecvColor::Rgb &col)
 Sets primitive color (shortcut) More...
 
const ccGenericPrimitiveoperator+= (const ccGenericPrimitive &prim)
 Add operator. More...
 
virtual bool setDrawingPrecision (unsigned steps)
 Sets drawing precision. More...
 
virtual unsigned getDrawingPrecision () const
 Returns drawing precision (or 0 if feature is not supported) More...
 
virtual ccGLMatrixgetTransformation ()
 Returns the transformation that is currently applied to the vertices. More...
 
virtual const ccGLMatrixgetTransformation () const
 
const ccGLMatrixgetGLTransformationHistory () const override
 inherited methods (ccHObject) More...
 
virtual void clearDrawings ()
 
virtual void hideShowDrawings (CC_DRAW_CONTEXT &context)
 
- Public Member Functions inherited from ccMesh
 ccMesh (ccGenericPointCloud *vertices=nullptr)
 Default ccMesh constructor. More...
 
 ccMesh (const ccMesh &mesh)
 
 ccMesh (const std::vector< Eigen::Vector3d > &vertices, const std::vector< Eigen::Vector3i > &triangles)
 Parameterized Constructor. More...
 
 ccMesh (cloudViewer::GenericIndexedMesh *giMesh, ccGenericPointCloud *giVertices)
 ccMesh constructor (from a cloudViewer::GenericIndexedMesh) More...
 
 ~ccMesh () override
 Default destructor. More...
 
void setAssociatedCloud (ccGenericPointCloud *cloud)
 Sets the associated vertices cloud (warning) More...
 
ccMeshcloneMesh (ccGenericPointCloud *vertices=nullptr, ccMaterialSet *clonedMaterials=nullptr, NormsIndexesTableType *clonedNormsTable=nullptr, TextureCoordsContainer *cloneTexCoords=nullptr)
 Clones this entity. More...
 
ccMeshpartialClone (const std::vector< unsigned > &triangleIndices, int *warnings=nullptr) const
 Creates a new mesh from a selection of triangles (partial clone) More...
 
bool merge (const ccMesh *mesh, bool createSubMesh)
 Merges another mesh into this one. More...
 
ccMeshoperator= (const ccMesh &mesh)
 
ccMeshoperator+= (const ccMesh &mesh)
 
ccMesh operator+ (const ccMesh &mesh) const
 
void clear ()
 
unsigned getUniqueIDForDisplay () const override
 Returns object unqiue ID used for display. More...
 
ccBBox getOwnBB (bool withGLFeatures=false) override
 Returns the entity's own bounding-box. More...
 
bool isSerializable () const override
 Returns whether object is serializable of not. More...
 
const ccGLMatrixgetGLTransformationHistory () const override
 Returns the transformation 'history' matrix. More...
 
ccGenericPointCloudgetAssociatedCloud () const override
 Returns the vertices cloud. More...
 
void refreshBB () override
 Forces bounding-box update. More...
 
bool interpolateNormalsBC (unsigned triIndex, const CCVector3d &w, CCVector3 &N) override
 Interpolates normal(s) inside a given triangle. More...
 
bool interpolateColors (unsigned triIndex, const CCVector3 &P, ecvColor::Rgb &C) override
 Interpolates RGB colors inside a given triangle. More...
 
void computeInterpolationWeights (unsigned triIndex, const CCVector3 &P, CCVector3d &weights) const override
 Returns the (barycentric) interpolation weights for a given triangle. More...
 
bool getColorFromMaterial (unsigned triIndex, const CCVector3 &P, ecvColor::Rgb &C, bool interpolateColorIfNoTexture) override
 
bool getVertexColorFromMaterial (unsigned triIndex, unsigned char vertIndex, ecvColor::Rgb &C, bool returnColorIfNoTexture) override
 
unsigned capacity () const override
 Returns max capacity. More...
 
void forEach (genericTriangleAction action) override
 Fast iteration mechanism. More...
 
void placeIteratorAtBeginning () override
 Places the mesh iterator at the beginning. More...
 
cloudViewer::GenericTriangle_getNextTriangle () override
 Returns the next triangle (relatively to the global iterator position) More...
 
cloudViewer::GenericTriangle_getTriangle (unsigned triangleIndex) override
 Returns the ith triangle. More...
 
cloudViewer::VerticesIndexesgetNextTriangleVertIndexes () override
 
cloudViewer::VerticesIndexesgetTriangleVertIndexes (unsigned triangleIndex) override
 Returns the indexes of the vertices of a given triangle. More...
 
virtual void getTriangleVertices (unsigned triangleIndex, CCVector3 &A, CCVector3 &B, CCVector3 &C) const override
 Returns the vertices of a given triangle. More...
 
virtual void getTriangleVertices (unsigned triangleIndex, double A[3], double B[3], double C[3]) const override
 
unsigned int getVerticeSize () const
 
Eigen::Vector3d getVertice (size_t index) const
 
void setVertice (size_t index, const Eigen::Vector3d &vertice)
 
void addVertice (const Eigen::Vector3d &vertice)
 
std::vector< Eigen::Vector3d > getEigenVertices () const
 
void addEigenVertices (const std::vector< Eigen::Vector3d > &vertices)
 
void setEigenVertices (const std::vector< Eigen::Vector3d > &vertices)
 
Eigen::Vector3d getVertexNormal (size_t index) const
 
void setVertexNormal (size_t index, const Eigen::Vector3d &normal)
 
void addVertexNormal (const Eigen::Vector3d &normal)
 
std::vector< Eigen::Vector3d > getVertexNormals () const
 
void addVertexNormals (const std::vector< Eigen::Vector3d > &normals)
 
void setVertexNormals (const std::vector< Eigen::Vector3d > &normals)
 
Eigen::Vector3d getVertexColor (size_t index) const
 
void setVertexColor (size_t index, const Eigen::Vector3d &color)
 
void addVertexColor (const Eigen::Vector3d &color)
 
std::vector< Eigen::Vector3d > getVertexColors () const
 
ColorsTableTypegetVertexColorsPtr ()
 
void addVertexColors (const std::vector< Eigen::Vector3d > &colors)
 
void setVertexColors (const std::vector< Eigen::Vector3d > &colors)
 
bool HasVertices () const
 
std::vector< CCVector3 > & getVerticesPtr ()
 
const std::vector< CCVector3 > & getVertices () const
 
virtual unsigned size () const override
 Returns the number of triangles. More...
 
void getBoundingBox (CCVector3 &bbMin, CCVector3 &bbMax) override
 Returns the mesh bounding-box. More...
 
bool normalsAvailable () const override
 Returns whether normals are available. More...
 
bool interpolateNormals (unsigned triIndex, const CCVector3 &P, CCVector3 &N) override
 Interpolates normal(s) inside a given triangle. More...
 
void getTriangleVertIndexes (size_t triangleIndex, Eigen::Vector3i &vertIndx) const
 
virtual const cloudViewer::VerticesIndexesgetTriangleVertIndexes (unsigned triangleIndex) const
 
bool hasColors () const override
 Returns whether colors are enabled or not. More...
 
bool hasNormals () const override
 Returns whether normals are enabled or not. More...
 
bool HasVertexNormals () const
 
bool hasScalarFields () const override
 Returns whether one or more scalar fields are instantiated. More...
 
bool hasDisplayedScalarField () const override
 Returns whether an active scalar field is available or not. More...
 
bool normalsShown () const override
 Returns whether normals are shown or not. More...
 
void toggleMaterials () override
 Toggles material display state. More...
 
void invertNormals ()
 Inverts normals (if any) More...
 
void shiftTriangleIndexes (unsigned shift)
 Shifts all triangles indexes. More...
 
void flipTriangles ()
 Flips the triangle. More...
 
void addTriangle (unsigned i1, unsigned i2, unsigned i3)
 Adds a triangle to the mesh. More...
 
void addTriangle (const cloudViewer::VerticesIndexes &triangle)
 
void addTriangle (const Eigen::Vector3i &index)
 
void addTriangles (const std::vector< Eigen::Vector3i > &triangles)
 
void setTriangle (size_t index, const Eigen::Vector3i &triangle)
 
void setTriangles (const std::vector< Eigen::Vector3i > &triangles)
 
Eigen::Vector3i getTriangle (size_t index) const
 
std::vector< Eigen::Vector3i > getTriangles () const
 
triangleIndexesContainergetTrianglesPtr () const
 
bool reserve (std::size_t n)
 Reserves the memory to store the vertex indexes (3 per triangle) More...
 
bool reserveAssociatedCloud (std::size_t n, bool init_color=false, bool init_normal=false)
 
bool resize (size_t n)
 Resizes the array of vertex indexes (3 per triangle) More...
 
bool resizeAssociatedCloud (std::size_t n)
 
void shrinkToFit ()
 Removes unused capacity. More...
 
void shrinkVertexToFit ()
 
bool hasTriNormals () const override
 Returns whether the mesh has per-triangle normals. More...
 
bool HasTriangleNormals () const
 
void getTriangleNormalIndexes (unsigned triangleIndex, int &i1, int &i2, int &i3) const override
 Returns a triplet of normal indexes for a given triangle (if any) More...
 
bool getTriangleNormals (unsigned triangleIndex, CCVector3 &Na, CCVector3 &Nb, CCVector3 &Nc) const override
 Returns a given triangle normal. More...
 
bool getTriangleNormals (unsigned triangleIndex, double Na[3], double Nb[3], double Nc[3]) const override
 
bool getTriangleNormals (unsigned triangleIndex, Eigen::Vector3d &Na, Eigen::Vector3d &Nb, Eigen::Vector3d &Nc) const override
 
std::vector< Eigen::Vector3d > getTriangleNormals () const
 
std::vector< CCVector3 * > getTriangleNormalsPtr () const
 
Eigen::Vector3d getTriangleNorm (size_t index) const
 
bool setTriangleNorm (size_t index, const Eigen::Vector3d &triangle_normal)
 
bool setTriangleNormalIndexes (size_t triangleIndex, CompressedNormType value)
 
CompressedNormType getTriangleNormalIndexes (size_t triangleIndex)
 
bool addTriangleNorm (const CCVector3 &N)
 
bool addTriangleNorm (const Eigen::Vector3d &N)
 
std::vector< Eigen::Vector3d > getTriangleNorms () const
 
bool setTriangleNorms (const std::vector< Eigen::Vector3d > &triangle_normals)
 
bool addTriangleNorms (const std::vector< Eigen::Vector3d > &triangle_normals)
 
NormsIndexesTableTypegetTriNormsTable () const override
 Returns per-triangle normals shared array. More...
 
void setTriNormsTable (NormsIndexesTableType *triNormsTable, bool autoReleaseOldTable=true)
 Sets per-triangle normals array (may be shared) More...
 
void clearTriNormals ()
 Removes per-triangle normals. More...
 
bool arePerTriangleNormalsEnabled () const
 Returns whether per triangle normals are enabled. More...
 
bool reservePerTriangleNormalIndexes ()
 Reserves memory to store per-triangle triplets of normal indexes. More...
 
void addTriangleNormalIndexes (int i1, int i2, int i3)
 Adds a triplet of normal indexes for next triangle. More...
 
void setTriangleNormalIndexes (unsigned triangleIndex, int i1, int i2, int i3)
 Sets a triplet of normal indexes for a given triangle. More...
 
void removePerTriangleNormalIndexes ()
 Removes any per-triangle triplets of normal indexes. More...
 
void invertPerTriangleNormals ()
 Invert per-triangle normals. More...
 
bool hasMaterials () const override
 
const ccMaterialSetgetMaterialSet () const override
 
int getTriangleMtlIndex (unsigned triangleIndex) const override
 Returns a given triangle material indexes. More...
 
bool convertMaterialsToVertexColors ()
 Converts materials to vertex colors. More...
 
bool hasPerTriangleMtlIndexes () const
 Returns whether this mesh as per-triangle material index. More...
 
bool reservePerTriangleMtlIndexes ()
 Reserves memory to store per-triangle material index. More...
 
void removePerTriangleMtlIndexes ()
 Removes any per-triangle material indexes. More...
 
void addTriangleMtlIndex (int mtlIndex)
 Adds triangle material index for next triangle. More...
 
void setTriangleMtlIndexesTable (triangleMaterialIndexesSet *matIndexesTable, bool autoReleaseOldTable=true)
 Sets per-triangle material indexes array. More...
 
const triangleMaterialIndexesSetgetTriangleMtlIndexesTable () const
 Returns the per-triangle material indexes array. More...
 
void setTriangleMtlIndex (unsigned triangleIndex, int mtlIndex)
 Sets triangle material indexes. More...
 
void setMaterialSet (ccMaterialSet *materialSet, bool autoReleaseOldMaterialSet=true)
 Sets associated material set (may be shared) More...
 
bool hasTextures () const override
 Returns whether textures are available for this mesh. More...
 
TextureCoordsContainergetTexCoordinatesTable () const override
 Returns per-triangle texture coordinates array. More...
 
void getTriangleTexCoordinates (unsigned triIndex, TexCoords2D *&tx1, TexCoords2D *&tx2, TexCoords2D *&tx3) const override
 Returns per-triangle texture coordinates (pointer to) More...
 
void getTexCoordinates (unsigned index, TexCoords2D *&tx) const override
 
bool hasPerTriangleTexCoordIndexes () const override
 Returns whether this mesh as per-triangle triplets of tex coords indexes. More...
 
void getTriangleTexCoordinatesIndexes (unsigned triangleIndex, int &i1, int &i2, int &i3) const override
 Returns the triplet of tex coords indexes for a given triangle. More...
 
void setTexCoordinatesTable (TextureCoordsContainer *texCoordsTable, bool autoReleaseOldTable=true)
 Sets per-triangle texture coordinates array (may be shared) More...
 
bool reservePerTriangleTexCoordIndexes ()
 Reserves memory to store per-triangle triplets of tex coords indexes. More...
 
void removePerTriangleTexCoordIndexes ()
 Remove per-triangle tex coords indexes. More...
 
void addTriangleTexCoordIndexes (int i1, int i2, int i3)
 Adds a triplet of tex coords indexes for next triangle. More...
 
void setTriangleTexCoordIndexes (unsigned triangleIndex, int i1, int i2, int i3)
 Sets a triplet of tex coords indexes for a given triangle. More...
 
bool computeNormals (bool perVertex)
 Computes normals. More...
 
bool computePerVertexNormals ()
 Computes per-vertex normals. More...
 
bool computePerTriangleNormals ()
 Computes per-triangle normals. More...
 
bool laplacianSmooth (unsigned nbIteration=100, PointCoordinateType factor=static_cast< PointCoordinateType >(0.01), ecvProgressDialog *progressCb=nullptr)
 Laplacian smoothing. More...
 
bool processScalarField (MESH_SCALAR_FIELD_PROCESS process)
 
ccMeshsubdivide (PointCoordinateType maxArea) const
 
ccMeshcreateNewMeshFromSelection (bool removeSelectedTriangles, std::vector< int > *newIndexesOfRemainingTriangles=nullptr, bool withChildEntities=false)
 Creates a new mesh with the selected vertices only. More...
 
void swapTriangles (unsigned index1, unsigned index2)
 Swaps two triangles. More...
 
void removeTriangles (size_t index)
 
void transformTriNormals (const ccGLMatrix &trans)
 Transforms the mesh per-triangle normals. More...
 
bool mergeDuplicatedVertices (unsigned char octreeLevel=DefaultMergeDulicateVerticesLevel, QWidget *parentWidget=nullptr)
 Merges duplicated vertices. More...
 
bool hasAdjacencyList () const
 Returns true if the mesh contains adjacency normals. More...
 
bool hasTriangleUvs () const
 
bool hasTriangleMaterialIds () const
 
bool hasEigenTextures () const
 Returns true if the mesh has texture. More...
 
virtual bool IsEmpty () const override
 
virtual Eigen::Vector3d GetMinBound () const override
 Returns min bounds for geometry coordinates. More...
 
virtual Eigen::Vector3d GetMaxBound () const override
 Returns max bounds for geometry coordinates. More...
 
virtual Eigen::Vector3d GetCenter () const override
 Returns the center of the geometry coordinates. More...
 
virtual ccBBox GetAxisAlignedBoundingBox () const override
 Returns an axis-aligned bounding box of the geometry. More...
 
virtual ecvOrientedBBox GetOrientedBoundingBox () const override
 
virtual ccMeshTransform (const Eigen::Matrix4d &transformation) override
 Apply transformation (4x4 matrix) to the geometry coordinates. More...
 
virtual ccMeshTranslate (const Eigen::Vector3d &translation, bool relative=true) override
 Apply translation to the geometry coordinates. More...
 
virtual ccMeshScale (const double s, const Eigen::Vector3d &center) override
 Apply scaling to the geometry coordinates. Given a scaling factor $s$, and center $c$, a given point $p$ is transformed according to $s (p - c) + c$. More...
 
virtual ccMeshRotate (const Eigen::Matrix3d &R, const Eigen::Vector3d &center) override
 Apply rotation to the geometry coordinates and normals. Given a rotation matrix $R$, and center $c$, a given point $p$ is transformed according to $R (p - c) + c$. More...
 
ccMeshPaintUniformColor (const Eigen::Vector3d &color)
 Assigns each vertex in the ccMesh the same color. More...
 
std::tuple< std::shared_ptr< ccMesh >, std::vector< size_t > > ComputeConvexHull () const
 
std::unordered_map< Eigen::Vector2i, double, cloudViewer::utility::hash_eigen< Eigen::Vector2i > > ComputeEdgeWeightsCot (const std::unordered_map< Eigen::Vector2i, std::vector< int >, cloudViewer::utility::hash_eigen< Eigen::Vector2i >> &edges_to_vertices, double min_weight=std::numeric_limits< double >::lowest()) const
 Function that computes for each edge in the triangle mesh and passed as parameter edges_to_vertices the cot weight. More...
 
ccMeshComputeTriangleNormals (bool normalized=true)
 Function to compute triangle normals, usually called before rendering. More...
 
ccMeshComputeVertexNormals (bool normalized=true)
 Function to compute vertex normals, usually called before rendering. More...
 
ccMeshNormalizeNormals ()
 
ccMeshComputeAdjacencyList ()
 Function to compute adjacency list, call before adjacency list is. More...
 
ccMeshRemoveDuplicatedVertices ()
 Function that removes duplicated verties, i.e., vertices that have identical coordinates. More...
 
ccMeshRemoveDuplicatedTriangles ()
 Function that removes duplicated triangles, i.e., removes triangles that reference the same three vertices, independent of their order. More...
 
ccMeshRemoveUnreferencedVertices ()
 This function removes vertices from the triangle mesh that are not referenced in any triangle of the mesh. More...
 
ccMeshRemoveDegenerateTriangles ()
 Function that removes degenerate triangles, i.e., triangles that reference a single vertex multiple times in a single triangle. More...
 
ccMeshRemoveNonManifoldEdges ()
 Function that removes all non-manifold edges, by successively deleting triangles with the smallest surface area adjacent to the non-manifold edge until the number of adjacent triangles to the edge is <= 2. More...
 
ccMeshMergeCloseVertices (double eps)
 Function that will merge close by vertices to a single one. The vertex position, normal and color will be the average of the vertices. More...
 
std::shared_ptr< ccMeshFilterSharpen (int number_of_iterations, double strength, FilterScope scope=FilterScope::All) const
 Function to sharpen triangle mesh. More...
 
std::shared_ptr< ccMeshFilterSmoothSimple (int number_of_iterations, FilterScope scope=FilterScope::All) const
 Function to smooth triangle mesh with simple neighbour average. More...
 
std::shared_ptr< ccMeshFilterSmoothLaplacian (int number_of_iterations, double lambda, FilterScope scope=FilterScope::All) const
 Function to smooth triangle mesh using Laplacian. More...
 
std::shared_ptr< ccMeshFilterSmoothTaubin (int number_of_iterations, double lambda=0.5, double mu=-0.53, FilterScope scope=FilterScope::All) const
 Function to smooth triangle mesh using method of Taubin, "Curve and Surface Smoothing Without Shrinkage", 1995. Applies in each iteration two times FilterSmoothLaplacian, first with lambda and second with mu as smoothing parameter. This method avoids shrinkage of the triangle mesh. More...
 
int EulerPoincareCharacteristic () const
 
std::vector< Eigen::Vector2i > GetNonManifoldEdges (bool allow_boundary_edges=true) const
 
bool IsEdgeManifold (bool allow_boundary_edges=true) const
 
std::vector< int > GetNonManifoldVertices () const
 
bool IsVertexManifold () const
 
std::vector< Eigen::Vector2i > GetSelfIntersectingTriangles () const
 
bool IsSelfIntersecting () const
 
bool IsBoundingBoxIntersecting (const ccMesh &other) const
 
bool IsIntersecting (const ccMesh &other) const
 
bool IsOrientable () const
 
bool IsWatertight () const
 
bool OrientTriangles ()
 
std::unordered_map< Eigen::Vector2i, std::vector< int >, cloudViewer::utility::hash_eigen< Eigen::Vector2i > > GetEdgeToTrianglesMap () const
 
std::unordered_map< Eigen::Vector2i, std::vector< int >, cloudViewer::utility::hash_eigen< Eigen::Vector2i > > GetEdgeToVerticesMap () const
 
double GetTriangleArea (size_t triangle_idx) const
 
double GetSurfaceArea () const
 
double GetSurfaceArea (std::vector< double > &triangle_areas) const
 
double GetVolume () const
 
Eigen::Vector4d GetTrianglePlane (size_t triangle_idx) const
 
std::shared_ptr< ccPointCloudSamplePointsUniformlyImpl (size_t number_of_points, std::vector< double > &triangle_areas, double surface_area, bool use_triangle_normal, int seed)
 
std::shared_ptr< ccPointCloudSamplePointsUniformly (size_t number_of_points, bool use_triangle_normal=false, int seed=-1)
 
std::shared_ptr< ccPointCloudSamplePointsPoissonDisk (size_t number_of_points, double init_factor=5, const std::shared_ptr< ccPointCloud > pcl_init=nullptr, bool use_triangle_normal=false, int seed=-1)
 
std::shared_ptr< ccMeshSubdivideMidpoint (int number_of_iterations) const
 
std::shared_ptr< ccMeshSubdivideLoop (int number_of_iterations) const
 
std::shared_ptr< ccMeshSimplifyVertexClustering (double voxel_size, SimplificationContraction contraction=SimplificationContraction::Average) const
 
std::shared_ptr< ccMeshSimplifyQuadricDecimation (int target_number_of_triangles, double maximum_error=std::numeric_limits< double >::infinity(), double boundary_weight=1.0) const
 
std::shared_ptr< ccMeshSelectByIndex (const std::vector< size_t > &indices, bool cleanup=true) const
 
std::shared_ptr< ccMeshCrop (const ccBBox &bbox) const
 
std::shared_ptr< ccMeshCrop (const ecvOrientedBBox &bbox) const
 
std::tuple< std::vector< int >, std::vector< size_t >, std::vector< double > > ClusterConnectedTriangles () const
 Function that clusters connected triangles, i.e., triangles that are connected via edges are assigned the same cluster index. More...
 
void RemoveTrianglesByIndex (const std::vector< size_t > &triangle_indices)
 This function removes the triangles with index in triangle_indices. Call RemoveUnreferencedVertices to clean up vertices afterwards. More...
 
void RemoveTrianglesByMask (const std::vector< bool > &triangle_mask)
 This function removes the triangles that are masked in triangle_mask. Call RemoveUnreferencedVertices to clean up vertices afterwards. More...
 
void RemoveVerticesByIndex (const std::vector< size_t > &vertex_indices)
 This function removes the vertices with index in vertex_indices. Note that also all triangles associated with the vertices are removeds. More...
 
void RemoveVerticesByMask (const std::vector< bool > &vertex_mask)
 This function removes the vertices that are masked in vertex_mask. Note that also all triangles associated with the vertices are removed.. More...
 
std::shared_ptr< ccMeshDeformAsRigidAsPossible (const std::vector< int > &constraint_vertex_indices, const std::vector< Eigen::Vector3d > &constraint_vertex_positions, size_t max_iter, DeformAsRigidAsPossibleEnergy energy=DeformAsRigidAsPossibleEnergy::Spokes, double smoothed_alpha=0.01) const
 This function deforms the mesh using the method by Sorkine and Alexa, "As-Rigid-As-Possible Surface Modeling", 2007. More...
 
- Public Member Functions inherited from ccGenericMesh
 ccGenericMesh (QString name=QString())
 Default constructor. More...
 
 ~ccGenericMesh () override=default
 Destructor. More...
 
void showNormals (bool state) override
 Sets normals visibility. More...
 
virtual bool isShownAsWire () const
 Returns whether the mesh is displayed as wired or with plain facets. More...
 
virtual void showWired (bool state)
 Sets whether mesh should be displayed as a wire or with plain facets. More...
 
virtual bool isShownAsPoints () const
 Returns whether the mesh is displayed as wired or with plain facets. More...
 
virtual void showPoints (bool state)
 
virtual bool triNormsShown () const
 Returns whether per-triangle normals are shown or not. More...
 
virtual void showTriNorms (bool state)
 Sets whether to show or not per-triangle normals. More...
 
virtual bool materialsShown () const
 Sets whether textures/material should be displayed or not. More...
 
virtual void showMaterials (bool state)
 Sets whether textures should be displayed or not. More...
 
virtual bool stipplingEnabled () const
 Returns whether polygon stippling is enabled or not. More...
 
void enableStippling (bool state)
 Enables polygon stippling. More...
 
ccPointCloudsamplePoints (bool densityBased, double samplingParameter, bool withNormals, bool withRGB, bool withTexture, cloudViewer::GenericProgressCallback *pDlg=nullptr)
 Samples points on a mesh. More...
 
void importParametersFrom (const ccGenericMesh *mesh)
 Imports the parameters from another mesh. More...
 
virtual bool trianglePicking (const CCVector2d &clickPos, const ccGLCameraParameters &camera, int &nearestTriIndex, double &nearestSquareDist, CCVector3d &nearestPoint, CCVector3d *barycentricCoords=nullptr) const
 Brute force triangle picking. More...
 
virtual bool trianglePicking (unsigned triIndex, const CCVector2d &clickPos, const ccGLCameraParameters &camera, CCVector3d &point, CCVector3d *barycentricCoords=nullptr) const
 Triangle picking (single triangle) More...
 
bool computePointPosition (unsigned triIndex, const CCVector2d &uv, CCVector3 &P, bool warningIfOutside=true) const
 
void setGlobalShift (const CCVector3d &shift) override
 Sets shift applied to original coordinates (information storage only) More...
 
void setGlobalScale (double scale) override
 
const CCVector3dgetGlobalShift () const override
 Returns the shift applied to original coordinates. More...
 
double getGlobalScale () const override
 Returns the scale applied to original coordinates. More...
 
bool updateTextures (const std::string &texture_file)
 
bool updateTextures (const std::vector< std::string > &texture_files)
 
- Public Member Functions inherited from cloudViewer::GenericIndexedMesh
 GenericIndexedMesh ()=default
 
 ~GenericIndexedMesh () override=default
 Default destructor. More...
 
- Public Member Functions inherited from cloudViewer::GenericMesh
 GenericMesh ()=default
 
virtual ~GenericMesh ()=default
 Default destructor. More...
 
virtual bool hasTriangles () const
 
- Public Member Functions inherited from ccShiftedObject
 ccShiftedObject (QString name=QString())
 Default constructor. More...
 
 ccShiftedObject (const ccShiftedObject &s)
 Copy constructor. More...
 
void copyGlobalShiftAndScale (const ccShiftedObject &s)
 Copies the Global Shift and Scale from another entity. More...
 
virtual void setGlobalShift (double x, double y, double z)
 Sets shift applied to original coordinates (information storage only) More...
 
bool isShifted () const
 Returns whether the cloud is shifted or not. More...
 
template<typename T >
CCVector3d toGlobal3d (const Vector3Tpl< T > &Plocal) const
 Returns the point back-projected into the original coordinates system. More...
 
template<typename T >
CCVector3d toLocal3d (const Vector3Tpl< T > &Pglobal) const
 Returns the point projected into the local (shifted) coordinates system. More...
 
template<typename T >
CCVector3 toLocal3pc (const Vector3Tpl< T > &Pglobal) const
 Returns the point projected into the local (shifted) coordinates system. More...
 
bool getOwnGlobalBB (CCVector3d &minCorner, CCVector3d &maxCorner) override
 
GlobalBoundingBox getOwnGlobalBB (bool withGLFeatures=false) override
 
- Public Member Functions inherited from ccHObject
 ccHObject (QString name=QString())
 Default constructor. More...
 
 ccHObject (const ccHObject &object)
 Copy constructor. More...
 
virtual ~ccHObject () override
 Default destructor. More...
 
virtual Eigen::Vector2d GetMin2DBound () const
 
virtual Eigen::Vector2d GetMax2DBound () const
 
virtual ccHObjectScale (const double s)
 
virtual ccHObjectRotate (const Eigen::Matrix3d &R)
 
QString getViewId () const
 
bool isGroup () const
 Returns whether the instance is a group. More...
 
ccHObjectgetParent () const
 Returns parent object. More...
 
virtual QIcon getIcon () const
 Returns the icon associated to this entity. More...
 
void addDependency (ccHObject *otherObject, int flags, bool additive=true)
 Adds a new dependence (additive or not) More...
 
int getDependencyFlagsWith (const ccHObject *otherObject)
 Returns the dependency flags with a given object. More...
 
void removeDependencyWith (ccHObject *otherObject)
 Removes any dependency flags with a given object. More...
 
void removeDependencyFlag (ccHObject *otherObject, DEPENDENCY_FLAGS flag)
 Removes a given dependency flag. More...
 
virtual bool addChild (ccHObject *child, int dependencyFlags=DP_PARENT_OF_OTHER, int insertIndex=-1)
 Adds a child. More...
 
unsigned getChildrenNumber () const
 Returns the number of children. More...
 
unsigned int getChildCountRecursive () const
 Returns the total number of children under this object recursively. More...
 
ccHObjectgetChild (unsigned childPos) const
 Returns the ith child. More...
 
ccHObjectfind (unsigned uniqueID)
 Finds an entity in this object hierarchy. More...
 
unsigned filterChildren (Container &filteredChildren, bool recursive=false, CV_CLASS_ENUM filter=CV_TYPES::OBJECT, bool strict=false) const
 Collects the children corresponding to a certain pattern. More...
 
void detachChild (ccHObject *child)
 Detaches a specific child. More...
 
void detachAllChildren ()
 Removes a specific child. More...
 
void getTypeID_recursive (std::vector< removeInfo > &rmInfos, bool relative)
 
void getTypeID_recursive (std::vector< hideInfo > &hdInfos, bool relative)
 
void removeChild (ccHObject *child)
 
void removeChild (int pos)
 Removes a specific child given its index. More...
 
void removeAllChildren ()
 Removes all children. More...
 
int getChildIndex (const ccHObject *aChild) const
 Returns child index. More...
 
void swapChildren (unsigned firstChildIndex, unsigned secondChildIndex)
 Swaps two children. More...
 
int getIndex () const
 Returns index relatively to its parent or -1 if no parent. More...
 
void transferChild (ccHObject *child, ccHObject &newParent)
 Transfer a given child to another parent. More...
 
void transferChildren (ccHObject &newParent, bool forceFatherDependent=false)
 Transfer all children to another parent. More...
 
ccHObjectgetFirstChild () const
 Shortcut: returns first child. More...
 
ccHObjectgetLastChild () const
 Shortcut: returns last child. More...
 
bool isAncestorOf (const ccHObject *anObject) const
 Returns true if the current object is an ancestor of the specified one. More...
 
void removeFromRenderScreen (bool recursive=true)
 
void hideObject_recursive (bool recursive)
 
void hideBB (CC_DRAW_CONTEXT context)
 
void showBB (CC_DRAW_CONTEXT context)
 
void setRedrawFlagRecursive (bool redraw=false)
 
void setForceRedrawRecursive (bool redraw=false)
 
void setPointSizeRecursive (int pSize)
 
void setLineWidthRecursive (PointCoordinateType width)
 
virtual ccBBox getBB_recursive (bool withGLFeatures=false, bool onlyEnabledChildren=true)
 Returns the bounding-box of this entity and it's children. More...
 
virtual GlobalBoundingBox getGlobalBB_recursive (bool withGLFeatures=false, bool onlyEnabledChildren=true)
 Returns the global bounding-box of this entity and it's children. More...
 
virtual ccBBox getDisplayBB_recursive (bool relative)
 Returns the bounding-box of this entity and it's children WHEN DISPLAYED. More...
 
virtual ccBBox getOwnFitBB (ccGLMatrix &trans)
 Returns best-fit bounding-box (if available) More...
 
virtual void drawBB (CC_DRAW_CONTEXT &context, const ecvColor::Rgb &col)
 Draws the entity (and its children) bounding-box. More...
 
void draw (CC_DRAW_CONTEXT &context) override
 Draws entity and its children. More...
 
void updateNameIn3DRecursive ()
 
void setHideShowType (CC_DRAW_CONTEXT &context)
 
void setRemoveType (CC_DRAW_CONTEXT &context)
 
ENTITY_TYPE getEntityType () const
 
virtual void redrawDisplay (bool forceRedraw=true, bool only2D=false)
 Redraws associated display. More...
 
bool getAbsoluteGLTransformation (ccGLMatrix &trans) const
 
virtual bool isDisplayed () const
 Returns whether the object is actually displayed (visible) or not. More...
 
virtual bool isBranchEnabled () const
 Returns whether the object and all its ancestors are enabled. More...
 
virtual void redrawDisplay_recursive (bool p)
 
virtual void refreshDisplay_recursive (bool p)
 
virtual void setSelected_recursive (bool p)
 
virtual void toggleActivation_recursive ()
 
virtual void toggleVisibility_recursive ()
 
virtual void toggleColors_recursive ()
 
virtual void resetGLTransformationHistory_recursive ()
 
virtual void toggleNormals_recursive ()
 
virtual void toggleSF_recursive ()
 
virtual void toggleShowName_recursive ()
 
unsigned findMaxUniqueID_recursive () const
 Returns the max 'unique ID' of this entity and its siblings. More...
 
void applyGLTransformation_recursive (const ccGLMatrix *trans=nullptr)
 Applies the active OpenGL transformation to the entity (recursive) More...
 
virtual void notifyGeometryUpdate ()
 
bool toFile (QFile &out, short dataVersion) const override
 Saves data to binary stream. More...
 
bool fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Loads data from binary stream. More...
 
short minimumFileVersion () const override
 Returns the minimum file version required to save this instance. More...
 
bool fromFileNoChildren (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap)
 Custom version of ccSerializableObject::fromFile. More...
 
virtual bool isShareable () const
 Returns whether object is shareable or not. More...
 
virtual void setSelectionBehavior (SelectionBehavior mode)
 Sets selection behavior (when displayed) More...
 
virtual SelectionBehavior getSelectionBehavior () const
 Returns selection behavior. More...
 
virtual void setGLTransformationHistory (const ccGLMatrix &mat)
 Sets the transformation 'history' matrix (handle with care!) More...
 
virtual void resetGLTransformationHistory ()
 Resets the transformation 'history' matrix. More...
 
bool pushDisplayState () override
 Pushes the current display state (overridden) More...
 
void popDisplayState (bool apply=true) override
 Pops the last pushed display state (overridden) More...
 
- Public Member Functions inherited from ccObject
 ccObject (QString name=QString())
 Default constructor. More...
 
 ccObject (const ccObject &object)
 Copy constructor. More...
 
virtual QString getName () const
 Returns object name. More...
 
virtual void setName (const QString &name)
 Sets object name. More...
 
virtual void setRemoveFlag (bool removeFlag)
 Sets removeFlag. More...
 
virtual bool getRemoveFlag ()
 Returns removeFlag. More...
 
virtual unsigned getUniqueID () const
 Returns object unique ID. More...
 
virtual void setUniqueID (unsigned ID)
 Changes unique ID. More...
 
virtual bool isEnabled () const
 Returns whether the object is enabled or not. More...
 
virtual void setEnabled (bool state)
 Sets the "enabled" property. More...
 
virtual void toggleActivation ()
 Toggles the "enabled" property. More...
 
virtual bool isLocked () const
 Returns whether the object is locked or not. More...
 
virtual void setLocked (bool state)
 Sets the "enabled" property. More...
 
bool isLeaf () const
 
bool isCustom () const
 
bool isHierarchy () const
 
bool isKindOf (CV_CLASS_ENUM type) const
 
bool isA (CV_CLASS_ENUM type) const
 
QVariant getMetaData (const QString &key) const
 Returns a given associated meta data. More...
 
bool removeMetaData (const QString &key)
 Removes a given associated meta-data. More...
 
void setMetaData (const QString &key, const QVariant &data)
 Sets a meta-data element. More...
 
void setMetaData (const QVariantMap &dataset, bool overwrite=false)
 Sets several meta-data elements at a time. More...
 
bool hasMetaData (const QString &key) const
 Returns whether a meta-data element with the given key exists or not. More...
 
const QVariantMap & metaData () const
 Returns meta-data map (const only) More...
 
void setBaseName (const QString &baseName)
 
QString getBaseName () const
 
void setFullPath (const QString &fullPaht)
 
QString getFullPath () const
 
- Public Member Functions inherited from ccSerializableObject
virtual ~ccSerializableObject ()=default
 Destructor. More...
 
- Public Member Functions inherited from ccDrawableObject
 ccDrawableObject ()
 Default constructor. More...
 
 ccDrawableObject (const ccDrawableObject &object)
 Copy constructor. More...
 
virtual ~ccDrawableObject ()=default
 
virtual bool isVisible () const
 Returns whether entity is visible or not. More...
 
virtual void setVisible (bool state)
 Sets entity visibility. More...
 
virtual void toggleVisibility ()
 Toggles visibility. More...
 
virtual bool isRedraw () const
 Returns whether entity is to be redraw. More...
 
virtual void setRedraw (bool state)
 Sets entity redraw mode. More...
 
virtual void setForceRedraw (bool state)
 Sets force redraw. More...
 
virtual void setFixedId (bool state)
 
virtual bool isFixedId ()
 
virtual bool isVisibilityLocked () const
 Returns whether visibility is locked or not. More...
 
virtual void lockVisibility (bool state)
 Locks/unlocks visibility. More...
 
virtual bool isSelected () const
 Returns whether entity is selected or not. More...
 
virtual void setSelected (bool state)
 Selects/Unselects entity. More...
 
virtual void getDrawingParameters (glDrawParams &params) const
 Returns main OpenGL parameters for this entity. More...
 
virtual bool colorsShown () const
 Returns whether colors are shown or not. More...
 
virtual void showColors (bool state)
 Sets colors visibility. More...
 
virtual void toggleColors ()
 Toggles colors display state. More...
 
virtual void toggleNormals ()
 Toggles normals display state. More...
 
virtual void showSF (bool state)
 Sets active scalarfield visibility. More...
 
virtual void toggleSF ()
 Toggles SF display state. More...
 
virtual bool sfShown () const
 Returns whether active scalar field is visible. More...
 
virtual void showNameIn3D (bool state)
 Sets whether name should be displayed in 3D. More...
 
virtual bool nameShownIn3D () const
 Returns whether name is displayed in 3D or not. More...
 
virtual void toggleShowName ()
 Toggles name in 3D display state. More...
 
virtual bool isColorOverridden () const
 
virtual const ecvColor::RgbgetTempColor () const
 Returns current temporary (unique) color. More...
 
virtual void setTempColor (const ecvColor::Rgb &col, bool autoActivate=true)
 Sets current temporary (unique) More...
 
virtual void enableTempColor (bool state)
 Set temporary color activation state. More...
 
virtual float getOpacity () const
 
virtual void setOpacity (float opacity)
 Set opacity activation state. More...
 
virtual void setGLTransformation (const ccGLMatrix &trans)
 Associates entity with a GL transformation (rotation + translation) More...
 
virtual void enableGLTransformation (bool state)
 Enables/disables associated GL transformation. More...
 
virtual bool isGLTransEnabled () const
 Returns whether a GL transformation is enabled or not. More...
 
virtual const ccGLMatrixgetGLTransformation () const
 Returns associated GL transformation. More...
 
virtual void resetGLTransformation ()
 Resets associated GL transformation. More...
 
virtual void rotateGL (const ccGLMatrix &rotMat)
 Multiplies (left) current GL transformation by a rotation matrix. More...
 
virtual void translateGL (const CCVector3 &trans)
 Translates current GL transformation by a rotation matrix. More...
 
virtual void removeAllClipPlanes ()
 Removes all clipping planes (if any) More...
 
virtual bool addClipPlanes (const ccClipPlane &plane)
 Registers a new clipping plane. More...
 
virtual void toggleClipPlanes (CC_DRAW_CONTEXT &context, bool enable)
 Enables or disables clipping planes (OpenGL) More...
 
virtual void applyDisplayState (const DisplayState &state)
 Applies a display state. More...
 

Protected Member Functions

bool toFile_MeOnly (QFile &out, short dataVersion) const override
 Save own object data. More...
 
short minimumFileVersion_MeOnly () const override
 
bool fromFile_MeOnly (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Loads own object data. More...
 
virtual bool buildUp () override
 Builds primitive. More...
 
virtual void drawNameIn3D () override
 Draws the entity name in 3D. More...
 
- Protected Member Functions inherited from ccGenericPrimitive
void applyGLTransformation (const ccGLMatrix &trans) override
 Inherited from ccGenericMesh. More...
 
virtual bool updateRepresentation ()
 Updates internal representation (as a mesh) More...
 
bool init (unsigned vertCount, bool vertNormals, unsigned faceCount, unsigned faceNormCount)
 Inits internal structures. More...
 
void applyTransformationToVertices ()
 Applies associated transformation to vertices. More...
 
ccGenericPrimitivefinishCloneJob (ccGenericPrimitive *primitive) const
 Finished 'clone' job (vertices color, etc.) More...
 
ccPointCloudvertices ()
 Returns vertices. More...
 
- Protected Member Functions inherited from ccMesh
void FilterSmoothLaplacianHelper (std::shared_ptr< ccMesh > &mesh, const std::vector< CCVector3 > &prev_vertices, const std::vector< CCVector3 > &prev_vertex_normals, const ColorsTableType &prev_vertex_colors, const std::vector< std::unordered_set< int >> &adjacency_list, double lambda, bool filter_vertex, bool filter_normal, bool filter_color) const
 
void drawMeOnly (CC_DRAW_CONTEXT &context) override
 Enables (OpenGL) stipple mask. More...
 
void applyGLTransformation (const ccGLMatrix &trans) override
 Applies a GL transformation to the entity. More...
 
void onUpdateOf (ccHObject *obj) override
 This method is called when another object (geometry) is updated. More...
 
void onDeletionOf (const ccHObject *obj) override
 This method is called when another object is deleted. More...
 
void computeInterpolationWeights (const cloudViewer::VerticesIndexes &vertIndexes, const CCVector3 &P, CCVector3d &weights) const
 
bool interpolateNormals (const cloudViewer::VerticesIndexes &vertIndexes, const CCVector3d &w, CCVector3 &N, const Tuple3i *triNormIndexes=nullptr)
 
bool interpolateColors (const cloudViewer::VerticesIndexes &vertIndexes, const CCVector3 &P, ecvColor::Rgb &C)
 
bool pushSubdivide (unsigned indexA, unsigned indexB, unsigned indexC)
 Used internally by 'subdivide'. More...
 
virtual void showNormals_extended (bool p)
 
- Protected Member Functions inherited from ccGenericMesh
virtual bool trianglePicking (unsigned triIndex, const CCVector2d &clickPos, const ccGLMatrix &trans, bool noGLTrans, const ccGenericPointCloud &vertices, const ccGLCameraParameters &camera, CCVector3d &point, CCVector3d *barycentricCoords=nullptr) const
 Triangle picking (single triangle) More...
 
void handleColorRamp (CC_DRAW_CONTEXT &context)
 Handles the color ramp display. More...
 
- Protected Member Functions inherited from ccShiftedObject
bool saveShiftInfoToFile (QFile &out) const
 Serialization helper (output) More...
 
bool loadShiftInfoFromFile (QFile &in)
 Serialization helper (input) More...
 
- Protected Member Functions inherited from ccHObject
virtual void setParent (ccHObject *anObject)
 Sets parent object. More...
 
- Protected Member Functions inherited from ccObject
virtual bool getFlagState (CV_OBJECT_FLAG flag) const
 Returns flag state. More...
 
virtual void setFlagState (CV_OBJECT_FLAG flag, bool state)
 Sets flag state. More...
 
bool toFile (QFile &out, short dataVersion) const override
 Saves data to binary stream. More...
 
short minimumFileVersion () const override
 Returns the minimum file version required to save this instance. More...
 
bool fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Reimplemented from ccSerializableObject::fromFile. More...
 

Protected Attributes

PointCoordinateType m_radius
 Radius. More...
 
- Protected Attributes inherited from ccGenericPrimitive
ccGLMatrix m_transformation
 Associated transformation (applied to vertices) More...
 
unsigned m_drawPrecision
 Drawing precision (for primitives that support this feature) More...
 
- Protected Attributes inherited from ccMesh
ccGenericPointCloudm_associatedCloud
 associated cloud (vertices) More...
 
NormsIndexesTableTypem_triNormals
 Per-triangle normals. More...
 
TextureCoordsContainerm_texCoords
 Texture coordinates. More...
 
ccMaterialSetm_materials
 Materials. More...
 
triangleIndexesContainerm_triVertIndexes
 Triangles' vertices indexes (3 per triangle) More...
 
unsigned m_globalIterator
 Iterator on the list of triangles. More...
 
cloudViewer::SimpleRefTriangle m_currentTriangle
 Dump triangle structure to transmit temporary data. More...
 
ccBBox m_bBox
 Bounding-box. More...
 
triangleMaterialIndexesSetm_triMtlIndexes
 Per-triangle material indexes. More...
 
triangleTexCoordIndexesSetm_texCoordIndexes
 Mesh tex coords indexes (per-triangle) More...
 
triangleNormalsIndexesSetm_triNormalIndexes
 Mesh normals indexes (per-triangle) More...
 
- Protected Attributes inherited from ccGenericMesh
bool m_triNormsShown
 Per-triangle normals display flag. More...
 
bool m_materialsShown
 Texture/material display flag. More...
 
bool m_showWired
 Wireframe display mode. More...
 
bool m_showPoints
 points display mode More...
 
bool m_stippling
 Polygon stippling state. More...
 
- Protected Attributes inherited from ccShiftedObject
CCVector3d m_globalShift
 Global shift (typically applied at loading time) More...
 
double m_globalScale
 Global scale (typically applied at loading time) More...
 
- Protected Attributes inherited from ccHObject
ccHObjectm_parent
 Parent. More...
 
Container m_children
 Children. More...
 
SelectionBehavior m_selectionBehavior
 Selection behavior. More...
 
std::map< ccHObject *, int > m_dependencies
 Dependencies map. More...
 
ccGLMatrix m_glTransHistory
 Cumulative GL transformation. More...
 
bool m_isDeleting
 Flag to safely handle dependencies when the object is being deleted. More...
 
- Protected Attributes inherited from ccObject
QString m_name
 Object name. More...
 
QString m_baseName
 
QString m_filePath
 
bool m_removeFlag
 
unsigned m_flags
 Object flags. More...
 
QVariantMap m_metaData
 Associated meta-data. More...
 
- Protected Attributes inherited from ccDrawableObject
bool m_fixedId
 
bool m_modelRedraw
 
bool m_forceRedraw
 
float m_opacity
 
bool m_visible
 Specifies whether the object is visible or not. More...
 
bool m_selected
 Specifies whether the object is selected or not. More...
 
bool m_lockedVisibility
 Specifies whether the visibility can be changed by user or not. More...
 
bool m_colorsDisplayed
 Specifies whether colors should be displayed. More...
 
bool m_normalsDisplayed
 Specifies whether normals should be displayed. More...
 
bool m_sfDisplayed
 Specifies whether scalar field should be displayed. More...
 
ecvColor::Rgb m_tempColor
 Temporary (unique) color. More...
 
bool m_colorIsOverridden
 Temporary (unique) color activation state. More...
 
ccGLMatrix m_glTrans
 Current GL transformation. More...
 
bool m_glTransEnabled
 Current GL transformation activation state. More...
 
bool m_showNameIn3D
 Whether name is displayed in 3D or not. More...
 
CCVector3d m_nameIn3DPos
 Last 2D position of the '3D' name. More...
 
ccClipPlaneSet m_clipPlanes
 Active clipping planes (used for display only) More...
 
std::vector< DisplayState::Sharedm_displayStateStack
 The stack of pushed display states. More...
 

Additional Inherited Members

- Public Types inherited from ccMesh
enum  MESH_SCALAR_FIELD_PROCESS { SMOOTH_MESH_SF , ENHANCE_MESH_SF }
 Mesh scalar field processes. More...
 
using triangleIndexesContainer = ccArray< cloudViewer::VerticesIndexes, 3, unsigned >
 Container of per-triangle vertices indexes (3) More...
 
using triangleMaterialIndexesSet = ccArray< int, 1, int >
 Container of per-triangle material descriptors. More...
 
- Public Types inherited from cloudViewer::GenericMesh
enum class  SimplificationContraction { Average , Quadric }
 Indicates the method that is used for mesh simplification if multiple vertices are combined to a single one. More...
 
enum class  FilterScope { All , Color , Normal , Vertex }
 Indicates the scope of filter operations. More...
 
enum class  DeformAsRigidAsPossibleEnergy { Spokes , Smoothed }
 
using genericTriangleAction = std::function< void(GenericTriangle &)>
 Generic function to apply to a triangle (used by foreach) More...
 
- Public Types inherited from ccHObject
enum  DEPENDENCY_FLAGS {
  DP_NONE = 0 , DP_NOTIFY_OTHER_ON_DELETE = 1 , DP_NOTIFY_OTHER_ON_UPDATE , DP_DELETE_OTHER = 8 ,
  DP_PARENT_OF_OTHER = 24
}
 Dependency flags. More...
 
enum  SelectionBehavior { SELECTION_AA_BBOX , SELECTION_FIT_BBOX , SELECTION_IGNORED }
 Behavior when selected. More...
 
using Container = std::vector< ccHObject * >
 Standard instances container (for children, etc.) More...
 
using Shared = QSharedPointer< ccHObject >
 Shared pointer. More...
 
using SharedContainer = std::vector< Shared >
 Shared instances container (for children, etc.) More...
 
using GlobalBoundingBox = cloudViewer::BoundingBoxTpl< double >
 Global (non-shifted) bounding-box. More...
 
- Public Types inherited from ccSerializableObject
enum  DeserializationFlags { DF_POINT_COORDS_64_BITS , DF_SCALAR_VAL_32_BITS = 2 }
 Deserialization flags (bit-field) More...
 
typedef QMultiMap< unsigned, unsigned > LoadedIDMap
 Map of loaded unique IDs (old ID --> new ID) More...
 
- Static Public Member Functions inherited from ccMesh
static cloudViewer::VerticesIndexes GetOrderedTriangle (int vidx0, int vidx1, int vidx2)
 
static ccMeshTriangulate (ccGenericPointCloud *cloud, cloudViewer::TRIANGULATION_TYPES type, bool updateNormals=false, PointCoordinateType maxEdgeLength=0, unsigned char dim=2)
 Creates a Delaunay 2.5D mesh from a point cloud. More...
 
static ccMeshTriangulateTwoPolylines (ccPolyline *p1, ccPolyline *p2, CCVector3 *projectionDir=nullptr)
 Creates a Delaunay 2.5D mesh from two polylines. More...
 
static double ComputeTriangleArea (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2)
 Function that computes the area of a mesh triangle. More...
 
static Eigen::Vector3i GetEigneOrderedTriangle (int vidx0, int vidx1, int vidx2)
 
static Eigen::Vector4d ComputeTrianglePlane (const Eigen::Vector3d &p0, const Eigen::Vector3d &p1, const Eigen::Vector3d &p2)
 
static Eigen::Vector2i GetOrderedEdge (int vidx0, int vidx1)
 Helper function to get an edge with ordered vertex indices. More...
 
static std::shared_ptr< ccMeshCreateFromPointCloudAlphaShape (const ccPointCloud &pcd, double alpha, std::shared_ptr< cloudViewer::geometry::TetraMesh > tetra_mesh=nullptr, std::vector< size_t > *pt_map=nullptr)
 Alpha shapes are a generalization of the convex hull. With decreasing alpha value the shape schrinks and creates cavities. See Edelsbrunner and Muecke, "Three-Dimensional Alpha Shapes", 1994. More...
 
static std::shared_ptr< ccMeshCreateFromPointCloudBallPivoting (const ccPointCloud &pcd, const std::vector< double > &radii)
 
static std::tuple< std::shared_ptr< ccMesh >, std::vector< double > > CreateFromPointCloudPoisson (const ccPointCloud &pcd, size_t depth=8, size_t width=0, float scale=1.1f, bool linear_fit=false, float point_weight=2.f, float samples_per_node=1.5f, int boundary_type=2, int n_threads=-1)
 Function that computes a triangle mesh from a oriented PointCloud pcd. This implements the Screened Poisson Reconstruction proposed in Kazhdan and Hoppe, "Screened Poisson Surface Reconstruction", 2013. This function uses the original implementation by Kazhdan. See https://github.com/mkazhdan/PoissonRecon. More...
 
static std::shared_ptr< ccMeshCreateTetrahedron (double radius=1.0, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateOctahedron (double radius=1.0, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateIcosahedron (double radius=1.0, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreatePlane (double width=1.0, double height=1.0, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateBox (double width=1.0, double height=1.0, double depth=1.0, bool create_uv_map=false, bool map_texture_to_each_face=false)
 
static std::shared_ptr< ccMeshCreateSphere (double radius=1.0, int resolution=20, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateCylinder (double radius=1.0, double height=2.0, int resolution=20, int split=4, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateCone (double radius=1.0, double height=2.0, int resolution=20, int split=1, bool create_uv_map=false)
 
static std::shared_ptr< ccMeshCreateTorus (double torus_radius=1.0, double tube_radius=0.5, int radial_resolution=30, int tubular_resolution=20)
 
static std::shared_ptr< ccMeshCreateArrow (double cylinder_radius=1.0, double cone_radius=1.5, double cylinder_height=5.0, double cone_height=4.0, int resolution=20, int cylinder_split=4, int cone_split=1)
 
static std::shared_ptr< ccMeshCreateCoordinateFrame (double size=1.0, const Eigen::Vector3d &origin=Eigen::Vector3d(0.0, 0.0, 0.0))
 
static std::shared_ptr< ccMeshCreateMobius (int length_split=70, int width_split=15, int twists=1, double radius=1, double flatness=1, double width=1, double scale=1)
 
- Static Public Member Functions inherited from ccGenericMesh
static bool IsCloudVerticesOfMesh (ccGenericPointCloud *cloud, ccGenericMesh **mesh=nullptr)
 Helper to determine if the input cloud acts as vertices of a mesh. More...
 
- Static Public Member Functions inherited from ccHObject
static ccHObjectNew (CV_CLASS_ENUM objectType, const char *name=nullptr)
 Static factory. More...
 
static ccHObjectNew (const QString &pluginId, const QString &classId, const char *name=nullptr)
 Static factory (version to be used by external plugin factories) More...
 
static Eigen::Vector3d ComputeMinBound (const std::vector< Eigen::Vector3d > &points)
 Compute min bound of a list points. More...
 
static Eigen::Vector3d ComputeMaxBound (const std::vector< Eigen::Vector3d > &points)
 Compute max bound of a list points. More...
 
static Eigen::Vector3d ComputeCenter (const std::vector< Eigen::Vector3d > &points)
 Computer center of a list of points. More...
 
static void ResizeAndPaintUniformColor (std::vector< Eigen::Vector3d > &colors, std::size_t size, const Eigen::Vector3d &color)
 Resizes the colors vector and paints a uniform color. More...
 
static void TransformPoints (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &points)
 Transforms all points with the transformation matrix. More...
 
static void TransformNormals (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &normals)
 Transforms the normals with the transformation matrix. More...
 
static void TransformCovariances (const Eigen::Matrix4d &transformation, std::vector< Eigen::Matrix3d > &covariances)
 Transforms all covariance matrices with the transformation. More...
 
static void TranslatePoints (const Eigen::Vector3d &translation, std::vector< Eigen::Vector3d > &points, bool relative)
 Apply translation to the geometry coordinates. More...
 
static void ScalePoints (const double scale, std::vector< Eigen::Vector3d > &points, const Eigen::Vector3d &center)
 Scale the coordinates of all points by the scaling factor scale. More...
 
static void RotatePoints (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &points, const Eigen::Vector3d &center)
 Rotate all points with the rotation matrix R. More...
 
static void RotateNormals (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &normals)
 Rotate all normals with the rotation matrix R. More...
 
static void RotateCovariances (const Eigen::Matrix3d &R, std::vector< Eigen::Matrix3d > &covariances)
 Rotate all covariance matrices with the rotation matrix R. More...
 
static Eigen::Matrix3d GetRotationMatrixFromXYZ (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from XYZ RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromYZX (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from YZX RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromZXY (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from ZXY RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromXZY (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from XZY RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromZYX (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from ZYX RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromYXZ (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from YXZ RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromAxisAngle (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from AxisAngle RotationType. More...
 
static Eigen::Matrix3d GetRotationMatrixFromQuaternion (const Eigen::Vector4d &rotation)
 Get Rotation Matrix from Quaternion. More...
 
static Eigen::Matrix3d GetRotationMatrixFromEulerAngle (const Eigen::Vector3d &rotation)
 Get Rotation Matrix from Euler angle. More...
 
- Static Public Member Functions inherited from ccObject
static unsigned GetCurrentDBVersion ()
 Returns current database version. More...
 
static void SetUniqueIDGenerator (ccUniqueIDGenerator::Shared generator)
 Sets the unique ID generator. More...
 
static ccUniqueIDGenerator::Shared GetUniqueIDGenerator ()
 Returns the unique ID generator. More...
 
static unsigned GetNextUniqueID ()
 Returns a new unassigned unique ID. More...
 
static unsigned GetLastUniqueID ()
 Returns last assigned unique ID. More...
 
static CV_CLASS_ENUM ReadClassIDFromFile (QFile &in, short dataVersion)
 Helper: reads out class ID from a binary stream. More...
 
- Static Public Member Functions inherited from ccSerializableObject
static bool WriteError ()
 Sends a custom error message (write error) and returns 'false'. More...
 
static bool ReadError ()
 Sends a custom error message (read error) and returns 'false'. More...
 
static bool MemoryError ()
 Sends a custom error message (not enough memory) and returns 'false'. More...
 
static bool CorruptError ()
 Sends a custom error message (corrupted file) and returns 'false'. More...
 
- Public Attributes inherited from ccMesh
std::vector< std::unordered_set< int > > adjacency_list_
 
std::vector< Eigen::Vector2d > triangle_uvs_
 List of uv coordinates per triangle. More...
 
std::vector< std::pair< std::string, Material > > materials_
 
std::vector< int > triangle_material_ids_
 List of material ids. More...
 
std::vector< cloudViewer::geometry::Imagetextures_
 Textures of the image. More...
 
- Static Public Attributes inherited from ccGenericPrimitive
static const int MIN_DRAWING_PRECISION = 4
 Minimum drawing precision. More...
 
- Static Public Attributes inherited from ccMesh
static const unsigned char DefaultMergeDulicateVerticesLevel = 10
 Default octree level for the 'mergeDuplicatedVertices' algorithm. More...
 
- Protected Types inherited from ccMesh
using triangleTexCoordIndexesSet = ccArray< Tuple3i, 3, int >
 Set of triplets of indexes referring to mesh texture coordinates. More...
 
using triangleNormalsIndexesSet = ccArray< Tuple3i, 3, int >
 Set of triplets of indexes referring to mesh normals. More...
 
- Static Protected Member Functions inherited from ccGenericMesh
static CCVector3GetVertexBuffer ()
 
static CCVector3GetNormalsBuffer ()
 
static ecvColor::RgbGetColorsBuffer ()
 
static unsigned * GetWireVertexIndexes ()
 Returns a pre-initialized array of vertex indexes for wired display. More...
 

Detailed Description

Sphere (primitive)

3D sphere primitive

Definition at line 16 of file ecvSphere.h.

Constructor & Destructor Documentation

◆ ccSphere() [1/2]

ccSphere::ccSphere ( PointCoordinateType  radius,
const ccGLMatrix transMat = 0,
QString  name = QString("Sphere"),
unsigned  precision = 24 
)

Default constructor.

Parameters
radiussphere radius
transMatoptional 3D transformation (can be set afterwards with ccDrawableObject::setGLTransformation)
namename
precisiondrawing precision (angular step = 360/precision)

◆ ccSphere() [2/2]

ccSphere::ccSphere ( QString  name = QString("Sphere"))

Simplified constructor.

For ccHObject factory only!

Member Function Documentation

◆ buildUp()

virtual bool ccSphere::buildUp ( )
overrideprotectedvirtual

Builds primitive.

Transformation will be applied afterwards!

Returns
success

Implements ccGenericPrimitive.

◆ clone()

virtual ccGenericPrimitive* ccSphere::clone ( ) const
overridevirtual

Clones primitive.

Implements ccGenericPrimitive.

◆ drawNameIn3D()

virtual void ccSphere::drawNameIn3D ( )
overrideprotectedvirtual

Draws the entity name in 3D.

Names is displayed at the center of the bounding box by default.

Reimplemented from ccHObject.

◆ fromFile_MeOnly()

bool ccSphere::fromFile_MeOnly ( QFile &  in,
short  dataVersion,
int  flags,
LoadedIDMap oldToNewIDMap 
)
overrideprotectedvirtual

Loads own object data.

Called by 'fromFile' (recursive scheme) To be overloaded (but still called ;) by subclass.

Parameters
ininput file
dataVersionfile version
flagsdeserialization flags (see ccSerializableObject::DeserializationFlags)
oldToNewIDMapmap to link old IDs with new IDs

Reimplemented from ccGenericPrimitive.

◆ getClassID()

virtual CV_CLASS_ENUM ccSphere::getClassID ( ) const
inlineoverridevirtual

Returns class ID.

Reimplemented from ccGenericPrimitive.

Definition at line 35 of file ecvSphere.h.

References CV_TYPES::SPHERE.

◆ getRadius()

PointCoordinateType ccSphere::getRadius ( ) const
inline

◆ getTypeName()

virtual QString ccSphere::getTypeName ( ) const
inlineoverridevirtual

Returns type name (sphere, cylinder, etc.)

Implements ccGenericPrimitive.

Definition at line 40 of file ecvSphere.h.

◆ hasDrawingPrecision()

virtual bool ccSphere::hasDrawingPrecision ( ) const
inlineoverridevirtual

Whether drawing is dependent on 'precision' parameter.

Reimplemented from ccGenericPrimitive.

Definition at line 41 of file ecvSphere.h.

◆ minimumFileVersion_MeOnly()

short ccSphere::minimumFileVersion_MeOnly ( ) const
overrideprotectedvirtual

Returns the minimum file version required to save this instance's own data To be overloaded (but still called ;) by subclass. Used internally by minimumFileVersion() to compute the overall minimum.

Reimplemented from ccGenericPrimitive.

◆ setRadius()

void ccSphere::setRadius ( PointCoordinateType  radius)

Sets radius.

Warning
changes primitive content (calls ccGenericPrimitive::updateRepresentation)

Referenced by define_ccSphere(), and cloudViewer::geometry::pybind_primitives().

◆ toFile_MeOnly()

bool ccSphere::toFile_MeOnly ( QFile &  out,
short  dataVersion 
) const
overrideprotectedvirtual

Save own object data.

Called by 'toFile' (recursive scheme) To be overloaded (but still called ;) by subclass.

Parameters
outoutput file
dataVersiontarget file version for compatibility control

Reimplemented from ccGenericPrimitive.

Member Data Documentation

◆ m_radius

PointCoordinateType ccSphere::m_radius
protected

Radius.

Definition at line 66 of file ecvSphere.h.


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