LLBVHLoader Class Reference

#include <llbvhloader.h>

Collaboration diagram for LLBVHLoader:

Collaboration graph
[legend]
List of all members.

Public Types

typedef char * Status

Public Member Functions

 LLBVHLoader (const char *buffer)
 ~LLBVHLoader ()
Status loadTranslationTable (const char *fileName)
Status loadBVHFile (const char *buffer, char *error_text, S32 &error_line)
void applyTranslations ()
S32 getLineNumber ()
U32 getOutputSize ()
BOOL serialize (LLDataPacker &dp)
void optimize ()
void reset ()
F32 getDuration ()
BOOL isInitialized ()
Status getStatus ()

Static Public Attributes

static char * ST_OK = "Ok"
static char * ST_EOF = "Premature end of file."
static char * ST_NO_CONSTRAINT = "Can't read constraint definition."
static char * ST_NO_FILE = "Can't open BVH file."
static char * ST_NO_HIER = "Invalid HIERARCHY header."
static char * ST_NO_JOINT = "Can't find ROOT or JOINT."
static char * ST_NO_NAME = "Can't get JOINT name."
static char * ST_NO_OFFSET = "Can't find OFFSET."
static char * ST_NO_CHANNELS = "Can't find CHANNELS."
static char * ST_NO_ROTATION = "Can't get rotation order."
static char * ST_NO_AXIS = "Can't get rotation axis."
static char * ST_NO_MOTION = "Can't find MOTION."
static char * ST_NO_FRAMES = "Can't get number of frames."
static char * ST_NO_FRAME_TIME = "Can't get frame time."
static char * ST_NO_POS = "Can't get position values."
static char * ST_NO_ROT = "Can't get rotation values."
static char * ST_NO_XLT_FILE = "Can't open translation file."
static char * ST_NO_XLT_HEADER = "Can't read translation header."
static char * ST_NO_XLT_NAME = "Can't read translation names."
static char * ST_NO_XLT_IGNORE = "Can't read translation ignore value."
static char * ST_NO_XLT_RELATIVE = "Can't read translation relative value."
static char * ST_NO_XLT_OUTNAME = "Can't read translation outname value."
static char * ST_NO_XLT_MATRIX = "Can't read translation matrix."
static char * ST_NO_XLT_MERGECHILD = "Can't get mergechild name."
static char * ST_NO_XLT_MERGEPARENT = "Can't get mergeparent name."
static char * ST_NO_XLT_PRIORITY = "Can't get priority value."
static char * ST_NO_XLT_LOOP = "Can't get loop value."
static char * ST_NO_XLT_EASEIN = "Can't get easeIn values."
static char * ST_NO_XLT_EASEOUT = "Can't get easeOut values."
static char * ST_NO_XLT_HAND = "Can't get hand morph value."
static char * ST_NO_XLT_EMOTE = "Can't read emote name."

Protected Member Functions

BOOL getLine (apr_file_t *fp)

Protected Attributes

char mLine [BVH_PARSER_LINE_SIZE]
S32 mLineNumber
S32 mNumFrames
F32 mFrameTime
JointVector mJoints
ConstraintVector mConstraints
TranslationMap mTranslations
S32 mPriority
BOOL mLoop
F32 mLoopInPoint
F32 mLoopOutPoint
F32 mEaseIn
F32 mEaseOut
S32 mHand
std::string mEmoteName
BOOL mInitialized
Status mStatus
F32 mDuration

Friends

class LLKeyframeMotion

Detailed Description

Definition at line 197 of file llbvhloader.h.


Member Typedef Documentation

typedef char* LLBVHLoader::Status

Definition at line 206 of file llbvhloader.h.


Constructor & Destructor Documentation

LLBVHLoader::LLBVHLoader ( const char *  buffer  ) 

Definition at line 126 of file llbvhloader.cpp.

References applyTranslations(), getLineNumber(), llendl, llwarns, loadBVHFile(), loadTranslationTable(), mInitialized, mStatus, optimize(), reset(), S32, ST_NO_XLT_FILE, ST_OK, and TRUE.

LLBVHLoader::~LLBVHLoader (  ) 

Definition at line 161 of file llbvhloader.cpp.

References mJoints.


Member Function Documentation

void LLBVHLoader::applyTranslations (  ) 

Definition at line 972 of file llbvhloader.cpp.

References FALSE, LLVector3::magVec(), Translation::mFrameMatrix, Translation::mIgnore, mJoints, Translation::mMergeChildName, Translation::mMergeParentName, Translation::mOffsetMatrix, Translation::mOutName, mPriority, Translation::mPriorityModifier, Translation::mRelativePosition, Translation::mRelativePositionKey, Translation::mRelativeRotationKey, mTranslations, and TRUE.

