Ocean
Loading...
Searching...
No Matches
GLESGeometry.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_GEOMETRY_H
9#define META_OCEAN_RENDERING_GLES_GEOMETRY_H
10
13
15
16namespace Ocean
17{
18
19namespace Rendering
20{
21
22namespace GLESceneGraph
23{
24
25/**
26 * This class wraps a GLESceneGraph geometry node.
27 * @ingroup renderinggles
28 */
29class OCEAN_RENDERING_GLES_EXPORT GLESGeometry :
30 virtual public GLESNode,
31 virtual public Geometry
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 * Adds a new renderable object to this geometry.
45 * @see Geometry::addRenderable().
46 */
47 void addRenderable(const RenderableRef& renderable, const AttributeSetRef& attributes) override;
48
49 /**
50 * Removes a renderable object connected to this geometry.
51 * @see Geometry::removeRenderalbe().
52 */
53 void removeRenderable(const RenderableRef& renderable) override;
54
55 /**
56 * Adds this node and all child node to a traverser.
57 * @see GLESNode::addToTraverser().
58 */
59 void addToTraverser(const GLESFramebuffer& framebuffer, const SquareMatrix4& projectionMatrix, const HomogenousMatrix4& camera_T_object, const Lights& lights, GLESTraverser& traverser) const override;
60
61 protected:
62
63 /**
64 * Creates a new GLESceneGraph geometry object.
65 */
67
68 /**
69 * Destructs a GLESceneGraph geometry object.
70 */
71 ~GLESGeometry() override;
72};
73
74}
75
76}
77
78}
79
80#endif // META_OCEAN_RENDERING_GLES_GEOMETRY_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 wraps a GLESceneGraph geometry node.
Definition GLESGeometry.h:32
~GLESGeometry() override
Destructs a GLESceneGraph geometry object.
void addToTraverser(const GLESFramebuffer &framebuffer, const SquareMatrix4 &projectionMatrix, const HomogenousMatrix4 &camera_T_object, const Lights &lights, GLESTraverser &traverser) const override
Adds this node and all child node to a traverser.
GLESGeometry()
Creates a new GLESceneGraph geometry object.
BoundingBox boundingBox(const bool involveLocalTransformation) const override
Returns the bounding box of this node.
void removeRenderable(const RenderableRef &renderable) override
Removes a renderable object connected to this geometry.
void addRenderable(const RenderableRef &renderable, const AttributeSetRef &attributes) override
Adds a new renderable object to this geometry.
This class implements a GLESceneGraph node object.
Definition GLESNode.h:40
This class implements a traverser for renderables.
Definition GLESTraverser.h:39
This class is the base class for all rendering geometry nodes.
Definition rendering/Geometry.h:43
This class implements a smart rendering object reference.
Definition rendering/ObjectRef.h:34
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