#include <llflexibleobject.h>
Definition at line 77 of file llflexibleobject.h.
LLVolumeImplFlexible::LLVolumeImplFlexible | ( | LLViewerObject * | volume, | |
LLFlexibleObjectData * | attributes | |||
) |
Definition at line 59 of file llflexibleobject.cpp.
References FALSE, LLViewerObject::mDrawable, mFrameNum, mID, mInitialized, mInitializedRes, mRenderRes, mSimulateRes, mUpdated, mVO, and LLPointer< Type >::notNull().
U32 LLVolumeImplFlexible::getID | ( | ) | const [inline, virtual] |
LLVector3 LLVolumeImplFlexible::getFramePosition | ( | ) | const |
Definition at line 77 of file llflexibleobject.cpp.
References LLViewerObject::getRenderPosition(), and mVO.
Referenced by doFlexibleUpdate(), and getAnchorPosition().
LLQuaternion LLVolumeImplFlexible::getFrameRotation | ( | ) | const |
Definition at line 82 of file llflexibleobject.cpp.
References LLViewerObject::getRenderRotation(), and mVO.
Referenced by doFlexibleUpdate(), doUpdateGeometry(), getAnchorPosition(), and setAttributesOfAllSections().
LLVolumeInterfaceType LLVolumeImplFlexible::getInterfaceType | ( | ) | const [inline, virtual] |
Implements LLVolumeInterface.
Definition at line 86 of file llflexibleobject.h.
References INTERFACE_FLEXIBLE.
BOOL LLVolumeImplFlexible::doIdleUpdate | ( | LLAgent & | agent, | |
LLWorld & | world, | |||
const F64 & | time | |||
) | [virtual] |
Implements LLVolumeInterface.
Definition at line 264 of file llflexibleobject.cpp.
References DEG_TO_RAD, FALSE, FLEXIBLE_OBJECT_MAX_SECTIONS, LLFastTimer::FTM_FLEXIBLE_UPDATE, LLDrawable::getCurrentFrame(), LLSingleton< LLViewerCamera >::getInstance(), LLXform::getParent(), LLViewerObject::getPixelArea(), LLXform::getScale(), LLViewerCamera::getScreenPixelArea(), LLFlexibleObjectData::getSimulateLOD(), LLCamera::getView(), LLVOVolume::getVolumeInterfaceID(), gPipeline, LLPipeline::hasRenderDebugFeatureMask(), LLDrawable::IN_REBUILD_Q1, LLPointer< Type >::isNull(), LLXform::isRootEdit(), llround(), LLPipeline::markRebuild(), mAttributes, LLViewerObject::mDrawable, mID, mInitialized, mRenderRes, mSimulateRes, LLVector3::mV, mVO, RAD_TO_DEG, LLDrawable::REBUILD_POSITION, LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE, S32, setAttributesOfAllSections(), sUpdateFactor, and TRUE.
Referenced by doFlexibleUpdate().
BOOL LLVolumeImplFlexible::doUpdateGeometry | ( | LLDrawable * | drawable | ) | [virtual] |
Implements LLVolumeInterface.
Definition at line 658 of file llflexibleobject.cpp.
References LLDrawable::clearState(), LLViewerObject::dirtyMesh(), LLViewerObject::dirtySpatialGroup(), doFlexibleRebuild(), doFlexibleUpdate(), FALSE, LLVOVolume::genBBoxes(), getFrameRotation(), LLVolume::getParams(), LLXform::getParent(), LLPrimitive::getVolume(), LLViewerObject::isAttachment(), LLPrimitive::isAvatar(), LLVOAvatar::isImpostor(), LLPointer< Type >::isNull(), isVolumeGlobal(), LLViewerObject::mDrawable, LLVOVolume::mFaceMappingChanged, mLastFrameRotation, LLVOVolume::mLODChanged, mUpdated, mVO, LLVOVolume::mVolumeChanged, LLVOAvatar::needsImpostorUpdate(), LLDrawable::REBUILD_POSITION, LLDrawable::REBUILD_VOLUME, LLVOVolume::regenFaces(), LLVOVolume::setVolume(), TRUE, LLVOVolume::updateRelativeXform(), and LLDrawable::UV.
LLVector3 LLVolumeImplFlexible::getPivotPosition | ( | ) | const [virtual] |
Implements LLVolumeInterface.
Definition at line 777 of file llflexibleobject.cpp.
References getAnchorPosition().
void LLVolumeImplFlexible::onSetVolume | ( | const LLVolumeParams & | volume_params, | |
const S32 | detail | |||
) | [virtual] |
Implements LLVolumeInterface.
Definition at line 653 of file llflexibleobject.cpp.
References setAttributesOfAllSections().
void LLVolumeImplFlexible::onParameterChanged | ( | U16 | param_type, | |
LLNetworkData * | data, | |||
BOOL | in_use, | |||
bool | local_origin | |||
) | [virtual] |
Implements LLVolumeInterface.
Definition at line 87 of file llflexibleobject.cpp.
References mAttributes, LLNetworkData::PARAMS_FLEXIBLE, and setAttributesOfAllSections().
void LLVolumeImplFlexible::onShift | ( | const LLVector3 & | shift_vector | ) | [virtual] |
Implements LLVolumeInterface.
Definition at line 96 of file llflexibleobject.cpp.
References FLEXIBLE_OBJECT_MAX_SECTIONS, LLFlexibleObjectSection::mPosition, and mSection.
bool LLVolumeImplFlexible::isVolumeUnique | ( | ) | const [inline, virtual] |
bool LLVolumeImplFlexible::isVolumeGlobal | ( | ) | const [inline, virtual] |
Implements LLVolumeInterface.
Definition at line 95 of file llflexibleobject.h.
Referenced by doUpdateGeometry().
bool LLVolumeImplFlexible::isActive | ( | void | ) | const [inline, virtual] |
const LLMatrix4 & LLVolumeImplFlexible::getWorldMatrix | ( | LLXformMatrix * | xform | ) | const [virtual] |
Implements LLVolumeInterface.
Definition at line 830 of file llflexibleobject.cpp.
References LLXformMatrix::getWorldMatrix().
void LLVolumeImplFlexible::updateRelativeXform | ( | ) | [virtual] |
Implements LLVolumeInterface.
Definition at line 802 of file llflexibleobject.cpp.
References LLMatrix4::initRows(), LLViewerObject::mDrawable, LLVOVolume::mRelativeXform, LLVOVolume::mRelativeXformInvTrans, LLVector3::mV, mVO, LLVector3::normVec(), LLMatrix3::setRows(), VX, VY, and VZ.
void LLVolumeImplFlexible::doFlexibleUpdate | ( | ) |
Definition at line 362 of file llflexibleobject.cpp.
References doIdleUpdate(), F_PI, FALSE, FLEXIBLE_OBJECT_MAX_INTERNAL_TENSION_FORCE, FLEXIBLE_OBJECT_MAX_SECTIONS, gAgent, LLFlexibleObjectData::getAirFriction(), LLQuaternion::getAngleAxis(), LLTimer::getElapsedTimeAndResetF32(), getFramePosition(), getFrameRotation(), LLFlexibleObjectData::getGravity(), LLSingleton< LLWorld >::getInstance(), LLVolume::getPath(), LLPath::getPathLength(), LLAgent::getRegion(), LLFlexibleObjectData::getTension(), LLFlexibleObjectData::getUserForce(), LLWind::getVelocity(), LLPrimitive::getVolume(), LLFlexibleObjectData::getWindSensitivity(), i, LLMatrix4::initRows(), llassert_always, LLViewerObject::markForUpdate(), mAttributes, LLFlexibleObjectSection::mAxisRotation, LLFlexibleObjectSection::mDirection, LLFlexibleObjectSection::mdPosition, LLViewerObject::mDrawable, mInitialized, mLastSegmentRotation, LLPath::mPath, LLPath::PathPt::mPos, LLFlexibleObjectSection::mPosition, mRenderRes, LLPath::PathPt::mRot, LLFlexibleObjectSection::mRotation, LLPath::PathPt::mScale, mSection, mSimulateRes, LLPath::PathPt::mTexT, mTimer, mUpdated, LLVector3::mV, LLFlexibleObjectSection::mVelocity, mVO, LLViewerRegion::mWind, LLVector3::normVec(), remapSections(), LLVolume::resizePath(), S32, LLQuaternion::setQuat(), LLQuaternion::shortestArc(), TRUE, VX, VY, VZ, and LLVector3::z_axis.
Referenced by doUpdateGeometry().
void LLVolumeImplFlexible::doFlexibleRebuild | ( | ) |
Definition at line 643 of file llflexibleobject.cpp.
References LLPrimitive::getVolume(), mUpdated, mVO, LLVolume::regen(), and TRUE.
Referenced by doUpdateGeometry(), and preRebuild().
void LLVolumeImplFlexible::preRebuild | ( | ) | [virtual] |
Implements LLVolumeInterface.
Definition at line 635 of file llflexibleobject.cpp.
References doFlexibleRebuild(), and mUpdated.
void LLVolumeImplFlexible::setParentPositionAndRotationDirectly | ( | LLVector3 | p, | |
LLQuaternion | r | |||
) |
Definition at line 105 of file llflexibleobject.cpp.
References mParentPosition, and mParentRotation.
void LLVolumeImplFlexible::setUsingCollisionSphere | ( | bool | u | ) |
Definition at line 741 of file llflexibleobject.cpp.
Definition at line 732 of file llflexibleobject.cpp.
References mCollisionSpherePosition, and mCollisionSphereRadius.
void LLVolumeImplFlexible::setRenderingCollisionSphere | ( | bool | r | ) |
Definition at line 747 of file llflexibleobject.cpp.
LLVector3 LLVolumeImplFlexible::getEndPosition | ( | ) |
Definition at line 752 of file llflexibleobject.cpp.
References LLFlexibleObjectData::getSimulateLOD(), mAttributes, LLFlexibleObjectSection::mPosition, mSection, and S32.
LLQuaternion LLVolumeImplFlexible::getEndRotation | ( | ) |
LLVector3 LLVolumeImplFlexible::getNodePosition | ( | int | nodeIndex | ) |
Definition at line 761 of file llflexibleobject.cpp.
References LLFlexibleObjectData::getSimulateLOD(), mAttributes, LLFlexibleObjectSection::mPosition, mSection, and S32.
LLVector3 LLVolumeImplFlexible::getAnchorPosition | ( | ) | const |
Definition at line 783 of file llflexibleobject.cpp.
References getFramePosition(), getFrameRotation(), LLViewerObject::mDrawable, LLVector3::mV, mVO, VZ, and LLVector3::z_axis.
Referenced by getPivotPosition(), and setAttributesOfAllSections().
void LLVolumeImplFlexible::setAttributesOfAllSections | ( | LLVector3 * | inScale = NULL |
) | [private] |
Definition at line 198 of file llflexibleobject.cpp.
References F_PI, getAnchorPosition(), LLPathParams::getBeginScale(), LLPathParams::getEndScale(), getFrameRotation(), LLVolume::getParams(), LLVolumeParams::getPathParams(), LLPathParams::getTwist(), LLPathParams::getTwistBegin(), LLPrimitive::getVolume(), i, lerp(), LLFlexibleObjectSection::mAxisRotation, LLFlexibleObjectSection::mDirection, LLFlexibleObjectSection::mdPosition, LLViewerObject::mDrawable, mInitializedRes, LLFlexibleObjectSection::mPosition, LLFlexibleObjectSection::mScale, mSection, mSimulateRes, LLVector2::mV, LLVector3::mV, LLFlexibleObjectSection::mVelocity, mVO, NULL, remapSections(), S32, LLQuaternion::setQuat(), LLVector3::setVec(), LLVector2::setVec(), VX, VY, and LLVector3::z_axis.
Referenced by doIdleUpdate(), onParameterChanged(), and onSetScale().
void LLVolumeImplFlexible::remapSections | ( | LLFlexibleObjectSection * | source, | |
S32 | source_sections, | |||
LLFlexibleObjectSection * | dest, | |||
S32 | dest_sections | |||
) | [private] |
Definition at line 112 of file llflexibleobject.cpp.
References B, lerp(), LLFlexibleObjectSection::mAxisRotation, LLFlexibleObjectSection::mDirection, LLFlexibleObjectSection::mdPosition, LLViewerObject::mDrawable, LLFlexibleObjectSection::mPosition, LLFlexibleObjectSection::mRotation, LLFlexibleObjectSection::mScale, LLVector3::mV, LLFlexibleObjectSection::mVelocity, mVO, S32, LLVector3::setVec(), slerp(), VZ, and LLVector3::zero.
Referenced by doFlexibleUpdate(), and setAttributesOfAllSections().
LLViewerObject* LLVolumeImplFlexible::mVO [private] |
Definition at line 119 of file llflexibleobject.h.
Referenced by doFlexibleRebuild(), doFlexibleUpdate(), doIdleUpdate(), doUpdateGeometry(), getAnchorPosition(), getFramePosition(), getFrameRotation(), LLVolumeImplFlexible(), remapSections(), setAttributesOfAllSections(), and updateRelativeXform().
LLTimer LLVolumeImplFlexible::mTimer [private] |
Definition at line 121 of file llflexibleobject.h.
Definition at line 122 of file llflexibleobject.h.
Referenced by setParentPositionAndRotationDirectly().
Definition at line 123 of file llflexibleobject.h.
Referenced by setParentPositionAndRotationDirectly().
Definition at line 125 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), and getEndRotation().
BOOL LLVolumeImplFlexible::mInitialized [private] |
Definition at line 126 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), doIdleUpdate(), and LLVolumeImplFlexible().
BOOL LLVolumeImplFlexible::mUpdated [private] |
Definition at line 127 of file llflexibleobject.h.
Referenced by doFlexibleRebuild(), doFlexibleUpdate(), doUpdateGeometry(), LLVolumeImplFlexible(), and preRebuild().
Definition at line 128 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), doIdleUpdate(), getEndPosition(), getNodePosition(), and onParameterChanged().
LLFlexibleObjectSection LLVolumeImplFlexible::mSection[(1<< FLEXIBLE_OBJECT_MAX_SECTIONS)+1] [private] |
Definition at line 129 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), getEndPosition(), getNodePosition(), onShift(), and setAttributesOfAllSections().
S32 LLVolumeImplFlexible::mInitializedRes [private] |
Definition at line 130 of file llflexibleobject.h.
Referenced by LLVolumeImplFlexible(), and setAttributesOfAllSections().
S32 LLVolumeImplFlexible::mSimulateRes [private] |
Definition at line 131 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), doIdleUpdate(), LLVolumeImplFlexible(), and setAttributesOfAllSections().
S32 LLVolumeImplFlexible::mRenderRes [private] |
Definition at line 132 of file llflexibleobject.h.
Referenced by doFlexibleUpdate(), doIdleUpdate(), and LLVolumeImplFlexible().
U32 LLVolumeImplFlexible::mFrameNum [private] |
U32 LLVolumeImplFlexible::mID [private] |
Definition at line 136 of file llflexibleobject.h.
Referenced by doIdleUpdate(), getID(), and LLVolumeImplFlexible().
F32 LLVolumeImplFlexible::sUpdateFactor = 1.0f [static] |
Definition at line 148 of file llflexibleobject.h.
Referenced by doIdleUpdate(), handleFlexLODChanged(), and settings_to_globals().