qCC_db version 2.13.alpha (Qt) - 31 May 2022
CloudCompare 3D entities
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ccGBLSensor Class Reference

Ground-based Laser sensor. More...

#include <ccGBLSensor.h>

Inheritance diagram for ccGBLSensor:
Inheritance graph
[legend]
Collaboration diagram for ccGBLSensor:
Collaboration graph
[legend]

Public Types

enum  ROTATION_ORDER { YAW_THEN_PITCH = 0 , PITCH_THEN_YAW = 1 }
 The order of inner-rotations of the sensor (body/mirrors) More...
 
using NormalGrid = std::vector< CCVector3 >
 2D grid of normals
 
using ColorGrid = std::vector< ccColor::Rgb >
 2D grid of colors
 
- Public Types inherited from ccHObject
enum  DEPENDENCY_FLAGS {
  DP_NONE = 0 , DP_NOTIFY_OTHER_ON_DELETE = 1 , DP_NOTIFY_OTHER_ON_UPDATE = 2 , 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.
 
using Container = std::vector< ccHObject * >
 Standard instances container (for children, etc.)
 
using Shared = QSharedPointer< ccHObject >
 Shared pointer.
 
using SharedContainer = std::vector< Shared >
 Shared instances container (for children, etc.)
 
using GlobalBoundingBox = CCCoreLib::BoundingBoxTpl< double >
 Global (non-shifted) bounding-box.
 
- Public Types inherited from ccSerializableObject
enum  DeserializationFlags { DF_POINT_COORDS_64_BITS = 1 , 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)
 

Public Member Functions

 ccGBLSensor (ROTATION_ORDER rotOrder=YAW_THEN_PITCH)
 Default constructor. More...
 
 ccGBLSensor (const ccGBLSensor &sensor)
 Copy constructor. More...
 
 ~ccGBLSensor () override=default
 Destructor.
 
CC_CLASS_ENUM getClassID () const override
 Returns class ID. More...
 
bool isSerializable () const override
 Returns whether object is serializable of not. More...
 
ccBBox getOwnBB (bool withGLFeatures=false) override
 Returns the entity's own bounding-box (with local/shifted coordinates) More...
 
ccBBox getOwnFitBB (ccGLMatrix &trans) override
 Returns best-fit bounding-box (if available) More...
 
bool applyViewport (ccGenericGLDisplay *win=nullptr) override
 Apply sensor 'viewport' to a 3D view. More...
 
unsigned char checkVisibility (const CCVector3 &P) const override
 Determines a 3D point "visibility" relatively to the sensor field of view. More...
 
bool computeAutoParameters (CCCoreLib::GenericCloud *theCloud)
 Computes angular parameters automatically (all but the angular steps!) More...
 
void setPitchRange (PointCoordinateType minPhi, PointCoordinateType maxPhi)
 Sets the pitch scanning limits. More...
 
PointCoordinateType getMinPitch () const
 Returns the minimal pitch limit (in radians)
 
PointCoordinateType getMaxPitch () const
 Returns the maximal pitch limit (in radians)
 
void setPitchStep (PointCoordinateType dPhi)
 Sets the pitch step. More...
 
PointCoordinateType getPitchStep () const
 Returns the lateral pitch step (in radians)
 
bool pitchIsShifted () const
 Returns whether the pitch angles are shifted (i.e. between [0 ; 2pi] instead of [-pi ; pi])
 
void setYawRange (PointCoordinateType minTheta, PointCoordinateType maxTheta)
 Sets the yaw scanning limits. More...
 
PointCoordinateType getMinYaw () const
 Returns the minimal yaw limit (in radians)
 
PointCoordinateType getMaxYaw () const
 Returns the maximal yaw limit (in radians)
 
void setYawStep (PointCoordinateType dTheta)
 Sets the yaw step. More...
 
PointCoordinateType getYawStep () const
 Returns the yaw step (in radians)
 
bool yawIsShifted () const
 Returns whether the yaw angles are shifted (i.e. between [0 ; 2pi] instead of [-pi ; pi])
 
PointCoordinateType getSensorRange () const
 Returns the sensor max. range.
 
void setSensorRange (PointCoordinateType range)
 Sets the sensor max. range. More...
 
PointCoordinateType getUncertainty () const
 Returns the Z-buffer uncertainty on depth values.
 
void setUncertainty (PointCoordinateType u)
 Sets the Z-buffer uncertainty on depth values. More...
 
ROTATION_ORDER getRotationOrder () const
 Returns the sensor internal rotations order.
 
void setRotationOrder (ROTATION_ORDER rotOrder)
 Sets the sensor internal rotations order. More...
 
void projectPoint (const CCVector3 &sourcePoint, CCVector2 &destPoint, PointCoordinateType &depth, double posIndex=0) const
 Projects a point in the sensor world. More...
 
NormalGridprojectNormals (CCCoreLib::GenericCloud *cloud, const NormalGrid &norms, double posIndex=0) const
 Projects a set of point cloud normals in the sensor world. More...
 
ColorGridprojectColors (CCCoreLib::GenericCloud *cloud, const ColorGrid &rgbColors) const
 Projects a set of point cloud colors in the sensor frame defined by this instance. More...
 
bool computeDepthBuffer (CCCoreLib::GenericCloud *cloud, int &errorCode, ccPointCloud *projectedCloud=nullptr)
 Projects a point cloud along the sensor point of view defined by this instance. More...
 
const ccDepthBuffergetDepthBuffer () const
 Returns the associated depth buffer. More...
 
void clearDepthBuffer ()
 Removes the associated depth buffer.
 
- Public Member Functions inherited from ccSensor
 ccSensor (const QString &name)
 Default constructor.
 
