Ocean
Loading...
Searching...
No Matches
GITransform.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_TRANSFORM_H
9#define META_OCEAN_RENDERING_GI_TRANSFORM_H
10
13
15
16namespace Ocean
17{
18
19namespace Rendering
20{
21
22namespace GlobalIllumination
23{
24
25/**
26 * This class implements a Global Illumination transform object.
27 * @ingroup renderinggi
28 */
29class OCEAN_RENDERING_GI_EXPORT GITransform :
30 virtual public GIGroup,
31 virtual public Transform
32{
33 friend class GIFactory;
34
35 public:
36
37 /**
38 * Returns the transformation of this node relative to the parent node.
39 * @see Transform::transformation().
40 */
42
43 /**
44 * Returns the TransformModifier object of this transform.
45 * @see Transform::transformModifier().
46 */
48
49 /**
50 * Sets the transformation of this node relative to the parent node.
51 * @see Transform::setTransformation().
52 */
53 void setTransformation(const HomogenousMatrix4& parent_T_transform) override;
54
55 /**
56 * Sets the TransformModifier object for this transformation.
57 * @see Transform::setTransformModifier().
58 */
59 void setTransformModifier(SharedTransformModifier transformModifier) override;
60
61 /**
62 * Returns the bounding box of this node.
63 * @see Node::boundingBox().
64 */
65 BoundingBox boundingBox(const bool involveLocalTransformation) const override;
66
67 /**
68 * Returns the bounding sphere of this node.
69 * @see Node::boundingSphere().
70 */
71 BoundingSphere boundingSphere(const bool involveLocalTransformation) const override;
72
73 /**
74 * Builds the tracing object for this node and adds it to an already existing group of tracing objects.
75 * @see GINode::buildTracing().
76 */
77 void buildTracing(TracingGroup& group, const HomogenousMatrix4& modelTransform, const LightSources& lightSources) const override;
78
79 protected:
80
81 /**
82 * Creates a new Global Illumination transform node.
83 */
85
86 /**
87 * Destructs a Global Illumination transform node.
88 */
89 ~GITransform() override;
90
91 private:
92
93 /// The transformation between this object and the parent.
95
96 /// The optional transform modifier.
98};
99
100}
101
102}
103
104}
105
106#endif // META_OCEAN_RENDERING_GI_TRANSFORM_H
This class implements a 3D bounding box.
Definition BoundingBox.h:23
This class implements a bounding sphere.
Definition BoundingSphere.h:23
This class implements a class factory for all Global Illumination objects.
Definition GIFactory.h:30
This class wraps a Global Illumination group object.
Definition GIGroup.h:32
This class implements a Global Illumination transform object.
Definition GITransform.h:32
BoundingBox boundingBox(const bool involveLocalTransformation) const override
Returns the bounding box of this node.
GITransform()
Creates a new Global Illumination transform node.
void buildTracing(TracingGroup &group, const HomogenousMatrix4 &modelTransform, const LightSources &lightSources) const override
Builds the tracing object for this node and adds it to an already existing group of tracing objects.
SharedTransformModifier transformModifier_
The optional transform modifier.
Definition GITransform.h:97
void setTransformModifier(SharedTransformModifier transformModifier) override
Sets the TransformModifier object for this transformation.
void setTransformation(const HomogenousMatrix4 &parent_T_transform) override
Sets the transformation of this node relative to the parent node.
~GITransform() override
Destructs a Global Illumination transform node.
SharedTransformModifier transformModifier() const override
Returns the TransformModifier object of this transform.
HomogenousMatrix4 parent_T_object_
The transformation between this object and the parent.
Definition GITransform.h:94
HomogenousMatrix4 transformation() const override
Returns the transformation of this node relative to the parent node.
BoundingSphere boundingSphere(const bool involveLocalTransformation) const override
Returns the bounding sphere of this node.
This class implements a group of tracing objects.
Definition TracingGroup.h:28
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 > LightSources
Definition of a vector holding light pairs.
Definition GILightSource.h:40
The namespace covering the entire Ocean framework.
Definition Accessor.h:15