Referenced by LLBVHLoader().

F32 LLBVHLoader::getDuration (  )  [inline]

Definition at line 264 of file llbvhloader.h.

References mDuration.

Referenced by LLFloaterAnimPreview::postBuild().

BOOL LLBVHLoader::getLine ( apr_file_t *  fp  )  [protected]

Definition at line 1262 of file llbvhloader.cpp.

References BVH_PARSER_LINE_SIZE, FALSE, mLine, mLineNumber, and TRUE.

Referenced by loadTranslationTable().

S32 LLBVHLoader::getLineNumber (  )  [inline]

Definition at line 251 of file llbvhloader.h.

References mLineNumber.

Referenced by LLBVHLoader().

U32 LLBVHLoader::getOutputSize (  ) 

Definition at line 1278 of file llbvhloader.cpp.

References LLDataPackerBinaryBuffer::getCurrentSize(), and serialize().

Referenced by LLFloaterAnimPreview::postBuild().

Status LLBVHLoader::getStatus (  )  [inline]

Definition at line 268 of file llbvhloader.h.

References mStatus.

Referenced by LLFloaterAnimPreview::postBuild().

BOOL LLBVHLoader::isInitialized (  )  [inline]

Definition at line 266 of file llbvhloader.h.

References mInitialized.

Referenced by LLFloaterAnimPreview::postBuild().

LLBVHLoader::Status LLBVHLoader::loadBVHFile ( const char *  buffer,
char *  error_text,
S32 error_line 
)

Definition at line 631 of file llbvhloader.cpp.

References depth, find_next_whitespace(), i, j, mDuration, mFrameTime, mJoints, mLineNumber, mLoop, mLoopOutPoint, mNumFrames, Joint::mOrder, Key::mPos, Key::mRot, p, S32, ST_EOF, ST_NO_AXIS, ST_NO_CHANNELS, ST_NO_FRAME_TIME, ST_NO_FRAMES, ST_NO_HIER, ST_NO_JOINT, ST_NO_MOTION, ST_NO_NAME, ST_NO_OFFSET, ST_NO_POS, ST_NO_ROT, ST_NO_ROTATION, ST_OK, and TRUE.

Referenced by LLBVHLoader().

LLBVHLoader::Status LLBVHLoader::loadTranslationTable ( const char *  fileName  ) 

Definition at line 169 of file llbvhloader.cpp.

References LLStringBase< char >::compareInsensitive(), CONSTRAINT_TYPE_PLANE, CONSTRAINT_TYPE_POINT, FALSE, gDirUtilp, LLDir::getExpandedFilename(), getLine(), LLVector3::isExactlyZero(), ll_apr_file_open(), LL_APR_R, LL_MAX_PATH, LL_PATH_APP_SETTINGS, llendl, llinfos, Constraint::mChainLength, mConstraints, Constraint::mConstraintType, mDuration, mEaseIn, Constraint::mEaseInStart, Constraint::mEaseInStop, mEaseOut, Constraint::mEaseOutStart, Constraint::mEaseOutStop, mEmoteName, Translation::mFrameMatrix, mHand, Translation::mIgnore, mLine, mLineNumber, mLoop, mLoopInPoint, mLoopOutPoint, LLMatrix3::mMatrix, Translation::mMergeChildName, Translation::mMergeParentName, Translation::mOffsetMatrix, Translation::mOutName, mPriority, Translation::mPriorityModifier, Translation::mRelativePosition, Translation::mRelativePositionKey, Translation::mRelativeRotationKey, Constraint::mSourceJointName, Constraint::mSourceOffset, Constraint::mTargetDir, Constraint::mTargetJointName, Constraint::mTargetOffset, mTranslations, LLVector3::mV, LLVector3::normVec(), NULL, S32, LLVector3::setVec(), ST_EOF, ST_NO_CONSTRAINT, ST_NO_XLT_EASEIN, ST_NO_XLT_EASEOUT, ST_NO_XLT_EMOTE, ST_NO_XLT_FILE, ST_NO_XLT_HAND, ST_NO_XLT_HEADER, ST_NO_XLT_IGNORE, ST_NO_XLT_LOOP, ST_NO_XLT_MATRIX, ST_NO_XLT_MERGECHILD, ST_NO_XLT_MERGEPARENT, ST_NO_XLT_NAME, ST_NO_XLT_OUTNAME, ST_NO_XLT_PRIORITY, ST_NO_XLT_RELATIVE, ST_OK, TRUE, type, VX, VY, VZ, x, y, and z.

