#include <llvolume.h>
Collaboration diagram for LLProfile:
Public Member Functions | |
LLProfile (const LLProfileParams ¶ms) | |
~LLProfile () | |
S32 | getTotal () const |
S32 | getTotalOut () const |
BOOL | isHollow () const |
BOOL | isFlat (S32 face) const |
BOOL | isOpen () const |
void | setDirty () |
BOOL | generate (BOOL path_open, F32 detail=1.0f, S32 split=0, BOOL is_sculpted=FALSE) |
BOOL | isConcave () const |
Public Attributes | |
const LLProfileParams & | mParams |
std::vector< LLVector3 > | mProfile |
std::vector< LLVector2 > | mNormals |
std::vector< Face > | mFaces |
std::vector< LLVector3 > | mEdgeNormals |
std::vector< LLVector3 > | mEdgeCenters |
F32 | mMaxX |
F32 | mMinX |
Protected Member Functions | |
void | genNormals () |
void | genNGon (S32 sides, F32 offset=0.0f, F32 bevel=0.0f, F32 ang_scale=1.f, S32 split=0) |
Face * | addHole (BOOL flat, F32 sides, F32 offset, F32 box_hollow, F32 ang_scale, S32 split=0) |
Face * | addCap (S16 faceID) |
Face * | addFace (S32 index, S32 count, F32 scaleU, S16 faceID, BOOL flat) |
Protected Attributes | |
BOOL | mOpen |
BOOL | mConcave |
BOOL | mDirty |
S32 | mTotalOut |
S32 | mTotal |
Friends | |
std::ostream & | operator<< (std::ostream &s, const LLProfile &profile) |
Classes | |
struct | Face |
Definition at line 638 of file llvolume.h.
LLProfile::LLProfile | ( | const LLProfileParams & | params | ) | [inline] |
Definition at line 641 of file llvolume.h.
LLProfile::~LLProfile | ( | ) |
Definition at line 1605 of file llvolume.cpp.
LLProfile::Face * LLProfile::addCap | ( | S16 | faceID | ) | [protected] |
Definition at line 156 of file llvolume.cpp.
References face, mFaces, mTotal, TRUE, and vector_append().
Referenced by generate().
LLProfile::Face * LLProfile::addFace | ( | S32 | index, | |
S32 | count, | |||
F32 | scaleU, | |||
S16 | faceID, | |||
BOOL | flat | |||
) | [protected] |
Definition at line 168 of file llvolume.cpp.
References face, FALSE, mFaces, and vector_append().
Referenced by addHole(), and generate().
LLProfile::Face * LLProfile::addHole | ( | BOOL | flat, | |
F32 | sides, | |||
F32 | offset, | |||
F32 | box_hollow, | |||
F32 | ang_scale, | |||
S32 | split = 0 | |||
) | [protected] |
Definition at line 431 of file llvolume.cpp.
References addFace(), face, genNGon(), i, j, LL_FACE_INNER_SIDE, llfloor(), mFaces, mProfile, mTotal, mTotalOut, and S32.
Referenced by generate().
BOOL LLProfile::generate | ( | BOOL | path_open, | |
F32 | detail = 1.0f , |
|||
S32 | split = 0 , |
|||
BOOL | is_sculpted = FALSE | |||
) |
Definition at line 492 of file llvolume.cpp.
References addCap(), addFace(), addHole(), end, f, FALSE, genNGon(), LLProfileParams::getBegin(), LLProfileParams::getCurveType(), LLProfileParams::getEnd(), LLProfileParams::getHollow(), i, LL_FACE_OUTER_SIDE_0, LL_FACE_PATH_BEGIN, LL_FACE_PATH_END, LL_FACE_PROFILE_BEGIN, LL_FACE_PROFILE_END, LL_PCODE_HOLE_CIRCLE, LL_PCODE_HOLE_MASK, LL_PCODE_HOLE_SAME, LL_PCODE_HOLE_SQUARE, LL_PCODE_HOLE_TRIANGLE, 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, llfloor(), llinfos, llwarns, mDirty, mFaces, MIN_DETAIL_FACES, MIN_LOD, mOpen, mParams, mProfile, mTotal, mTotalOut, S32, sculpt_sides(), and TRUE.
Referenced by LLVolume::generate(), and LLVolume::sculpt().
void LLProfile::genNGon | ( | S32 | sides, | |
F32 | offset = 0.0f , |
|||
F32 | bevel = 0.0f , |
|||
F32 | ang_scale = 1.f , |
|||
S32 | split = 0 | |||
) | [protected] |
Definition at line 185 of file llvolume.cpp.
References end, f, F_PI, FALSE, LLProfileParams::getBegin(), LLProfileParams::getEnd(), i, isHollow(), lerp(), llround(), mConcave, mMaxX, mMinX, mOpen, mParams, mProfile, mTotal, LLVector3::mV, p, S32, LLVector3::setVec(), t, TRUE, and VX.
Referenced by addHole(), and generate().
void LLProfile::genNormals | ( | ) | [protected] |
Definition at line 330 of file llvolume.cpp.
References count, f, i1, i2, isConcave(), isHollow(), lerp(), LLVector3::magVecSquared(), mEdgeCenters, mEdgeNormals, mNormals, mProfile, mTotal, mTotalOut, LLVector3::mV, LLVector3::normVec(), S32, LLVector2::setVec(), VX, VY, VZ, and LLVector3::z_axis.
S32 LLProfile::getTotal | ( | ) | const [inline] |
Definition at line 653 of file llvolume.h.
References mTotal.
Referenced by LLVolumeFace::createCap(), LLVolumeFace::createSide(), LLVolumeFace::createUnCutCubeCap(), and LLVolume::getTriangleIndices().
S32 LLProfile::getTotalOut | ( | ) | const [inline] |
Definition at line 654 of file llvolume.h.
References mTotalOut.
Referenced by LLVolume::getTriangleIndices().
BOOL LLProfile::isConcave | ( | ) | const [inline] |
BOOL LLProfile::isHollow | ( | ) | const [inline] |
Definition at line 655 of file llvolume.h.
References LLProfileParams::getHollow(), and mParams.
Referenced by LLVolume::createVolumeFaces(), LLVolume::generateFaceMask(), genNGon(), genNormals(), and LLVolume::getTriangleIndices().
BOOL LLProfile::isOpen | ( | ) | const [inline] |
Definition at line 657 of file llvolume.h.
References mOpen.
Referenced by LLVolumeFace::createSide(), LLVolume::createVolumeFaces(), LLVolume::generateFaceMask(), and LLVolume::getTriangleIndices().
void LLProfile::setDirty | ( | ) | [inline] |
std::ostream& operator<< | ( | std::ostream & | s, | |
const LLProfile & | profile | |||
) | [friend] |
Definition at line 3925 of file llvolume.cpp.
BOOL LLProfile::mConcave [protected] |
BOOL LLProfile::mDirty [protected] |
std::vector<LLVector3> LLProfile::mEdgeCenters |
std::vector<LLVector3> LLProfile::mEdgeNormals |
std::vector<Face> LLProfile::mFaces |
Definition at line 676 of file llvolume.h.
Referenced by addCap(), addFace(), addHole(), LLVolume::createVolumeFaces(), LLVolume::generate(), generate(), LLVolume::getNumFaces(), LLVolume::isCap(), LLVolume::isFaceMaskValid(), isFlat(), LLVolume::isFlat(), and LLVolume::sculpt().
std::vector<LLVector2> LLProfile::mNormals |
BOOL LLProfile::mOpen [protected] |
Definition at line 693 of file llvolume.h.
Referenced by generate(), genNGon(), isOpen(), and operator<<().
Definition at line 662 of file llvolume.h.
Referenced by LLVolumeFace::createCap(), LLVolume::generate(), generate(), LLVolume::generateFaceMask(), genNGon(), LLVolume::getProfileType(), and isHollow().
std::vector<LLVector3> LLProfile::mProfile |
Definition at line 674 of file llvolume.h.
Referenced by addHole(), LLVolumeFace::createCap(), LLVolumeFace::createSide(), LLVolumeFace::createUnCutCubeCap(), LLVolume::generate(), generate(), genNGon(), genNormals(), LLVolume::getTriangleIndices(), and LLVolume::sculpt().
S32 LLProfile::mTotal [protected] |
Definition at line 698 of file llvolume.h.
Referenced by addCap(), addHole(), generate(), genNGon(), genNormals(), getTotal(), and operator<<().
S32 LLProfile::mTotalOut [protected] |
Definition at line 697 of file llvolume.h.
Referenced by addHole(), generate(), genNormals(), getTotalOut(), and operator<<().