VPath

Engine/source/Verve/VPath/VPath.h

More...

Public Types

enum
eMaskBits {
  InitialUpdateMask = Parent::NextFreeMask << 0
  PathUpdateMask = Parent::NextFreeMask << 1
  NodeUpdateMask = Parent::NextFreeMask << 2
  ObjectUpdateMask = Parent::NextFreeMask << 3
  NextFreeMask = Parent::NextFreeMask << 4
}
enum
ePathType {
  k_PathLinear 
  k_PathBezier 
  k_PathInvalid 
  k_PathTypeSize 
}

Private Types

Parent 

Public Friends

Public Functions

addNode(const Point3F & pPosition, const QuatF & pRotation, const F32 & pWeight, const S32 & pLocation)
addNode(VPathNode * pNode, const S32 & pLocation)
advanceObject(VPathObject * pPathObject, const F32 & pDelta)
attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode)
attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode, const VPathObject::eOrientationType & pOrientationMode)
attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode, const VPathObject::eOrientationType & pOrientationMode, void * pOrientationData)
attachObject(VPathObject * pPathObject)

Remove all objects from this set.

bool
collideBox(const Point3F & pStart, const Point3F & pEnd, RayInfo * pInfo)
deleteNode(const S32 & pNodeIndex)
detachObject(VPathObject * pPathObject)
getAdvancedBezierPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)
getAdvancedLinearPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)
getAdvancedPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)
getBezierPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward)
getBezierPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward, F32 & pPathInterp)
getBezierPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const Point3F & pReferencePosition, const F32 & pTargetDistance, const bool & pForward, const bool & pRelativeToReference, F32 & pPathInterpDelta)
getLinearPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward)
getLinearPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward, F32 & pPathInterp)
getMountTransform(S32 pIndex, const MatrixF & pInTransform, MatrixF * pTransform)
getNode(const S32 & pNodeIndex)
getNodeLength(const S32 & pNodeIndex)
getNodeWeight(const S32 & pNodeIndex)
getPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward)
getPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward)
getPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward, F32 & pPathInterp)
getRenderMountTransform(F32 pDelta, S32 pIndex, const MatrixF & pInTransform, MatrixF * pTransform)
getUpdatePriority(CameraScopeQuery * focusObject, U32 updateMask, S32 updateSkips)

This returns a value which is used to prioritize which objects need to be updated.

bool
bool
mountObject(SceneObject * obj, S32 node, const MatrixF & xfm)

ex: Mount B to A at A's node N A.mountObject( B, N )

normalizeNodeIndex(S32 & pNodeIndex)
normalizeNodeIndex(S32 & pNodeIndex, const S32 & pNodeCount)
bool

Called when the object is added to the sim.

Called when a SimObject is deleted.

Called when the object is removed from the sim.

packUpdate(NetConnection * conn, U32 mask, BitStream * stream)

Instructs this object to pack its state for transfer over the network.

Processes a move event and updates object state once every 32 milliseconds.

removeNode(const S32 & pNodeIndex)
setNodePosition(const S32 & pNodeIndex, const Point3F & pPosition)
setNodeRotation(const S32 & pNodeIndex, const QuatF & pRotation)
setNodeWeight(const S32 & pNodeIndex, const F32 & pWeight)
setPathObjectActive(SceneObject * pObject, const bool & pActive)
setPathObjectEndNode(SceneObject * pObject, const S32 & pNodeIndex)
setPathObjectForward(SceneObject * pObject, const bool & pForward)
setPathObjectInterp(SceneObject * pObject, const F32 & pTimeInterp)
setPathObjectInterp(VPathObject * pPathObject, const F32 & pTimeInterp)
setPathObjectNode(SceneObject * pObject, const S32 & pNodeIndex)

Sets the scale for the object.

Sets the Object -> World transform.

Remove an object mounting.

Instructs this object to read state data previously packed with packUpdate.

updateOrientation(VPathObject * pPathObject, const Point3F & pPathOrientation)
writeFields(Stream & stream, U32 tabStop)

Write the fields of this object in TorqueScript.

Public Static Functions

bool
setPathType(void * pObject, const char * pArray, const char * pData)

Detailed Description

Public Types

eMaskBits

Enumerator

InitialUpdateMask = Parent::NextFreeMask << 0
PathUpdateMask = Parent::NextFreeMask << 1
NodeUpdateMask = Parent::NextFreeMask << 2
ObjectUpdateMask = Parent::NextFreeMask << 3
NextFreeMask = Parent::NextFreeMask << 4
ePathType

Enumerator

k_PathLinear
k_PathBezier
k_PathInvalid
k_PathTypeSize

Private Types

typedef SceneObject Parent 

Public Friends

Public Static Attributes

Point3F gBezierAxis 
Point3F gBezierUp 
U32 gMaxNodeBits 
U32 gMaxNodeCount 
U32 gMaxNodeTransmit 
U32 gMaxObjectBits 
U32 gMaxObjectCount 
U32 gMaxObjectTransmit 
SimObjectPtr< SimSet > gServerSet 

Private Attributes

VPathNodeVector mNodeList 
VPathObjectVector mObjectList 
U32 mPathType 

Public Functions

VPath(void )

~VPath(void )

addNode(const Point3F & pPosition, const QuatF & pRotation, const F32 & pWeight, const S32 & pLocation)

addNode(VPathNode * pNode, const S32 & pLocation)

advanceObject(VPathObject * pPathObject, const F32 & pDelta)

attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode)

attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode, const VPathObject::eOrientationType & pOrientationMode)

attachObject(SceneObject * pObject, const bool & pForward, const F32 & pSpeed, const bool & pRelative, const S32 & pStartNode, const S32 & pEndNode, const VPathObject::eOrientationType & pOrientationMode, void * pOrientationData)

