Ocean
Ocean::Rendering::Triangles Class Reference

This class is the base for all triangles objects. More...

Inheritance diagram for Ocean::Rendering::Triangles:

Public Member Functions

virtual TriangleFaces faces () const
 Returns the faces of this triangles object. More...
 
virtual unsigned int numberFaces () const
 Returns the number of triangle faces defined in this primitive. More...
 
virtual void setFaces (const TriangleFaces &faces)
 Sets the faces of this triangles object. More...
 
virtual void setFaces (const unsigned int numberImplicitTriangleFaces)
 Sets the faces of this triangles object. More...
 
ObjectType type () const override
 Returns the type of this object. More...
 
- Public Member Functions inherited from Ocean::Rendering::Primitive
const VertexSetRefvertexSet () const
 Returns the vertex set of this primitive object. More...
 
virtual void setVertexSet (const VertexSetRef &vertexSet)
 Sets the vertex set of this primitive object. More...
 
- Public Member Functions inherited from Ocean::Rendering::Object
ObjectId id () const
 Returns the unique object id of this object. More...
 
const std::string & name () const
 Returns the name of this object. More...
 
virtual void setName (const std::string &name)
 Sets or changes the name of this object. More...
 
virtual const std::string & engineName () const =0
 Returns the name of the owner engine. More...
 
ObjectRefs parentObjects () const
 Returns all parent objects. More...
 
ObjectRefSet parentNodes () const
 Returns all parent nodes. More...
 
virtual std::string descriptiveInformation () const
 Returns descriptive information about the object as string. More...
 

Static Public Member Functions

static bool createTriangleMesh (const Vertices &vertices, const TriangleFaces &faces, Vertices &triangleVertices, Normals &triangleNormals, TriangleFaces &triangleFaces, const bool skipIrregularTriangles=true)
 Creates a new set of triangles with face normals out of a given set of vertices and corresponding triangle faces. More...
 
- Static Public Member Functions inherited from Ocean::Rendering::Object
static std::string translateObjectType (const ObjectType objectType)
 Translates an object type to a readable string. More...
 

Protected Member Functions

 Triangles ()
 Creates a new triangles object. More...
 
 ~Triangles () override
 Destructs a triangles object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::IndependentPrimitive
 IndependentPrimitive ()
 Creates a new independent primitive object. More...
 
 ~IndependentPrimitive () override
 Destructs an independent primitive object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::Primitive
 Primitive ()
 Creates a new primitive object. More...
 
 ~Primitive () override
 Destructs a primitive object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::Renderable
 Renderable ()
 Creates a new renderable object. More...
 
 ~Renderable () override
 Destructs a renderable object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::Object
 Object ()
 Creates a new object. More...
 
 Object (const Object &object)=delete
 Disabled copy constructor. More...
 
virtual ~Object ()
 Destructs an object. More...
 
Engineengine () const
 Returns the render engine which is owner of this object. More...
 
void registerParent (const ObjectId parentId)
 Registers a parent node for this (child) node. More...
 
void unregisterParent (const ObjectId parentId)
 Unregisters a parent node for this (child) node. More...
 
void registerThisObjectAsParent (const ObjectRef &child)
 Registers this object at a child as parent object. More...
 
void unregisterThisObjectAsParent (const ObjectRef &child)
 Unregisters this object from a child as parent. More...
 
Objectoperator= (const Object &object)=delete
 Disabled copy operator. More...
 

Additional Inherited Members

- Public Types inherited from Ocean::Rendering::Object
enum  ObjectType {
  TYPE_UNKNOWN , TYPE_ABSOLUTE_TRANSFORM , TYPE_ATTRIBUTE , TYPE_ATTRIBUTE_SET ,
  TYPE_BACKGROUND , TYPE_BILLBOARD , TYPE_BITMAP_FRAMEBUFFER , TYPE_BLEND_ATTRIBUTE ,
  TYPE_BOX , TYPE_CONE , TYPE_CYLINDER , TYPE_DEPTH_ATTRIBUTE ,
  TYPE_DIRECTIONAL_LIGHT , TYPE_FRAMEBUFFER , TYPE_FRAME_TEXTURE_2D , TYPE_GEOMETRY ,
  TYPE_GROUP , TYPE_INDEPENDENT_PRIMITIVE , TYPE_LIGHT_SOURCE , TYPE_LINES ,
  TYPE_LINE_STRIPS , TYPE_LOD , TYPE_MATERIAL , TYPE_NODE ,
  TYPE_OBJECT , TYPE_PARALLEL_VIEW , TYPE_PERSPECTIVE_VIEW , TYPE_PHANTOM_ATTRIBUTE ,
  TYPE_POINT_LIGHT , TYPE_POINTS , TYPE_PRIMITIVE , TYPE_PRIMITIVE_ATTRIBUTE ,
  TYPE_QUAD_STRIPS , TYPE_QUADS , TYPE_RENDERABLE , TYPE_SCENE ,
  TYPE_SHADER_PROGRAM , TYPE_SHAPE , TYPE_SKY_BACKGROUND , TYPE_SPHERE ,
  TYPE_SPOT_LIGHT , TYPE_STEREO_ATTRIBUTE , TYPE_STEREO_VIEW , TYPE_STRIP_PRIMITIVE ,
  TYPE_SWITCH , TYPE_TEXT , TYPE_TEXTURE , TYPE_TEXTURE_2D ,
  TYPE_MEDIA_TEXTURE_2D , TYPE_TEXTURE_FRAMEBUFFER , TYPE_TEXTURES , TYPE_TRANSFORM ,
  TYPE_TRIANGLE_FANS , TYPE_TRIANGLES , TYPE_TRIANGLE_STRIPS , TYPE_UNDISTORTED_BACKGROUND ,
  TYPE_VERTEX_SET , TYPE_VIEW , TYPE_WINDOW_FRAMEBUFFER
}
 Definition of different object type. More...
 
