TalanSoft Toolkits  201707
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
niScene

Detailed Description

Classes

struct  iAnimation
 Animation interface. More...
 
struct  iAnimationKeysSet
 Animation Keys Set interface. More...
 
struct  iAnimationMixer
 Animation mixer interface. More...
 
struct  iAnimationTime
 Animation time interface. More...
 
struct  iCharacter
 Character interface. More...
 
struct  iCharacterFactory
 Character Factory interface. More...
 
struct  iCharacterNode
 Character node interface. More...
 
struct  iCharacterSoftwareSkinningGeometryModifier
 
struct  sParticleData
 Particle data. More...
 
struct  sParticleSystemData
 Particle system data. More...
 
struct  iParticleSystem
 Particle System interface. More...
 
struct  iSceneTexture
 Scene texture. More...
 
struct  iSceneMaterial
 Scene Material interface. More...
 
struct  iSceneBone
 Scene bone interface. More...
 
struct  iSceneFace
 Scene face interface. More...
 
struct  iScenePatch
 Scene patch interface. More...
 
struct  iSceneMesh
 Scene mesh interface. More...
 
struct  iSceneEntity
 Scene entity interface. More...
 
struct  iSceneNote
 Scene node note interface. More...
 
struct  iSceneNode
 Scene node interface. More...
 
struct  iSceneEnumSink
 Scene enumeration sink. {DispatchWrapper}. More...
 
struct  iSceneAnimationKeys
 SceneAnimation keys interface. More...
 
struct  iSceneAnimation
 Scene animation interface. More...
 
struct  iScene
 Scene interface. More...
 
struct  iSceneFactory
 
struct  iSceneLoader
 

Typedefs

typedef tU32 tCharacterInstanceFlags
 Character write flags type. More...
 
typedef tU32 tCharacterWriteFlags
 Character write flags type. More...
 
typedef tU32 tCharacterNodeFlags
 Character node flags type. More...
 
typedef Ptr< iSceneTexture > tSceneTexturePtr
 Scene texture smart pointer. More...
 
typedef tInterfaceCVec
< iSceneTexture > 
tSceneTextureCVec
 Scene texture vector. More...
 
typedef Ptr< iSceneMaterial > tSceneMaterialPtr
 Scene material smart pointer. More...
 
typedef tInterfaceCVec
< iSceneMaterial > 
tSceneMaterialCVec
 Scene material vector. More...
 
typedef Ptr< iSceneBone > tSceneBonePtr
 Scene bone smart pointer. More...
 
typedef tInterfaceCVec
< iSceneBone > 
tSceneBoneCVec
 Scene bone vector. More...
 
typedef Ptr< iSceneFace > tSceneFacePtr
 Scene face smart pointer. More...
 
typedef tInterfaceCVec
< iSceneFace > 
tSceneFaceCVec
 Scene face vector. More...
 
typedef Ptr< iScenePatch > tScenePatchPtr
 Scene patch smart pointer. More...
 
typedef tInterfaceCVec
< iScenePatch > 
tScenePatchCVec
 Scene patch vector. More...
 
typedef tU32 tSceneMeshCopyToFVFStreamFlags
 Scene mesh copy to FVF stream flags type. More...
 
typedef Ptr< iSceneMesh > tSceneMeshPtr
 Scene mesh smart pointer. More...
 
typedef tInterfaceCVec
< iSceneMesh > 
tSceneMeshCVec
 Scene mesh vector. More...
 
typedef tU32 tSceneEntityCreateDataTableFlags
 Scene entity create data table flags type. More...
 
typedef Ptr< iSceneEntity > tSceneEntityPtr
 Scene entity smart pointer. More...
 
typedef tInterfaceCVec
< iSceneEntity > 
tSceneEntityCVec
 Scene entity vector. More...
 
typedef Ptr< iSceneNote > tSceneNotePtr
 Scene node smart pointer. More...
 