Referenced by LLBVHLoader().

void LLBVHLoader::optimize (  ) 

Definition at line 1081 of file llbvhloader.cpp.

References bvhStringToOrder(), dist_vec(), f, factor, FALSE, lerp(), llmax(), mayaQ(), mDuration, mEaseIn, mEaseOut, mJoints, mLoop, order, POSITION_KEYFRAME_THRESHOLD, POSITION_MOTION_THRESHOLD, ROTATION_KEYFRAME_THRESHOLD, ROTATION_MOTION_THRESHOLD, S32, TRUE, LLVector3::x_axis, and LLVector3::y_axis.

Referenced by LLBVHLoader().

void LLBVHLoader::reset (  ) 

Definition at line 1240 of file llbvhloader.cpp.

References FALSE, mDuration, mEaseIn, mEaseOut, mEmoteName, mFrameTime, mHand, mInitialized, mLineNumber, mLoop, mLoopInPoint, mLoopOutPoint, mNumFrames, and mPriority.

Referenced by LLBVHLoader().

BOOL LLBVHLoader::serialize ( LLDataPacker dp  ) 

Definition at line 1287 of file llbvhloader.cpp.

References bvhStringToOrder(), LLVector3::clamp(), f, F32_to_U16(), INCHES_TO_METERS, KEYFRAME_MOTION_SUBVERSION, KEYFRAME_MOTION_VERSION, LL_MAX_PELVIS_OFFSET, LLQuaternion::loadIdentity(), mayaQ(), mConstraints, mDuration, mEaseIn, mEaseOut, mEmoteName, Joint::mFrameMatrix, mFrameTime, mHand, mJoints, Joint::mKeys, mLoop, mLoopInPoint, mLoopOutPoint, Joint::mOffsetMatrix, Joint::mOrder, mPriority, LLVector3::mV, NULL, order, LLDataPacker::packBinaryDataFixed(), LLDataPacker::packF32(), LLDataPacker::packS32(), LLDataPacker::packString(), LLQuaternion::packToVector3(), LLDataPacker::packU16(), LLDataPacker::packU32(), LLDataPacker::packU8(), LLDataPacker::packVector3(), LLVector3::quantize16(), S32, LLVector3::setVec(), LLQuaternion::shortestArc(), TRUE, VX, VY, VZ, x, y, z, and LLVector3::z_axis.

Referenced by getOutputSize(), and LLFloaterAnimPreview::postBuild().


Friends And Related Function Documentation

friend class LLKeyframeMotion [friend]

Definition at line 199 of file llbvhloader.h.


Member Data Documentation

ConstraintVector LLBVHLoader::mConstraints [protected]

Definition at line 282 of file llbvhloader.h.

Referenced by loadTranslationTable(), and serialize().

F32 LLBVHLoader::mDuration [protected]

Definition at line 297 of file llbvhloader.h.

Referenced by getDuration(), loadBVHFile(), loadTranslationTable(), optimize(), reset(), and serialize().

F32 LLBVHLoader::mEaseIn [protected]

Definition at line 289 of file llbvhloader.h.

Referenced by loadTranslationTable(), optimize(), reset(), and serialize().

F32 LLBVHLoader::mEaseOut [protected]

Definition at line 290 of file llbvhloader.h.

Referenced by loadTranslationTable(), optimize(), reset(), and serialize().

std::string LLBVHLoader::mEmoteName [protected]

Definition at line 292 of file llbvhloader.h.

Referenced by loadTranslationTable(), reset(), and serialize().

F32 LLBVHLoader::mFrameTime [protected]

Definition at line 280 of file llbvhloader.h.

Referenced by loadBVHFile(), reset(), and serialize().

S32 LLBVHLoader::mHand [protected]

Definition at line 291 of file llbvhloader.h.

Referenced by loadTranslationTable(), reset(), and serialize().

BOOL LLBVHLoader::mInitialized [protected]

Definition at line 294 of file llbvhloader.h.

Referenced by isInitialized(), LLBVHLoader(), and reset().

JointVector LLBVHLoader::mJoints [protected]

Definition at line 281 of file llbvhloader.h.

Referenced by applyTranslations(), loadBVHFile(), optimize(), serialize(), and ~LLBVHLoader().

char LLBVHLoader::mLine[BVH_PARSER_LINE_SIZE] [protected]

Definition at line 275 of file llbvhloader.h.

Referenced by getLine(), and loadTranslationTable().

