# class Scene

Scene is the main keeper of a scene and scene graph in simplygon. The scene is self-contained, with materials, textures, etc. to describe a full scene.

# Properties

Property Description
Name The name of the Scene object. (Inherited from Object)

# Methods

Method Description
AddCustomField Adds a custom data array field. To be able to add a field, it must have a name that does not conflict with the existing custom fields.
AddObserver Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)
Append Appends another scene to this scene. All materials, textures etc.
CalculateExtents Calculates the axis-aligned bounding box of the whole scene. If the node tree contains no geometric data, or all data is hidden, the bounding box is not calculated, and the method returns false.
CalculateExtentsOfSelectionSet Calculate extents of all nodes in a specified selection set.
CalculateExtentsOfSelectionSetId Calculate extents of all nodes in a specified selection set. The selection set must reside in the selection set table, at the specified id.
CalculateExtentsOfSelectionSetName Calculate extents of all nodes in a specified selection set. The selection set must reside in the selection set table, named the specific name.
Clear Clears the whole scene and releases all items in the graph.
Compact Will remove mesh nodes that consist of empty geometry. The node transformation will be added to all child transformations. If the root node is a sceneMesh with empty geometry, it will be replaced with a generic sceneNode having the same transformation.
CreateAABB Returns a scene containing the axis aligned bounding boxes of either the entire scene or per mesh in the scene.
DeepCopy Deep copies the source scene, and all things assigned to it, including all nodes, geometry data, materials and tables.
EvaluateDefaultGlobalTransformation Evaluates the global transformation of the specified node at a specific time. EvaluateDefaultGlobalTransformation is used to evaluate the default transformation, regardless of node animation.
GetBoneTable The bone table of the scene.
GetCascadedSceneCount Get the number of cascaded child scenes.
GetCascadedSceneForIndex Get the scene for the given cascaded child scene index, which must be less than the number of cascaded child scenes.
GetClass Get the name of the Scene class. (Inherited from Object)
GetCustomField Adds/Removes/Gets a custom data field.
GetCustomFieldMaxDeviation Gets the custom data field 'MaxDeviation'. This is a RealArray with size 1 that is populated automatically after running the scene in a processor object, and contains the max geometric deviation produced by the reduction or remeshing. This can be used to calculate LOD switch distances.
GetCustomFieldProcessedMeshesExtents Gets the custom data field 'ProcessedMeshesExtents'. This Extents object is populated automatically after running the scene in a processor object, and contains size information about the geometry data that was processed. This should be used to calculate LOD switch distances rather than Scene::GetRadius, since using Scene::GetRadius will also include other components like cameras that should not be taken into account.
GetInf The inferior (minimum) extent of the scene.
GetMappingImage The MappingImage object for the scene.
GetMaterialChannels Get all unique material channel names for all materials used in scene.
GetMaterialChannelsWithTextureInputs Get all unique material channel names having texture inputs for all materials used in scene.
GetMaterialTable The material table of the scene.
GetNodeByGUID Gets a node defined by an id.
GetNodeFromPath Gets a node defined by a path. Please note that the path must contain names for each level to be able to find the specified node.
GetRadius The scene radius.
GetRootNode The root node of the scene.
GetSelectionSetTable The selection set table of the scene.
GetSubNodeByGUID Gets a node defined by an id from the specified node tree.
GetSup The superior (maximum) extent of the scene.
GetTextureTable The texture table of the scene.
GetTriangleCount Traverses the scene meshes in the scene and returns the total triangle count.
HasCustomField Checks if a custom field is present in the scene.
IsA Returns true if Scene is a or is a descendant of the class named as the type parameter. (Inherited from Object)
IsNull Returns true if the Scene object is invalid. (Inherited from Object)
IsSameObjectAs Returns true if the Scene object is valid. (Inherited from Object)
LoadFromFile Loads a scene from file.
NewCombinedGeometry Combines all the geometries from the scene and returns a copy.
NewCombinedGeometryFromSelectionSet Combines all the geometries from the selection set and returns a copy. If the selection set ID is -1, then all the geometries will be copied.
NewCopy Creates a new deep copy of the scene, and all things assigned to it, including all nodes, geometry data, materials and tables.
NonNull Returns true if the Scene object is valid. (Inherited from Object)
PrintInfo Prints the content/info of the Scene object to the log. (Inherited from Object)
RemoveCustomField Removes a custom data field.
RemoveObserver Removes a previously added observer object. (Inherited from Object)
RemoveSceneNodes Removes all scene nodes and clear all tables where nodes are referenced (e.g BoneTable, SelectionSetTable)
RemoveSceneNodesInSelectionSet Removes all scene nodes listed in a selection set.
RemoveSceneNodesOfType Removes all scene nodes of a specific type.
RemoveUnlinkedBones Removes all bones in the scene that are not linked by any SceneMesh geometry data. Note that the removal only removes leaf nodes in the scene.
SaveToFile Saves a scene to file.
SelectNodes Selects all nodes of the type specified in the parameter and returns the selection set ID. If no types were found, it returns -1.
StandardizeMaterials Clears all previous data in both the material and texture tables and creates new, empty materials for every material id referenced by the MaterialIds field in the scenes geometrydata objects. Useful for cleaning up scenes containing invalid material references and making them exportable when you are primarily interested in the geometry and not the materials.

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)
SafeCast SafeCast makes sure the input object is of a class that can be cast into spScene, and if this is the case, returns the object cast into spScene. (Inherited from Object)

