Ocean
Ocean::Rendering::Primitive Class Reference

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

Inheritance diagram for Ocean::Rendering::Primitive:

Public Member Functions

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...
 
ObjectType type () const override
 Returns the type of this object. More...
 
- Public Member Functions inherited from Ocean::Rendering::Renderable
ObjectType type () const override
 Returns the type of this 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...
 

Protected Member Functions

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

Protected Attributes

VertexSetRef primitiveVertexSet
 Vertex set object. More...
 
- Protected Attributes inherited from Ocean::Rendering::Object
Lock objectLock
 Lock for the object. 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...
 
- 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...
 

Detailed Description

This class is the base class for all primitive objects.

A primitive object defines a mesh by the use of a vertex set.
Mainly two different types primitives exist: independent primitives and strip primitives.
Independent primitives defines a mesh by separated and self-contained triangles or quads.
Strip primitives defines a mesh using strips or fans to define consecutive triangles or quads.
Different primitive objects can use the same vertex set to share common vertices and to reduce memory usage.

See also
VertexSet, IndependentPrimitive, StripPrimitive

Constructor & Destructor Documentation

◆ Primitive()

Ocean::Rendering::Primitive::Primitive ( )
protected

Creates a new primitive object.

◆ ~Primitive()

Ocean::Rendering::Primitive::~Primitive ( )
overrideprotected

Destructs a primitive object.

Member Function Documentation

◆ setVertexSet()

virtual void Ocean::Rendering::Primitive::setVertexSet ( const VertexSetRef vertexSet)
virtual

Sets the vertex set of this primitive object.

Parameters
vertexSetNew vertex set object

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESPrimitive.

◆ type()

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

◆ vertexSet()

const VertexSetRef & Ocean::Rendering::Primitive::vertexSet ( ) const
inline

Returns the vertex set of this primitive object.

Returns
Vertex set object

Field Documentation

◆ primitiveVertexSet

VertexSetRef Ocean::Rendering::Primitive::primitiveVertexSet
protected

Vertex set object.


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