# class SceneCamera

SceneCamera is the camera node in the Simplygon scene graph. SceneCamera contains settings that specify how the camera works and it contains a number of views for that type of camera. A view is a combination of a CameraPosition and a TargetPosition. The SceneCamera can contain any number of views but every element in TargetPositions has to correspond to a tuple element in CameraPosition. TargetPositions is not needed if the camera is set to being omni directional.

# Properties

Property Description
CameraType The camera type. Perspective - A regular camera that uses the FieldOfView. Omnidirectional - An omni directional camera view all directions from its position and ignores the TargetPositions and FieldOfView. Orthographic - Orthographic cameras render the scene in a direction determined by the vector from CameraPositions to TargetPositions, it uses OrthographicCameraPixelSize and ignores the FieldOfView and UseNormalizedCoordinates.
FieldOfView The field of view (in radians) of the camera.
IsFrozen The IsFrozen flag. If set, the node will not be modified by processing modules.
IsModified If set, the node is new, copied, or modified by processing modules. This can be useful to track modifications in the scene graph.
IsVisible The IsVisible flag. If set, the node is visible.
NodeGUID The unique id for this node.
OriginalName The OriginalName parameter which can be used to specify the original name of a node, for debugging of merging purposes. This parameter is not copied or cloned, and is not used internally by Simplygon.
OrthographicCameraPixelSize Specifies/Gets the length of the side of a square pixel if the camera type is Orthographic.
PixelFieldOfView Determines the resolution by specifying the field of view per pixel (both vertically and horizontally) if the camera type is Perspective or Omnidirectional. For instance, if the camera type is Perspective and has PI/2 radians field of view (for the entire camera) and the pixel field of view is (PI/2)/512 the camera will have 512x512 pixels.
UseNormalizedCoordinates Normalized coordinates means that the coordinates are relative to the scene: the origin is in the center of the scene and 1 unit length is the distance of the scene radius. This can be used to have cameras in front of or above the scene for instance without having to know the coordinates of the scene. If set to false, then absolute coordinates will be used instead.

# Methods

Method Description
AddChild Adds a child node to this node. If the child is already a child of another node, it is removed from this node.
CalculateExtents Calculates the axis-aligned bounding box of the node and all its children. If the node tree contains no geometric data, or all data is hidden, the bounding box is not calcluated, and the method returns false.
CreateChildMesh Creates a SceneMesh node as a child node to this node.
CreateChildPlane Creates a ScenePlane node as a child node to this node.
EvaluateDefaultGlobalTransformation Evaluates the default global transformation of the node, regardless of node animation.
FindNamedChild Finds the first child that has the name.
GetCameraPositions CameraPositions is an IRealArray (with tuple size 3) where each tuple is a 3d camera position.
GetChild Get a pointer to the i:th child of this node.
GetChildCount The number of direct children of this node.
GetClass Get the name of the SceneCamera class.
GetInf The inferior (minimum) extent of the node.
GetNumberOfViews Returns the number of views.
GetParent The parent node of this node.
GetPath The path to this node in the scene. Please note that only paths where each node has a name can be used to get to the node using the path.
GetRelativeTransform The relative transformation of this node.
GetScene The scene object of the node.
GetSup The superior (maximum) extent of the node.
GetTargetPositions TargetPositions is an IRealArray (with tuple size 3) where each tuple is a 3d camera target position.
HasChild Returns true if the node has the specified child.
IsA Returns true if SceneCamera is a or is a descendant of the class named as the type parameter.
IsNull Returns true if the SceneCamera object is invalid.
NewClone Clones this node tree (this node and all the descendants of this node) and returns the cloned top node. Please note that the copy is not added to any scene, and can be added anywhere. Also note that the clone shares all data pointers with the original nodes, such as geometry data objects.
NewCopy Deep copies this node tree (this node and all the descendants of this node) and returns the copy top node. Please note that the copy is not added to any scene, and can be added anywhere.
RemoveChild Removes a child from the node.
RemoveChildren Removes all children of this node.
RemoveFromParent Removes this node from its parent.
SetCustomSphereCameraPath Creates a set of camera views placed on a custom sphere around the center of the scene.
ValidateCamera Validates the camera properties. Asserts on invalid properties.

# Static methods

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

# Properties details

# CameraType

