Saga3D API Documentation  1.0-RC4
saga::scene Namespace Reference

All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees and billboards, ... More...

Classes

class  CGPUMeshBuffer
 Implementation of the CPU IMeshBuffer interface. More...
 
class  CMeshBuffer
 Implementation of the CPU IMeshBuffer interface. More...
 
class  IAnimatedMesh
 Interface for an animated mesh. More...
 
class  IAnimatedMeshSceneNode
 Scene node capable of displaying an animated mesh. More...
 
class  IAnimationEndCallBack
 Callback interface for catching events of ended animations. More...
 
class  IBillboardSceneNode
 A billboard scene node. More...
 
class  IBillboardTextSceneNode
 A billboard text scene node. More...
 
class  IBoneSceneNode
 Interface for bones used for skeletal animation. More...
 
class  ICameraSceneNode
 Scene Node which is a (controllable) camera. More...
 
class  ICollisionCallback
 Callback interface for catching events of collisions. More...
 
class  IMesh
 Class which holds the geometry of an object. More...
 
class  IMeshBuffer
 Struct for holding a mesh with a single material. More...
 
class  IMeshLoader
 Class which is able to load a static/animated mesh from a file. More...
 
class  IMeshSceneNode
 A scene node displaying a static mesh. More...
 
class  ISceneManager
 
class  ISceneNode
 Type for list of scene node animators. More...
 
class  ISceneNodeAnimator
 Animates a scene node. Can animate position, rotation, material, and so on. More...
 
class  ISceneNodeAnimatorCameraFPS
 Special scene node animator for FPS cameras. More...
 
class  ISceneNodeAnimatorCameraMaya
 Special scene node animator for Maya-style cameras. More...
 
class  ISceneNodeAnimatorCollisionResponse
 Special scene node animator for doing automatic collision detection and response. More...
 
class  ISceneNodeAnimatorFactory
 Interface for dynamic creation of scene node animators. More...
 
class  ISceneNodeFactory
 Interface for dynamic creation of scene nodes. More...
 
class  ISkinnedMesh
 Interface for using some special functions of Skinned meshes. More...
 
struct  S3DVertex
 standard vertex used by the Irrlicht engine. More...
 
struct  SAnimatedMesh
 Simple implementation of the IAnimatedMesh interface. More...
 
struct  SMesh
 Simple implementation of the IMesh interface. More...
 
struct  SViewFrustum
 Defines the view frustum. That's the space visible by the camera. More...
 

Typedefs

using MeshBufferID = std::uint32_t
 
using ISceneNodeList = std::vector< std::shared_ptr< ISceneNode > >
 Type for list of scene nodes. More...
 

Enumerations

enum  E_HARDWARE_MAPPING { E_HARDWARE_MAPPING::NEVER, STATIC, E_HARDWARE_MAPPING::DYNAMIC, E_HARDWARE_MAPPING::STREAM }
 
enum  E_BUFFER_TYPE { E_BUFFER_TYPE::NONE, E_BUFFER_TYPE::VERTEX, E_BUFFER_TYPE::INDEX, E_BUFFER_TYPE::VERTEX_AND_INDEX }
 
enum  E_INDEX_TYPE { E_INDEX_TYPE::UINT16, E_INDEX_TYPE::UINT32 }
 
enum  E_PIPELINE_TYPE { E_PIPELINE_TYPE::GRAPHICS, E_PIPELINE_TYPE::COMPUTE }
 
enum  E_PRIMITIVE_TYPE {
  E_PRIMITIVE_TYPE::POINTS, E_PRIMITIVE_TYPE::LINE_STRIP, E_PRIMITIVE_TYPE::LINE_LOOP, E_PRIMITIVE_TYPE::LINES,
  E_PRIMITIVE_TYPE::TRIANGLE_STRIP, E_PRIMITIVE_TYPE::TRIANGLE_FAN, E_PRIMITIVE_TYPE::TRIANGLES, E_PRIMITIVE_TYPE::QUAD_STRIP,
  E_PRIMITIVE_TYPE::QUADS, E_PRIMITIVE_TYPE::POLYGON, E_PRIMITIVE_TYPE::POINT_SPRITES
}
 Enumeration for all primitive types there are. More...
 
enum  E_SCENE_NODE_ANIMATOR_TYPE {
  E_SCENE_NODE_ANIMATOR_TYPE::FLY_CIRCLE, E_SCENE_NODE_ANIMATOR_TYPE::FLY_STRAIGHT, E_SCENE_NODE_ANIMATOR_TYPE::FOLLOW_SPLINE, E_SCENE_NODE_ANIMATOR_TYPE::ROTATION,
  E_SCENE_NODE_ANIMATOR_TYPE::TEXTURE, E_SCENE_NODE_ANIMATOR_TYPE::DELETION, E_SCENE_NODE_ANIMATOR_TYPE::COLLISION_RESPONSE, E_SCENE_NODE_ANIMATOR_TYPE::CAMERA_FPS,
  E_SCENE_NODE_ANIMATOR_TYPE::CAMERA_MAYA, E_SCENE_NODE_ANIMATOR_TYPE::COUNT, E_SCENE_NODE_ANIMATOR_TYPE::UNKNOWN
}
 An enumeration for all types of built-in scene node animators. More...
 
