Ocean
X3DGroupingNode.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_X3D_GROUPING_NODE_H
9 #define META_OCEAN_SCENEDESCRIPTION_SDX_X3D_X3D_GROUPING_NODE_H
10 
14 
15 namespace Ocean
16 {
17 
18 namespace SceneDescription
19 {
20 
21 namespace SDX
22 {
23 
24 namespace X3D
25 {
26 
27 /**
28  * This class implements an abstract x3d grouping node.
29  * @ingroup scenedescriptionsdxx3d
30  */
31 class OCEAN_SCENEDESCRIPTION_SDX_X3D_EXPORT X3DGroupingNode :
32  virtual public X3DChildNode,
33  virtual public X3DBoundedObject
34 {
35  protected:
36 
37  /**
38  * Creates an abstract x3d grouping node.
39  * @param environment Node environment
40  */
41  explicit X3DGroupingNode(const SDXEnvironment* environment);
42 
43  /**
44  * Destructs a grouping node.
45  */
46  ~X3DGroupingNode() override;
47 
48  /**
49  * Registers the fields of this node.
50  * @param specification Node specification receiving the field informations
51  */
52  void registerFields(NodeSpecification& specification);
53 
54  /**
55  * Event function to inform the node that it has been initialized and can apply all internal values to corresponding rendering objects.
56  * @see SDXNode::onInitialize().
57  */
58  void onInitialize(const Rendering::SceneRef& scene, const Timestamp timestamp) override;
59 
60  /**
61  * Explicit changing event function for node fields.
62  * @see X3DNode::onFieldChanging().
63  */
64  bool onFieldChanging(const std::string& fieldName, const Field& field) override;
65 
66  protected:
67 
68  /// AddChild field.
70 
71  /// RemoveChildren field.
73 
74  /// Children field.
76 };
77 
78 }
79 
80 }
81 
82 }
83 
84 }
85 
86 #endif // META_OCEAN_SCENEDESCRIPTION_SDX_X3D_X3D_GROUPING_NODE_H
This class is the base class for all scene description fields.
Definition: Field.h:36
This class implements a node specification object.
Definition: scenedescription/Node.h:77
This class implements an abstract x3d bounded object.
Definition: X3DBoundedObject.h:33
This class implements an abstract x3d child node.
Definition: X3DChildNode.h:31
This class implements an abstract x3d grouping node.
Definition: X3DGroupingNode.h:34
MultiNode removeChildren_
RemoveChildren field.
Definition: X3DGroupingNode.h:72
~X3DGroupingNode() override
Destructs a grouping node.
MultiNode addChildren_
AddChild field.
Definition: X3DGroupingNode.h:69
MultiNode children_
Children field.
Definition: X3DGroupingNode.h:75
bool onFieldChanging(const std::string &fieldName, const Field &field) override
Explicit changing event function for node fields.
void onInitialize(const Rendering::SceneRef &scene, const Timestamp timestamp) override
Event function to inform the node that it has been initialized and can apply all internal values to c...
void registerFields(NodeSpecification &specification)
Registers the fields of this node.
X3DGroupingNode(const SDXEnvironment *environment)
Creates an abstract x3d grouping node.
This class implements a node environment container.
Definition: SDXNode.h:62
This class implements a timestamp.
Definition: Timestamp.h:36
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15