Ocean
scenedescription/sdx/x3d/ShaderProgram.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_SCENEDESCRIPTION_SDX_X3D_SHADER_PROGRAM_H
9 #define META_OCEAN_SCENEDESCRIPTION_SDX_X3D_SHADER_PROGRAM_H
10 
15 
16 namespace Ocean
17 {
18 
19 namespace SceneDescription
20 {
21 
22 namespace SDX
23 {
24 
25 namespace X3D
26 {
27 
28 /**
29  * This class implements a x3d shader program node.
30  * @ingroup scenedescriptionsdxx3d
31  */
32 class OCEAN_SCENEDESCRIPTION_SDX_X3D_EXPORT ShaderProgram :
33  virtual public X3DNode,
34  virtual public X3DUrlObject,
35  virtual public X3DProgrammableShaderObject
36 {
37  public:
38 
39  /**
40  * Creates a new shader program node.
41  * @param environment Node environment
42  */
43  explicit ShaderProgram(const SDXEnvironment* environment);
44 
45  protected:
46 
47  /**
48  * Specifies the node type and the fields of this node.
49  * @return Unique node specification of this node
50  */
52 
53  /**
54  * Returns the address of the most derived object.
55  * @see Node::objectAddress().
56  */
57  size_t objectAddress() const override;
58 
59  protected:
60 
61  /// Type field.
63 };
64 
65 }
66 
67 }
68 
69 }
70 
71 }
72 
73 #endif // META_OCEAN_SCENEDESCRIPTION_SDX_X3D_SHADER_PROGRAM_H
This class implements a node specification object.
Definition: scenedescription/Node.h:77
This class implements a x3d shader program node.
Definition: scenedescription/sdx/x3d/ShaderProgram.h:36
NodeSpecification specifyNode()
Specifies the node type and the fields of this node.
ShaderProgram(const SDXEnvironment *environment)
Creates a new shader program node.
SingleString type_
Type field.
Definition: scenedescription/sdx/x3d/ShaderProgram.h:62
size_t objectAddress() const override
Returns the address of the most derived object.
This class implements an abstract x3d node.
Definition: X3DNode.h:48
This class implements an abstract x3d programmable shader object.
Definition: X3DProgrammableShaderObject.h:32
This class implements an abstract x3d url object.
Definition: X3DUrlObject.h:35
This class implements a node environment container.
Definition: SDXNode.h:62
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15