 ccSensor (const ccSensor &sensor)
 Copy constructor.
 
CC_CLASS_ENUM getClassID () const override
 Returns class ID. More...
 
bool isSerializable () const override
 Returns whether object is serializable of not. More...
 
virtual CC_SENSOR_TYPE getType () const
 Returns the sensor type. More...
 
virtual unsigned char checkVisibility (const CCVector3 &P) const
 Returns the "visibility type" of a point. More...
 
ccIndexedTransformationBuffergetPositions ()
 Returns associated positions.
 
const ccIndexedTransformationBuffergetPositions () const
 Returns associated positions.
 
void setPositions (ccIndexedTransformationBuffer *positions)
 Sets associated positions.
 
bool addPosition (ccGLMatrix &trans, double index)
 Adds a new position (shortcut) More...
 
bool getAbsoluteTransformation (ccIndexedTransformation &trans, double index) const
 Returns the absolute transformation between the world and the "optical" center (shortcut) More...
 
bool getActiveAbsoluteTransformation (ccIndexedTransformation &trans) const
 Gets currently active absolute transformation.
 
bool getActiveAbsoluteCenter (CCVector3 &vec) const
 Gets currently active absolute position.
 
bool getActiveAbsoluteRotation (ccGLMatrix &rotation) const
 Gets currently active rotation matrix (without translation)
 
virtual void setRigidTransformation (const ccGLMatrix &mat)
 Sets the rigid transformation between this sensor and its associated positions. More...
 
virtual ccGLMatrixgetRigidTransformation ()
 Returns the rigid transformation between this sensor and its associated positions.
 
virtual const ccGLMatrixgetRigidTransformation () const
 Returns the rigid transformation between this sensor and its associated positions (const version)
 
void getIndexBounds (double &minIndex, double &maxIndex) const
 Gets index boundaries (shortcut)
 
double getActiveIndex () const
 Sets currently active index (displayed position, etc.)
 
void setActiveIndex (double index)
 Sets currently active index (displayed position, etc.)
 
void setGraphicScale (PointCoordinateType scale)
 Sets the sensor graphic representation scale.
 
PointCoordinateType getGraphicScale () const
 Returns the sensor graphic representation scale.
 
virtual bool applyViewport (ccGenericGLDisplay *win=nullptr)
 Apply sensor 'viewport' to a 3D view. More...
 
void applyGLTransformation (const ccGLMatrix &trans) override
 Applies a GL transformation to the entity. More...
 
- Public Member Functions inherited from ccHObject
 ccHObject (const QString &name=QString(), unsigned uniqueID=ccUniqueIDGenerator::InvalidUniqueID)
 Default constructor. More...
 