attachObject(VPathObject * pPathObject)

calculateBezierPath(VPathNode * pNode, VPathNode * pNextNode)

calculateLinearPath(VPathNode * pNode, VPathNode * pNextNode)

calculatePath(void )

clear(void )

Reimplemented from: SimGroup

collideBox(const Point3F & pStart, const Point3F & pEnd, RayInfo * pInfo)

Reimplemented from: SceneObject

DECLARE_CONOBJECT(VPath )

deleteNode(const S32 & pNodeIndex)

detachObject(SceneObject * pObject)

detachObject(VPathObject * pPathObject)

getAdvancedBezierPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)

getAdvancedLinearPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)

getAdvancedPathPosition(VPathObject * pPathObject, const F32 & pTargetDistance, F32 & pInterpDelta)

getAvailableMountIndex(void )

getBezierPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward)

getBezierPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward, F32 & pPathInterp)

getBezierPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const Point3F & pReferencePosition, const F32 & pTargetDistance, const bool & pForward, const bool & pRelativeToReference, F32 & pPathInterpDelta)

getLinearPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward)

getLinearPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pInterp, const bool & pForward, F32 & pPathInterp)

getMountTransform(S32 pIndex, const MatrixF & pInTransform, MatrixF * pTransform)

Reimplemented from: SceneObject

getMountVelocity(const U32 & pIndex)

getNode(const S32 & pNodeIndex)

getNodeCount(void )

getNodeLength(const S32 & pNodeIndex)

getNodeLocalPosition(const S32 & pNodeIndex)

getNodeLocalRotation(const S32 & pNodeIndex)

getNodeWeight(const S32 & pNodeIndex)

getNodeWorldPosition(const S32 & pNodeIndex)

getNodeWorldRotation(const S32 & pNodeIndex)

getPathObject(SceneObject * pObject)

getPathOrientation(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward)

getPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward)

getPathPosition(VPathNode * pSourceNode, VPathNode * pDestinationNode, const F32 & pTimeInterp, const bool & pForward, F32 & pPathInterp)

getRenderMountTransform(F32 pDelta, S32 pIndex, const MatrixF & pInTransform, MatrixF * pTransform)

Reimplemented from: SceneObject

getUpdatePriority(CameraScopeQuery * focusObject, U32 updateMask, S32 updateSkips)

Reimplemented from: NetObject

isMountIndex(const U32 & pIndex)

isObjectAttached(SceneObject * pObject)

mountObject(SceneObject * obj, S32 node, const MatrixF & xfm)

Reimplemented from: SceneObject

normalizeNodeIndex(const S32 & pNodeIndex)

normalizeNodeIndex(S32 & pNodeIndex)

normalizeNodeIndex(S32 & pNodeIndex, const S32 & pNodeCount)

onAdd(void )

Reimplemented from: SceneObject

onAttachObject(VPathObject * pPathObject)

onDeleteNotify(SimObject * object)

Reimplemented from: SceneObject

onDetachObject(VPathObject * pPathObject)

onRemove(void )

Reimplemented from: SceneObject

packUpdate(NetConnection * conn, U32 mask, BitStream * stream)

Reimplemented from: SceneObject

processTick(const Move * move)

Reimplemented from: ProcessObject

readFields(void )

removeNode(const S32 & pNodeIndex)

setNodeOrientationMode(const S32 & pNodeIndex, const VPathNode::eOrientationType & pType)

setNodeOrientationMode(const S32 & pNodeIndex, const VPathNode::eOrientationType & pType, const Point3F pPoint)

setNodePosition(const S32 & pNodeIndex, const Point3F & pPosition)

setNodeRotation(const S32 & pNodeIndex, const QuatF & pRotation)

setNodeWeight(const S32 & pNodeIndex, const F32 & pWeight)

setPathObjectActive(SceneObject * pObject, const bool & pActive)

setPathObjectEndNode(SceneObject * pObject, const S32 & pNodeIndex)

setPathObjectForward(SceneObject * pObject, const bool & pForward)

setPathObjectInterp(SceneObject * pObject, const F32 & pTimeInterp)

setPathObjectInterp(VPathObject * pPathObject, const F32 & pTimeInterp)

setPathObjectNode(SceneObject * pObject, const S32 & pNodeIndex)

setPathObjectOffset(SceneObject * pObject, const Point3F & pOffset)

setPathObjectOrientationMode(SceneObject * pObject, const VPathObject::eOrientationType & pType)

setPathObjectOrientationMode(SceneObject * pObject, const VPathObject::eOrientationType & pType, const Point3F pPoint)

setPathObjectOrientationMode(SceneObject * pObject, const VPathObject::eOrientationType & pType, SceneObject * pLookAtObject)

setPathObjectSpeed(SceneObject * pObject, const F32 & pSpeed)

setPathType(const ePathType & pType)

setScale(const VectorF & scale)

Reimplemented from: SceneObject

setTransform(const MatrixF & mat)

Reimplemented from: SceneObject

unmountObject(SceneObject * obj)

Reimplemented from: SceneObject

unpackUpdate(NetConnection * conn, BitStream * stream)

Reimplemented from: SceneObject

updateContainer(void )

updateNodeTransforms(void )

updateOrientation(VPathObject * pPathObject)

updateOrientation(VPathObject * pPathObject, const Point3F & pPathOrientation)

updatePosition(VPathObject * pPathObject)

writeFields(Stream & stream, U32 tabStop)

Reimplemented from: SimObject

Public Static Functions

createNode(void )

deleteNode(VPathNode * pNode)

getServerSet(void )

initPersistFields(void )

setPathType(void * pObject, const char * pArray, const char * pData)