typedef std::unordered_map< ObjectId, unsigned int > ObjectIdMap
 Definition of a map holding object ids to reference counters. More...
 
- Protected Attributes inherited from Ocean::Rendering::Primitive
VertexSetRef primitiveVertexSet
 Vertex set object. More...
 
- Protected Attributes inherited from Ocean::Rendering::Object
Lock objectLock
 Lock for the object. More...
 

Detailed Description

This class is the base for all triangles objects.

A triangles object defines a mesh using a vertex set and triangle faces.
The mesh is composed by several independent triangles.
The vertices of all triangles are given by the vertex set, the mesh topology is given by triangle faces.
Each triangle can hold a normal, a texture coordinate or/and a color value for ech triangle vertex.
Different triangles objects can use the same vertex set to share common vertices and to reduce memory usage.

See also
VertexSet, TriangleFaces

Constructor & Destructor Documentation

◆ Triangles()

Ocean::Rendering::Triangles::Triangles ( )
protected

Creates a new triangles object.

◆ ~Triangles()

Ocean::Rendering::Triangles::~Triangles ( )
overrideprotected

Destructs a triangles object.

Member Function Documentation

◆ createTriangleMesh()

static bool Ocean::Rendering::Triangles::createTriangleMesh ( const Vertices vertices,
const TriangleFaces faces,
Vertices triangleVertices,
Normals triangleNormals,
TriangleFaces triangleFaces,
const bool  skipIrregularTriangles = true 
)
static

Creates a new set of triangles with face normals out of a given set of vertices and corresponding triangle faces.

Parameters
verticesThe existing set of vertices out of which the new mesh will be created
facesThe set of existing triangles for which the new mesh will be created, corresponding to the set of existing vertices
triangleVerticesThe resulting new triangle vertices
triangleNormalsThe resulting (new) triangle normals, one normal for each resulting vertex
triangleFacesThe resulting triangle faces, corresponding to the resulting vertices
skipIrregularTrianglesTrue, to skip an irregular triangle and to proceed with the next one; False, to stop the creating immediately if an irregular triangle occurs
Returns
True, if succeeded
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

◆ faces()

virtual TriangleFaces Ocean::Rendering::Triangles::faces ( ) const
virtual

Returns the faces of this triangles object.

Returns
Triangle faces
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GITriangles, and Ocean::Rendering::GLESceneGraph::GLESTriangles.

◆ numberFaces()

virtual unsigned int Ocean::Rendering::Triangles::numberFaces ( ) const
virtual

Returns the number of triangle faces defined in this primitive.

Returns
Number of triangle faces
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GITriangles, and Ocean::Rendering::GLESceneGraph::GLESTriangles.

◆ setFaces() [1/2]

virtual void Ocean::Rendering::Triangles::setFaces ( const TriangleFaces faces)
virtual

Sets the faces of this triangles object.

Parameters
facesThe vertex indices of the individual triangles to set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GITriangles, and Ocean::Rendering::GLESceneGraph::GLESTriangles.

◆ setFaces() [2/2]

virtual void Ocean::Rendering::Triangles::setFaces ( const unsigned int  numberImplicitTriangleFaces)
virtual

Sets the faces of this triangles object.

Parameters
numberImplicitTriangleFacesThe number of triangle faces based on vertices with consecutive indices, with range [0, infinity)
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESTriangles.

◆ type()

ObjectType Ocean::Rendering::Triangles::type ( ) const
overridevirtual

Returns the type of this object.

See also
Object::type().

Reimplemented from Ocean::Rendering::IndependentPrimitive.


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