enum  E_SCENE_NODE_TYPE {
  E_SCENE_NODE_TYPE::CUBE, E_SCENE_NODE_TYPE::SPHERE, E_SCENE_NODE_TYPE::TEXT, E_SCENE_NODE_TYPE::BILLBOARD_TEXT,
  E_SCENE_NODE_TYPE::WATER_SURFACE, E_SCENE_NODE_TYPE::TERRAIN, E_SCENE_NODE_TYPE::SKY_BOX, E_SCENE_NODE_TYPE::SKY_DOME,
  E_SCENE_NODE_TYPE::SHADOW_VOLUME, E_SCENE_NODE_TYPE::OCTREE, E_SCENE_NODE_TYPE::MESH, E_SCENE_NODE_TYPE::LIGHT,
  E_SCENE_NODE_TYPE::EMPTY, E_SCENE_NODE_TYPE::DUMMY_TRANSFORMATION, E_SCENE_NODE_TYPE::CAMERA, E_SCENE_NODE_TYPE::BILLBOARD,
  E_SCENE_NODE_TYPE::ANIMATED_MESH, E_SCENE_NODE_TYPE::PARTICLE_SYSTEM, E_SCENE_NODE_TYPE::VOLUME_LIGHT, E_SCENE_NODE_TYPE::CAMERA_MAYA,
  E_SCENE_NODE_TYPE::CAMERA_FPS, E_SCENE_NODE_TYPE::UNKNOWN, E_SCENE_NODE_TYPE::ANY
}
 An enumeration for all types of built-in scene nodes. More...
 
enum  E_BONE_ANIMATION_MODE { E_BONE_ANIMATION_MODE::AUTOMATIC, ANIMATED, E_BONE_ANIMATION_MODE::UNANIMATED }
 Enumeration for different bone animation modes. More...
 
enum  E_BONE_SKINNING_SPACE { E_BONE_SKINNING_SPACE::LOCAL, E_BONE_SKINNING_SPACE::GLOBAL }
 
enum  E_MESH_TYPE {
  STATIC, STATIC, ANIMATED, ANIMATED,
  SKINNED
}
 

Variables

constexpr auto TRANSFORM_FRUSTUM_COUNT = 2
 
constexpr auto VIEW_FRUSTUM_PLANE_COUNT = 6
 
constexpr auto MAX_BONES = 64
 
constexpr auto MAX_BONES_PER_VERTEX = 4
 

Detailed Description

All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees and billboards, ...

Typedef Documentation

◆ ISceneNodeList

using saga::scene::ISceneNodeList = typedef std::vector<std::shared_ptr<ISceneNode> >

Type for list of scene nodes.

Definition at line 29 of file ISceneNode.h.

◆ MeshBufferID

using saga::scene::MeshBufferID = typedef std::uint32_t

Definition at line 22 of file IMeshBuffer.h.

Enumeration Type Documentation

◆ E_BONE_ANIMATION_MODE

Enumeration for different bone animation modes.

Enumerator
AUTOMATIC 

The bone is usually animated, unless it's parent is not animated.

ANIMATED 

The bone is animated by the skin, if it's parent is not animated then animation will resume from this bone onward.

UNANIMATED 

The bone is not animated by the skin.

Definition at line 16 of file IBoneSceneNode.h.

◆ E_BONE_SKINNING_SPACE

Enumerator
LOCAL 

local skinning, standard

GLOBAL 

global skinning

Definition at line 28 of file IBoneSceneNode.h.

◆ E_BUFFER_TYPE

Enumerator
NONE 

Does not change anything.

VERTEX 

Change the vertex mapping.

INDEX 

Change the index mapping.

VERTEX_AND_INDEX 

Change both vertex and index mapping to the same value.

Definition at line 28 of file EHardwareBufferFlags.h.

◆ E_HARDWARE_MAPPING

Enumerator
NEVER 

Don't store on the hardware.

STATIC 

Rarely changed, usually stored completely on the hardware.

DYNAMIC 

Sometimes changed, driver optimized placement.

STREAM 

Always changed, cache optimizing on the GPU.

Definition at line 13 of file EHardwareBufferFlags.h.

◆ E_INDEX_TYPE

Enumerator
UINT16 
UINT32 

Definition at line 9 of file EIndexType.h.

◆ E_MESH_TYPE

