#include <llvolume.h>
Inheritance diagram for LLVolume:


| Public Member Functions | |
| LLVolume (const LLVolumeParams ¶ms, const F32 detail, const BOOL generate_single_face=FALSE, const BOOL is_unique=FALSE) | |
| U8 | getProfileType () const | 
| U8 | getPathType () const | 
| S32 | getNumFaces () const | 
| S32 | getNumVolumeFaces () const | 
| F32 | getDetail () const | 
| const LLVolumeParams & | getParams () const | 
| LLVolumeParams | getCopyOfParams () const | 
| const LLProfile & | getProfile () const | 
| LLPath & | getPath () const | 
| const std::vector< Point > & | getMesh () const | 
| const LLVector3 & | getMeshPt (const U32 i) const | 
| void | setDirty () | 
| void | regen () | 
| BOOL | isConvex () const | 
| BOOL | isCap (S32 face) | 
| BOOL | isFlat (S32 face) | 
| BOOL | isUnique () const | 
| S32 | getSculptLevel () const | 
| S32 * | getTriangleIndices (U32 &num_indices) const | 
| void | generateSilhouetteVertices (std::vector< LLVector3 > &vertices, std::vector< LLVector3 > &normals, std::vector< S32 > &segments, const LLVector3 &view_vec, const LLMatrix4 &mat, const LLMatrix3 &norm_mat) | 
| S32 | lineSegmentIntersect (const LLVector3 &start, LLVector3 &end) const | 
| LLFaceID | generateFaceMask () | 
| BOOL | isFaceMaskValid (LLFaceID face_mask) | 
| const LLVolumeFace & | getVolumeFace (const S32 f) const | 
| void | sculpt (U16 sculpt_width, U16 sculpt_height, S8 sculpt_components, const U8 *sculpt_data, S32 sculpt_level) | 
| Static Public Member Functions | |
| static BOOL | cleanupTriangleData (const S32 num_input_vertices, const std::vector< Point > &input_vertices, const S32 num_input_triangles, S32 *input_triangles, S32 &num_output_vertices, LLVector3 **output_vertices, S32 &num_output_triangles, S32 **output_triangles) | 
| Public Attributes | |
| U32 | mFaceMask | 
| LLVector3 | mLODScaleBias | 
| Static Public Attributes | |
| static S32 | sNumMeshPoints = 0 | 
| Protected Member Functions | |
| BOOL | generate () | 
| void | createVolumeFaces () | 
| Protected Attributes | |
| BOOL | mUnique | 
| F32 | mDetail | 
| S32 | mSculptLevel | 
| LLVolumeParams | mParams | 
| LLPath * | mPathp | 
| LLProfile * | mProfilep | 
| std::vector< Point > | mMesh | 
| BOOL | mGenerateSingleFace | 
| S32 | mNumVolumeFaces | 
| LLVolumeFace * | mVolumeFaces | 
| Private Member Functions | |
| LLVolume (const LLVolume &) | |
| ~LLVolume () | |
| Friends | |
| class | LLVolumeLODGroup | 
| std::ostream & | operator<< (std::ostream &s, const LLVolume &volume) | 
| std::ostream & | operator<< (std::ostream &s, const LLVolume *volumep) | 
| Classes | |
| struct | FaceParams | 
| struct | Point | 
Definition at line 819 of file llvolume.h.
| LLVolume::LLVolume | ( | const LLVolume & | ) |  [private] | 
| LLVolume::~LLVolume | ( | ) |  [private] | 
Definition at line 1648 of file llvolume.cpp.
References mMesh, mPathp, mProfilep, mVolumeFaces, NULL, and sNumMeshPoints.
| LLVolume::LLVolume | ( | const LLVolumeParams & | params, | |
| const F32 | detail, | |||
| const BOOL | generate_single_face = FALSE, | |||
| const BOOL | is_unique = FALSE | |||
| ) | 
Definition at line 1613 of file llvolume.cpp.
References createVolumeFaces(), generate(), LLPathParams::getCurveType(), LLVolumeParams::getPathParams(), LLVolumeParams::getProfileParams(), LLVolumeParams::getSculptID(), LLUUID::isNull(), LL_PCODE_PATH_FLEXIBLE, mDetail, mFaceMask, mGenerateSingleFace, mNumVolumeFaces, mParams, mPathp, mProfilep, mSculptLevel, mUnique, mVolumeFaces, and NULL.
| BOOL LLVolume::cleanupTriangleData | ( | const S32 | num_input_vertices, | |
| const std::vector< Point > & | input_vertices, | |||
| const S32 | num_input_triangles, | |||
| S32 * | input_triangles, | |||
| S32 & | num_output_vertices, | |||
| LLVector3 ** | output_vertices, | |||
| S32 & | num_output_triangles, | |||
| S32 ** | output_triangles | |||
| ) |  [static] | 
Definition at line 3411 of file llvolume.cpp.
References end, equalTriangle(), FALSE, i, llendl, llwarns, LLVertexIndexPair::mIndex, LLVertexIndexPair::mVertex, NULL, S32, TRUE, and VERTEX_SLOP_SQRD.
| void LLVolume::createVolumeFaces | ( | ) |  [protected] | 
Definition at line 1746 of file llvolume.cpp.
References LLVolumeFace::BOTTOM_MASK, LLVolumeFace::CAP_MASK, LLVolumeFace::END_MASK, face, LLVolumeFace::FLAT_MASK, getNumFaces(), getPath(), LLVolumeFace::HOLLOW_MASK, i, LLVolumeFace::INNER_MASK, LLProfile::isHollow(), LLProfile::isOpen(), LL_FACE_INNER_SIDE, LL_FACE_PATH_BEGIN, LL_FACE_PATH_END, LL_FACE_PROFILE_BEGIN, LL_FACE_PROFILE_END, llassert, LLProfile::mFaces, mGenerateSingleFace, mNumVolumeFaces, LLPath::mPath, mProfilep, mVolumeFaces, NULL, LLVolumeFace::OPEN_MASK, LLVolumeFace::OUTER_MASK, S32, LLVolumeFace::SIDE_MASK, and LLVolumeFace::TOP_MASK.
Referenced by LLVolume(), regen(), and sculpt().
| BOOL LLVolume::generate | ( | ) |  [protected] | 
Definition at line 1660 of file llvolume.cpp.
References f, FALSE, LLProfile::generate(), LLPath::generate(), LLProfileParams::getCurveType(), LLPathParams::getCurveType(), LLPathParams::getScale(), i, LLPath::isOpen(), LL_PCODE_PATH_CIRCLE, LL_PCODE_PATH_LINE, LL_PCODE_PROFILE_CIRCLE, LL_PCODE_PROFILE_EQUALTRI, LL_PCODE_PROFILE_ISOTRI, LL_PCODE_PROFILE_RIGHTTRI, LL_PCODE_PROFILE_SQUARE, mDetail, mFaceMask, LLProfile::mFaces, mLODScaleBias, mMesh, LLProfile::mParams, LLPath::mParams, LLPath::mPath, mPathp, LLVolume::Point::mPos, LLProfile::mProfile, mProfilep, LLVector3::mV, LLVector2::mV, s, S32, LLVector3::setVec(), sNumMeshPoints, t, and TRUE.
Referenced by LLVolume(), and regen().
| LLFaceID LLVolume::generateFaceMask | ( | ) | 
Definition at line 3812 of file llvolume.cpp.
References LLProfileParams::getBegin(), LLProfileParams::getCurveType(), LLProfileParams::getEnd(), LLProfile::isHollow(), LLPath::isOpen(), LLProfile::isOpen(), LL_FACE_INNER_SIDE, LL_FACE_OUTER_SIDE_0, LL_FACE_PATH_BEGIN, LL_FACE_PATH_END, LL_FACE_PROFILE_BEGIN, LL_FACE_PROFILE_END, LL_PCODE_PROFILE_CIRCLE, LL_PCODE_PROFILE_CIRCLE_HALF, LL_PCODE_PROFILE_EQUALTRI, LL_PCODE_PROFILE_ISOTRI, LL_PCODE_PROFILE_MASK, LL_PCODE_PROFILE_RIGHTTRI, LL_PCODE_PROFILE_SQUARE, llceil(), llendl, llerrs, LLProfile::mParams, mPathp, mProfilep, and S32.
| void LLVolume::generateSilhouetteVertices | ( | std::vector< LLVector3 > & | vertices, | |
| std::vector< LLVector3 > & | normals, | |||
| std::vector< S32 > & | segments, | |||
| const LLVector3 & | view_vec, | |||
| const LLMatrix4 & | mat, | |||
| const LLMatrix3 & | norm_mat | |||
| ) | 
Definition at line 3079 of file llvolume.cpp.
References LLVolumeFace::CAP_MASK, count, f, face, getNumVolumeFaces(), i, j, LLVector3::normVec(), S32, v1, v2, and vector_append().
Referenced by LLVOVolume::generateSilhouette().
| LLVolumeParams LLVolume::getCopyOfParams | ( | ) | const  [inline] | 
| F32 LLVolume::getDetail | ( | ) | const  [inline] | 
| const std::vector<Point>& LLVolume::getMesh | ( | ) | const  [inline] | 
Definition at line 853 of file llvolume.h.
References mMesh.
Referenced by LLVolumeFace::createCap(), LLVolumeFace::createSide(), and LLVolumeFace::createUnCutCubeCap().
| S32 LLVolume::getNumFaces | ( | ) | const  [inline] | 
Definition at line 846 of file llvolume.h.
References LLProfile::mFaces, mProfilep, and S32.
Referenced by createVolumeFaces(), LLVOVolume::genBBoxes(), isFaceMaskValid(), lineSegmentIntersect(), LLVOVolume::updateFaceFlags(), and LLVOVolume::updateGeometry().
| S32 LLVolume::getNumVolumeFaces | ( | ) | const  [inline] | 
Definition at line 847 of file llvolume.h.
References mNumVolumeFaces.
Referenced by LLViewerCamera::areVertsVisible(), generateSilhouetteVertices(), and LLFace::genVolumeBBoxes().
| const LLVolumeParams& LLVolume::getParams | ( | ) | const  [inline] | 
Definition at line 849 of file llvolume.h.
References mParams.
Referenced by LLVOVolume::canBeFlexible(), LLVolumeMgr::cleanupVolume(), LLVolumeFace::createSide(), LLVolumeImplFlexible::doUpdateGeometry(), LLPanelObject::getState(), LLVOVolume::isFlexible(), LLVolumeImplFlexible::setAttributesOfAllSections(), LLVOVolume::setIsFlexible(), LLVOVolume::updateGeometry(), and LLVOTextBubble::updateGeometry().
| LLPath& LLVolume::getPath | ( | ) | const  [inline] | 
Definition at line 852 of file llvolume.h.
References mPathp.
Referenced by LLVolumeFace::createCap(), LLVolumeFace::createSide(), LLVolumeFace::createUnCutCubeCap(), createVolumeFaces(), LLVolumeImplFlexible::doFlexibleUpdate(), and getTriangleIndices().
| U8 LLVolume::getPathType | ( | ) | const  [inline] | 
Definition at line 845 of file llvolume.h.
References LLPathParams::getCurveType(), LLPath::mParams, and mPathp.
Referenced by LLVolumeFace::createSide().
| const LLProfile& LLVolume::getProfile | ( | ) | const  [inline] | 
Definition at line 851 of file llvolume.h.
References mProfilep.
Referenced by LLVolumeFace::createCap(), LLVolumeFace::createSide(), LLVolumeFace::createUnCutCubeCap(), and getTriangleIndices().
| U8 LLVolume::getProfileType | ( | ) | const  [inline] | 
Definition at line 844 of file llvolume.h.
References LLProfileParams::getCurveType(), LLProfile::mParams, and mProfilep.
Referenced by LLVolumeFace::createSide().
| S32 LLVolume::getSculptLevel | ( | ) | const  [inline] | 
Definition at line 865 of file llvolume.h.
References mSculptLevel.
Referenced by LLVOVolume::sculpt(), and LLVOVolume::updateTextures().
Definition at line 2432 of file llvolume.cpp.
References count, FALSE, getPath(), getProfile(), LLProfile::getTotal(), LLProfile::getTotalOut(), i, indices, LLProfile::isHollow(), LLPath::isOpen(), LLProfile::isOpen(), llassert, llendl, llinfos, llwarns, LLVector3::magVecSquared(), MAX_INDEX, mMesh, LLPath::mPath, LLProfile::mProfile, LLVector3::mV, NULL, s, S32, t, TRUE, and VZ.
| const LLVolumeFace& LLVolume::getVolumeFace | ( | const S32 | f | ) | const  [inline] | 
Definition at line 896 of file llvolume.h.
References mVolumeFaces.
Referenced by LLViewerCamera::areVertsVisible(), LLFace::genVolumeBBoxes(), LLVOTextBubble::getGeometry(), LLFace::getGeometryVolume(), lineSegmentIntersect(), LLVOVolume::updateFaceSize(), and LLVOTextBubble::updateFaceSize().
| BOOL LLVolume::isConvex | ( | ) | const | 
Definition at line 3866 of file llvolume.cpp.
References getNumFaces(), i, LLProfile::mFaces, mProfilep, and S32.
| BOOL LLVolume::isUnique | ( | ) | const  [inline] | 
Definition at line 863 of file llvolume.h.
References mUnique.
Referenced by LLVolumeMgr::cleanupVolume().
Definition at line 3269 of file llvolume.cpp.
References end, face, getNumFaces(), getVolumeFace(), i, j, LLTriangleLineSegmentIntersect(), S32, start, v1, and v2.
Referenced by LLVOVolume::lineSegmentIntersect().
| void LLVolume::regen | ( | ) | 
Definition at line 1642 of file llvolume.cpp.
References createVolumeFaces(), and generate().
Referenced by LLVolumeImplFlexible::doFlexibleRebuild().
| void LLVolume::sculpt | ( | U16 | sculpt_width, | |
| U16 | sculpt_height, | |||
| S8 | sculpt_components, | |||
| const U8 * | sculpt_data, | |||
| S32 | sculpt_level | |||
| ) | 
Definition at line 1846 of file llvolume.cpp.
References createVolumeFaces(), F_PI, FALSE, LLProfile::generate(), LLPath::generate(), LLVolumeParams::getSculptType(), i, LLPath::isOpen(), LL_SCULPT_TYPE_CYLINDER, LL_SCULPT_TYPE_SPHERE, LL_SCULPT_TYPE_TORUS, LLVector3::magVec(), mDetail, mFaceMask, LLProfile::mFaces, mMesh, mParams, LLPath::mPath, mPathp, LLVolume::Point::mPos, LLProfile::mProfile, mProfilep, mSculptLevel, LLVector3::mV, NULL, RADIUS, s, S32, SCULPT_MIN_AREA, sculpt_rgb_to_vector(), sNumMeshPoints, t, TRUE, u, v, x, and y.
Referenced by LLVOVolume::sculpt().
| void LLVolume::setDirty | ( | ) |  [inline] | 
Definition at line 856 of file llvolume.h.
References mPathp, mProfilep, LLProfile::setDirty(), and LLPath::setDirty().
| friend class LLVolumeLODGroup  [friend] | 
Definition at line 821 of file llvolume.h.
| std::ostream& operator<< | ( | std::ostream & | s, | |
| const LLVolume * | volumep | |||
| ) |  [friend] | 
Definition at line 3956 of file llvolume.cpp.
| std::ostream& operator<< | ( | std::ostream & | s, | |
| const LLVolume & | volume | |||
| ) |  [friend] | 
Definition at line 3946 of file llvolume.cpp.
| F32 LLVolume::mDetail  [protected] | 
Definition at line 909 of file llvolume.h.
Referenced by generate(), getDetail(), LLVolume(), and sculpt().
| BOOL LLVolume::mGenerateSingleFace  [protected] | 
| std::vector<Point> LLVolume::mMesh  [protected] | 
Definition at line 915 of file llvolume.h.
Referenced by generate(), getMesh(), getMeshPt(), getTriangleIndices(), sculpt(), and ~LLVolume().
| S32 LLVolume::mNumVolumeFaces  [protected] | 
Definition at line 918 of file llvolume.h.
Referenced by createVolumeFaces(), getNumVolumeFaces(), and LLVolume().
| LLVolumeParams LLVolume::mParams  [protected] | 
Definition at line 912 of file llvolume.h.
Referenced by getCopyOfParams(), getParams(), isConvex(), LLVolume(), operator<<(), and sculpt().
| LLPath* LLVolume::mPathp  [protected] | 
Definition at line 913 of file llvolume.h.
Referenced by generate(), generateFaceMask(), getPath(), getPathType(), LLVolume(), operator<<(), sculpt(), setDirty(), and ~LLVolume().
| LLProfile* LLVolume::mProfilep  [protected] | 
Definition at line 914 of file llvolume.h.
Referenced by createVolumeFaces(), generate(), generateFaceMask(), getNumFaces(), getProfile(), getProfileType(), isCap(), isFaceMaskValid(), isFlat(), LLVolume(), operator<<(), sculpt(), setDirty(), and ~LLVolume().
| S32 LLVolume::mSculptLevel  [protected] | 
Definition at line 910 of file llvolume.h.
Referenced by getSculptLevel(), LLVolume(), and sculpt().
| BOOL LLVolume::mUnique  [protected] | 
| LLVolumeFace* LLVolume::mVolumeFaces  [protected] | 
Definition at line 919 of file llvolume.h.
Referenced by createVolumeFaces(), getVolumeFace(), LLVolume(), and ~LLVolume().
| S32 LLVolume::sNumMeshPoints = 0  [static] | 
 1.4.7
 1.4.7