The camera type. Perspective - A regular camera that uses the FieldOfView. Omnidirectional - An omni directional camera view all directions from its position and ignores the TargetPositions and FieldOfView. Orthographic - Orthographic cameras render the scene in a direction determined by the vector from CameraPositions to TargetPositions, it uses OrthographicCameraPixelSize and ignores the FieldOfView and UseNormalizedCoordinates.

    # FieldOfView

    The field of view (in radians) of the camera.

      # IsFrozen

      The IsFrozen flag. If set, the node will not be modified by processing modules.

        # IsModified

        If set, the node is new, copied, or modified by processing modules. This can be useful to track modifications in the scene graph.

          # IsVisible

          The IsVisible flag. If set, the node is visible.

            # NodeGUID

            The unique id for this node.

              # OriginalName

              The OriginalName parameter which can be used to specify the original name of a node, for debugging of merging purposes. This parameter is not copied or cloned, and is not used internally by Simplygon.

                # OrthographicCameraPixelSize

                Specifies/Gets the length of the side of a square pixel if the camera type is Orthographic.

                  # PixelFieldOfView

                  Determines the resolution by specifying the field of view per pixel (both vertically and horizontally) if the camera type is Perspective or Omnidirectional. For instance, if the camera type is Perspective and has PI/2 radians field of view (for the entire camera) and the pixel field of view is (PI/2)/512 the camera will have 512x512 pixels.

                    # UseNormalizedCoordinates

                    Normalized coordinates means that the coordinates are relative to the scene: the origin is in the center of the scene and 1 unit length is the distance of the scene radius. This can be used to have cameras in front of or above the scene for instance without having to know the coordinates of the scene. If set to false, then absolute coordinates will be used instead.

                      # Methods details

                      # AddChild

                      Adds a child node to this node. If the child is already a child of another node, it is removed from this node.

                        # CalculateExtents

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

                          # CreateChildMesh

                          Creates a SceneMesh node as a child node to this node.

                            # CreateChildPlane

                            Creates a ScenePlane node as a child node to this node.

                              # EvaluateDefaultGlobalTransformation

                              Evaluates the default global transformation of the node, regardless of node animation.

                                # FindNamedChild

                                Finds the first child that has the name.

                                  # GetCameraPositions

                                  CameraPositions is an IRealArray (with tuple size 3) where each tuple is a 3d camera position.

                                    # GetChild

                                    Get a pointer to the i:th child of this node.

                                      # GetChildCount

                                      The number of direct children of this node.

                                        # GetClass

                                        Get the name of the SceneCamera class.

                                          # GetInf

                                          The inferior (minimum) extent of the node.

                                            # GetNumberOfViews

                                            Returns the number of views.

                                              # GetParent

                                              The parent node of this node.

                                                # GetPath

                                                The path to this node in the scene. Please note that only paths where each node has a name can be used to get to the node using the path.

                                                  # GetRelativeTransform

                                                  The relative transformation of this node.

                                                    # GetScene

                                                    The scene object of the node.

                                                      # GetSup

                                                      The superior (maximum) extent of the node.

                                                        # GetTargetPositions

                                                        TargetPositions is an IRealArray (with tuple size 3) where each tuple is a 3d camera target position.

                                                          # HasChild

                                                          Returns true if the node has the specified child.

                                                            # IsA

                                                            Returns true if SceneCamera is a or is a descendant of the class named as the type parameter.

                                                              # IsNull

                                                              Returns true if the SceneCamera object is invalid.

                                                                # NewClone

                                                                Clones this node tree (this node and all the descendants of this node) and returns the cloned top node. Please note that the copy is not added to any scene, and can be added anywhere. Also note that the clone shares all data pointers with the original nodes, such as geometry data objects.

                                                                  # NewCopy

                                                                  Deep copies this node tree (this node and all the descendants of this node) and returns the copy top node. Please note that the copy is not added to any scene, and can be added anywhere.

                                                                    # RemoveChild

                                                                    Removes a child from the node.

                                                                      # RemoveChildren

                                                                      Removes all children of this node.

                                                                        # RemoveFromParent

                                                                        Removes this node from its parent.

                                                                          # SetCustomSphereCameraPath

                                                                          Creates a set of camera views placed on a custom sphere around the center of the scene.

                                                                            # ValidateCamera

                                                                            Validates the camera properties. Asserts on invalid properties.

                                                                              # Static methods details

                                                                              # IsClassA

                                                                              Returns true if the class is a or is a descendant of the class named as the type parameter.

                                                                                # SafeCast

                                                                                SafeCast makes sure the input object is of a class that can be cast into spSceneCamera, and if this is the case, returns the object cast into spSceneCamera.