 ccHObject (const ccHObject &object)
 Copy constructor.
 
 ~ccHObject () override
 Default destructor.
 
CC_CLASS_ENUM getClassID () const override
 Returns class ID. More...
 
bool isGroup () const
 Returns whether the instance is a group.
 
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) const
 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) const
 Finds an entity in this object hierarchy. More...
 
unsigned filterChildren (Container &filteredChildren, bool recursive=false, CC_CLASS_ENUM filter=CC_TYPES::OBJECT, bool strict=false, ccGenericGLDisplay *inDisplay=nullptr) 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 removeChild (ccHObject *child)
 
void removeChild (int pos)
 Removes a specific child given its index. More...
 
void removeAllChildren ()
 Removes all children.
 
int getChildIndex (const ccHObject *aChild) const
 Returns child index.
 
void swapChildren (unsigned firstChildIndex, unsigned secondChildIndex)
 Swaps two children.
 
int getIndex () const
 Returns index relatively to its parent or -1 if no parent.
 
void transferChild (ccHObject *child, ccHObject &newParent)
 Transfer a given child to another parent.
 
void transferChildren (ccHObject &newParent, bool forceFatherDependent=false)
 Transfer all children to another parent.
 
ccHObjectgetFirstChild () const
 Shortcut: returns first child.
 
ccHObjectgetLastChild () const
 Shortcut: returns last child.
 
bool isAncestorOf (const ccHObject *anObject) const
 Returns true if the current object is an ancestor of the specified one.
 
virtual ccBBox getOwnBB (bool withGLFeatures=false)
 Returns the entity's own bounding-box (with local/shifted coordinates) More...
 
virtual ccBBox getBB_recursive (bool withGLFeatures=false, bool onlyEnabledChildren=true)
 Returns the local bounding-box of this entity and it's children. More...
 
virtual GlobalBoundingBox getOwnGlobalBB (bool withGLFeatures=false)
 Returns the entity's own global bounding-box (with global/non-shifted coordinates - if relevant) More...
 
virtual bool getOwnGlobalBB (CCVector3d &minCorner, CCVector3d &maxCorner)
 Returns the entity's own global bounding-box (with global/non-shifted coordinates - if relevant) 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, const ccGenericGLDisplay *display=nullptr)
 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 ccColor::Rgb &col)
 Draws the entity (and its children) bounding-box. More...
 
void draw (CC_DRAW_CONTEXT &context) override
 Draws entity and its children. More...
 
bool getAbsoluteGLTransformation (ccGLMatrix &trans) const
 Returns the absolute transformation (i.e. the actual displayed GL transformation) of an entity. More...
 
virtual bool isDisplayed () const
 Returns whether the object is actually displayed (visible) or not.
 
virtual bool isDisplayedIn (const ccGenericGLDisplay *display) const
 Returns whether the object is actually displayed (visible) in a given display or not.
 