S32 LLBVHLoader::mLineNumber [protected]

Definition at line 276 of file llbvhloader.h.

Referenced by getLine(), getLineNumber(), loadBVHFile(), loadTranslationTable(), and reset().

BOOL LLBVHLoader::mLoop [protected]

Definition at line 286 of file llbvhloader.h.

Referenced by loadBVHFile(), loadTranslationTable(), optimize(), reset(), and serialize().

F32 LLBVHLoader::mLoopInPoint [protected]

Definition at line 287 of file llbvhloader.h.

Referenced by loadTranslationTable(), reset(), and serialize().

F32 LLBVHLoader::mLoopOutPoint [protected]

Definition at line 288 of file llbvhloader.h.

Referenced by loadBVHFile(), loadTranslationTable(), reset(), and serialize().

S32 LLBVHLoader::mNumFrames [protected]

Definition at line 279 of file llbvhloader.h.

Referenced by loadBVHFile(), and reset().

S32 LLBVHLoader::mPriority [protected]

Definition at line 285 of file llbvhloader.h.

Referenced by applyTranslations(), loadTranslationTable(), reset(), and serialize().

Status LLBVHLoader::mStatus [protected]

Definition at line 295 of file llbvhloader.h.

Referenced by getStatus(), and LLBVHLoader().

TranslationMap LLBVHLoader::mTranslations [protected]

Definition at line 283 of file llbvhloader.h.

Referenced by applyTranslations(), and loadTranslationTable().

char * LLBVHLoader::ST_EOF = "Premature end of file." [static]

Definition at line 208 of file llbvhloader.h.

Referenced by loadBVHFile(), and loadTranslationTable().

char * LLBVHLoader::ST_NO_AXIS = "Can't get rotation axis." [static]

Definition at line 217 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_CHANNELS = "Can't find CHANNELS." [static]

Definition at line 215 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_CONSTRAINT = "Can't read constraint definition." [static]

Definition at line 209 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_FILE = "Can't open BVH file." [static]

Definition at line 210 of file llbvhloader.h.

char * LLBVHLoader::ST_NO_FRAME_TIME = "Can't get frame time." [static]

Definition at line 220 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_FRAMES = "Can't get number of frames." [static]

Definition at line 219 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_HIER = "Invalid HIERARCHY header." [static]

Definition at line 211 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_JOINT = "Can't find ROOT or JOINT." [static]

Definition at line 212 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_MOTION = "Can't find MOTION." [static]

Definition at line 218 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_NAME = "Can't get JOINT name." [static]

Definition at line 213 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_OFFSET = "Can't find OFFSET." [static]

Definition at line 214 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_POS = "Can't get position values." [static]

Definition at line 221 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_ROT = "Can't get rotation values." [static]

Definition at line 222 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_ROTATION = "Can't get rotation order." [static]

Definition at line 216 of file llbvhloader.h.

Referenced by loadBVHFile().

char * LLBVHLoader::ST_NO_XLT_EASEIN = "Can't get easeIn values." [static]

Definition at line 234 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_EASEOUT = "Can't get easeOut values." [static]

Definition at line 235 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_EMOTE = "Can't read emote name." [static]

Definition at line 237 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_FILE = "Can't open translation file." [static]

Definition at line 223 of file llbvhloader.h.

Referenced by LLBVHLoader(), and loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_HAND = "Can't get hand morph value." [static]

Definition at line 236 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_HEADER = "Can't read translation header." [static]

Definition at line 224 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_IGNORE = "Can't read translation ignore value." [static]

Definition at line 226 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_LOOP = "Can't get loop value." [static]

Definition at line 233 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_MATRIX = "Can't read translation matrix." [static]

Definition at line 229 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_MERGECHILD = "Can't get mergechild name." [static]

Definition at line 230 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_MERGEPARENT = "Can't get mergeparent name." [static]

Definition at line 231 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_NAME = "Can't read translation names." [static]

Definition at line 225 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_OUTNAME = "Can't read translation outname value." [static]

Definition at line 228 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_PRIORITY = "Can't get priority value." [static]

Definition at line 232 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_NO_XLT_RELATIVE = "Can't read translation relative value." [static]

Definition at line 227 of file llbvhloader.h.

Referenced by loadTranslationTable().

char * LLBVHLoader::ST_OK = "Ok" [static]

Definition at line 207 of file llbvhloader.h.

Referenced by LLBVHLoader(), loadBVHFile(), and loadTranslationTable().


The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:11:12 2010 for Second Life Viewer by  doxygen 1.4.7