typedef tInterfaceCVec
< iSceneNote > 
tSceneNoteCVec
 Scene node vector. More...
 
typedef tU32 tSceneNodeFlags
 Scene node flags type. More...
 
typedef Ptr< iSceneNode > tSceneNodePtr
 Scene node smart pointer. More...
 
typedef tInterfaceCVec
< iSceneNode > 
tSceneNodeCVec
 Scene node vector. More...
 
typedef Ptr< iSceneAnimationKeys > tSceneAnimationKeysPtr
 Scene animation keys smart pointer. More...
 
typedef tInterfaceCVec
< iSceneAnimationKeys > 
tSceneAnimationKeysCVec
 Scene animation keys vector. More...
 
typedef Ptr< iSceneAnimation > tSceneAnimationPtr
 Scene animation smart pointer. More...
 
typedef tInterfaceCVec
< iSceneAnimation > 
tSceneAnimationCVec
 Scene animation vector. More...
 

Enumerations

enum  eAnimationKeysInterpolationType {
  eAnimationKeysInterpolationType_None,
  eAnimationKeysInterpolationType_Linear,
  eAnimationKeysInterpolationType_Hermite,
  eAnimationKeysInterpolationType_HermiteSwapped,
  eAnimationKeysInterpolationType_ForceDWORD
}
 Animation keys interpolation type. More...
 
enum  eAnimationKeysType {
  eAnimationKeysType_Unknown,
  eAnimationKeysType_Float,
  eAnimationKeysType_EulerAngle,
  eAnimationKeysType_Vec2f,
  eAnimationKeysType_Vec3f,
  eAnimationKeysType_Vec4f,
  eAnimationKeysType_Matrixf,
  eAnimationKeysType_Quatf,
  eAnimationKeysType_DecomposedMatrixf,
  eAnimationKeysType_ForceDWORD
}
 Animation keys type. More...
 
enum  eCharacterInstanceFlags {
  eCharacterInstanceFlags_Materials,
  eCharacterInstanceFlags_Animations,
  eCharacterInstanceFlags_ForceDWORD
}
 Character write flags. More...
 
enum  eCharacterWriteFlags {
  eCharacterWriteFlags_Default,
  eCharacterWriteFlags_Textures,
  eCharacterWriteFlags_VADeltaCompression,
  eCharacterWriteFlags_IADeltaCompression,
  eCharacterWriteFlags_ForceDWORD
}
 Character write flags. More...
 
enum  eCharacterNodeFlags {
  eCharacterNodeFlags_Static,
  eCharacterNodeFlags_Skin,
  eCharacterNodeFlags_NoDraw,
  eCharacterNodeFlags_NoCollision,
  eCharacterNodeFlags_Keep,
  eCharacterNodeFlags_HintSelected,
  eCharacterNodeFlags_ForceDWORD
}
 Character node flags. More...
 
enum  eParticleDomain {
  eParticleDomain_Invalid,
  eParticleDomain_Point,
  eParticleDomain_Line,
  eParticleDomain_Triangle,
  eParticleDomain_Plane,
  eParticleDomain_AABB,
  eParticleDomain_Sphere,
  eParticleDomain_Cylinder,
  eParticleDomain_Cone,
  eParticleDomain_Blob,
  eParticleDomain_Disc,
  eParticleDomain_Rect,
  eParticleDomain_Last,
  eParticleDomain_ForceDWORD
}
 Particle domain. More...
 
enum  eParticleRendering {
  eParticleRendering_None,
  eParticleRendering_Lines,
  eParticleRendering_PointSprites,
  eParticleRendering_ForceDWORD
}
 Particle rendering mode. More...
 
enum  eSceneMeshCopyToFVFStreamFlags {
  eSceneMeshCopyToFVFStreamFlags_PositionWorldSpace,
  eSceneMeshCopyToFVFStreamFlags_BoundingVolumeWorldSpace,
  eSceneMeshCopyToFVFStreamFlags_ForceDWORD
}
 Scene mesh copy to FVF stream flags. More...
 
