ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::geometry::VoxelGrid Class Reference

VoxelGrid is a collection of voxels which are aligned in grid. More...

#include <VoxelGrid.h>

Inheritance diagram for cloudViewer::geometry::VoxelGrid:
Collaboration diagram for cloudViewer::geometry::VoxelGrid:

Public Types

enum class  VoxelPoolingMode { AVG , MIN , MAX , SUM }
 Possible ways of determining voxel color from PointCloud. 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...
 

Public Member Functions

 VoxelGrid (const char *name="VoxelGrid")
 Default Constructor. More...
 
 VoxelGrid (const VoxelGrid &src_voxel_grid, const char *name="VoxelGrid")
 Copy Constructor. More...
 
 ~VoxelGrid () override
 
virtual bool isSerializable () const override
 Returns whether object is serializable of not. More...
 
virtual CV_CLASS_ENUM getClassID () const override
 Returns unique class ID. More...
 
virtual ccBBox getOwnBB (bool withGLFeatures=false) override
 Returns the entity's own bounding-box. More...
 
VoxelGridClear ()
 
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...
 
std::vector< Eigen::Vector3d > GetAllVoxelCorners () const
 Returns the 3D coordinates of all corners of every voxel in the grid. More...
 
virtual ccBBox GetAxisAlignedBoundingBox () const override
 Returns an axis-aligned bounding box of the geometry. More...
 
virtual ecvOrientedBBox GetOrientedBoundingBox () const override
 
virtual VoxelGridTransform (const Eigen::Matrix4d &transformation) override
 Apply transformation (4x4 matrix) to the geometry coordinates. More...
 
virtual VoxelGridTranslate (const Eigen::Vector3d &translation, bool relative=true) override
 Apply translation to the geometry coordinates. More...
 
