Ocean
GLESTransform.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_GLES_TRANSFORM_H
9 #define META_OCEAN_RENDERING_GLES_TRANSFORM_H
10 
13 
15 
16 namespace Ocean
17 {
18 
19 namespace Rendering
20 {
21 
22 namespace GLESceneGraph
23 {
24 
25 /**
26  * This class implements a GLESceneGraph transform object.
27  * @ingroup renderinggles
28  */
29 class OCEAN_RENDERING_GLES_EXPORT GLESTransform :
30  virtual public GLESGroup,
31  virtual public Transform
32 {
33  friend class GLESFactory;
34 
35  public:
36 
37  /**
38  * Returns the bounding box of this node.
39  * @see Node::boundingBox().
40  */
41  BoundingBox boundingBox(const bool involveLocalTransformation) const override;
42 
43  /**
44  * Returns the transformation of this node relative to the parent node.
45  * @see Transform::transformation().
46  */
48 
49  /**
50  * Returns the TransformModifier object of this transform.
51  * @see Transform::transformModifier().
52  */
54 
55  /**
56  * Sets the transformation of this node relative to the parent node.
57  * @see Transform::setTransformation().
58  */
59  void setTransformation(const HomogenousMatrix4& parent_T_transform) override;
60 
61  /**
62  * Sets the TransformModifier object for this transformation.
63  * @see Transform::setTransformModifier().
64  */
65  void setTransformModifier(SharedTransformModifier transformModifier) override;
66 
67  /**
68  * Adds this node and all child node to a traverser.
69  * @see GLESNode::addToTraverser().
70  */
71  void addToTraverser(const GLESFramebuffer& framebuffer, const SquareMatrix4& projectionMatrix, const HomogenousMatrix4& camera_T_parent, const Lights& lights, GLESTraverser& traverser) const override;
72 
73  protected:
74 
75  /**
76  * Creates a new GLESceneGraph transform node.
77  */
79 
80  /**
81  * Destructs a GLESceneGraph transform node.
82  */
83  ~GLESTransform() override;
84 
85  protected:
86 
87  /// The transformation between this object and the parent.
89 
90  /// The optional transform modifier.
92 };
93 
94 }
95 
96 }
97 
98 }
99 
100 #endif // META_OCEAN_RENDERING_GLES_TRANSFORM_H
This class implements a 3D bounding box.
Definition: BoundingBox.h:23
This class implements a class factory for all GLESceneGraph objects.
Definition: GLESFactory.h:30
This class implements a base for all GLESceneGraph framebuffers.
Definition: rendering/glescenegraph/GLESFramebuffer.h:34
This class implements a GLESceneGraph group object.
Definition: GLESGroup.h:32
This class implements a GLESceneGraph transform object.
Definition: GLESTransform.h:32
GLESTransform()
Creates a new GLESceneGraph transform node.
void setTransformModifier(SharedTransformModifier transformModifier) override
Sets the TransformModifier object for this transformation.
HomogenousMatrix4 parent_T_object_
The transformation between this object and the parent.
Definition: GLESTransform.h:88
SharedTransformModifier transformModifier() const override
Returns the TransformModifier object of this transform.
~GLESTransform() override
Destructs a GLESceneGraph transform node.
HomogenousMatrix4 transformation() const override
Returns the transformation of this node relative to the parent node.
void setTransformation(const HomogenousMatrix4 &parent_T_transform) override
Sets the transformation of this node relative to the parent node.
void addToTraverser(const GLESFramebuffer &framebuffer, const SquareMatrix4 &projectionMatrix, const HomogenousMatrix4 &camera_T_parent, const Lights &lights, GLESTraverser &traverser) const override
Adds this node and all child node to a traverser.
SharedTransformModifier transformModifier_
The optional transform modifier.
Definition: GLESTransform.h:91
BoundingBox boundingBox(const bool involveLocalTransformation) const override
Returns the bounding box of this node.
This class implements a traverser for renderables.
Definition: GLESTraverser.h:39
This class is the base class for all transform nodes.
Definition: rendering/Transform.h:43
std::shared_ptr< TransformModifier > SharedTransformModifier
Definition of a shared pointer holding a TransformModifier object.
Definition: rendering/Transform.h:89
std::vector< LightPair > Lights
Definition of a set holding light sources.
Definition: GLESLightSource.h:44
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15