#include <llbvhloader.h>
Collaboration diagram for LLBVHLoader:
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 |
Definition at line 197 of file llbvhloader.h.
typedef char* LLBVHLoader::Status |
Definition at line 206 of file llbvhloader.h.
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 | ( | ) |
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] |
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().
friend class LLKeyframeMotion [friend] |
Definition at line 199 of file llbvhloader.h.
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] |
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] |
S32 LLBVHLoader::mPriority [protected] |
Definition at line 285 of file llbvhloader.h.
Referenced by applyTranslations(), loadTranslationTable(), reset(), and serialize().
Status LLBVHLoader::mStatus [protected] |
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] |
char * LLBVHLoader::ST_NO_CHANNELS = "Can't find CHANNELS." [static] |
char * LLBVHLoader::ST_NO_CONSTRAINT = "Can't read constraint definition." [static] |
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] |
char * LLBVHLoader::ST_NO_FRAMES = "Can't get number of frames." [static] |
char * LLBVHLoader::ST_NO_HIER = "Invalid HIERARCHY header." [static] |
char * LLBVHLoader::ST_NO_JOINT = "Can't find ROOT or JOINT." [static] |
char * LLBVHLoader::ST_NO_MOTION = "Can't find MOTION." [static] |
char * LLBVHLoader::ST_NO_NAME = "Can't get JOINT name." [static] |
char * LLBVHLoader::ST_NO_OFFSET = "Can't find OFFSET." [static] |
char * LLBVHLoader::ST_NO_POS = "Can't get position values." [static] |
char * LLBVHLoader::ST_NO_ROT = "Can't get rotation values." [static] |
char * LLBVHLoader::ST_NO_ROTATION = "Can't get rotation order." [static] |
char * LLBVHLoader::ST_NO_XLT_EASEIN = "Can't get easeIn values." [static] |
char * LLBVHLoader::ST_NO_XLT_EASEOUT = "Can't get easeOut values." [static] |
char * LLBVHLoader::ST_NO_XLT_EMOTE = "Can't read emote name." [static] |
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] |
char * LLBVHLoader::ST_NO_XLT_HEADER = "Can't read translation header." [static] |
char * LLBVHLoader::ST_NO_XLT_IGNORE = "Can't read translation ignore value." [static] |
char * LLBVHLoader::ST_NO_XLT_LOOP = "Can't get loop value." [static] |
char * LLBVHLoader::ST_NO_XLT_MATRIX = "Can't read translation matrix." [static] |
char * LLBVHLoader::ST_NO_XLT_MERGECHILD = "Can't get mergechild name." [static] |
char * LLBVHLoader::ST_NO_XLT_MERGEPARENT = "Can't get mergeparent name." [static] |
char * LLBVHLoader::ST_NO_XLT_NAME = "Can't read translation names." [static] |
char * LLBVHLoader::ST_NO_XLT_OUTNAME = "Can't read translation outname value." [static] |
char * LLBVHLoader::ST_NO_XLT_PRIORITY = "Can't get priority value." [static] |
char * LLBVHLoader::ST_NO_XLT_RELATIVE = "Can't read translation relative value." [static] |
char * LLBVHLoader::ST_OK = "Ok" [static] |
Definition at line 207 of file llbvhloader.h.
Referenced by LLBVHLoader(), loadBVHFile(), and loadTranslationTable().