# Properties details

# Name

The name of the Scene object. (Inherited from Object)

    # Methods details

    # AddCustomField

    Adds a custom data array field. To be able to add a field, it must have a name that does not conflict with the existing custom fields.

      # AddObserver

      Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)

        # Append

        Appends another scene to this scene. All materials, textures etc.

          # CalculateExtents

          Calculates the axis-aligned bounding box of the whole scene. If the node tree contains no geometric data, or all data is hidden, the bounding box is not calculated, and the method returns false.

            # CalculateExtentsOfSelectionSet

            Calculate extents of all nodes in a specified selection set.

              # CalculateExtentsOfSelectionSetId

              Calculate extents of all nodes in a specified selection set. The selection set must reside in the selection set table, at the specified id.

                # CalculateExtentsOfSelectionSetName

                Calculate extents of all nodes in a specified selection set. The selection set must reside in the selection set table, named the specific name.

                  # Clear

                  Clears the whole scene and releases all items in the graph.

                    # Compact

                    Will remove mesh nodes that consist of empty geometry. The node transformation will be added to all child transformations. If the root node is a sceneMesh with empty geometry, it will be replaced with a generic sceneNode having the same transformation.

                      # CreateAABB

                      Returns a scene containing the axis aligned bounding boxes of either the entire scene or per mesh in the scene.

                        # DeepCopy

                        Deep copies the source scene, and all things assigned to it, including all nodes, geometry data, materials and tables.

                          # EvaluateDefaultGlobalTransformation

                          Evaluates the global transformation of the specified node at a specific time. EvaluateDefaultGlobalTransformation is used to evaluate the default transformation, regardless of node animation.

                            # GetBoneTable

                            The bone table of the scene.

                              # GetCascadedSceneCount

                              Get the number of cascaded child scenes.

                                # GetCascadedSceneForIndex

                                Get the scene for the given cascaded child scene index, which must be less than the number of cascaded child scenes.

                                  # GetClass

                                  Get the name of the Scene class. (Inherited from Object)

                                    # GetCustomField

                                    Adds/Removes/Gets a custom data field.

                                      # GetCustomFieldMaxDeviation

                                      Gets the custom data field 'MaxDeviation'. This is a RealArray with size 1 that is populated automatically after running the scene in a processor object, and contains the max geometric deviation produced by the reduction or remeshing. This can be used to calculate LOD switch distances.

                                        # GetCustomFieldProcessedMeshesExtents

                                        Gets the custom data field 'ProcessedMeshesExtents'. This Extents object is populated automatically after running the scene in a processor object, and contains size information about the geometry data that was processed. This should be used to calculate LOD switch distances rather than Scene::GetRadius, since using Scene::GetRadius will also include other components like cameras that should not be taken into account.

                                          # GetInf

                                          The inferior (minimum) extent of the scene.

                                            # GetMappingImage

                                            The MappingImage object for the scene.

                                              # GetMaterialChannels

                                              Get all unique material channel names for all materials used in scene.

                                                # GetMaterialChannelsWithTextureInputs

                                                Get all unique material channel names having texture inputs for all materials used in scene.

                                                  # GetMaterialTable

                                                  The material table of the scene.

                                                    # GetNodeByGUID

                                                    Gets a node defined by an id.

                                                      # GetNodeFromPath

                                                      Gets a node defined by a path. Please note that the path must contain names for each level to be able to find the specified node.

                                                        # GetRadius

                                                        The scene radius.

                                                          # GetRootNode

                                                          The root node of the scene.

                                                            # GetSelectionSetTable

                                                            The selection set table of the scene.

                                                              # GetSubNodeByGUID

                                                              Gets a node defined by an id from the specified node tree.

                                                                # GetSup

                                                                The superior (maximum) extent of the scene.

                                                                  # GetTextureTable

                                                                  The texture table of the scene.

                                                                    # GetTriangleCount

                                                                    Traverses the scene meshes in the scene and returns the total triangle count.

                                                                      # HasCustomField

                                                                      Checks if a custom field is present in the scene.

                                                                        # IsA

                                                                        Returns true if Scene is a or is a descendant of the class named as the type parameter. (Inherited from Object)

                                                                          # IsNull

                                                                          Returns true if the Scene object is invalid. (Inherited from Object)

                                                                            # IsSameObjectAs

                                                                            Returns true if the Scene object is valid. (Inherited from Object)

                                                                              # LoadFromFile

                                                                              Loads a scene from file.

                                                                                # NewCombinedGeometry

                                                                                Combines all the geometries from the scene and returns a copy.

                                                                                  # NewCombinedGeometryFromSelectionSet

                                                                                  Combines all the geometries from the selection set and returns a copy. If the selection set ID is -1, then all the geometries will be copied.

                                                                                    # NewCopy

                                                                                    Creates a new deep copy of the scene, and all things assigned to it, including all nodes, geometry data, materials and tables.

                                                                                      # NonNull

                                                                                      Returns true if the Scene object is valid. (Inherited from Object)

                                                                                        # PrintInfo

                                                                                        Prints the content/info of the Scene object to the log. (Inherited from Object)

                                                                                          # RemoveCustomField

                                                                                          Removes a custom data field.

                                                                                            # RemoveObserver

                                                                                            Removes a previously added observer object. (Inherited from Object)

                                                                                              # RemoveSceneNodes

                                                                                              Removes all scene nodes and clear all tables where nodes are referenced (e.g BoneTable, SelectionSetTable)

                                                                                                # RemoveSceneNodesInSelectionSet

                                                                                                Removes all scene nodes listed in a selection set.

                                                                                                  # RemoveSceneNodesOfType

                                                                                                  Removes all scene nodes of a specific type.

                                                                                                    # RemoveUnlinkedBones

                                                                                                    Removes all bones in the scene that are not linked by any SceneMesh geometry data. Note that the removal only removes leaf nodes in the scene.

                                                                                                      # SaveToFile

                                                                                                      Saves a scene to file.

                                                                                                        # SelectNodes

                                                                                                        Selects all nodes of the type specified in the parameter and returns the selection set ID. If no types were found, it returns -1.

                                                                                                          # StandardizeMaterials

                                                                                                          Clears all previous data in both the material and texture tables and creates new, empty materials for every material id referenced by the MaterialIds field in the scenes geometrydata objects. Useful for cleaning up scenes containing invalid material references and making them exportable when you are primarily interested in the geometry and not the materials.

                                                                                                            # Static methods details

                                                                                                            # IsClassA

                                                                                                            Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)

                                                                                                              # SafeCast

                                                                                                              SafeCast makes sure the input object is of a class that can be cast into spScene, and if this is the case, returns the object cast into spScene. (Inherited from Object)