Enumerator
STATIC 
STATIC 

Rarely changed, usually stored completely on the hardware.

ANIMATED 
ANIMATED 

The bone is animated by the skin, if it's parent is not animated then animation will resume from this bone onward.

SKINNED 

Definition at line 15 of file IMesh.h.

◆ E_PIPELINE_TYPE

Enumerator
GRAPHICS 
COMPUTE 

Definition at line 9 of file EPipelineTypes.h.

◆ E_PRIMITIVE_TYPE

Enumeration for all primitive types there are.

Enumerator
POINTS 

All vertices are non-connected points.

LINE_STRIP 

All vertices form a single connected line.

LINE_LOOP 

Just as LINE_STRIP, but the last and the first vertex is also connected.

LINES 

Every two vertices are connected creating n/2 lines.

TRIANGLE_STRIP 

After the first two vertices each vertex defines a new triangle. Always the two last and the new one form a new triangle.

TRIANGLE_FAN 

After the first two vertices each vertex defines a new triangle. All around the common first vertex.

TRIANGLES 

Explicitly set all vertices for each triangle.

QUAD_STRIP 

After the first two vertices each further two vertices create a quad with the preceding two. Not supported by Direct3D

QUADS 

Every four vertices create a quad. Not supported by Direct3D Deprecated with newer OpenGL drivers

POLYGON 

Just as LINE_LOOP, but filled. Not supported by Direct3D Deprecated with newer OpenGL drivers

POINT_SPRITES 

The single vertices are expanded to quad billboards on the GPU.

Definition at line 14 of file EPrimitiveTypes.h.

◆ E_SCENE_NODE_ANIMATOR_TYPE

An enumeration for all types of built-in scene node animators.

Enumerator
FLY_CIRCLE 

Fly circle scene node animator.

FLY_STRAIGHT 

Fly straight scene node animator.

FOLLOW_SPLINE 

Follow spline scene node animator.

ROTATION 

Rotation scene node animator.

TEXTURE 

Texture scene node animator.

DELETION 

Deletion scene node animator.

COLLISION_RESPONSE 

Collision response scene node animator.

CAMERA_FPS 

FPS camera animator.

CAMERA_MAYA 

Maya camera animator.

COUNT 

Amount of built-in scene node animators.

UNKNOWN 

Unknown scene node animator.

Definition at line 14 of file ESceneNodeAnimatorTypes.h.

◆ E_SCENE_NODE_TYPE

An enumeration for all types of built-in scene nodes.

A scene node type is represented by a four character code such as 'cube' or 'mesh' instead of simple numbers, to avoid name clashes with external scene nodes.

Enumerator
CUBE 

simple cube scene node

SPHERE 

Sphere scene node.

TEXT 

Text Scene Node.

BILLBOARD_TEXT 

Billboard text scene node.

WATER_SURFACE 

Water Surface Scene Node.

TERRAIN 

Terrain Scene Node.

SKY_BOX 

Sky Box Scene Node.

SKY_DOME 

Sky Dome Scene Node.

SHADOW_VOLUME 

Shadow Volume Scene Node.

OCTREE 

Octree Scene Node.

MESH 

Mesh Scene Node.

LIGHT 

Light Scene Node.

EMPTY 

Empty Scene Node.

DUMMY_TRANSFORMATION 

Dummy Transformation Scene Node.

CAMERA 

Camera Scene Node.

BILLBOARD 

Billboard Scene Node.

ANIMATED_MESH 

Animated Mesh Scene Node.

PARTICLE_SYSTEM 

Particle System Scene Node.

VOLUME_LIGHT 

Volume Light Scene Node.

CAMERA_MAYA 

Maya Camera Scene Node.

Legacy, for loading version <= 1.4.x .irr files

CAMERA_FPS 

First Person Shooter Camera.

Legacy, for loading version <= 1.4.x .irr files

UNKNOWN 

Unknown scene node.

ANY 

Will match with any scene node when checking types.

Definition at line 17 of file ESceneNodeTypes.h.

Variable Documentation

◆ MAX_BONES

constexpr auto saga::scene::MAX_BONES = 64
constexpr

Definition at line 23 of file GraphicsConstants.h.

◆ MAX_BONES_PER_VERTEX

constexpr auto saga::scene::MAX_BONES_PER_VERTEX = 4
constexpr

Definition at line 24 of file GraphicsConstants.h.

◆ TRANSFORM_FRUSTUM_COUNT

constexpr auto saga::scene::TRANSFORM_FRUSTUM_COUNT = 2
constexpr

Definition at line 21 of file GraphicsConstants.h.

◆ VIEW_FRUSTUM_PLANE_COUNT

constexpr auto saga::scene::VIEW_FRUSTUM_PLANE_COUNT = 6
constexpr

Definition at line 22 of file GraphicsConstants.h.