virtual VoxelGridScale (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 VoxelGridRotate (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...
 
VoxelGridoperator+= (const VoxelGrid &voxelgrid)
 
VoxelGrid operator+ (const VoxelGrid &voxelgrid) const
 
bool HasVoxels () const
 Returns true if the voxel grid contains voxels. More...
 
bool HasColors () const
 Returns true if the voxel grid contains voxel colors. More...
 
Eigen::Vector3i GetVoxel (const Eigen::Vector3d &point) const
 Returns voxel index given query point. More...
 
Eigen::Vector3d GetVoxelCenterCoordinate (const Eigen::Vector3i &idx) const
 Function that returns the 3d coordinates of the queried voxel center. More...
 
void AddVoxel (const Voxel &voxel)
 Add a voxel with specified grid index and color. More...
 
void RemoveVoxel (const Eigen::Vector3i &idx)
 Remove a voxel with specified grid index. More...
 
std::vector< Eigen::Vector3d > GetVoxelBoundingPoints (const Eigen::Vector3i &index) const
 Return a vector of 3D coordinates that define the indexed voxel cube. More...
 
std::vector< bool > CheckIfIncluded (const std::vector< Eigen::Vector3d > &queries)
 
VoxelGridCarveDepthMap (const Image &depth_map, const camera::PinholeCameraParameters &camera_parameter, bool keep_voxels_outside_image)
 
VoxelGridCarveSilhouette (const Image &silhouette_mask, const camera::PinholeCameraParameters &camera_parameter, bool keep_voxels_outside_image)
 
void CreateFromOctree (const Octree &octree)
 
std::shared_ptr< geometry::OctreeToOctree (const size_t &max_depth) const
 
std::vector< VoxelGetVoxels () const
 
- 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 getOwnGlobalBB (bool withGLFeatures=false)
 
virtual bool getOwnGlobalBB (CCVector3d &minCorner, CCVector3d &maxCorner)
 
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 unsigned getUniqueIDForDisplay () const
 Returns object unqiue ID used for display. More...
 
virtual const ccGLMatrixgetGLTransformationHistory () const
 Returns the transformation 'history' matrix. 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 hasColors () const
 Returns whether colors are enabled or not. 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 bool hasNormals () const
 Returns whether normals are enabled or not. More...
 
virtual bool normalsShown () const
 Returns whether normals are shown or not. More...
 
virtual void showNormals (bool state)
 Sets normals visibility. More...
 
virtual void toggleNormals ()
 Toggles normals display state. More...
 
virtual bool hasDisplayedScalarField () const
 Returns whether an active scalar field is available or not. More...
 
virtual bool hasScalarFields () const
 Returns whether one or more scalar fields are instantiated. 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 toggleMaterials ()
 Toggles material display state. 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...
 

Static Public Member Functions

static std::shared_ptr< VoxelGridCreateDense (const Eigen::Vector3d &origin, const Eigen::Vector3d &color, double voxel_size, double width, double height, double depth)
 
static std::shared_ptr< VoxelGridCreateFromPointCloud (const ccPointCloud &input, double voxel_size, VoxelPoolingMode color_mode=VoxelPoolingMode::AVG)
 
static std::shared_ptr< VoxelGridCreateFromPointCloudWithinBounds (const ccPointCloud &input, double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound, VoxelPoolingMode color_mode=VoxelPoolingMode::AVG)
 
static std::shared_ptr< VoxelGridCreateFromTriangleMesh (const ccMesh &input, double voxel_size)
 
static std::shared_ptr< VoxelGridCreateFromTriangleMeshWithinBounds (const ccMesh &input, double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound)
 
- 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

double voxel_size_ = 0.0
 Size of the voxel. More...
 
Eigen::Vector3d origin_ = Eigen::Vector3d::Zero()
 Coorindate of the origin point. More...
 
Eigen::Matrix3d rotation_ = Eigen::Matrix3d::Identity()
 
std::unordered_map< Eigen::Vector3i, Voxel, cloudViewer::utility::hash_eigen< Eigen::Vector3i > > voxels_
 Voxels contained in voxel grid. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ccHObject
virtual void setParent (ccHObject *anObject)
 Sets parent object. More...
 
virtual void drawMeOnly (CC_DRAW_CONTEXT &context)
 Draws the entity only (not its children) More...
 
virtual void applyGLTransformation (const ccGLMatrix &trans)
 Applies a GL transformation to the entity. More...
 
virtual bool toFile_MeOnly (QFile &out, short dataVersion) const
 Save own object data. More...
 
virtual bool fromFile_MeOnly (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap)
 Loads own object data. More...
 
virtual short minimumFileVersion_MeOnly () const
 
virtual void drawNameIn3D ()
 Draws the entity name in 3D. More...
 
virtual void onDeletionOf (const ccHObject *obj)
 This method is called when another object is deleted. More...
 
virtual void onUpdateOf (ccHObject *obj)
 This method is called when another object (geometry) is updated. 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 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...
 

Detailed Description

VoxelGrid is a collection of voxels which are aligned in grid.

Definition at line 64 of file VoxelGrid.h.

Member Enumeration Documentation

◆ VoxelPoolingMode

Possible ways of determining voxel color from PointCloud.

Enumerator
AVG 
MIN 
MAX 
SUM 

Definition at line 200 of file VoxelGrid.h.

Constructor & Destructor Documentation

◆ VoxelGrid() [1/2]

cloudViewer::geometry::VoxelGrid::VoxelGrid ( const char *  name = "VoxelGrid")
inline

Default Constructor.

Definition at line 67 of file VoxelGrid.h.

◆ VoxelGrid() [2/2]

cloudViewer::geometry::VoxelGrid::VoxelGrid ( const VoxelGrid src_voxel_grid,
const char *  name = "VoxelGrid" 
)

Copy Constructor.

◆ ~VoxelGrid()

cloudViewer::geometry::VoxelGrid::~VoxelGrid ( )
inlineoverride

Definition at line 70 of file VoxelGrid.h.

Member Function Documentation

◆ AddVoxel()

void cloudViewer::geometry::VoxelGrid::AddVoxel ( const Voxel voxel)

Add a voxel with specified grid index and color.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CarveDepthMap()

VoxelGrid& cloudViewer::geometry::VoxelGrid::CarveDepthMap ( const Image depth_map,
const camera::PinholeCameraParameters camera_parameter,
bool  keep_voxels_outside_image 
)

Remove all voxels from the VoxelGrid where none of the boundary points of the voxel projects to depth value that is smaller, or equal than the projected depth of the boundary point. If keep_voxels_outside_image is true then voxels are only carved if all boundary points project to a valid image location.

Parameters
depth_mapDepth map (Image) used for VoxelGrid carving.
camera_paramsInput Camera Parameters.
keep_voxels_outside_imageProject all voxels to a valid location.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CarveSilhouette()

VoxelGrid& cloudViewer::geometry::VoxelGrid::CarveSilhouette ( const Image silhouette_mask,
const camera::PinholeCameraParameters camera_parameter,
bool  keep_voxels_outside_image 
)

Remove all voxels from the VoxelGrid where none of the boundary points of the voxel projects to a valid mask pixel (pixel value > 0). If keep_voxels_outside_image is true then voxels are only carved if all boundary points project to a valid image location.

Parameters
silhouette_maskSilhouette mask (Image) used for VoxelGrid carving.
camera_parameterInput Camera Parameters.
keep_voxels_outside_imageProject all voxels to a valid location.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CheckIfIncluded()

std::vector<bool> cloudViewer::geometry::VoxelGrid::CheckIfIncluded ( const std::vector< Eigen::Vector3d > &  queries)

Element-wise check if a query in the list is included in the VoxelGrid Queries are double precision and are mapped to the closest voxel.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ Clear()

VoxelGrid& cloudViewer::geometry::VoxelGrid::Clear ( )

◆ CreateDense()

static std::shared_ptr<VoxelGrid> cloudViewer::geometry::VoxelGrid::CreateDense ( const Eigen::Vector3d &  origin,
const Eigen::Vector3d &  color,
double  voxel_size,
double  width,
double  height,
double  depth 
)
static

Creates a voxel grid where every voxel is set (hence dense). This is a useful starting point for voxel carving.

Parameters
originCoordinate center of the VoxelGrid
colorVoxel color for all voxels of the VoxelGrid.
voxel_sizeVoxel size of of the VoxelGrid construction.
widthSpatial width extend of the VoxelGrid.
heightSpatial height extend of the VoxelGrid.
depthSpatial depth extend of the VoxelGrid.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CreateFromOctree()

void cloudViewer::geometry::VoxelGrid::CreateFromOctree ( const Octree octree)

Create VoxelGrid from Octree

Parameters
octreeThe input Octree.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CreateFromPointCloud()

static std::shared_ptr<VoxelGrid> cloudViewer::geometry::VoxelGrid::CreateFromPointCloud ( const ccPointCloud input,
double  voxel_size,
VoxelPoolingMode  color_mode = VoxelPoolingMode::AVG 
)
static

Creates a VoxelGrid from a given PointCloud. The color value of a given voxel is determined by the VoxelPoolingMode, e.g. by default the average color value of the points that fall into it (if the PointCloud has colors). The bounds of the created VoxelGrid are computed from the PointCloud.

Parameters
inputThe input PointCloud.
voxel_sizeVoxel size of of the VoxelGrid construction.
color_modeMode of determining color for each voxel.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CreateFromPointCloudWithinBounds()

static std::shared_ptr<VoxelGrid> cloudViewer::geometry::VoxelGrid::CreateFromPointCloudWithinBounds ( const ccPointCloud input,
double  voxel_size,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound,
VoxelPoolingMode  color_mode = VoxelPoolingMode::AVG 
)
static

Creates a VoxelGrid from a given PointCloud. The color value of a given voxel is determined by the VoxelPoolingMode, e.g. by default the average color value of the points that fall into it (if the PointCloud has colors). The bounds of the created VoxelGrid are defined by the given parameters.

Parameters
inputThe input PointCloud.
voxel_sizeVoxel size of of the VoxelGrid construction.
min_boundMinimum boundary point for the VoxelGrid to create.
max_boundMaximum boundary point for the VoxelGrid to create.
color_modeMode of determining color for each voxel.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CreateFromTriangleMesh()

static std::shared_ptr<VoxelGrid> cloudViewer::geometry::VoxelGrid::CreateFromTriangleMesh ( const ccMesh input,
double  voxel_size 
)
static

Creates a VoxelGrid from a given ccMesh. No color information is converted. The bounds of the created VoxelGrid are computed from the ccMesh.

Parameters
inputThe input ccMesh.
voxel_sizeVoxel size of of the VoxelGrid construction.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ CreateFromTriangleMeshWithinBounds()

static std::shared_ptr<VoxelGrid> cloudViewer::geometry::VoxelGrid::CreateFromTriangleMeshWithinBounds ( const ccMesh input,
double  voxel_size,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound 
)
static

Creates a VoxelGrid from a given ccMesh. No color information is converted. The bounds of the created VoxelGrid are defined by the given parameters..

Parameters
inputThe input ccMesh.
voxel_sizeVoxel size of of the VoxelGrid construction.
min_boundMinimum boundary point for the VoxelGrid to create.
max_boundMaximum boundary point for the VoxelGrid to create.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ GetAllVoxelCorners()

std::vector<Eigen::Vector3d> cloudViewer::geometry::VoxelGrid::GetAllVoxelCorners ( ) const

Returns the 3D coordinates of all corners of every voxel in the grid.

Returns
A std::vector of Eigen::Vector3d representing the corners of all voxels.

◆ GetAxisAlignedBoundingBox()

virtual ccBBox cloudViewer::geometry::VoxelGrid::GetAxisAlignedBoundingBox ( ) const
overridevirtual

Returns an axis-aligned bounding box of the geometry.

Reimplemented from ccHObject.

◆ GetCenter()

virtual Eigen::Vector3d cloudViewer::geometry::VoxelGrid::GetCenter ( ) const
overridevirtual

Returns the center of the geometry coordinates.

Reimplemented from ccHObject.

◆ getClassID()

virtual CV_CLASS_ENUM cloudViewer::geometry::VoxelGrid::getClassID ( ) const
inlineoverridevirtual

Returns unique class ID.

Reimplemented from ccHObject.

Definition at line 76 of file VoxelGrid.h.

References CV_TYPES::VOXEL_GRID.

◆ GetMaxBound()

virtual Eigen::Vector3d cloudViewer::geometry::VoxelGrid::GetMaxBound ( ) const
overridevirtual

Returns max bounds for geometry coordinates.

Reimplemented from ccHObject.

◆ GetMinBound()

virtual Eigen::Vector3d cloudViewer::geometry::VoxelGrid::GetMinBound ( ) const
overridevirtual

Returns min bounds for geometry coordinates.

Reimplemented from ccHObject.

◆ GetOrientedBoundingBox()

virtual ecvOrientedBBox cloudViewer::geometry::VoxelGrid::GetOrientedBoundingBox ( ) const
overridevirtual

Reimplemented from ccHObject.

◆ getOwnBB()

virtual ccBBox cloudViewer::geometry::VoxelGrid::getOwnBB ( bool  withGLFeatures = false)
overridevirtual

Returns the entity's own bounding-box.

Children bboxes are ignored.

Parameters
withGLFeatureswhether to take into account display-only elements (if any)
Returns
bounding-box

Reimplemented from ccHObject.

◆ GetVoxel()

Eigen::Vector3i cloudViewer::geometry::VoxelGrid::GetVoxel ( const Eigen::Vector3d &  point) const

Returns voxel index given query point.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ GetVoxelBoundingPoints()

std::vector<Eigen::Vector3d> cloudViewer::geometry::VoxelGrid::GetVoxelBoundingPoints ( const Eigen::Vector3i &  index) const

Return a vector of 3D coordinates that define the indexed voxel cube.

◆ GetVoxelCenterCoordinate()

Eigen::Vector3d cloudViewer::geometry::VoxelGrid::GetVoxelCenterCoordinate ( const Eigen::Vector3i &  idx) const
inline

Function that returns the 3d coordinates of the queried voxel center.

Definition at line 115 of file VoxelGrid.h.

References local.

◆ GetVoxels()

std::vector<Voxel> cloudViewer::geometry::VoxelGrid::GetVoxels ( ) const

Returns List of Voxel: Voxels contained in voxel grid. Changes to the voxels returned from this method are not reflected in the voxel grid.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ HasColors()

bool cloudViewer::geometry::VoxelGrid::HasColors ( ) const
inline

Returns true if the voxel grid contains voxel colors.

Definition at line 108 of file VoxelGrid.h.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ HasVoxels()

bool cloudViewer::geometry::VoxelGrid::HasVoxels ( ) const
inline

Returns true if the voxel grid contains voxels.

Definition at line 106 of file VoxelGrid.h.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ IsEmpty()

virtual bool cloudViewer::geometry::VoxelGrid::IsEmpty ( ) const
inlineoverridevirtual

Reimplemented from ccHObject.

Definition at line 82 of file VoxelGrid.h.

◆ isSerializable()

virtual bool cloudViewer::geometry::VoxelGrid::isSerializable ( ) const
inlineoverridevirtual

Returns whether object is serializable of not.

Reimplemented from ccHObject.

Definition at line 73 of file VoxelGrid.h.

◆ operator+()

VoxelGrid cloudViewer::geometry::VoxelGrid::operator+ ( const VoxelGrid voxelgrid) const

◆ operator+=()

VoxelGrid& cloudViewer::geometry::VoxelGrid::operator+= ( const VoxelGrid voxelgrid)

◆ RemoveVoxel()

void cloudViewer::geometry::VoxelGrid::RemoveVoxel ( const Eigen::Vector3i &  idx)

Remove a voxel with specified grid index.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ Rotate()

virtual VoxelGrid& cloudViewer::geometry::VoxelGrid::Rotate ( const Eigen::Matrix3d &  R,
const Eigen::Vector3d &  center 
)
overridevirtual

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$.

Parameters
RA 3x3 rotation matrix
centerRotation center that is used for the rotation.

Reimplemented from ccHObject.

◆ Scale()

virtual VoxelGrid& cloudViewer::geometry::VoxelGrid::Scale ( const double  s,
const Eigen::Vector3d &  center 
)
overridevirtual

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$.

Parameters
scaleThe scale parameter that is multiplied to the points/vertices of the geometry.
centerScale center that is used to resize the geometry.

Reimplemented from ccHObject.

◆ ToOctree()

std::shared_ptr<geometry::Octree> cloudViewer::geometry::VoxelGrid::ToOctree ( const size_t &  max_depth) const

Convert to Octree.

Parameters
max_depthMaximum depth of the octree.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ Transform()

virtual VoxelGrid& cloudViewer::geometry::VoxelGrid::Transform ( const Eigen::Matrix4d &  transformation)
overridevirtual

Apply transformation (4x4 matrix) to the geometry coordinates.

Reimplemented from ccHObject.

◆ Translate()

virtual VoxelGrid& cloudViewer::geometry::VoxelGrid::Translate ( const Eigen::Vector3d &  translation,
bool  relative = true 
)
overridevirtual

Apply translation to the geometry coordinates.

Parameters
translationA 3D vector to transform the geometry.
relativeIf true, the translation is directly applied to the geometry. Otherwise, the geometry center is moved to the translation.

Reimplemented from ccHObject.

Member Data Documentation

◆ origin_

Eigen::Vector3d cloudViewer::geometry::VoxelGrid::origin_ = Eigen::Vector3d::Zero()

Coorindate of the origin point.

Definition at line 266 of file VoxelGrid.h.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ rotation_

Eigen::Matrix3d cloudViewer::geometry::VoxelGrid::rotation_ = Eigen::Matrix3d::Identity()

Orientation (rotation) of the voxel grid (world = origin_ + rotation_ * local)

Definition at line 269 of file VoxelGrid.h.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ voxel_size_

double cloudViewer::geometry::VoxelGrid::voxel_size_ = 0.0

Size of the voxel.

Definition at line 264 of file VoxelGrid.h.

Referenced by cloudViewer::geometry::pybind_voxelgrid().

◆ voxels_

std::unordered_map<Eigen::Vector3i, Voxel, cloudViewer::utility::hash_eigen<Eigen::Vector3i> > cloudViewer::geometry::VoxelGrid::voxels_

Voxels contained in voxel grid.

Definition at line 274 of file VoxelGrid.h.


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