LLVOVolume Class Reference

#include <llvovolume.h>

Inheritance diagram for LLVOVolume:

Inheritance graph
[legend]
Collaboration diagram for LLVOVolume:

Collaboration graph
[legend]
List of all members.

Public Types

 VERTEX_DATA_MASK
enum  { VERTEX_DATA_MASK }

Public Member Functions

 LLVOVolume (const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
LLDrawablecreateDrawable (LLPipeline *pipeline)
void deleteFaces ()
void animateTextures ()
BOOL idleUpdate (LLAgent &agent, LLWorld &world, const F64 &time)
BOOL isActive () const
BOOL isAttachment () const
BOOL isRootEdit () const
BOOL isHUDAttachment () const
void generateSilhouette (LLSelectNode *nodep, const LLVector3 &view_point)
void setParent (LLViewerObject *parent)
F32 getIndividualRadius ()
S32 getLOD () const
const LLVector3 getPivotPositionAgent () const
const LLMatrix4getRelativeXform () const
const LLMatrix3getRelativeXformInvTrans () const
const LLMatrix4 getRenderMatrix () const
BOOL lineSegmentIntersect (const LLVector3 &start, LLVector3 &end) const
LLVector3 agentPositionToVolume (const LLVector3 &pos) const
LLVector3 agentDirectionToVolume (const LLVector3 &dir) const
LLVector3 volumePositionToAgent (const LLVector3 &dir) const
BOOL getVolumeChanged () const
F32 getTextureVirtualSize (LLFace *face)
F32 getRadius () const
const LLMatrix4getWorldMatrix (LLXformMatrix *xform) const
void markForUpdate (BOOL priority)
void onShift (const LLVector3 &shift_vector)
void parameterChanged (U16 param_type, bool local_origin)
void parameterChanged (U16 param_type, LLNetworkData *data, BOOL in_use, bool local_origin)
U32 processUpdateMessage (LLMessageSystem *mesgsys, void **user_data, U32 block_num, const EObjectUpdateType update_type, LLDataPacker *dp)
void setSelected (BOOL sel)
BOOL setDrawableParent (LLDrawable *parentp)
void setScale (const LLVector3 &scale, BOOL damped)
void setTEImage (const U8 te, LLViewerImage *imagep)
S32 setTETexture (const U8 te, const LLUUID &uuid)
S32 setTEColor (const U8 te, const LLColor4 &color)
S32 setTEBumpmap (const U8 te, const U8 bump)
S32 setTEShiny (const U8 te, const U8 shiny)
S32 setTEFullbright (const U8 te, const U8 fullbright)
S32 setTEMediaFlags (const U8 te, const U8 media_flags)
S32 setTEScale (const U8 te, const F32 s, const F32 t)
S32 setTEScaleS (const U8 te, const F32 s)
S32 setTEScaleT (const U8 te, const F32 t)
S32 setTETexGen (const U8 te, const U8 texgen)
BOOL setMaterial (const U8 material)
void setTexture (const S32 face)
BOOL setVolume (const LLVolumeParams &volume_params, const S32 detail, bool unique_volume=false)
void sculpt ()
void updateRelativeXform ()
BOOL updateGeometry (LLDrawable *drawable)
void updateFaceSize (S32 idx)
BOOL updateLOD ()
void updateRadius ()
void updateTextures (LLAgent &agent)
void updateTextures ()
void updateFaceFlags ()
void regenFaces ()
BOOL genBBoxes (BOOL force_global)
virtual void updateSpatialExtents (LLVector3 &min, LLVector3 &max)
virtual F32 getBinRadius ()
virtual void writeCAL3D (apr_file_t *fp, std::string &path, std::string &file_base, S32 joint_num, LLVector3 &pos, LLQuaternion &rot, S32 &material_index, S32 &texture_index, std::multimap< LLUUID, LLMaterialExportInfo * > &material_map)
virtual U32 getPartitionType () const
void setIsLight (BOOL is_light)
void setLightColor (const LLColor3 &color)
void setLightIntensity (F32 intensity)
void setLightRadius (F32 radius)
void setLightFalloff (F32 falloff)
void setLightCutoff (F32 cutoff)
BOOL getIsLight () const
LLColor3 getLightBaseColor () const
LLColor3 getLightColor () const
F32 getLightIntensity () const
F32 getLightRadius () const
F32 getLightFalloff () const
F32 getLightCutoff () const
F32 getLightDistance (const LLVector3 &pos) const
U32 getVolumeInterfaceID () const
virtual BOOL isFlexible () const
virtual BOOL isSculpted () const
BOOL isVolumeGlobal () const
BOOL canBeFlexible () const
BOOL setIsFlexible (BOOL is_flexible)
F32 calcLightAtPoint (const LLVector3 &pos, const LLVector3 &norm, LLColor4 &result)
BOOL updateLighting (BOOL do_lighting)

Static Public Member Functions

static void initClass ()
static void preUpdateGeom ()

Public Attributes

LLViewerTextureAnimmTextureAnimp
U8 mTexAnimMode

Static Public Attributes

static F32 sLODSlopDistanceFactor = 0.5f
static F32 sLODFactor = 1.f
static F32 sDistanceFactor = 1.0f

Protected Member Functions

virtual ~LLVOVolume ()
S32 computeLODDetail (F32 distance, F32 radius)
BOOL calcLOD ()
LLFaceaddFace (S32 face_index)
void updateTEData ()

Protected Attributes

BOOL mFaceMappingChanged
BOOL mGlobalVolume
BOOL mInited
LLFrameTimer mTextureUpdateTimer
S32 mLOD
BOOL mLODChanged
BOOL mSculptChanged
F32 mRadius
LLMatrix4 mRelativeXform
LLMatrix3 mRelativeXformInvTrans
BOOL mVolumeChanged
F32 mVObjRadius
LLVolumeInterfacemVolumeImpl
LLPointer< LLViewerImagemSculptTexture

Static Protected Attributes

static S32 sNumLODChanges = 0

Friends

class LLDrawable
class LLVolumeImplFlexible

Detailed Description

Definition at line 73 of file llvovolume.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
VERTEX_DATA_MASK 

Definition at line 82 of file llvovolume.h.


Constructor & Destructor Documentation

LLVOVolume::~LLVOVolume (  )  [protected, virtual]

Definition at line 100 of file llvovolume.cpp.

References mTextureAnimp, mVolumeImpl, and NULL.

LLVOVolume::LLVOVolume ( const LLUUID id,
const LLPCode  pcode,
LLViewerRegion regionp 
)

Definition at line 82 of file llvovolume.cpp.

References f, FALSE, LLMatrix3::identity(), LLMatrix4::identity(), mGlobalVolume, MIN_LOD, mInited, mLOD, mLODChanged, LLViewerObject::mNumFaces, mRelativeXform, mRelativeXformInvTrans, mSculptChanged, mTexAnimMode, mTextureAnimp, mVObjRadius, and NULL.


Member Function Documentation

LLFace * LLVOVolume::addFace ( S32  face_index  )  [protected]

Definition at line 601 of file llvovolume.cpp.

References LLPrimitive::getTE(), LLViewerObject::getTEImage(), and LLViewerObject::mDrawable.

Referenced by createDrawable(), and regenFaces().

LLVector3 LLVOVolume::agentDirectionToVolume ( const LLVector3 dir  )  const

Definition at line 2005 of file llvovolume.cpp.

References LLViewerObject::getRenderRotation().

LLVector3 LLVOVolume::agentPositionToVolume ( const LLVector3 pos  )  const

Definition at line 1994 of file llvovolume.cpp.

References f, LLViewerObject::getRenderPosition(), LLViewerObject::getRenderRotation(), LLXform::getScale(), isVolumeGlobal(), LLVector3::mV, LLVector3::scaleVec(), VX, VY, and VZ.

Referenced by lineSegmentIntersect().

void LLVOVolume::animateTextures (  ) 

Definition at line 276 of file llvovolume.cpp.

References LLViewerTextureAnim::animateTextures(), count, end, f, LLPrimitive::getNumTEs(), LLTextureEntry::getOffset(), LLTextureEntry::getRotation(), LLTextureEntry::getScale(), gPipeline, i, LLMatrix4::identity(), LLMatrix4::initAll(), LLPipeline::markTextured(), LLViewerObject::mDrawable, LLTextureAnim::mFace, mFaceMappingChanged, LLTextureAnim::mMode, LLViewerTextureAnim::mOffS, LLViewerTextureAnim::mOffT, LLTextureAnim::mRate, LLViewerTextureAnim::mRot, LLViewerTextureAnim::mScaleS, LLViewerTextureAnim::mScaleT, mTexAnimMode, mTextureAnimp, LLMatrix4::rotate(), LLTextureAnim::ROTATE, S32, LLTextureAnim::SCALE, LLQuaternion::setQuat(), LLViewerObject::setTEOffset(), LLViewerObject::setTERotation(), setTEScale(), start, LLMatrix4::translate(), LLViewerTextureAnim::TRANSLATE, and TRUE.

Referenced by idleUpdate().

F32 LLVOVolume::calcLightAtPoint ( const LLVector3 pos,
const LLVector3 norm,
LLColor4 result 
)

Definition at line 1489 of file llvovolume.cpp.

References f, getIsLight(), getLightColor(), LLPipeline::getLightingDetail(), getLightRadius(), LLViewerObject::getRenderPosition(), gPipeline, llmax(), LLVector3::normVec(), and powf.

BOOL LLVOVolume::calcLOD (  )  [protected]

Definition at line 750 of file llvovolume.cpp.

References computeLODDetail(), f, FALSE, LLXform::getScale(), LLPointer< Type >::isNull(), llround(), LLViewerObject::mAppAngle, LLViewerObject::mDrawable, mLOD, LLPrimitive::mVolumep, RAD_TO_DEG, S32, sDistanceFactor, sLODFactor, and TRUE.

Referenced by updateLOD().

BOOL LLVOVolume::canBeFlexible (  )  const

Definition at line 1611 of file llvovolume.cpp.

References LLPathParams::getCurveType(), LLVolume::getParams(), LLVolumeParams::getPathParams(), LLPrimitive::getVolume(), LL_PCODE_PATH_FLEXIBLE, and LL_PCODE_PATH_LINE.

Referenced by LLPanelVolume::getState().

S32 LLVOVolume::computeLODDetail ( F32  distance,
F32  radius 
) [protected]

Definition at line 741 of file llvovolume.cpp.

References f, LLVolumeLODGroup::getDetailFromTan(), llround(), S32, and sLODFactor.

Referenced by calcLOD().

LLDrawable * LLVOVolume::createDrawable ( LLPipeline pipeline  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 608 of file llvovolume.cpp.

References addFace(), LLPipeline::allocDrawable(), face, gCamera, getIsLight(), LLPrimitive::getNumTEs(), gPipeline, i, isAttachment(), LLViewerObject::mDrawable, LLViewerObject::mNumFaces, LLPipeline::RENDER_TYPE_VOLUME, S32, LLPipeline::setLight(), TRUE, and updateRadius().

void LLVOVolume::deleteFaces (  ) 

Definition at line 1692 of file llvovolume.cpp.

References LLViewerObject::mDrawable, LLViewerObject::mNumFaces, LLPointer< Type >::notNull(), and S32.

Referenced by regenFaces().

BOOL LLVOVolume::genBBoxes ( BOOL  force_global  ) 

Definition at line 898 of file llvovolume.cpp.

References face, LLVolume::getNumFaces(), LLPrimitive::getVolume(), i, LLViewerObject::mDrawable, mGlobalVolume, mRelativeXform, mRelativeXformInvTrans, LLVector3::mV, LLDrawable::REBUILD_POSITION, LLDrawable::REBUILD_VOLUME, S32, and TRUE.

Referenced by LLVolumeImplFlexible::doUpdateGeometry(), and updateGeometry().

void LLVOVolume::generateSilhouette ( LLSelectNode nodep,
const LLVector3 view_point 
)

Definition at line 1664 of file llvovolume.cpp.

References f, LLVolume::generateSilhouetteVertices(), LLViewerObject::getRenderPosition(), LLViewerObject::getRenderRotation(), LLXform::getScale(), LLPrimitive::getVolume(), isVolumeGlobal(), LLVector3::magVec(), LLViewerObject::mDrawable, mRelativeXform, mRelativeXformInvTrans, LLSelectNode::mSilhouetteExists, LLSelectNode::mSilhouetteNormals, LLSelectNode::mSilhouetteSegments, LLSelectNode::mSilhouetteVertices, LLVector3::mV, LLVector3::scaleVec(), TRUE, updateRelativeXform(), VX, VY, and VZ.

F32 LLVOVolume::getBinRadius (  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1918 of file llvovolume.cpp.

References f, FALSE, LLXform::getScale(), i, isHUDAttachment(), llclamp(), llmin(), LLViewerObject::mDrawable, LLVector3::mV, LLDrawPool::POOL_ALPHA, S32, and TRUE.

F32 LLVOVolume::getIndividualRadius (  )  [inline]

Definition at line 108 of file llvovolume.h.

References mRadius.

BOOL LLVOVolume::getIsLight (  )  const

Definition at line 1395 of file llvovolume.cpp.

References LLViewerObject::getParameterEntryInUse(), and LLNetworkData::PARAMS_LIGHT.

Referenced by calcLightAtPoint(), createDrawable(), LLPanelVolume::getState(), parameterChanged(), LLVolumeGeometryManager::rebuildGeom(), and setIsLight().

LLColor3 LLVOVolume::getLightBaseColor (  )  const

Definition at line 1400 of file llvovolume.cpp.

References LLLightParams::getColor(), LLViewerObject::getParameterEntry(), and LLNetworkData::PARAMS_LIGHT.

Referenced by LLPanelVolume::getState().

LLColor3 LLVOVolume::getLightColor (  )  const

Definition at line 1413 of file llvovolume.cpp.

References LLLightParams::getColor(), LLViewerObject::getParameterEntry(), LLColor4::mV, and LLNetworkData::PARAMS_LIGHT.

Referenced by calcLightAtPoint(), LLFace::enableLights(), LLPanelVolume::getState(), and LLVolumeGeometryManager::registerFace().

F32 LLVOVolume::getLightCutoff (  )  const

Definition at line 1465 of file llvovolume.cpp.

References LLLightParams::getCutoff(), LLViewerObject::getParameterEntry(), and LLNetworkData::PARAMS_LIGHT.

F32 LLVOVolume::getLightDistance ( const LLVector3 pos  )  const

Definition at line 1481 of file llvovolume.cpp.

References getLightRadius(), LLViewerObject::getRenderPosition(), and LLVector3::magVec().

F32 LLVOVolume::getLightFalloff (  )  const

Definition at line 1452 of file llvovolume.cpp.

References LLLightParams::getFalloff(), LLViewerObject::getParameterEntry(), and LLNetworkData::PARAMS_LIGHT.

Referenced by LLPanelVolume::getState().

F32 LLVOVolume::getLightIntensity (  )  const

Definition at line 1426 of file llvovolume.cpp.

References LLLightParams::getColor(), LLViewerObject::getParameterEntry(), LLColor4::mV, and LLNetworkData::PARAMS_LIGHT.

Referenced by LLPanelVolume::getState().

F32 LLVOVolume::getLightRadius (  )  const

Definition at line 1439 of file llvovolume.cpp.

References LLViewerObject::getParameterEntry(), LLLightParams::getRadius(), and LLNetworkData::PARAMS_LIGHT.

Referenced by calcLightAtPoint(), getLightDistance(), and LLPanelVolume::getState().

S32 LLVOVolume::getLOD (  )  const [inline, virtual]

Reimplemented from LLViewerObject.

Definition at line 109 of file llvovolume.h.

References mLOD.

U32 LLVOVolume::getPartitionType (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 2047 of file llvovolume.cpp.

References isHUDAttachment(), LLPipeline::PARTITION_HUD, and LLPipeline::PARTITION_VOLUME.

const LLVector3 LLVOVolume::getPivotPositionAgent (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1966 of file llvovolume.cpp.

References LLVolumeInterface::getPivotPosition(), LLViewerObject::getPivotPositionAgent(), and mVolumeImpl.

F32 LLVOVolume::getRadius (  )  const [inline]

Definition at line 123 of file llvovolume.h.

References mVObjRadius.

const LLMatrix4& LLVOVolume::getRelativeXform (  )  const [inline]

Definition at line 111 of file llvovolume.h.

References mRelativeXform.

Referenced by LLViewerCamera::areVertsVisible(), and LLVolumeGeometryManager::rebuildGeom().

const LLMatrix3& LLVOVolume::getRelativeXformInvTrans (  )  const [inline]

Definition at line 112 of file llvovolume.h.

References mRelativeXformInvTrans.

Referenced by LLVolumeGeometryManager::rebuildGeom().

const LLMatrix4 LLVOVolume::getRenderMatrix (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1737 of file llvovolume.cpp.

References LLViewerObject::mDrawable.

F32 LLVOVolume::getTextureVirtualSize ( LLFace face  ) 

Definition at line 526 of file llvovolume.cpp.

References LLPipeline::calcPixelArea(), f, face, gCamera, llclamp(), and size.

Referenced by updateTextures().

BOOL LLVOVolume::getVolumeChanged (  )  const [inline]

Definition at line 121 of file llvovolume.h.

References mVolumeChanged.

U32 LLVOVolume::getVolumeInterfaceID (  )  const

Definition at line 1564 of file llvovolume.cpp.

References LLVolumeInterface::getID(), and mVolumeImpl.

Referenced by LLVolumeImplFlexible::doIdleUpdate().

const LLMatrix4 & LLVOVolume::getWorldMatrix ( LLXformMatrix xform  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1985 of file llvovolume.cpp.

References LLVolumeInterface::getWorldMatrix(), mVolumeImpl, and xform().

BOOL LLVOVolume::idleUpdate ( LLAgent agent,
LLWorld world,
const F64 time 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 375 of file llvovolume.cpp.

References animateTextures(), LLVolumeInterface::doIdleUpdate(), gAnimateTextures, LLViewerObject::idleUpdate(), LLPointer< Type >::isNull(), LLViewerObject::mDead, LLViewerObject::mDrawable, mTextureAnimp, mVolumeImpl, and TRUE.

void LLVOVolume::initClass (  )  [static]

Definition at line 110 of file llvovolume.cpp.

Referenced by LLViewerObject::initVOClasses().

BOOL LLVOVolume::isActive (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 556 of file llvovolume.cpp.

References LLVolumeInterface::isActive(), isAttachment(), LLViewerObject::mStatic, mTextureAnimp, and mVolumeImpl.

BOOL LLVOVolume::isAttachment (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1715 of file llvovolume.cpp.

References FALSE, LLViewerObject::mState, and TRUE.

Referenced by createDrawable(), and isActive().

BOOL LLVOVolume::isFlexible (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1574 of file llvovolume.cpp.

References FALSE, LLProfileParams::getCurveType(), LLViewerObject::getParameterEntryInUse(), LLVolume::getParams(), LLVolumeParams::getProfileParams(), LLPrimitive::getVolume(), LL_PCODE_PATH_FLEXIBLE, LLNetworkData::PARAMS_FLEXIBLE, LLVolumeParams::setType(), and TRUE.

Referenced by LLPanelVolume::getState(), LLPanelObject::getState(), LLPanelObject::getVolumeParams(), and setIsFlexible().

BOOL LLVOVolume::isHUDAttachment (  )  const [virtual]

Reimplemented from LLViewerObject.

Definition at line 1727 of file llvovolume.cpp.

References ATTACHMENT_ID_FROM_STATE, LLViewerObject::mState, and S32.

Referenced by getBinRadius(), getPartitionType(), LLVolumeGeometryManager::rebuildGeom(), updateFaceFlags(), and updateTextures().

BOOL LLVOVolume::isRootEdit (  )  const [virtual]

Reimplemented from LLXform.

Definition at line 1153 of file llvovolume.cpp.

References FALSE, LLPrimitive::isAvatar(), LLXform::mParent, and TRUE.

BOOL LLVOVolume::isSculpted (  )  const [virtual]

Definition at line 1592 of file llvovolume.cpp.

References FALSE, LLViewerObject::getParameterEntryInUse(), LLNetworkData::PARAMS_SCULPT, and TRUE.

Referenced by processUpdateMessage(), setVolume(), and updateTextures().

BOOL LLVOVolume::isVolumeGlobal (  )  const

Definition at line 1602 of file llvovolume.cpp.

References FALSE, LLVolumeInterface::isVolumeGlobal(), mVolumeImpl, and TRUE.

Referenced by agentPositionToVolume(), and generateSilhouette().

BOOL LLVOVolume::lineSegmentIntersect ( const LLVector3 start,
LLVector3 end 
) const [virtual]

Reimplemented from LLViewerObject.

Definition at line 2020 of file llvovolume.cpp.

References agentPositionToVolume(), end, FALSE, LLPrimitive::getVolume(), LLVolume::lineSegmentIntersect(), LLLineSegmentAABB(), start, TRUE, and volumePositionToAgent().

void LLVOVolume::markForUpdate ( BOOL  priority  )  [inline]

Reimplemented from LLViewerObject.

Definition at line 126 of file llvovolume.h.

References LLViewerObject::markForUpdate(), mVolumeChanged, and TRUE.

Referenced by processUpdateMessage(), and setIsFlexible().

void LLVOVolume::onShift ( const LLVector3 shift_vector  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1975 of file llvovolume.cpp.

References mVolumeImpl, LLVolumeInterface::onShift(), and updateRelativeXform().

void LLVOVolume::parameterChanged ( U16  param_type,
LLNetworkData data,
BOOL  in_use,
bool  local_origin 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1888 of file llvovolume.cpp.

References getIsLight(), gPipeline, LLDrawable::LIGHT, LLViewerObject::mDrawable, mVolumeImpl, LLPointer< Type >::notNull(), LLVolumeInterface::onParameterChanged(), LLViewerObject::parameterChanged(), and LLPipeline::setLight().

void LLVOVolume::parameterChanged ( U16  param_type,
bool  local_origin 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1883 of file llvovolume.cpp.

References LLViewerObject::parameterChanged().

Referenced by setLightColor(), setLightCutoff(), setLightFalloff(), setLightIntensity(), and setLightRadius().

void LLVOVolume::preUpdateGeom (  )  [static]

Definition at line 1878 of file llvovolume.cpp.

References sNumLODChanges.

Referenced by LLPipeline::updateGeom().

U32 LLVOVolume::processUpdateMessage ( LLMessageSystem mesgsys,
void **  user_data,
U32  block_num,
const EObjectUpdateType  update_type,
LLDataPacker dp 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 115 of file llvovolume.cpp.

References _PREHASH_ObjectData, _PREHASH_TextureAnim, _PREHASH_TextureEntry, LLDir::deleteFilesInDir(), LLDataPacker::dumpBufferToLog(), gDirUtilp, LLMessageSystem::getBinaryDataFast(), LLDir::getDirDelimiter(), LLDir::getExpandedFilename(), LLViewerObject::getID(), LLViewerRegion::getOriginGlobal(), LLViewerObject::getParameterEntry(), LLDataPacker::getPassFlags(), LLViewerObject::getRegion(), LLSculptParams::getSculptTexture(), LLSculptParams::getSculptType(), LLMessageSystem::getSizeFast(), gPipeline, isSculpted(), LL_MAX_PATH, LL_PATH_CACHE, llendl, llwarns, markForUpdate(), LLPipeline::markTextured(), mask, LLViewerObject::mDrawable, mFaceMappingChanged, LLTextureAnim::mMode, mTexAnimMode, mTextureAnimp, NULL, OUT_FULL, OUT_TERSE_IMPROVED, LLNetworkData::PARAMS_SCULPT, LLViewerObject::processUpdateMessage(), LLViewerTextureAnim::reset(), S32, LLVolumeParams::setSculptID(), setVolume(), LLTextureAnim::SMOOTH, TEM_CHANGE_COLOR, TEM_CHANGE_TEXTURE, TEM_INVALID, TRUE, LLTextureAnim::unpackTAMessage(), LLPrimitive::unpackTEMessage(), LLVolumeMessage::unpackVolumeParams(), and updateTEData().

void LLVOVolume::regenFaces (  ) 

Definition at line 872 of file llvovolume.cpp.

References addFace(), deleteFaces(), LLPrimitive::getNumTEs(), LLViewerObject::getTEImage(), i, LLViewerObject::mDrawable, LLViewerObject::mNumFaces, S32, and updateFaceFlags().

Referenced by LLVolumeImplFlexible::doUpdateGeometry(), and updateGeometry().

void LLVOVolume::sculpt (  ) 

Definition at line 699 of file llvovolume.cpp.

References LLVolume::getSculptLevel(), LLPrimitive::getVolume(), mSculptTexture, LLPointer< Type >::notNull(), NULL, S32, LLVolume::sculpt(), and TRUE.

Referenced by setVolume().

BOOL LLVOVolume::setDrawableParent ( LLDrawable parentp  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 811 of file llvovolume.cpp.

References FALSE, gPipeline, LLPipeline::markRebuild(), LLViewerObject::mDrawable, LLDrawable::REBUILD_VOLUME, LLViewerObject::setDrawableParent(), and TRUE.

BOOL LLVOVolume::setIsFlexible ( BOOL  is_flexible  ) 

Definition at line 1617 of file llvovolume.cpp.

References FALSE, FLAGS_PHANTOM, FLAGS_USE_PHYSICS, LLProfileParams::getCurveType(), LLVolume::getParams(), LLVolumeParams::getProfileParams(), LLPrimitive::getVolume(), isFlexible(), LL_PCODE_PATH_FLEXIBLE, LL_PCODE_PATH_LINE, markForUpdate(), LLViewerObject::mDrawable, LLNetworkData::PARAMS_FLEXIBLE, LLViewerObject::setFlags(), LLViewerObject::setParameterEntryInUse(), LLVolumeParams::setType(), setVolume(), and TRUE.

Referenced by LLPanelVolume::sendIsFlexible().

void LLVOVolume::setIsLight ( BOOL  is_light  ) 

Definition at line 1294 of file llvovolume.cpp.

References FALSE, getIsLight(), gPipeline, LLViewerObject::mDrawable, LLNetworkData::PARAMS_LIGHT, LLPipeline::setLight(), LLViewerObject::setParameterEntryInUse(), and TRUE.

Referenced by LLPanelVolume::sendIsLight().

void LLVOVolume::setLightColor ( const LLColor3 color  ) 

Definition at line 1326 of file llvovolume.cpp.

References LLLightParams::getColor(), LLViewerObject::getParameterEntry(), gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, LLColor4::mV, parameterChanged(), LLNetworkData::PARAMS_LIGHT, LLLightParams::setColor(), and TRUE.

Referenced by LLPanelVolume::onCommitLight(), and LLPanelVolume::onLightSelectColor().

void LLVOVolume::setLightCutoff ( F32  cutoff  ) 

Definition at line 1380 of file llvovolume.cpp.

References LLLightParams::getCutoff(), LLViewerObject::getParameterEntry(), parameterChanged(), LLNetworkData::PARAMS_LIGHT, and LLLightParams::setCutoff().

void LLVOVolume::setLightFalloff ( F32  falloff  ) 

Definition at line 1367 of file llvovolume.cpp.

References LLLightParams::getFalloff(), LLViewerObject::getParameterEntry(), parameterChanged(), LLNetworkData::PARAMS_LIGHT, and LLLightParams::setFalloff().

Referenced by LLPanelVolume::onCommitLight().

void LLVOVolume::setLightIntensity ( F32  intensity  ) 

Definition at line 1341 of file llvovolume.cpp.

References LLLightParams::getColor(), LLViewerObject::getParameterEntry(), LLColor4::mV, parameterChanged(), LLNetworkData::PARAMS_LIGHT, and LLLightParams::setColor().

Referenced by LLPanelVolume::onCommitLight().

void LLVOVolume::setLightRadius ( F32  radius  ) 

Definition at line 1354 of file llvovolume.cpp.

References LLViewerObject::getParameterEntry(), LLLightParams::getRadius(), parameterChanged(), LLNetworkData::PARAMS_LIGHT, and LLLightParams::setRadius().

Referenced by LLPanelVolume::onCommitLight().

BOOL LLVOVolume::setMaterial ( const U8  material  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 561 of file llvovolume.cpp.

References gPipeline, LLPipeline::markRebuild(), LLViewerObject::mDrawable, LLPointer< Type >::notNull(), LLDrawable::REBUILD_LIGHTING, LLViewerObject::setMaterial(), and TRUE.

void LLVOVolume::setParent ( LLViewerObject parent  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 860 of file llvovolume.cpp.

References gPipeline, LLPipeline::markMoved(), LLPipeline::markRebuild(), LLViewerObject::mDrawable, mVolumeChanged, LLDrawable::REBUILD_VOLUME, LLViewerObject::setParent(), and TRUE.

void LLVOVolume::setScale ( const LLVector3 scale,
BOOL  damped 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 581 of file llvovolume.cpp.

References LLXform::getScale(), gPipeline, LLPipeline::markRebuild(), LLViewerObject::mDrawable, mVolumeImpl, LLVolumeInterface::onSetScale(), LLDrawable::REBUILD_POSITION, LLViewerObject::setScale(), TRUE, and updateRadius().

void LLVOVolume::setSelected ( BOOL  sel  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1905 of file llvovolume.cpp.

References LLViewerObject::mDrawable, LLPointer< Type >::notNull(), and LLViewerObject::setSelected().

S32 LLVOVolume::setTEBumpmap ( const U8  te,
const U8  bump 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1195 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEBumpmap(), and TRUE.

S32 LLVOVolume::setTEColor ( const U8  te,
const LLColor4 color 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1184 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEColor(), and TRUE.

S32 LLVOVolume::setTEFullbright ( const U8  te,
const U8  fullbright 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1228 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEFullbright(), and TRUE.

void LLVOVolume::setTEImage ( const U8  te,
LLViewerImage imagep 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1162 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, LLViewerObject::mTEImages, LLViewerObject::setTEImage(), and TRUE.

S32 LLVOVolume::setTEMediaFlags ( const U8  te,
const U8  media_flags 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1239 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEMediaFlags(), and TRUE.

S32 LLVOVolume::setTEScale ( const U8  te,
const F32  s,
const F32  t 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1250 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEScale(), and TRUE.

Referenced by animateTextures().

S32 LLVOVolume::setTEScaleS ( const U8  te,
const F32  s 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1261 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEScaleS(), and TRUE.

S32 LLVOVolume::setTEScaleT ( const U8  te,
const F32  t 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1272 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEScaleT(), and TRUE.

S32 LLVOVolume::setTEShiny ( const U8  te,
const U8  shiny 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1217 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTEShiny(), and TRUE.

S32 LLVOVolume::setTETexGen ( const U8  te,
const U8  texgen 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1206 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTETexGen(), and TRUE.

S32 LLVOVolume::setTETexture ( const U8  te,
const LLUUID uuid 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1173 of file llvovolume.cpp.

References gPipeline, LLPipeline::markTextured(), LLViewerObject::mDrawable, mFaceMappingChanged, S32, LLViewerObject::setTETexture(), and TRUE.

void LLVOVolume::setTexture ( const S32  face  ) 

Definition at line 575 of file llvovolume.cpp.

References LLViewerImage::bindTexture(), LLPrimitive::getNumTEs(), LLViewerObject::getTEImage(), and llassert.

BOOL LLVOVolume::setVolume ( const LLVolumeParams volume_params,
const S32  detail,
bool  unique_volume = false 
) [virtual]

Reimplemented from LLPrimitive.

Definition at line 640 of file llvovolume.cpp.

References FALSE, LLPathParams::getCurveType(), LLViewerImageList::getImage(), LLViewerObject::getParameterEntry(), LLVolumeParams::getPathParams(), gImageList, isSculpted(), LLVolumeInterface::isVolumeGlobal(), LLVolumeInterface::isVolumeUnique(), LL_PCODE_PATH_FLEXIBLE, LLVolumeImplFlexible, LLViewerObject::mDrawable, mFaceMappingChanged, mGlobalVolume, mLOD, mSculptChanged, mSculptTexture, mVolumeImpl, LLPointer< Type >::notNull(), NULL, LLVolumeInterface::onSetVolume(), LLNetworkData::PARAMS_FLEXIBLE, sculpt(), LLViewerObject::setParameterEntryInUse(), LLPrimitive::setVolume(), and TRUE.

Referenced by LLVolumeImplFlexible::doUpdateGeometry(), processUpdateMessage(), setIsFlexible(), and updateGeometry().

void LLVOVolume::updateFaceFlags (  ) 

Definition at line 837 of file llvovolume.cpp.

References face, LLFace::FULLBRIGHT, LLTextureEntry::getFullbright(), LLVolume::getNumFaces(), LLPrimitive::getTE(), LLPrimitive::getVolume(), LLFace::HUD_RENDER, i, isHUDAttachment(), LLFace::LIGHT, LL_MCODE_LIGHT, LLViewerObject::mDrawable, LLPrimitive::mMaterial, and S32.

Referenced by regenFaces(), and updateGeometry().

void LLVOVolume::updateFaceSize ( S32  idx  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1139 of file llvovolume.cpp.

References LLPrimitive::getVolume(), LLVolume::getVolumeFace(), LLViewerObject::mDrawable, LLVolumeFace::mIndices, LLVolumeFace::mVertices, and LLFace::setSize().

BOOL LLVOVolume::updateGeometry ( LLDrawable drawable  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1041 of file llvovolume.cpp.

References LLVolumeInterface::doUpdateGeometry(), FALSE, LLFastTimer::FTM_GEN_FLEX, LLFastTimer::FTM_GEN_TRIANGLES, LLFastTimer::FTM_GEN_VOLUME, LLFastTimer::FTM_UPDATE_PRIMITIVES, genBBoxes(), LLVolume::getNumFaces(), LLVolume::getParams(), LLPrimitive::getVolume(), LLPointer< Type >::isNull(), LLViewerObject::mDrawable, mFaceMappingChanged, mInited, mLODChanged, mSculptChanged, mVolumeChanged, mVolumeImpl, NULL, LLDrawable::REBUILD_VOLUME, regenFaces(), LLPipeline::sCompiles, LLDrawable::setState(), setVolume(), sNumLODChanges, t, TRUE, updateFaceFlags(), LLViewerObject::updateGeometry(), and updateRelativeXform().

BOOL LLVOVolume::updateLighting ( BOOL  do_lighting  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1536 of file llvovolume.cpp.

References face, FALSE, LLPrimitive::getVolume(), i, LLViewerObject::mDrawable, LLMemType::MTYPE_DRAWABLE, S32, and TRUE.

BOOL LLVOVolume::updateLOD (  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 791 of file llvovolume.cpp.

References calcLOD(), FALSE, gPipeline, LLPointer< Type >::isNull(), LLPipeline::markRebuild(), LLViewerObject::mDrawable, mLODChanged, LLDrawable::REBUILD_VOLUME, TRUE, and LLViewerObject::updateLOD().

void LLVOVolume::updateRadius (  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 1703 of file llvovolume.cpp.

References LLXform::getScale(), LLPointer< Type >::isNull(), LLVector3::magVec(), LLViewerObject::mDrawable, and mVObjRadius.

Referenced by createDrawable(), and setScale().

void LLVOVolume::updateRelativeXform (  ) 

Definition at line 951 of file llvovolume.cpp.

References f, LLViewerRegion::getOriginAgent(), LLXform::getPosition(), LLViewerObject::getRegion(), LLXform::getRotation(), LLXform::getScale(), LLMatrix4::initRows(), LLDrawable::isActive(), LLDrawable::isSpatialRoot(), LLViewerObject::mDrawable, LLXform::mParent, mRelativeXform, mRelativeXformInvTrans, LLVector3::mV, mVolumeImpl, LLMatrix3::setRows(), LLMatrix3::transpose(), LLVolumeInterface::updateRelativeXform(), VX, VY, and VZ.

Referenced by LLViewerCamera::areVertsVisible(), LLVolumeImplFlexible::doUpdateGeometry(), generateSilhouette(), onShift(), LLDrawable::updateDistance(), and updateGeometry().

void LLVOVolume::updateSpatialExtents ( LLVector3 min,
LLVector3 max 
) [virtual]

Reimplemented from LLViewerObject.

Definition at line 1914 of file llvovolume.cpp.

void LLVOVolume::updateTEData (  )  [protected]

Definition at line 1283 of file llvovolume.cpp.

References gPipeline, LLPipeline::markRebuild(), LLViewerObject::mDrawable, mFaceMappingChanged, LLPointer< Type >::notNull(), LLDrawable::REBUILD_MATERIAL, and TRUE.

Referenced by processUpdateMessage().

void LLVOVolume::updateTextures (  ) 

Definition at line 416 of file llvovolume.cpp.

References LLViewerImage::addTextureStats(), LLViewerImage::BOOST_HUD, LLViewerImage::BOOST_SCULPTED, face, FALSE, fsqrtf, gCamera, LLViewerImage::getDecodePriority(), LLViewerImageList::getImage(), LLViewerObject::getParameterEntry(), LLViewerCamera::getScreenPixelArea(), LLVolume::getSculptLevel(), LLSculptParams::getSculptTexture(), getTextureVirtualSize(), LLPrimitive::getVolume(), gImageList, gPipeline, LLPipeline::hasRenderDebugMask(), LLPipeline::hasRenderType(), i, isHUDAttachment(), LLPointer< Type >::isNull(), isSculpted(), llformat(), llmax(), LLPipeline::markRebuild(), LLViewerObject::mDrawable, LLViewerObject::mPixelArea, mSculptChanged, mSculptTexture, mTextureUpdateTimer, LLPointer< Type >::notNull(), LLNetworkData::PARAMS_SCULPT, LLDrawable::REBUILD_VOLUME, LLPipeline::RENDER_DEBUG_FACE_AREA, LLPipeline::RENDER_DEBUG_TEXTURE_AREA, LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY, LLPipeline::RENDER_TYPE_SIMPLE, LLFrameTimer::reset(), S32, SCULPT_REZ, LLViewerImage::sDontLoadVolumeTextures, LLViewerImage::setBoostLevel(), LLViewerObject::setDebugText(), and TRUE.

Referenced by updateTextures().

void LLVOVolume::updateTextures ( LLAgent agent  )  [virtual]

Reimplemented from LLViewerObject.

Definition at line 403 of file llvovolume.cpp.

References LLFrameTimer::getElapsedTimeF32(), LLViewerObject::mDrawable, mTextureUpdateTimer, and updateTextures().

Referenced by LLVolumeGeometryManager::rebuildGeom().

LLVector3 LLVOVolume::volumePositionToAgent ( const LLVector3 dir  )  const

Definition at line 2010 of file llvovolume.cpp.

References LLViewerObject::getRenderPosition(), LLViewerObject::getRenderRotation(), LLXform::getScale(), and LLVector3::scaleVec().

Referenced by lineSegmentIntersect().

void LLVOVolume::writeCAL3D ( apr_file_t *  fp,
std::string &  path,
std::string &  file_base,
S32  joint_num,
LLVector3 pos,
LLQuaternion rot,
S32 material_index,
S32 texture_index,
std::multimap< LLUUID, LLMaterialExportInfo * > &  material_map 
) [virtual]

Definition at line 1746 of file llvovolume.cpp.

References LLImageTGA::encode(), f, LLTextureEntry::getColor(), LLFace::getGeomCount(), LLFace::getGeomStart(), LLTextureEntry::getID(), LLFace::getIndicesCount(), LLFace::getIndicesStart(), LLFace::getPool(), LLXform::getPosition(), LLXform::getRotation(), LLXform::getScale(), LLFace::getTexture(), LLFace::getTextureEntry(), i, LLMatrix4::initAll(), LLPointer< Type >::isNull(), llendl, llinfos, LLViewerObject::mChildList, LLViewerObject::mDrawable, LLMaterialExportInfo::mMaterialIndex, LLMaterialExportInfo::mTextureIndex, LLVector2::mV, LLVector3::mV, NULL, S32, LLImageFormatted::save(), VX, VY, VZ, and LLVector3::zero.


Friends And Related Function Documentation

friend class LLDrawable [friend]

Definition at line 224 of file llvovolume.h.

friend class LLVolumeImplFlexible [friend]

Definition at line 250 of file llvovolume.h.

Referenced by setVolume().


Member Data Documentation

BOOL LLVOVolume::mFaceMappingChanged [protected]

Definition at line 226 of file llvovolume.h.

Referenced by animateTextures(), LLVolumeImplFlexible::doUpdateGeometry(), processUpdateMessage(), setLightColor(), setTEBumpmap(), setTEColor(), setTEFullbright(), setTEImage(), setTEMediaFlags(), setTEScale(), setTEScaleS(), setTEScaleT(), setTEShiny(), setTETexGen(), setTETexture(), setVolume(), updateGeometry(), and updateTEData().

BOOL LLVOVolume::mGlobalVolume [protected]

Definition at line 227 of file llvovolume.h.

Referenced by genBBoxes(), LLVOVolume(), and setVolume().

BOOL LLVOVolume::mInited [protected]

Definition at line 228 of file llvovolume.h.

Referenced by LLVOVolume(), and updateGeometry().

S32 LLVOVolume::mLOD [protected]

Definition at line 230 of file llvovolume.h.

Referenced by calcLOD(), getLOD(), LLVOVolume(), and setVolume().

BOOL LLVOVolume::mLODChanged [protected]

Definition at line 231 of file llvovolume.h.

Referenced by LLVolumeImplFlexible::doUpdateGeometry(), LLVOVolume(), updateGeometry(), and updateLOD().

F32 LLVOVolume::mRadius [protected]

Definition at line 233 of file llvovolume.h.

Referenced by getIndividualRadius().

LLMatrix4 LLVOVolume::mRelativeXform [protected]

Definition at line 234 of file llvovolume.h.

Referenced by genBBoxes(), generateSilhouette(), getRelativeXform(), LLVOVolume(), updateRelativeXform(), and LLVolumeImplFlexible::updateRelativeXform().

LLMatrix3 LLVOVolume::mRelativeXformInvTrans [protected]

Definition at line 235 of file llvovolume.h.

Referenced by genBBoxes(), generateSilhouette(), getRelativeXformInvTrans(), LLVOVolume(), updateRelativeXform(), and LLVolumeImplFlexible::updateRelativeXform().

BOOL LLVOVolume::mSculptChanged [protected]

Definition at line 232 of file llvovolume.h.

Referenced by LLVOVolume(), setVolume(), updateGeometry(), and updateTextures().

LLPointer<LLViewerImage> LLVOVolume::mSculptTexture [protected]

Definition at line 239 of file llvovolume.h.

Referenced by sculpt(), setVolume(), and updateTextures().

U8 LLVOVolume::mTexAnimMode

Definition at line 222 of file llvovolume.h.

Referenced by animateTextures(), LLFace::getGeometryVolume(), LLVOVolume(), processUpdateMessage(), and LLVolumeGeometryManager::rebuildGeom().

LLViewerTextureAnim* LLVOVolume::mTextureAnimp

Definition at line 221 of file llvovolume.h.

Referenced by animateTextures(), idleUpdate(), isActive(), LLDrawable::isAnimating(), LLVOVolume(), processUpdateMessage(), LLVolumeGeometryManager::rebuildGeom(), and ~LLVOVolume().

LLFrameTimer LLVOVolume::mTextureUpdateTimer [protected]

Definition at line 229 of file llvovolume.h.

Referenced by updateTextures().

F32 LLVOVolume::mVObjRadius [protected]

Definition at line 237 of file llvovolume.h.

Referenced by getRadius(), LLVOVolume(), and updateRadius().

BOOL LLVOVolume::mVolumeChanged [protected]

Definition at line 236 of file llvovolume.h.

Referenced by LLVolumeImplFlexible::doUpdateGeometry(), getVolumeChanged(), markForUpdate(), setParent(), and updateGeometry().

LLVolumeInterface* LLVOVolume::mVolumeImpl [protected]

Definition at line 238 of file llvovolume.h.

Referenced by getPivotPositionAgent(), getVolumeInterfaceID(), getWorldMatrix(), idleUpdate(), isActive(), isVolumeGlobal(), onShift(), parameterChanged(), setScale(), setVolume(), updateGeometry(), updateRelativeXform(), and ~LLVOVolume().

F32 LLVOVolume::sDistanceFactor = 1.0f [static]

Definition at line 245 of file llvovolume.h.

Referenced by calcLOD(), LLVolumeLODListener::handleEvent(), and saved_settings_to_globals().

F32 LLVOVolume::sLODFactor = 1.f [static]

Definition at line 244 of file llvovolume.h.

Referenced by calcLOD(), computeLODDetail(), LLVolumeLODListener::handleEvent(), and saved_settings_to_globals().

F32 LLVOVolume::sLODSlopDistanceFactor = 0.5f [static]

Definition at line 243 of file llvovolume.h.

S32 LLVOVolume::sNumLODChanges = 0 [static, protected]

Definition at line 248 of file llvovolume.h.

Referenced by preUpdateGeom(), and updateGeometry().


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