qCC_db version 2.13.alpha (Qt) - 31 May 2022
CloudCompare 3D entities
|
Generic mesh interface. More...
#include <ccGenericMesh.h>
Public Member Functions | |
ccGenericMesh (QString name=QString(), unsigned uniqueID=ccUniqueIDGenerator::InvalidUniqueID) | |
Default constructor. More... | |
~ccGenericMesh () override=default | |
Destructor. | |
void | showNormals (bool state) override |
Sets normals visibility. More... | |
bool | isSerializable () const override |
Returns whether object is serializable of not. More... | |
virtual ccGenericPointCloud * | getAssociatedCloud () const =0 |
Returns the vertices cloud. More... | |
virtual void | refreshBB ()=0 |
Forces bounding-box update. More... | |
virtual unsigned | capacity () const =0 |
Returns max capacity. More... | |
virtual bool | hasMaterials () const =0 |
Returns whether the mesh has materials/textures. More... | |
virtual const ccMaterialSet * | getMaterialSet () const =0 |
Returns associated material set. More... | |
virtual int | getTriangleMtlIndex (unsigned triangleIndex) const =0 |
Returns a given triangle material indexes. More... | |
virtual bool | hasTextures () const =0 |
Returns whether textures are available for this mesh. More... | |
virtual TextureCoordsContainer * | getTexCoordinatesTable () const =0 |
Returns per-triangle texture coordinates array. More... | |
virtual void | getTriangleTexCoordinates (unsigned triIndex, TexCoords2D *&tx1, TexCoords2D *&tx2, TexCoords2D *&tx3) const =0 |
Returns per-triangle texture coordinates (pointer to) More... | |
virtual bool | hasPerTriangleTexCoordIndexes () const =0 |
Returns whether this mesh as per-triangle triplets of tex coords indexes. More... | |
virtual void | getTriangleTexCoordinatesIndexes (unsigned triangleIndex, int &i1, int &i2, int &i3) const =0 |
Returns the triplet of tex coords indexes for a given triangle. More... | |
virtual bool | hasTriNormals () const =0 |
Returns whether the mesh has per-triangle normals. More... | |
virtual void | getTriangleNormalIndexes (unsigned triangleIndex, int &i1, int &i2, int &i3) const =0 |
Returns a triplet of normal indexes for a given triangle (if any) More... | |
virtual bool | getTriangleNormals (unsigned triangleIndex, CCVector3 &Na, CCVector3 &Nb, CCVector3 &Nc) const =0 |
Returns a given triangle normal. More... | |
virtual NormsIndexesTableType * | getTriNormsTable () const =0 |
Returns per-triangle normals shared array. More... | |
virtual void | computeInterpolationWeights (unsigned triIndex, const CCVector3 &P, CCVector3d &weights) const |
Returns the (barycentric) interpolation weights for a given triangle. More... | |
virtual bool | interpolateNormalsBC (unsigned triIndex, const CCVector3d &w, CCVector3 &N)=0 |
Interpolates normal(s) inside a given triangle. More... | |
virtual bool | interpolateColors (unsigned triIndex, const CCVector3 &P, ccColor::Rgb &color)=0 |
Interpolates RGB colors inside a given triangle. More... | |
virtual bool | interpolateColorsBC (unsigned triIndex, const CCVector3d &w, ccColor::Rgb &color)=0 |
Interpolates RGB colors inside a given triangle. More... | |
virtual bool | interpolateColors (unsigned triIndex, const CCVector3 &P, ccColor::Rgba &color)=0 |
Interpolates RGBA colors inside a given triangle. More... | |
virtual bool | interpolateColorsBC (unsigned triIndex, const CCVector3d &w, ccColor::Rgba &color)=0 |
Interpolates RGBA colors inside a given triangle. More... | |
virtual bool | getColorFromMaterial (unsigned triIndex, const CCVector3 &P, ccColor::Rgba &color, bool interpolateColorIfNoTexture)=0 |
Returns RGB color fom a given triangle material/texture. More... | |
virtual bool | getVertexColorFromMaterial (unsigned triIndex, unsigned char vertIndex, ccColor::Rgba &color, bool returnColorIfNoTexture)=0 |
Returns RGB color of a vertex fom a given triangle material/texture. More... | |
virtual bool | isShownAsWire () const |
Returns whether the mesh is displayed as wired or with plain facets. | |
virtual void | showWired (bool state) |
Sets whether mesh should be displayed as a wire or with plain facets. | |
virtual bool | triNormsShown () const |
Returns whether per-triangle normals are shown or not. | |
virtual void | showTriNorms (bool state) |
Sets whether to show or not per-triangle normals. | |
virtual bool | materialsShown () const |
Sets whether textures/material should be displayed or not. | |
virtual void | showMaterials (bool state) |
Sets whether textures should be displayed or not. | |
virtual bool | stipplingEnabled () const |
Returns whether polygon stippling is enabled or not. | |
void | enableStippling (bool state) |
Enables polygon stippling. | |
ccPointCloud * | samplePoints (bool densityBased, double samplingParameter, bool withNormals, bool withRGB, bool withTexture, CCCoreLib::GenericProgressCallback *pDlg=nullptr) |
Samples points on a mesh. | |
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) | |
bool | computePointPosition (unsigned triIndex, const CCVector2d &uv, CCVector3 &P, bool warningIfOutside=true) const |
Computes the point that corresponds to the given uv (barycentric) coordinates. | |
void | setGlobalShift (const CCVector3d &shift) override |
Sets shift applied to original coordinates (information storage only) More... | |
void | setGlobalScale (double scale) override |
Sets the scale applied to original coordinates (information storage only) More... | |
const CCVector3d & | getGlobalShift () const override |
Returns the shift applied to original coordinates. More... | |
double | getGlobalScale () const override |
Returns the scale applied to original coordinates. More... | |
bool | normalsAvailable () const override |
Public Member Functions inherited from ccShiftedObject | |
ccShiftedObject (QString name=QString(), unsigned uniqueID=ccUniqueIDGenerator::InvalidUniqueID) | |
Default constructor. More... | |
ccShiftedObject (const ccShiftedObject &s)=default | |
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... | |
virtual void | setGlobalShift (const CCVector3d &shift) |
Sets shift applied to original coordinates (information storage only) More... | |
virtual const CCVector3d & | getGlobalShift () const |
Returns the shift applied to original coordinates. More... | |
virtual void | setGlobalScale (double scale) |
Sets the scale applied to original coordinates (information storage only) More... | |
virtual double | getGlobalScale () const |
Returns the scale applied to original coordinates. More... | |
bool | isShifted () const |
Returns whether the cloud is shifted or not. | |
template<typename T > | |
CCVector3d | toGlobal3d (const Vector3Tpl< T > &Plocal) const |
Returns the point back-projected into the original coordinates system. | |
template<typename T > | |
CCVector3d | toLocal3d (const Vector3Tpl< T > &Pglobal) const |
Returns the point projected into the local (shifted) coordinates system. | |
template<typename T > | |
CCVector3 | toLocal3pc (const Vector3Tpl< T > &Pglobal) const |
Returns the point projected into the local (shifted) coordinates system. | |
bool | getOwnGlobalBB (CCVector3d &minCorner, CCVector3d &maxCorner) override |
Returns the entity's own global bounding-box (with global/non-shifted coordinates - if relevant) More... | |
GlobalBoundingBox | getOwnGlobalBB (bool withGLFeatures=false) override |
Returns the entity's own global bounding-box (with global/non-shifted coordinates - if relevant) 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. | |
ccHObject * | getParent () 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... | |
ccHObject * | getChild (unsigned childPos) const |
Returns the ith child. More... | |
ccHObject * | find (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. | |
ccHObject * | getFirstChild () const |
Shortcut: returns first child. | |
ccHObject * | getLastChild () 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 ccGLMatrix & | getGLTransformationHistory () 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 ¶ms) 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::Rgba & | getTempColor () 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 ccGenericGLDisplay * | getDisplay () 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 ccGLMatrix & | getGLTransformation () 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 bool | IsCloudVerticesOfMesh (ccGenericPointCloud *cloud, ccGenericMesh **mesh=nullptr) |
Helper to determine if the input cloud acts as vertices of a mesh. | |
Static Public Member Functions inherited from ccHObject | |
static ccHObject * | New (CC_CLASS_ENUM objectType, const char *name=nullptr) |
Static factory. More... | |
static ccHObject * | New (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... | |
virtual bool | trianglePicking (unsigned triIndex, const CCVector2d &clickPos, const ccGLMatrix &trans, bool noGLTrans, const ccGenericPointCloud &vertices, const ccGLCameraParameters &camera, CCVector3d &point, CCVector3d *barycentricCoords=nullptr, QPainter *painter=nullptr) const |
Triangle picking (single triangle) | |
void | drawMeOnly (CC_DRAW_CONTEXT &context) override |
Draws the entity only (not its children) More... | |
void | handleColorRamp (CC_DRAW_CONTEXT &context) |
Handles the color ramp display. | |
Protected Member Functions inherited from ccShiftedObject | |
bool | saveShiftInfoToFile (QFile &out) const |
Serialization helper (output) | |
bool | loadShiftInfoFromFile (QFile &in) |
Serialization helper (input) | |
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... | |
Static Protected Member Functions | |
static CCVector3 * | GetVertexBuffer () |
static CCVector3 * | GetNormalsBuffer () |
static ColorCompType * | GetColorsBuffer () |
static unsigned * | GetWireVertexIndexes () |
Returns a pre-initialized array of vertex indexes for wired display. More... | |
static void | EnableGLStippleMask (const QOpenGLContext *context, bool state) |
Enables (OpenGL) stipple mask. | |
Protected Attributes | |
bool | m_triNormsShown |
Per-triangle normals display flag. | |
bool | m_materialsShown |
Texture/material display flag. | |
bool | m_showWired |
Wireframe display mode. | |
bool | m_stippling |
Polygon stippling state. | |
Protected Attributes inherited from ccShiftedObject | |
CCVector3d | m_globalShift |
Global shift (typically applied at loading time) | |
double | m_globalScale |
Global scale (typically applied at loading time) | |
Protected Attributes inherited from ccHObject | |
ccHObject * | m_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. | |
ccGenericGLDisplay * | m_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 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 Attributes inherited from ccHObject | |
ccGenericGLDisplay setDisplay_recursive prepareDisplayForRefresh_recursive resetGLTransformationHistory_recursive toggleVisibility_recursive toggleNormals_recursive toggleShowName_recursive ccGenericGLDisplay * | newDisplay |
Generic mesh interface.
ccGenericMesh::ccGenericMesh | ( | QString | name = QString() , |
unsigned | uniqueID = ccUniqueIDGenerator::InvalidUniqueID |
||
) |
Default constructor.
name | object name |
uniqueID | unique ID (handle with care) |
|
pure virtual |
Returns max capacity.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
virtual |
Returns the (barycentric) interpolation weights for a given triangle.
Reimplemented in ccMesh.
|
overrideprotectedvirtual |
Draws the entity only (not its children)
Reimplemented from ccHObject.
Reimplemented in ccMesh, ccMeshGroup, and ccPlane.
|
overrideprotectedvirtual |
Loads own object data.
Called by 'fromFile' (recursive scheme) To be overloaded (but still called;) by subclass.
in | input file |
dataVersion | file version |
flags | deserialization flags (see ccSerializableObject::DeserializationFlags) |
oldToNewIDMap | map to link old IDs with new IDs |
Reimplemented from ccHObject.
Reimplemented in ccGenericPrimitive, ccMesh, ccMeshGroup, ccPlane, ccQuadric, ccSphere, ccSubMesh, and ccTorus.
|
pure virtual |
Returns the vertices cloud.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns RGB color fom a given triangle material/texture.
triIndex | triangle index | |
P | point where to grab color (should be inside the triangle!) | |
[out] | color | texel color |
interpolateColorIfNoTexture | whether to return the color interpolated from the RGB field if no texture/material is associated to the given triangles |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
overridevirtual |
Returns the scale applied to original coordinates.
Reimplemented from ccShiftedObject.
|
overridevirtual |
Returns the shift applied to original coordinates.
See ccGenericPointCloud::setOriginalShift
Reimplemented from ccShiftedObject.
|
pure virtual |
Returns associated material set.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns per-triangle texture coordinates array.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns a given triangle material indexes.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns a triplet of normal indexes for a given triangle (if any)
[in] | triangleIndex | triangle index |
[out] | i1 | first vertex normal index (or -1 if none) |
[out] | i2 | second vertex normal index (or -1 if none) |
[out] | i3 | third vertex normal index (or -1 if none) |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns a given triangle normal.
Mesh must have triangle normals associated (see hasTriNormals)
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns per-triangle texture coordinates (pointer to)
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns the triplet of tex coords indexes for a given triangle.
triangleIndex | triangle index |
i1 | first vertex tex coords index |
i2 | second vertex tex coords index |
i3 | third vertex tex coords index |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns per-triangle normals shared array.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns RGB color of a vertex fom a given triangle material/texture.
triIndex | triangle index | |
vertIndex | vertex index inside triangle (i.e. 0, 1 or 2!) | |
[out] | color | texel color |
returnColorIfNoTexture | whether to return the color from the vertex RGB field if no texture/material is associated to the given triangle |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
staticprotected |
Returns a pre-initialized array of vertex indexes for wired display.
Array size is MAX_NUMBER_OF_ELEMENTS_PER_CHUNK*6 by default
|
pure virtual |
Returns whether the mesh has materials/textures.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns whether this mesh as per-triangle triplets of tex coords indexes.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns whether textures are available for this mesh.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Returns whether the mesh has per-triangle normals.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
void ccGenericMesh::importParametersFrom | ( | const ccGenericMesh * | mesh | ) |
Imports the parameters from another mesh.
Only the specific parameters are imported.
|
pure virtual |
Interpolates RGB colors inside a given triangle.
triIndex | triangle index | |
P | point where to interpolate (should be inside the triangle!) | |
[out] | color | interpolated color |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Interpolates RGBA colors inside a given triangle.
triIndex | triangle index | |
P | point where to interpolate (should be inside the triangle!) | |
[out] | color | interpolated color |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Interpolates RGB colors inside a given triangle.
triIndex | triangle index | |
w | barycentric coordinates | |
[out] | color | interpolated color |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Interpolates RGBA colors inside a given triangle.
triIndex | triangle index | |
w | barycentric coordinates | |
[out] | color | interpolated color |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Interpolates normal(s) inside a given triangle.
triIndex | triangle index | |
w | barycentric coordinates | |
[out] | N | interpolated normal |
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
inlineoverridevirtual |
Returns whether object is serializable of not.
Reimplemented from ccSerializableObject.
Reimplemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
pure virtual |
Forces bounding-box update.
Implemented in ccMesh, ccMeshGroup, and ccSubMesh.
|
overridevirtual |
Sets the scale applied to original coordinates (information storage only)
Reimplemented from ccShiftedObject.
Reimplemented in ccMeshGroup, and ccSubMesh.
|
overridevirtual |
Sets shift applied to original coordinates (information storage only)
Such a shift can typically be applied at loading time. Original coordinates are equal to '(P/scale - shift)'
Reimplemented from ccShiftedObject.
Reimplemented in ccMeshGroup, and ccSubMesh.
|
overridevirtual |
Sets normals visibility.
Reimplemented from ccDrawableObject.
|
overrideprotectedvirtual |
Save own object data.
Called by 'toFile' (recursive scheme) To be overloaded (but still called;) by subclass.
Reimplemented from ccHObject.
Reimplemented in ccGenericPrimitive, ccMesh, ccMeshGroup, ccPlane, ccQuadric, ccSphere, ccSubMesh, and ccTorus.
|
virtual |
Brute force triangle picking.
Reimplemented in ccMeshGroup.