enum  eSceneEntityCreateDataTableFlags {
  eSceneEntityCreateDataTableFlags_AnimationActions,
  eSceneEntityCreateDataTableFlags_ActionsFromNotes,
  eSceneEntityCreateDataTableFlags_SceneProperty,
  eSceneEntityCreateDataTableFlags_ForceDWORD
}
 Scene entity create data table flags. More...
 
enum  eSceneNodeFlags {
  eSceneNodeFlags_HasTransformMatrix,
  eSceneNodeFlags_IsBone,
  eSceneNodeFlags_ReversedFaces,
  eSceneNodeFlags_ForceDWORD
}
 Scene node flags. More...
 

Functions

iUnknown * New_GeometryModifier_SoftwareSkinning (const Var &avarA, const Var &avarB)
 
typedef niVertexFormat (eFVF_Position|eFVF_Tex1|eFVF_TexCooSize3(0)|eFVF_Tex2|eFVF_TexCooSize3(1)|eFVF_Tex3|eFVF_TexCooSize3(2)|eFVF_Tex4|eFVF_TexCooSize4(3)|eFVF_Tex5|eFVF_TexCooSize4(4)) tVertexParticleData
 Particle data vertex format. (position, position b, size/age, velocity, velocity B, color) More...
 
typedef niVertexFormat (eFVF_Position|eFVF_Tex1|eFVF_TexCooSize3(0)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)) tVertexParticleSimpleData
 Particle simple data vertex format. (position, size/age, velocity, color) More...
 
typedef niVertexFormat (eFVF_Position|eFVF_PointSize|eFVF_ColorA) tVertexParticlePointData
 Particle point data vertex format. More...
 
typedef niVertexFormat (eFVF_Tex1|eFVF_TexCooSize4(0)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)|eFVF_Tex4|eFVF_TexCooSize4(3)) tVertexParticleMatrixData
 Particle matrix vertex format. More...
 
typedef niVertexFormat (eFVF_Tex1|eFVF_TexCooSize4(0)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)|eFVF_Tex4|eFVF_TexCooSize4(3)|eFVF_Tex5|eFVF_TexCooSize4(5)) tVertexParticleInstanceData
 Particle instance vertex format. More...
 
iSceneFactory * GetSceneFactory ()
 

Variables

const tF32 kfParticlesEpsilon
 Particles interface default epsilon. More...
 
const tF32 kfParticlesMax
 Particles interface default maximum. More...
 

Typedef Documentation

typedef tU32 tCharacterInstanceFlags

Character write flags type.

typedef tU32 tCharacterWriteFlags

Character write flags type.

typedef tU32 tCharacterNodeFlags

Character node flags type.

See also
ni::eCharacterNodeFlags
typedef Ptr<iSceneTexture> tSceneTexturePtr

Scene texture smart pointer.

typedef tInterfaceCVec<iSceneTexture> tSceneTextureCVec

Scene texture vector.

typedef Ptr<iSceneMaterial> tSceneMaterialPtr

Scene material smart pointer.

typedef tInterfaceCVec<iSceneMaterial> tSceneMaterialCVec

Scene material vector.

typedef Ptr<iSceneBone> tSceneBonePtr

Scene bone smart pointer.

typedef tInterfaceCVec<iSceneBone> tSceneBoneCVec

Scene bone vector.

typedef Ptr<iSceneFace> tSceneFacePtr

Scene face smart pointer.

typedef tInterfaceCVec<iSceneFace> tSceneFaceCVec

Scene face vector.

typedef Ptr<iScenePatch> tScenePatchPtr

Scene patch smart pointer.

typedef tInterfaceCVec<iScenePatch> tScenePatchCVec

Scene patch vector.

typedef tU32 tSceneMeshCopyToFVFStreamFlags

Scene mesh copy to FVF stream flags type.

