GLC_lib
2.5.0
|
GLC_Cone : OpenGL 3D Cone. More...
#include <glc_cone.h>
Public Member Functions | |
Constructor / Destructor | |
GLC_Cone (double dRadius, double dLength, int discretization=glc::GLC_POLYDISCRET) | |
Construct an GLC_Cone. | |
GLC_Cone (const GLC_Cone &sourceCone) | |
Copy contructor. | |
virtual | ~GLC_Cone () |
Destructor. | |
Set Functions | |
void | setLength (double Length) |
Set Cone length. | |
void | setRadius (double Radius) |
Set Cone radius. | |
void | setDiscretion (int TargetDiscret) |
Set Discretion. | |
![]() | |
GLC_Mesh () | |
Default constructor. | |
GLC_Mesh (const GLC_Mesh &) | |
Copy constructor. | |
GLC_Mesh & | operator= (const GLC_Mesh &) |
Overload "=" operator. | |
virtual | ~GLC_Mesh () |
Destructor. | |
virtual void | clear () |
Clear the content of the mesh and super class and makes them empty. | |
void | clearMeshWireAndBoundingBox () |
Clear only the content off the mesh and makes it empty. | |
void | addVertice (const GLfloatVector &vertices) |
Add vertices coordinate. | |
void | addNormals (const GLfloatVector &normals) |
Add Normals. | |
void | addTexels (const GLfloatVector &texels) |
Add texel. | |
void | addColors (const GLfloatVector &colors) |
Add Colors. | |
GLC_uint | addTriangles (GLC_Material *, const IndexList &, const int lod=0, double accuracy=0.0) |
Add triangles. | |
GLC_uint | addTrianglesStrip (GLC_Material *, const IndexList &, const int lod=0, double accuracy=0.0) |
Add triangles Strip and return his id. | |
GLC_uint | addTrianglesFan (GLC_Material *, const IndexList &, const int lod=0, double accuracy=0.0) |
Add triangles Fan and return his id. | |
void | reverseNormals () |
Reverse mesh normal. | |
void | setColorPearVertex (bool flag) |
Set color per vertex flag to use indexed color. | |
void | finish () |
Copy vertex list in a vector list for Vertex Array Use. | |
virtual void | setCurrentLod (const int) |
Set the lod Index. | |
virtual void | replaceMasterMaterial (GLC_Material *) |
Replace the Master material. | |
void | replaceMaterial (const GLC_uint, GLC_Material *) |
Replace the material specified by id with another one. | |
void | setNextPrimitiveLocalId (GLC_uint id) |
Set the mesh next primitive local id. | |
void | setWireColor (const QColor &color) |
Set the mesh wire color. | |
virtual void | copyVboToClientSide () |
Copy VBO to the Client Side. | |
virtual void | releaseVboClientSide (bool update) |
Release client VBO. | |
virtual void | setVboUsage (bool usage) |
Set VBO usage. | |
void | loadFromDataStream (QDataStream &, const MaterialHash &, const QHash< GLC_uint, GLC_uint > &) |
Load the mesh from binary data stream. | |
void | saveToDataStream (QDataStream &) const |
Save the mesh to binary data stream. | |
virtual unsigned int | faceCount (int lod) const |
Get number of faces. | |
virtual unsigned int | VertexCount () const |
Get number of vertex. | |
unsigned int | numberOfNormals () const |
Get number of normals. | |
bool | ColorPearVertexIsAcivated () const |
Return true if color pear vertex is activated. | |
int | lodCount () const |
Return the number of lod. | |
GLfloatVector | positionVector () const |
Return the Position Vector. | |
GLfloatVector | normalVector () const |
Return the normal Vector. | |
GLfloatVector | texelVector () const |
Return the texel Vector. | |
bool | containsTriangles (int lod, GLC_uint materialId) const |
Return true if the mesh contains triangles in the specified LOD. | |
QVector< GLuint > | getTrianglesIndex (int lod, GLC_uint materialId) const |
Return the triangle index. | |
IndexList | getEquivalentTrianglesStripsFansIndex (int lod, GLC_uint materialId) |
Return the equivalent triangle index of (triangle, strip and fan) | |
int | numberOfTriangles (int lod, GLC_uint materialId) const |
Return the number of triangles in the specified LOD. | |
bool | containsStrips (int lod, GLC_uint materialId) const |
Return true if the mesh contains trips in the specified LOD with the specified material id. | |
QList< QVector< GLuint > > | getStripsIndex (int lod, GLC_uint materialId) const |
Return the strips index. | |
int | numberOfStrips (int lod, GLC_uint materialId) const |
Return the number of strips in the specified LOD with the specified material id. | |
bool | containsFans (int lod, GLC_uint materialId) const |
Return true if the mesh contains fans in the specified LOD with the specified material id. | |
QList< QVector< GLuint > > | getFansIndex (int lod, GLC_uint materialId) const |
Return the fans index. | |
int | numberOfFans (int lod, GLC_uint materialId) const |
Return the number of fans in the specified LOD with the specified material id. | |
bool | containsLod (int lod) const |
Return true if the mesh contains the specified LOD. | |
bool | lodContainsMaterial (int lod, GLC_uint materialId) const |
Return true if the specified LOD contains the specified material. | |
double | getLodAccuracy (int lod) const |
Return the specified LOD accuracy. | |
GLC_uint | nextPrimitiveLocalId () const |
Return the next primitive local id. | |
GLC_Material * | MaterialOfPrimitiveId (GLC_uint id, int lod=0) const |
Return the GLC_Material applyed on the given primitive id of the given lod. | |
QSet< GLC_uint > | setOfPrimitiveId () const |
Return the set of primitives id. | |
bool | isEmpty () const |
Return true if the mesh position data is empty. | |
QColor | wireColor () const |
Return the mesh wire color. | |
GLC_Mesh * | createMeshOfGivenLod (int lodIndex) |
Create a mesh of the given LOD index. | |
GLC_Mesh * | createMeshFromGivenLod (int lodIndex) |
Create a mesh from the given LOD index. | |
GLC_Mesh & | transformVertice (const GLC_Matrix4x4 &matrix) |
Transform mesh vertice by the given matrix. | |
virtual double | volume () |
Return the volume of this mesh. | |
![]() | |
GLC_Geometry (const QString &name, const bool type) | |
Default constructor. | |
GLC_Geometry (const GLC_Geometry &sourceGeom) | |
Copy constructor. | |
GLC_Geometry & | operator= (const GLC_Geometry &sourceGeom) |
Overload "=" operator. | |
virtual | ~GLC_Geometry () |
Destructor. | |
GLC_uint | id () const |
Get Object ID. | |
QString | name () const |
Get Object Name. | |
bool | isValid (void) const |
Return true if the geometry is valid. | |
bool | hasMaterial () const |
Return true if the geometry has material. | |
GLC_Material * | firstMaterial (void) const |
Return first material of geometry. | |
int | materialCount () const |
Return the number of materials. | |
GLC_Material * | material (const GLC_uint key) const |
Return the specified mesh sub material. | |
QSet< GLC_Material * > | materialSet () const |
Get materials Set. | |
QList< GLC_uint > | materialIds () const |
Get materials ID List. | |
bool | containsMaterial (const GLC_uint key) const |
Return true if Material key is in the mesh. | |
bool | boundingBoxIsValid () const |
Return true if the bounding box is valid. | |
bool | isTransparent () const |
Get the geometry transparency. | |
bool | hasTransparentMaterials () const |
Return true if the geometry contains transparent materials. | |
bool | usedColorPerVertex () const |
Return true if color per vertex is used. | |
bool | typeIsWire () const |
Return true if the geometry type is wireframe. | |
GLfloat | lineWidth () const |
Return the line width. | |
QColor | wireColor () const |
Return this geometry wire color. | |
bool | wireDataIsEmpty () const |
Return true if wire data is empty. | |
GLfloatVector | wirePositionVector () const |
Return the wire position vector. | |
int | wirePolylineCount () const |
Return the number of wire polylines. | |
GLuint | wirePolylineOffset (int index) const |
Return the polyline offset from the given index. | |
GLsizei | wirePolylineSize (int index) const |
Return the polyline size from the given index. | |
bool | vboIsUsed () const |
Return true if this geometry will try to use VBO. | |
void | addMaterial (GLC_Material *) |
Add material to the geometry. | |
void | colorPerVertex (const bool colorPerVertex) |
Set the color per vertex usage. | |
void | updateTransparentMaterialNumber () |
Update the transparent material number. | |
void | setId (const GLC_uint id) |
Set Geometry Id. | |
void | setName (const QString name) |
Set geometry name. | |
GLC_uint | addVerticeGroup (const GLfloatVector &vector) |
Add a vertice group to the geometry and returns its id. | |
void | setLineWidth (GLfloat lineWidth) |
Set Line width. | |
void | setWireColor (const QColor &color) |
Set this geometry wire color. | |
virtual void | glLoadTexture (void) |
Load each textures of materials. | |
virtual void | render (const GLC_RenderProperties &) |
Virtual interface for OpenGL execution. | |
Private Member Functions | |
OpenGL Functions | |
virtual void | glDraw (const GLC_RenderProperties &) |
Virtual interface for OpenGL Geometry set up. | |
Private services Functions | |
void | createMeshAndWire () |
Create the cylinder mesh and wire. | |
Private Attributes | |
double | m_Radius |
Cone's radius. | |
double | m_Length |
Cone length (Z Axis direction) | |
int | m_Discret |
Cone polygon discretisation. | |
Static Private Attributes | |
static quint32 | m_ChunkId = 0xA709 |
Class chunk id. | |
Get Functions | |
double | length (void) const |
Get Lenght of the Cone. | |
double | radius (void) const |
Get Radius of cone. | |
int | discretion (void) const |
Get Cone discretion. | |
virtual GLC_Geometry * | clone () const |
Return a copy of the Cone. | |
virtual const GLC_BoundingBox & | boundingBox (void) |
Return the cone bounding box. | |
static quint32 | chunckID () |
Return the class Chunk ID. | |
Additional Inherited Members | |
![]() | |
typedef QHash< GLC_uint, GLC_PrimitiveGroup * > | LodPrimitiveGroups |
typedef QHash< const int, LodPrimitiveGroups * > | PrimitiveGroupsHash |
![]() | |
static quint32 | chunckID () |
Return the class Chunk ID. | |
OpenGL Functions | |
![]() | |
bool | m_GeometryIsValid |
Geometry validity. | |
GLC_BoundingBox * | m_pBoundingBox |
Bounding box. | |
MaterialHash | m_MaterialHash |
Material Hash table. | |
bool | m_UseColorPerVertex |
Color per vertex usage. | |
bool | m_IsSelected |
Selection state. | |
GLC_WireData | m_WireData |
Wire Data. | |
QColor | m_WireColor |
The wire color. | |
GLfloat | m_LineWidth |
The line width. | |
GLC_Cone : OpenGL 3D Cone.
An GLC_Cone is a polygonnal geometry
Definition at line 36 of file glc_cone.h.
GLC_Cone::GLC_Cone | ( | double | dRadius, |
double | dLength, | ||
int | discretization = glc::GLC_POLYDISCRET |
||
) |
Construct an GLC_Cone.
By default, discretion is set to #GLC_POLYDISCRET
By default, Axis of Cylinder is Z Axis dRadius must be > 0 dLength must be > 0
Definition at line 29 of file glc_cone.cpp.
References createMeshAndWire(), m_Length, and m_Radius.
Referenced by clone().
GLC_Cone::GLC_Cone | ( | const GLC_Cone & | sourceCone | ) |
|
virtual |
Destructor.
Definition at line 48 of file glc_cone.cpp.
|
virtual |
Return the cone bounding box.
Reimplemented from GLC_Mesh.
Definition at line 69 of file glc_cone.cpp.
References GLC_Mesh::boundingBox(), createMeshAndWire(), and GLC_Mesh::isEmpty().
|
static |
|
virtual |
Return a copy of the Cone.
Reimplemented from GLC_Mesh.
Definition at line 63 of file glc_cone.cpp.
References GLC_Cone().
|
private |
Create the cylinder mesh and wire.
Definition at line 128 of file glc_cone.cpp.
References GLC_Mesh::addNormals(), GLC_Mesh::addTexels(), GLC_Mesh::addTrianglesStrip(), GLC_Mesh::addVertice(), GLC_Geometry::addVerticeGroup(), GLC_Mesh::finish(), GLC_Geometry::firstMaterial(), GLC_Geometry::hasMaterial(), GLC_WireData::isEmpty(), GLC_Mesh::isEmpty(), m_Discret, m_Length, m_Radius, GLC_Geometry::m_WireData, GLC_Mesh::normalVector(), glc::PI, GLC_Mesh::texelVector(), and glc::Y_AXIS().
Referenced by boundingBox(), GLC_Cone(), and glDraw().
|
inline |
Get Cone discretion.
Definition at line 75 of file glc_cone.h.
|
privatevirtual |
Virtual interface for OpenGL Geometry set up.
This Virtual function is implemented here.
Throw GLC_OpenGlException
Reimplemented from GLC_Mesh.
Definition at line 116 of file glc_cone.cpp.
References createMeshAndWire(), GLC_Mesh::glDraw(), and GLC_Mesh::isEmpty().
|
inline |
Get Lenght of the Cone.
Definition at line 67 of file glc_cone.h.
|
inline |
Get Radius of cone.
Definition at line 71 of file glc_cone.h.
void GLC_Cone::setDiscretion | ( | int | TargetDiscret | ) |
Set Discretion.
Discretion must be > 0
Definition at line 100 of file glc_cone.cpp.
References GLC_Mesh::clearMeshWireAndBoundingBox(), and m_Discret.
void GLC_Cone::setLength | ( | double | Length | ) |
Set Cone length.
Length must be > 0
Definition at line 82 of file glc_cone.cpp.
References GLC_Mesh::clearMeshWireAndBoundingBox(), and m_Length.
void GLC_Cone::setRadius | ( | double | Radius | ) |
Set Cone radius.
Radius must be > 0
Definition at line 91 of file glc_cone.cpp.
References GLC_Mesh::clearMeshWireAndBoundingBox(), and m_Radius.
|
staticprivate |
|
private |
Cone polygon discretisation.
Definition at line 138 of file glc_cone.h.
Referenced by createMeshAndWire(), and setDiscretion().
|
private |
Cone length (Z Axis direction)
Definition at line 135 of file glc_cone.h.
Referenced by createMeshAndWire(), GLC_Cone(), and setLength().
|
private |
Cone's radius.
Definition at line 132 of file glc_cone.h.
Referenced by createMeshAndWire(), GLC_Cone(), and setRadius().