Ocean
Attribute.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_RENDERING_ATTRIBUTE_H
9 #define META_OCEAN_RENDERING_ATTRIBUTE_H
10 
12 #include "ocean/rendering/Object.h"
14 
15 namespace Ocean
16 {
17 
18 namespace Rendering
19 {
20 
21 // Forward declaration
22 class Attribute;
23 
24 /**
25  * Definition of a smart object reference holding an attribute.
26  * @see SmartObjectRef, Attribute.
27  * @ingroup rendering
28  */
30 
31 /**
32  * This class is the base class for all rendering attribute objects.
33  * Attribute objects determine the appearance of geometry nodes like e.g. a material attribute.<br>
34  * It's possible to combine several different attributes to an attribute set and assign that set to a geometry.<br>
35  * @see AttributeSet, BlendAttribute, Material, PrimitiveAttribute, Textures.
36  * @ingroup rendering
37  */
38 class OCEAN_RENDERING_EXPORT Attribute : virtual public Object
39 {
40  public:
41 
42  /**
43  * Returns the type of this object.
44  * @see Object::type().
45  */
46  ObjectType type() const override;
47 
48  protected:
49 
50  /**
51  * Creates a new attribute object.
52  */
54 
55  /**
56  * Destructs an attribute object.
57  */
58  ~Attribute() override;
59 };
60 
61 }
62 
63 }
64 
65 #endif // META_OCEAN_RENDERING_ATTRIBUTE_H
This class is the base class for all rendering attribute objects.
Definition: Attribute.h:39
~Attribute() override
Destructs an attribute object.
Attribute()
Creates a new attribute object.
ObjectType type() const override
Returns the type of this object.
This class is the base class for all rendering objects.
Definition: Object.h:54
ObjectType
Definition of different object type.
Definition: Object.h:63
This class implements a smart rendering object reference.
Definition: rendering/ObjectRef.h:34
SmartObjectRef< Attribute > AttributeRef
Definition of a smart object reference holding an attribute.
Definition: Attribute.h:22
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15