virtual bool isBranchEnabled () const
 Returns whether the object and all its ancestors are enabled.
 
 ccHObject_recursive_call1 (setSelected, bool, setSelected_recursive) ccHObject_recursive_call1(setDisplay
 
ccGenericGLDisplay setDisplay_recursive ccHObject_recursive_call1 (removeFromDisplay, ccGenericGLDisplay *, removeFromDisplay_recursive) ccHObject_recursive_call0(prepareDisplayForRefresh
 
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive ccHObject_recursive_call1 (refreshDisplay, bool, refreshDisplay_recursive) ccHObject_recursive_call0(resetGLTransformationHistory
 
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive ccHObject_recursive_call0 (toggleActivation, toggleActivation_recursive) ccHObject_recursive_call0(toggleVisibility
 
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive toggleVisibility_recursive ccHObject_recursive_call0 (toggleColors, toggleColors_recursive) ccHObject_recursive_call0(toggleNormals
 
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive toggleVisibility_recursive toggleNormals_recursive ccHObject_recursive_call0 (toggleSF, toggleSF_recursive) ccHObject_recursive_call0(toggleShowName
 
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive toggleVisibility_recursive toggleNormals_recursive toggleShowName_recursive ccHObject_recursive_call0 (toggleMaterials, toggleMaterials_recursive) inline virtual void transferDisplay(ccGenericGLDisplay *oldDisplay
 Transfers the entity from one display to the other.
 
void applyGLTransformation_recursive (const ccGLMatrix *trans=nullptr)
 Applies the active OpenGL transformation to the entity (recursive) More...
 
virtual void notifyGeometryUpdate ()
 Notifies all dependent entities that the geometry of this entity has changed.
 
bool isSerializable () const override
 Returns whether object is serializable of not. More...
 
bool toFile (QFile &out) 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...
 
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.
 
virtual unsigned getUniqueIDForDisplay () const
 Returns object unique 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!)
 
virtual void resetGLTransformationHistory ()
 Resets the transformation 'history' matrix.
 
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 (const QString &name=QString(), unsigned uniqueID=ccUniqueIDGenerator::InvalidUniqueID)
 Default constructor. More...
 
 ccObject (const ccObject &object)
 Copy constructor.
 
virtual CC_CLASS_ENUM getClassID () const =0
 Returns class ID. More...
 
virtual QString getName () const
 Returns object name. More...
 
virtual void setName (const QString &name)
 Sets object name.
 
virtual unsigned getUniqueID () const
 Returns object unique ID.
 
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.
 
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 (CC_CLASS_ENUM type) const
 
bool isA (CC_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)
 
- Public Member Functions inherited from ccSerializableObject
virtual ~ccSerializableObject ()=default
 Destructor.
 
virtual bool isSerializable () const
 Returns whether object is serializable of not. More...
 
virtual bool toFile (QFile &out) const
 Saves data to binary stream. More...
 
virtual bool fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap)
 Loads data from binary stream. More...
 
- Public Member Functions inherited from ccDrawableObject
 ccDrawableObject ()
 Default constructor.
 
 ccDrawableObject (const ccDrawableObject &object)
 Copy constructor.
 
virtual void draw (CC_DRAW_CONTEXT &context)=0
 Draws entity and its children. More...
 
virtual bool isVisible () const
 Returns whether entity is visible or not.
 
virtual void setVisible (bool state)
 Sets entity visibility.
 
virtual void toggleVisibility ()
 Toggles visibility.
 
virtual bool isVisibilityLocked () const
 Returns whether visibility is locked or not.
 
virtual void lockVisibility (bool state)
 Locks/unlocks visibility. More...
 
virtual bool isSelected () const
 Returns whether entity is selected or not.
 
virtual void setSelected (bool state)
 Selects/unselects entity.
 
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.
 
virtual void showColors (bool state)
 Sets colors visibility.
 
virtual void toggleColors ()
 Toggles colors display state.
 
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.
 
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.
 
virtual void toggleSF ()
 Toggles SF display state.
 
virtual bool sfShown () const
 Returns whether active scalar field is visible.
 
virtual void toggleMaterials ()
 Toggles material display state. More...
 
virtual void showNameIn3D (bool state)
 Sets whether name should be displayed in 3D or not.
 
virtual bool nameShownIn3D () const
 Returns whether name is displayed in 3D or not.
 
virtual void toggleShowName ()
 Toggles name in 3D display state.
 
virtual bool isColorOverridden () const
 Returns whether colors are currently overridden by a temporary (unique) color. More...
 
virtual const ccColor::RgbagetTempColor () const
 Returns current temporary (unique) color.
 
virtual void setTempColor (const ccColor::Rgba &col, bool autoActivate=true)
 Sets current temporary (unique) More...
 
virtual void setTempColor (const ccColor::Rgb &col, bool autoActivate=true)
 Sets current temporary (unique) More...
 
virtual void enableTempColor (bool state)
 Set temporary color activation state.
 
virtual void removeFromDisplay (const ccGenericGLDisplay *win)
 Unlinks entity from a GL display (only if it belongs to it of course)
 
virtual void setDisplay (ccGenericGLDisplay *win)
 Sets associated GL display.
 
virtual ccGenericGLDisplaygetDisplay () const
 Returns associated GL display.
 
virtual void redrawDisplay ()
 Redraws associated GL display.
 
virtual void prepareDisplayForRefresh ()
 Sets associated GL display 'refreshable' before global refresh. More...
 
virtual void refreshDisplay (bool only2D=false)
 Refreshes associated GL display. 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.
 
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)
 
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 bool pushDisplayState ()
 Pushes the current display state. More...
 
virtual void popDisplayState (bool apply=true)
 Pops the last pushed display state. More...
 
virtual void applyDisplayState (const DisplayState &state)
 Applies a display state.
 

Static Public Member Functions

static QString GetErrorString (int errorCode)
 Returns the error string corresponding to an error code. More...
 
- Static Public Member Functions inherited from ccHObject
static ccHObjectNew (CC_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 Public Member Functions inherited from ccObject
static unsigned GetCurrentDBVersion ()
 Returns current database version.
 
static void SetUniqueIDGenerator (ccUniqueIDGenerator::Shared generator)
 Sets the unique ID generator.
 
static ccUniqueIDGenerator::Shared GetUniqueIDGenerator ()
 Returns the unique ID generator.
 
static unsigned GetNextUniqueID ()
 Returns a new unassigned unique ID. More...
 
static unsigned GetLastUniqueID ()
 Returns last assigned unique ID. More...
 
static CC_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...
 

Protected Member Functions

bool toFile_MeOnly (QFile &out) const override
 Save own object data. More...
 
bool fromFile_MeOnly (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Loads own object data. More...
 
void drawMeOnly (CC_DRAW_CONTEXT &context) override
 Draws the entity only (not its children) More...
 
bool convertToDepthMapCoords (PointCoordinateType yaw, PointCoordinateType pitch, unsigned &i, unsigned &j) const
 Converts 2D angular coordinates (yaw,pitch) in integer depth buffer coordinates.
 
- Protected Member Functions inherited from ccSensor
bool toFile_MeOnly (QFile &out) const override
 Save own object data. More...
 
bool fromFile_MeOnly (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Loads own object data. More...
 
- Protected Member Functions inherited from ccHObject
virtual void setParent (ccHObject *anObject)
 Sets parent object.
 
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) const
 Save own object data. More...
 
virtual bool fromFile_MeOnly (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap)
 Loads own object data. More...
 
virtual void drawNameIn3D (CC_DRAW_CONTEXT &context)
 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 (CC_OBJECT_FLAG flag) const
 Returns flag state.
 
virtual void setFlagState (CC_OBJECT_FLAG flag, bool state)
 Sets flag state. More...
 
bool toFile (QFile &out) const override
 Saves data to binary stream. More...
 
bool fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override
 Reimplemented from ccSerializableObject::fromFile. More...
 

Protected Attributes

PointCoordinateType m_phiMin
 Minimal pitch limit (in radians) More...
 
PointCoordinateType m_phiMax
 Maximal pitch limit (in radians) More...
 
PointCoordinateType m_deltaPhi
 Pitch step (in radians)
 
bool m_pitchAnglesAreShifted
 Whether the pitch angular range is shifted (i.e in [0 ; 2pi] instead of [-pi ; pi])
 
PointCoordinateType m_thetaMin
 Minimal yaw limit (in radians) More...
 
PointCoordinateType m_thetaMax
 Maximal yaw limit (in radians) More...
 
PointCoordinateType m_deltaTheta
 Yaw step (in radians)
 
bool m_yawAnglesAreShifted
 Whether the yaw range is shifted (i.e in [0 ; 2pi] instead of [-pi ; pi]))
 
ROTATION_ORDER m_rotationOrder
 Mirrors rotation order.
 
PointCoordinateType m_sensorRange
 Sensor max range.
 
PointCoordinateType m_uncertainty
 Z-buffer uncertainty.
 
ccDepthBuffer m_depthBuffer
 Associated Z-buffer.
 
- Protected Attributes inherited from ccSensor
ccIndexedTransformationBufferm_posBuffer
 Positions buffer (optional)
 
ccGLMatrix m_rigidTransformation
 Rigid transformation between this sensor and its associated positions. More...
 
double m_activeIndex
 Active index (for displayed position, etc.)
 
ccColor::Rgb m_color
 Color of the sensor. More...
 
PointCoordinateType m_scale
 Sensor graphic representation scale.
 
- Protected Attributes inherited from ccHObject
ccHObjectm_parent
 Parent.
 
Container m_children
 Children.
 
SelectionBehavior m_selectionBehavior
 Selection behavior.
 
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.
 
- Protected Attributes inherited from ccObject
QString m_name
 Object name.
 
unsigned m_flags
 Object flags.
 
QVariantMap m_metaData
 Associated meta-data.
 
- Protected Attributes inherited from ccDrawableObject
bool m_visible
 Specifies whether the object is visible or not. More...
 
bool m_selected
 Specifies whether the object is selected or not.
 
bool m_lockedVisibility
 Specifies whether the visibility can be changed by user or not.
 
bool m_colorsDisplayed
 Specifies whether colors should be displayed.
 
bool m_normalsDisplayed
 Specifies whether normals should be displayed.
 
bool m_sfDisplayed
 Specifies whether scalar field should be displayed.
 
ccColor::Rgba m_tempColor
 Temporary (unique) color.
 
bool m_colorIsOverridden
 Temporary (unique) color activation state.
 
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.
 
CCVector3d m_nameIn3DPos
 Last 2D position of the '3D' name.
 
bool m_nameIn3DPosIsValid
 Whether the last 2D position of the '3D' name is valid or not.
 
ccGenericGLDisplaym_currentDisplay
 Currently associated GL display.
 
ccClipPlaneSet m_clipPlanes
 Active clipping planes (used for display only)
 
std::vector< DisplayState::Shared > m_displayStateStack
 The stack of pushed display states.
 

Additional Inherited Members

- Public Attributes inherited from ccHObject
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive toggleVisibility_recursive toggleNormals_recursive toggleShowName_recursive ccGenericGLDisplaynewDisplay
 

Detailed Description

Ground-based Laser sensor.

An implementation of the ccSensor interface that can be used to represent a depth sensor relying on 2 rotations relatively to two perpendicular axes, such as ground based laser scanners typically.

Member Enumeration Documentation

◆ ROTATION_ORDER

The order of inner-rotations of the sensor (body/mirrors)

Either the first rotation is made around the Z axis (yaw) then around the lateral axis (pitch) as most scanners do today (Leica, Riegl, Faro, etc.). Otherwise the opposite order is used (as the very old Mensi Soisic).

Constructor & Destructor Documentation

◆ ccGBLSensor() [1/2]

ccGBLSensor::ccGBLSensor ( ROTATION_ORDER  rotOrder = YAW_THEN_PITCH)
explicit

Default constructor.

Parameters
rotOrderinner rotations order

◆ ccGBLSensor() [2/2]

ccGBLSensor::ccGBLSensor ( const ccGBLSensor sensor)

Copy constructor.

Warning
The depth buffer is not copied!
Parameters
sensorsensor structure to copy

Member Function Documentation

◆ applyViewport()

bool ccGBLSensor::applyViewport ( ccGenericGLDisplay win = nullptr)
overridevirtual

Apply sensor 'viewport' to a 3D view.

Parameters
win3D view to which to apply the sensor viewport (or the associated 'display' if 0)
Returns
success

Reimplemented from ccSensor.

◆ checkVisibility()

unsigned char ccGBLSensor::checkVisibility ( const CCVector3 &  P) const
overridevirtual

Determines a 3D point "visibility" relatively to the sensor field of view.

Relies on the sensor associated depth map (see ccGBLSensor::computeDepthBuffer). The depth map is used to determine the "visibility" of a 3D point relatively to the laser scanner field of view. This can be useful for filtering out points that shouldn't be compared while computing the distances between two point clouds for instance (for more information on this particular topic, refer to Daniel Girardeau-Montaut's PhD manuscript - Chapter 2, section 2.3.3).

Parameters
Pthe point to test
Returns
the point's visibility (POINT_VISIBLE, POINT_HIDDEN, POINT_OUT_OF_RANGE or POINT_OUT_OF_FOV)

Reimplemented from ccSensor.

◆ computeAutoParameters()

bool ccGBLSensor::computeAutoParameters ( CCCoreLib::GenericCloud *  theCloud)

Computes angular parameters automatically (all but the angular steps!)

Warning
this method uses the cloud global iterator.

◆ computeDepthBuffer()

bool ccGBLSensor::computeDepthBuffer ( CCCoreLib::GenericCloud *  cloud,
int &  errorCode,
ccPointCloud projectedCloud = nullptr 
)

Projects a point cloud along the sensor point of view defined by this instance.

Warning
this method uses the cloud global iterator
Parameters
clouda point cloud
errorCodeerror code in case the returned cloud is 0
projectedCloudoptional (empty) cloud to store the projected points
Returns
whether the depth buffer was successfully created or not

◆ drawMeOnly()

void ccGBLSensor::drawMeOnly ( CC_DRAW_CONTEXT context)
overrideprotectedvirtual

Draws the entity only (not its children)

Reimplemented from ccHObject.

◆ fromFile_MeOnly()

bool ccGBLSensor::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 ccHObject.

◆ getClassID()

CC_CLASS_ENUM ccGBLSensor::getClassID ( ) const
inlineoverridevirtual

Returns class ID.

Implements ccObject.

◆ getDepthBuffer()

const ccDepthBuffer & ccGBLSensor::getDepthBuffer ( ) const
inline

Returns the associated depth buffer.

Call ccGBLSensor::computeDepthBuffer first otherwise the returned buffer will be 0.

◆ GetErrorString()

QString ccGBLSensor::GetErrorString ( int  errorCode)
static

Returns the error string corresponding to an error code.

Errors codes are returned by ccGBLSensor::computeDepthBuffer or ccDepthBuffer::fillHoles for instance.

◆ getOwnBB()

ccBBox ccGBLSensor::getOwnBB ( bool  withGLFeatures = false)
overridevirtual

Returns the entity's own bounding-box (with local/shifted coordinates)

Children bounding-boxes are ignored.

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

Reimplemented from ccHObject.

◆ getOwnFitBB()

ccBBox ccGBLSensor::getOwnFitBB ( ccGLMatrix trans)
overridevirtual

Returns best-fit bounding-box (if available)

Warning
Only suitable for leaf objects (i.e. without children) Therefore children bboxes are always ignored.
This method is not supported by all entities! (returns the axis-aligned bounding-box by default).
Parameters
[out]transassociated transformation (so that the bounding-box can be displayed in the right position!)
Returns
fit bounding-box

Reimplemented from ccHObject.

◆ isSerializable()

bool ccGBLSensor::isSerializable ( ) const
inlineoverridevirtual

Returns whether object is serializable of not.

Reimplemented from ccSerializableObject.

◆ projectColors()

ccGBLSensor::ColorGrid * ccGBLSensor::projectColors ( CCCoreLib::GenericCloud *  cloud,
const ColorGrid rgbColors 
) const

Projects a set of point cloud colors in the sensor frame defined by this instance.

Warning
this method uses the cloud global iterator
Parameters
clouda point cloud
rgbColorsthe RGB colors (should have the same size and order as the point cloud)
Returns
a set of RGB colors organized as a bidimensional grid (same size as the depth buffer)

◆ projectNormals()

ccGBLSensor::NormalGrid * ccGBLSensor::projectNormals ( CCCoreLib::GenericCloud *  cloud,
const NormalGrid norms,
double  posIndex = 0 
) const

Projects a set of point cloud normals in the sensor world.

Warning
this method uses the cloud global iterator
Parameters
clouda point cloud
normsthe normals vectors (should have the same size and order as the point cloud)
posIndex(optional) sensor position index (see ccIndexedTransformationBuffer)
Returns
a bidimensional array of 3D vectors (same size as the depth buffer)

◆ projectPoint()

void ccGBLSensor::projectPoint ( const CCVector3 &  sourcePoint,
CCVector2 &  destPoint,
PointCoordinateType &  depth,
double  posIndex = 0 
) const

Projects a point in the sensor world.

Parameters
[in]sourcePoint3D point to project
[out]destPointprojected point in polar coordinates: (theta,phi) = (yaw,pitch) (angles between [-pi,+pi] or [0 ; 2pi] if the corresponding angle is 'shifted')
[out]depthdistance between the sensor optical center and the 3D point
[in]posIndex(optional) sensor position index (see ccIndexedTransformationBuffer)

◆ setPitchRange()

void ccGBLSensor::setPitchRange ( PointCoordinateType  minPhi,
PointCoordinateType  maxPhi 
)

Sets the pitch scanning limits.

Parameters
minPhimin pitch angle (in radians)
maxPhimax pitch angle (in radians)

◆ setPitchStep()

void ccGBLSensor::setPitchStep ( PointCoordinateType  dPhi)

Sets the pitch step.

Parameters
dPhipitch step (in radians)

◆ setRotationOrder()

void ccGBLSensor::setRotationOrder ( ROTATION_ORDER  rotOrder)
inline

Sets the sensor internal rotations order.

Parameters
rotOrderinternal rotations order

◆ setSensorRange()

void ccGBLSensor::setSensorRange ( PointCoordinateType  range)
inline

Sets the sensor max. range.

Parameters
rangemax. range of the sensor

◆ setUncertainty()

void ccGBLSensor::setUncertainty ( PointCoordinateType  u)
inline

Sets the Z-buffer uncertainty on depth values.

The uncertainty is used to handle numerical inaccuracies

Parameters
uthe Z-buffer uncertainty

◆ setYawRange()

void ccGBLSensor::setYawRange ( PointCoordinateType  minTheta,
PointCoordinateType  maxTheta 
)

Sets the yaw scanning limits.

Parameters
minThetamin yaw angle (in radians)
maxThetamax yaw angle (in radians)

◆ setYawStep()

void ccGBLSensor::setYawStep ( PointCoordinateType  dTheta)

Sets the yaw step.

Parameters
dThetayaw step (in radians)

◆ toFile_MeOnly()

bool ccGBLSensor::toFile_MeOnly ( QFile &  out) const
overrideprotectedvirtual

Save own object data.

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

Reimplemented from ccHObject.

Member Data Documentation

◆ m_phiMax

PointCoordinateType ccGBLSensor::m_phiMax
protected

Maximal pitch limit (in radians)

Phi = 0 corresponds to the scanner vertical direction (upward)

◆ m_phiMin

PointCoordinateType ccGBLSensor::m_phiMin
protected

Minimal pitch limit (in radians)

Phi = 0 corresponds to the scanner vertical direction (upward)

◆ m_thetaMax

PointCoordinateType ccGBLSensor::m_thetaMax
protected

Maximal yaw limit (in radians)

Theta = 0 corresponds to the scanner X direction

◆ m_thetaMin

PointCoordinateType ccGBLSensor::m_thetaMin
protected

Minimal yaw limit (in radians)

Theta = 0 corresponds to the scanner X direction


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