Ocean
Ocean::Rendering::AttributeSet Class Reference

This class is the base class for all attribute set objects. More...

Inheritance diagram for Ocean::Rendering::AttributeSet:

Public Member Functions

virtual unsigned int numberAttributes () const
 Returns the number of registered attributes. More...
 
virtual AttributeRef attribute (const unsigned int index) const
 Returns an attribute specified by the index. More...
 
virtual AttributeRef attribute (const ObjectType attributeType) const
 Returns the attribute with a specific type. More...
 
virtual bool hasAttribute (const ObjectType attributeType) const
 Returns wehether an attribute with a specific type exists in this set. More...
 
virtual void addAttribute (const AttributeRef &attribute)
 Adds a new attribute to this attribute set. More...
 
virtual void removeAttribute (const AttributeRef &attribute)
 Removes a registered attribute from this attribute ses. More...
 
virtual bool removeAttribute (const ObjectType attributeType)
 Removes the first registered attribute having a specified attribute type. More...
 
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 Types

typedef std::set< AttributeRefAttributes
 Definition of a set holding attribute objects. More...
 

Protected Member Functions

 AttributeSet ()
 Creates a new attribute set object. More...
 
 ~AttributeSet () override
 Destructs an attribute set 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

Attributes setAttributes
 Set holding registered attributes. 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 attribute set objects.

An attribute set holds several attributes like material, texture or blend attributes.
The attributes of this set determine the appearance of a geometry node.
Each geometry node can hold at most one attribute set.

See also
Attribute, Geometry

Member Typedef Documentation

◆ Attributes

Definition of a set holding attribute objects.

Constructor & Destructor Documentation

◆ AttributeSet()

Ocean::Rendering::AttributeSet::AttributeSet ( )
protected

Creates a new attribute set object.

◆ ~AttributeSet()

Ocean::Rendering::AttributeSet::~AttributeSet ( )
overrideprotected

Destructs an attribute set object.

Member Function Documentation

◆ addAttribute()

virtual void Ocean::Rendering::AttributeSet::addAttribute ( const AttributeRef attribute)
virtual

Adds a new attribute to this attribute set.

Parameters
attributeNew attribute to add

Reimplemented in Ocean::Rendering::GlobalIllumination::GIAttributeSet, and Ocean::Rendering::GLESceneGraph::GLESAttributeSet.

◆ attribute() [1/2]

virtual AttributeRef Ocean::Rendering::AttributeSet::attribute ( const ObjectType  attributeType) const
virtual

Returns the attribute with a specific type.

Parameters
attributeTypeAttribute type to return
Returns
Requested attribute, an empty reference if the specific attribute type is not defined

◆ attribute() [2/2]

virtual AttributeRef Ocean::Rendering::AttributeSet::attribute ( const unsigned int  index) const
virtual

Returns an attribute specified by the index.

Parameters
indexIndex of the attribute to return
Returns
Requested attribute

◆ hasAttribute()

virtual bool Ocean::Rendering::AttributeSet::hasAttribute ( const ObjectType  attributeType) const
virtual

Returns wehether an attribute with a specific type exists in this set.

Parameters
attributeTypeAttribute type to check
Returns
True, if at least one attribute with the specified type exists

◆ numberAttributes()

virtual unsigned int Ocean::Rendering::AttributeSet::numberAttributes ( ) const
virtual

Returns the number of registered attributes.

Returns
Number of attributes

◆ removeAttribute() [1/2]

virtual void Ocean::Rendering::AttributeSet::removeAttribute ( const AttributeRef attribute)
virtual

Removes a registered attribute from this attribute ses.

Parameters
attributeAttribute to remove

Reimplemented in Ocean::Rendering::GlobalIllumination::GIAttributeSet, and Ocean::Rendering::GLESceneGraph::GLESAttributeSet.

◆ removeAttribute() [2/2]

virtual bool Ocean::Rendering::AttributeSet::removeAttribute ( const ObjectType  attributeType)
virtual

Removes the first registered attribute having a specified attribute type.

Parameters
attributeTypeType of the attribute to be removed
Returns
True, if an attribute existed and has been removed

◆ type()

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

Returns the type of this object.

See also
Object::type().

Reimplemented from Ocean::Rendering::Object.

Field Documentation

◆ setAttributes

Attributes Ocean::Rendering::AttributeSet::setAttributes
protected

Set holding registered attributes.


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