Ocean
GIFactory.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_FACTORY_H
9 #define META_OCEAN_RENDERING_GI_FACTORY_H
10 
12 
14 
15 namespace Ocean
16 {
17 
18 namespace Rendering
19 {
20 
21 namespace GlobalIllumination
22 {
23 
24 /**
25  * This class implements a class factory for all Global Illumination objects.<br>
26  * Only the factory is able to create any Global Illumination object.
27  * @ingroup renderinggi
28  */
29 class OCEAN_RENDERING_GI_EXPORT GIFactory : public Factory
30 {
31  public:
32 
33  /**
34  * Creates a new attribute set object.
35  * @see Factory::createAbsoluteTransform().
36  */
38 
39  /**
40  * Creates a new attribute set object.
41  * @see Factory::createAttributeSet().
42  */
43  ObjectRef createAttributeSet() const override;
44 
45  /**
46  * Creates a new billboard object.
47  * @see Factory::createBillboard().
48  */
49  NodeRef createBillboard() const override;
50 
51  /**
52  * Creates a new blend attribute object.
53  * @return New blend attribute
54  */
55  ObjectRef createBlendAttribute() const override;
56 
57  /**
58  * Creates a new box object.
59  * @see Factory::createBox().
60  */
61  ObjectRef createBox() const override;
62 
63  /**
64  * Creates a new cone object.
65  * @see Factory::createCone().
66  */
67  ObjectRef createCone() const override;
68 
69  /**
70  * Creates a new cylinder object.
71  * @see Factory::createCylinder().
72  */
73  ObjectRef createCylinder() const override;
74 
75  /**
76  * Creates a new depth attribute object.
77  * @see Factory::createDepthAttribute().
78  */
79  ObjectRef createDepthAttribute() const override;
80 
81  /**
82  * Creates a new directional light object.
83  * @see Factory::createDirectionalLight().
84  */
86 
87  /**
88  * Creates a new geometry object.
89  * @see Factory::createGeometry().
90  */
91  NodeRef createGeometry() const override;
92 
93  /**
94  * Creates a new group object.
95  * @see Factory::createGroup().
96  */
97  NodeRef createGroup() const override;
98 
99  /**
100  * Creates a new LOD object.
101  * @see Factory::createLOD().
102  */
103  NodeRef createLOD() const override;
104 
105  /**
106  * Creates a new material object.
107  * @see Factory::createMaterial().
108  */
109  ObjectRef createMaterial() const override;
110 
111  /**
112  * Creates a new parallel view object.
113  * @see Factory::createParallelView().
114  */
115  ObjectRef createParallelView() const override;
116 
117  /**
118  * Creates a new perspective view object.
119  * @see Factory::createPerspectiveView().
120  */
122 
123  /**
124  * Creates a new phantom attribute object.
125  * @see Factory::createPhantomAttribute().
126  */
128 
129  /**
130  * Creates a new point light object.
131  * @see Factory::createPointLight().
132  */
133  ObjectRef createPointLight() const override;
134 
135  /**
136  * Creates a new points object.
137  * @see Factory::createPoints().
138  */
139  ObjectRef createPoints() const override;
140 
141  /**
142  * Creates a new point light object.
143  * @see Factory::createPrimitiveAttribute().
144  */
146 
147  /**
148  * Creates a new quads object.
149  * @see Factory::createQuads().
150  */
151  ObjectRef createQuads() const override;
152 
153  /**
154  * Creates a new quad strips object.
155  * @see Factory::createQuadStrips().
156  */
157  ObjectRef createQuadStrips() const override;
158 
159  /**
160  * Creates a new scene object.
161  * @see Factory::createScene().
162  */
163  NodeRef createScene() const override;
164 
165  /**
166  * Creates a new shader program cg object.
167  * @see Factory::createShaderProgram().
168  */
169  ObjectRef createShaderProgram() const override;
170 
171  /**
172  * Creates a new sky background object.
173  * @see Factory::createSkyBackground().
174  */
175  NodeRef createSkyBackground() const override;
176 
177  /**
178  * Creates a new sphere object.
179  * @see Factory::createSphare().
180  */
181  ObjectRef createSphere() const override;
182 
183  /**
184  * Creates a new switch object.
185  * @see Factory::createSwitch().
186  */
187  NodeRef createSwitch() const override;
188 
189  /**
190  * Creates a new spot light object.
191  * @see Factroy::createSpotLight().
192  */
193  ObjectRef createSpotLight() const override;
194 
195  /**
196  * Creates a new stereo view object.
197  * @see Factory::createStereoView().
198  */
199  ObjectRef createStereoView() const override;
200 
201  /**
202  * Creates a new texture object.
203  * @see Factory::createMediaTexture2D().
204  */
205  ObjectRef createMediaTexture2D() const override;
206 
207  /**
208  * Creates a new texture attribute object.
209  * @see Factory::createTextures().
210  */
211  ObjectRef createTextures() const override;
212 
213  /**
214  * Creates a new transform object.
215  * @see Factory::createTransform().
216  */
217  NodeRef createTransform() const override;
218 
219  /**
220  * Creates a new triangle fans object.
221  * @see Factory::createTriangleFans().
222  */
223  ObjectRef createTriangleFans() const override;
224 
225  /**
226  * Creates a new triangles object.
227  * @see Factory::createTriangles().
228  */
229  ObjectRef createTriangles() const override;
230 
231  /**
232  * Creates a new triangle strips object.
233  * @see Factory::createTriangleStrips().
234  */
235  ObjectRef createTriangleStrips() const override;
236 
237  /**
238  * Creates a new undistorted background object.
239  * @see Factory::createUndistortedBackground().
240  */
242 
243  /**
244  * Creates a new vertex set object.
245  * @see Factory::createVertexSet().
246  */
247  ObjectRef createVertexSet() const override;
248 };
249 
250 }
251 
252 }
253 
254 }
255 
256 #endif // META_OCEAN_RENDERING_GI_FACTORY_H
This class implements a node and object factory.
Definition: rendering/Factory.h:30
This class implements a class factory for all Global Illumination objects.
Definition: GIFactory.h:30
ObjectRef createTriangleStrips() const override
Creates a new triangle strips object.
ObjectRef createDirectionalLight() const override
Creates a new directional light object.
ObjectRef createTextures() const override
Creates a new texture attribute object.
ObjectRef createPoints() const override
Creates a new points object.
NodeRef createSkyBackground() const override
Creates a new sky background object.
ObjectRef createParallelView() const override
Creates a new parallel view object.
NodeRef createScene() const override
Creates a new scene object.
ObjectRef createVertexSet() const override
Creates a new vertex set object.
ObjectRef createCone() const override
Creates a new cone object.
ObjectRef createQuadStrips() const override
Creates a new quad strips object.
ObjectRef createBlendAttribute() const override
Creates a new blend attribute object.
ObjectRef createCylinder() const override
Creates a new cylinder object.
ObjectRef createPhantomAttribute() const override
Creates a new phantom attribute object.
ObjectRef createQuads() const override
Creates a new quads object.
ObjectRef createPerspectiveView() const override
Creates a new perspective view object.
ObjectRef createSpotLight() const override
Creates a new spot light object.
ObjectRef createDepthAttribute() const override
Creates a new depth attribute object.
ObjectRef createAttributeSet() const override
Creates a new attribute set object.
ObjectRef createTriangleFans() const override
Creates a new triangle fans object.
ObjectRef createSphere() const override
Creates a new sphere object.
NodeRef createBillboard() const override
Creates a new billboard object.
ObjectRef createMediaTexture2D() const override
Creates a new texture object.
NodeRef createSwitch() const override
Creates a new switch object.
NodeRef createGroup() const override
Creates a new group object.
ObjectRef createStereoView() const override
Creates a new stereo view object.
ObjectRef createTriangles() const override
Creates a new triangles object.
NodeRef createUndistortedBackground() const override
Creates a new undistorted background object.
ObjectRef createAbsoluteTransform() const override
Creates a new attribute set object.
ObjectRef createPointLight() const override
Creates a new point light object.
ObjectRef createShaderProgram() const override
Creates a new shader program cg object.
NodeRef createGeometry() const override
Creates a new geometry object.
ObjectRef createPrimitiveAttribute() const override
Creates a new point light object.
ObjectRef createMaterial() const override
Creates a new material object.
ObjectRef createBox() const override
Creates a new box object.
NodeRef createTransform() const override
Creates a new transform object.
NodeRef createLOD() const override
Creates a new LOD object.
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15