See also
ni::eSceneMeshCopyToFVFStreamFlags
typedef Ptr<iSceneMesh> tSceneMeshPtr

Scene mesh smart pointer.

typedef tInterfaceCVec<iSceneMesh> tSceneMeshCVec

Scene mesh vector.

typedef tU32 tSceneEntityCreateDataTableFlags

Scene entity create data table flags type.

See also
ni::eSceneEntityCreateDataTableFlags
typedef Ptr<iSceneEntity> tSceneEntityPtr

Scene entity smart pointer.

typedef tInterfaceCVec<iSceneEntity> tSceneEntityCVec

Scene entity vector.

typedef Ptr<iSceneNote> tSceneNotePtr

Scene node smart pointer.

typedef tInterfaceCVec<iSceneNote> tSceneNoteCVec

Scene node vector.

typedef tU32 tSceneNodeFlags

Scene node flags type.

See also
ni::eSceneNodeFlags
typedef Ptr<iSceneNode> tSceneNodePtr

Scene node smart pointer.

typedef tInterfaceCVec<iSceneNode> tSceneNodeCVec

Scene node vector.

typedef Ptr<iSceneAnimationKeys> tSceneAnimationKeysPtr

Scene animation keys smart pointer.

typedef tInterfaceCVec<iSceneAnimationKeys> tSceneAnimationKeysCVec

Scene animation keys vector.

typedef Ptr<iSceneAnimation> tSceneAnimationPtr

Scene animation smart pointer.

typedef tInterfaceCVec<iSceneAnimation> tSceneAnimationCVec

Scene animation vector.

Enumeration Type Documentation

enum eAnimationKeysInterpolationType

Animation keys interpolation type.

Enumerator
eAnimationKeysInterpolationType_None 

No interpolation.

eAnimationKeysInterpolationType_Linear 

Linear interpolation.

eAnimationKeysInterpolationType_Hermite 

Hermite spline interpolation.

eAnimationKeysInterpolationType_HermiteSwapped 

Hermite spline interpolation, swapping time A & B.

eAnimationKeysInterpolationType_ForceDWORD 
enum eAnimationKeysType

Animation keys type.

Enumerator
eAnimationKeysType_Unknown 

Unknown/invalid type.

eAnimationKeysType_Float 

Single float keys.

eAnimationKeysType_EulerAngle 

Euler angle keys.

eAnimationKeysType_Vec2f 

2d vector keys.

eAnimationKeysType_Vec3f 

3d vector keys.

eAnimationKeysType_Vec4f 

4d vector keys.

eAnimationKeysType_Matrixf 

Matrix keys.

eAnimationKeysType_Quatf 

Quats keys.

eAnimationKeysType_DecomposedMatrixf 

Decomposed matrix keys.

eAnimationKeysType_ForceDWORD 

To force the compiler to put the enumeration in DWORD.

enum eCharacterInstanceFlags

Character write flags.

Enumerator
eCharacterInstanceFlags_Materials 

The instance share materials.

eCharacterInstanceFlags_Animations 

The instance share animations.

eCharacterInstanceFlags_ForceDWORD 
enum eCharacterWriteFlags

Character write flags.

Enumerator
eCharacterWriteFlags_Default 

Default write flags.

eCharacterWriteFlags_Textures 

Embed textures into the character file.

eCharacterWriteFlags_VADeltaCompression 

Geometry vertex arrays delta compression (lossy if prec != 0.0).

eCharacterWriteFlags_IADeltaCompression 

Geometry index arrays delta compression.

eCharacterWriteFlags_ForceDWORD 
enum eCharacterNodeFlags

Character node flags.

Enumerator
eCharacterNodeFlags_Static 

The node is static.

Remarks
Static nodes are not influcenced by there local transform anymore and are displayed in 'world-pose' position.
eCharacterNodeFlags_Skin 

The node is a skin node.

eCharacterNodeFlags_NoDraw 

The node shouldn't be drawn.

eCharacterNodeFlags_NoCollision 

