Ocean
GICone.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_GI_CONE_H
9 #define META_OCEAN_RENDERING_GI_CONE_H
10 
14 
15 #include "ocean/rendering/Cone.h"
16 
17 namespace Ocean
18 {
19 
20 namespace Rendering
21 {
22 
23 namespace GlobalIllumination
24 {
25 
26 /**
27  * This class implements a cone object.
28  * @ingroup renderinggi
29  */
30 class OCEAN_RENDERING_GI_EXPORT GICone :
31  virtual public GIShape,
32  virtual protected GITriangles,
33  virtual public Cone
34 {
35  friend class GIFactory;
36 
37  public:
38 
39  /**
40  * Returns the radius of this cone.
41  * @see Cone::radius().
42  */
43  Scalar radius() const override;
44 
45  /**
46  * Returns the height of this cone.
47  * @see Cone::height().
48  */
49  Scalar height() const override;
50 
51  /**
52  * Sets the radius of this cone.
53  * @see Cone::setRadius().
54  */
55  bool setRadius(const Scalar radius) override;
56 
57  /**
58  * Sets the height of this cone.
59  * @see Cone::setHeight().
60  */
61  bool setHeight(const Scalar height) override;
62 
63  /**
64  * Returns the bounding box of this renderable object.
65  * @see GIRenderable boundingBox().
66  */
67  BoundingBox boundingBox() const override;
68 
69  /**
70  * Returns the bounding sphere of this renderable object.
71  * @see GIRenderable::boundingSphere().
72  */
73  BoundingSphere boundingSphere() const override;
74 
75  /**
76  * Returns the type of this object.
77  * @see Object::type().
78  */
79  ObjectType type() const override;
80 
81  protected:
82 
83  /**
84  * Creates a new cone object.
85  */
86  GICone();
87 
88  /**
89  * Destructs a cone object.
90  */
91  ~GICone() override;
92 
93  /**
94  * Rebuilds the primitive vertex, normals and face sets.
95  */
97 
98  protected:
99 
100  /// Holds the height of this cone.
102 
103  /// Holds the radius of this cone.
105 };
106 
107 }
108 
109 }
110 
111 }
112 
113 #endif // META_OCEAN_RENDERING_GI_CONE_H
This class implements a 3D bounding box.
Definition: BoundingBox.h:23
This class implements a bounding sphere.
Definition: BoundingSphere.h:23
This class is the base class for all cones.
Definition: rendering/Cone.h:38
This class implements a cone object.
Definition: GICone.h:34
bool setRadius(const Scalar radius) override
Sets the radius of this cone.
ObjectType type() const override
Returns the type of this object.
BoundingSphere boundingSphere() const override
Returns the bounding sphere of this renderable object.
~GICone() override
Destructs a cone object.
bool setHeight(const Scalar height) override
Sets the height of this cone.
Scalar coneHeight
Holds the height of this cone.
Definition: GICone.h:101
Scalar radius() const override
Returns the radius of this cone.
void rebuildPrimitives()
Rebuilds the primitive vertex, normals and face sets.
Scalar height() const override
Returns the height of this cone.
BoundingBox boundingBox() const override
Returns the bounding box of this renderable object.
Scalar coneRadius
Holds the radius of this cone.
Definition: GICone.h:104
This class implements a class factory for all Global Illumination objects.
Definition: GIFactory.h:30
This class is the base class for all Global Illumination shape objects.
Definition: GIShape.h:34
This class implements triangles.
Definition: GITriangles.h:32
ObjectType
Definition of different object type.
Definition: Object.h:63
float Scalar
Definition of a scalar type.
Definition: Math.h:128
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15