The node shouldn't have collisions.

eCharacterNodeFlags_Keep 

The node is always preserved during optimization phases.

Remarks
This is a load-time flag that isn't useful at run-time.
eCharacterNodeFlags_HintSelected 

Hint that the node is selected.

Remarks
Its up to the application to do what it wants with it, its usually used for debug rendering.
eCharacterNodeFlags_ForceDWORD 
enum eParticleDomain

Particle domain.

Enumerator
eParticleDomain_Invalid 

Invalid domain, for error checking.

eParticleDomain_Point 

Single point x, y, z This domain is a single point. Generate always returns this point. Within always returns false.

eParticleDomain_Line 

Line segment x1, y1, z1, x2, y2, z2 These are the endpoints of a line segment. Generate returns a random point on this segment. Within always returns false.

eParticleDomain_Triangle 

Triangle x0, y0, z0, x1, y1, z1, x2, y2, z2. These are the vertices of a triangle. The triangle can be used to define an arbitrary geometrical model for particles to bounce off, or generate particles on its surface (and explode them), etc.

eParticleDomain_Plane 

Arbitrarily-oriented plane. ox, oy, oz, nx, ny, nz The point o is a point on the plane. n is the normal vector of the plane. It need not be unit length. If you have a plane in a,b,c,d form remember that n = [a,b,c] and you can compute a suitable point o as o = -n*d. The normal will get normalized, so it need not already be normalized. Generate returns the point o. Within returns true if the point is in the positive half-space of the plane (in the plane or on the side that n points to).

eParticleDomain_AABB 

Axis-aligned box. x1, y1, z1, x2, y2, z2 These are the minima and maxima of an axis-aligned box. It doesn't matter which of each coordinate is min and which is max. Generate returns a random point in this box. Within returns true if the point is in the box.

eParticleDomain_Sphere 

Sphere. ox, oy, oz, radius1, radius2 = 0.0 The point o is the center of the sphere. radius1 is the outer radius of the shell and radius2 is the inner radius. Generate returns a random point in the thick shell at a distance between radius1 to radius2 from point o. If radius2 is 0, then it is the whole sphere. Within returns true if the point lies within the thick shell at a distance between radius1 to radius2 from point o.

eParticleDomain_Cylinder 

Cylinder. x1, y1, z1, x2, y2, z2, radius1, radius2 = 0.0. The two points are the endpoints of the axis of the cylinder. radius1 is the outer radius, and radius2 is the inner radius for a cylindrical shell. radius2 = 0 for a solid cylinder with no empty space in the middle. Generate returns a random point in the cylindrical shell. Within returns true if the point is within the cylindrical shell.

eParticleDomain_Cone 

Cone. x1, y1, z1, x2, y2, z2, radius1, radius2 = 0.0. The first point is the apex of the cone and the second is the other endpoint of the axis of the cone. radius1 is the radius of the base of the cone. radius2 is the radius of the base of a cone to subtract from the first cone to create a conical shell. This is similar to the cylindrical shell, which can be thought of as a large cylinder with a smaller cylinder subtracted from the middle. Both cones share the same apex and axis, which implies that the thickness of the conical shell tapers to 0 at the apex. radius2 = 0 for a solid cone with no empty space in the middle. Generate returns a random point in the conical shell. Within returns true if the point is within the conical shell.

eParticleDomain_Blob 

Gaussian blob. x, y, z, stdev. The point x, y, z is the center of a normal probability density of standard deviation stdev. The density is radially symmetrical. The blob domain allows for some very natural-looking effects because there is no sharp, artificial-looking boundary at the edge of the domain. Generate returns a point with normal probability density. Within has a probability of returning true equal to the probability density at the specified point.

eParticleDomain_Disc 

Arbitrarily-oriented disc. x, y, z, nx, ny, nz, radius1, radius2 = 0.0. The point x, y, z is the center of a disc in the plane with normal nx, ny, nz. The disc has outer radius radius1 and inner radius radius2. The normal will get normalized, so it need not already be normalized. Generate returns a point inside the disc. Within returns false.

eParticleDomain_Rect 

Rhombus-shaped planar region. ox, oy, oz, ux, uy, uz, vx, vy, vz The point o is a point on the plane. u and v are (non-parallel) basis vectors in the plane. They don't need to be normal or orthogonal. Generate returns a random point in the diamond-shaped patch whose corners are o, o+u, o+u+v, and o+v. Within returns true if the point is in the positive half-space of the plane (in the plane or on the side that the normal (u cross v) points to).

eParticleDomain_Last 
eParticleDomain_ForceDWORD 
enum eParticleRendering

Particle rendering mode.

Enumerator
eParticleRendering_None 

No rendering.

eParticleRendering_Lines 

Draw the particle system as lines.

eParticleRendering_PointSprites 

Draw the particle system as point sprites.

eParticleRendering_ForceDWORD 
enum eSceneMeshCopyToFVFStreamFlags

Scene mesh copy to FVF stream flags.

Enumerator
eSceneMeshCopyToFVFStreamFlags_PositionWorldSpace 

Transform positions by the world matrix.

eSceneMeshCopyToFVFStreamFlags_BoundingVolumeWorldSpace 

Transform positions by the world matrix before adding to the BV.

eSceneMeshCopyToFVFStreamFlags_ForceDWORD 
enum eSceneEntityCreateDataTableFlags

Scene entity create data table flags.

Enumerator
eSceneEntityCreateDataTableFlags_AnimationActions 

Write the entity's animation actions in the datatable.

eSceneEntityCreateDataTableFlags_ActionsFromNotes 

Write entity's actions from the node's notes.

eSceneEntityCreateDataTableFlags_SceneProperty 

Create a scene property (Scene object) from the scene node.

eSceneEntityCreateDataTableFlags_ForceDWORD 
enum eSceneNodeFlags

Scene node flags.

Enumerator
eSceneNodeFlags_HasTransformMatrix 
eSceneNodeFlags_IsBone 
eSceneNodeFlags_ReversedFaces 
eSceneNodeFlags_ForceDWORD 

Function Documentation

ni::iUnknown * New_GeometryModifier_SoftwareSkinning ( const Var &  avarA,
const Var &  avarB 
)
typedef ni::niVertexFormat ( eFVF_Position|eFVF_Tex1|  eFVF_TexCooSize30)|eFVF_Tex2|eFVF_TexCooSize3(1)|eFVF_Tex3|eFVF_TexCooSize3(2)|eFVF_Tex4|eFVF_TexCooSize4(3)|eFVF_Tex5|eFVF_TexCooSize4(4)

Particle data vertex format. (position, position b, size/age, velocity, velocity B, color)

typedef ni::niVertexFormat ( eFVF_Position|eFVF_Tex1|  eFVF_TexCooSize30)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)

Particle simple data vertex format. (position, size/age, velocity, color)

typedef ni::niVertexFormat ( eFVF_Position|eFVF_PointSize|  eFVF_ColorA)

Particle point data vertex format.

typedef ni::niVertexFormat ( eFVF_Tex1|  eFVF_TexCooSize40)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)|eFVF_Tex4|eFVF_TexCooSize4(3)

Particle matrix vertex format.

typedef ni::niVertexFormat ( eFVF_Tex1|  eFVF_TexCooSize40)|eFVF_Tex2|eFVF_TexCooSize4(1)|eFVF_Tex3|eFVF_TexCooSize4(2)|eFVF_Tex4|eFVF_TexCooSize4(3)|eFVF_Tex5|eFVF_TexCooSize4(5)

Particle instance vertex format.

iSceneFactory* ni::GetSceneFactory ( )

Variable Documentation

const tF32 kfParticlesEpsilon

Particles interface default epsilon.

const tF32 kfParticlesMax

Particles interface default maximum.