llvolume.h File Reference

LLVolume base class. More...

#include <iostream>
#include "lldarray.h"
#include "lluuid.h"
#include "v4color.h"
#include "v2math.h"
#include "v3math.h"
#include "llquaternion.h"
#include "llstrider.h"
#include "v4coloru.h"
#include "llmemory.h"
#include "llfile.h"

Include dependency graph for llvolume.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LLProfileParams
class  LLPathParams
class  LLVolumeParams
struct  LLVolumeParams::compare
class  LLProfile
struct  LLProfile::Face
class  LLPath
struct  LLPath::PathPt
class  LLDynamicPath
class  LLVolumeFace
class  LLVolumeFace::VertexData
class  LLVolume
struct  LLVolume::Point
struct  LLVolume::FaceParams

Defines

#define U8_TO_F32(x)   (F32)(*((S8 *)&x))

Typedefs

typedef U16 LLFaceID
typedef LLVolumeParamsLLVolumeParamsPtr
typedef const LLVolumeParamsconst_LLVolumeParamsPtr

Functions

std::ostream & operator<< (std::ostream &s, const LLVolumeParams &volume_params)
LLVector3 calc_binormal_from_triangle (const LLVector3 &pos0, const LLVector2 &tex0, const LLVector3 &pos1, const LLVector2 &tex1, const LLVector3 &pos2, const LLVector2 &tex2)

Variables

const S32 MIN_DETAIL_FACES = 6
const S32 MIN_LOD = 0
const S32 MAX_LOD = 3
const F32 MIN_VOLUME_PROFILE_WIDTH = 0.05f
const F32 MIN_VOLUME_PATH_WIDTH = 0.05f
const F32 CUT_QUANTA = 0.00002f
const F32 SCALE_QUANTA = 0.01f
const F32 SHEAR_QUANTA = 0.01f
const F32 TAPER_QUANTA = 0.01f
const F32 REV_QUANTA = 0.015f
const F32 HOLLOW_QUANTA = 0.00002f
const S32 MAX_VOLUME_TRIANGLE_INDICES = 10000
const LLPCode LL_PCODE_HOLLOW_MASK = 0x80
const LLPCode LL_PCODE_SEGMENT_MASK = 0x40
const LLPCode LL_PCODE_PATCH_MASK = 0x20
const LLPCode LL_PCODE_HEMI_MASK = 0x10
const LLPCode LL_PCODE_BASE_MASK = 0x0F
const LLPCode LL_PCODE_CUBE = 1
const LLPCode LL_PCODE_PRISM = 2
const LLPCode LL_PCODE_TETRAHEDRON = 3
const LLPCode LL_PCODE_PYRAMID = 4
const LLPCode LL_PCODE_CYLINDER = 5
const LLPCode LL_PCODE_CONE = 6
const LLPCode LL_PCODE_SPHERE = 7
const LLPCode LL_PCODE_TORUS = 8
const LLPCode LL_PCODE_VOLUME = 9
const LLPCode LL_PCODE_APP = 14
const LLPCode LL_PCODE_LEGACY = 15
const LLPCode LL_PCODE_LEGACY_AVATAR = 0x20 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_LEGACY_GRASS = 0x50 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_TREE_NEW = 0x60 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_LEGACY_PART_SYS = 0x80 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_LEGACY_ROCK = 0x90 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_LEGACY_TEXT_BUBBLE = 0xE0 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_LEGACY_TREE = 0xF0 | LL_PCODE_LEGACY
const LLPCode LL_PCODE_CYLINDER_HEMI = LL_PCODE_CYLINDER | LL_PCODE_HEMI_MASK
const LLPCode LL_PCODE_CONE_HEMI = LL_PCODE_CONE | LL_PCODE_HEMI_MASK
const LLPCode LL_PCODE_SPHERE_HEMI = LL_PCODE_SPHERE | LL_PCODE_HEMI_MASK
const LLPCode LL_PCODE_TORUS_HEMI = LL_PCODE_TORUS | LL_PCODE_HEMI_MASK
const U8 LL_PCODE_PROFILE_MASK = 0x0f
const U8 LL_PCODE_PROFILE_MIN = 0x00
const U8 LL_PCODE_PROFILE_CIRCLE = 0x00
const U8 LL_PCODE_PROFILE_SQUARE = 0x01
const U8 LL_PCODE_PROFILE_ISOTRI = 0x02
const U8 LL_PCODE_PROFILE_EQUALTRI = 0x03
const U8 LL_PCODE_PROFILE_RIGHTTRI = 0x04
const U8 LL_PCODE_PROFILE_CIRCLE_HALF = 0x05
const U8 LL_PCODE_PROFILE_MAX = 0x05
const U8 LL_PCODE_HOLE_MASK = 0xf0
const U8 LL_PCODE_HOLE_MIN = 0x00
const U8 LL_PCODE_HOLE_SAME = 0x00
const U8 LL_PCODE_HOLE_CIRCLE = 0x10
const U8 LL_PCODE_HOLE_SQUARE = 0x20
const U8 LL_PCODE_HOLE_TRIANGLE = 0x30
const U8 LL_PCODE_HOLE_MAX = 0x03
const U8 LL_PCODE_PATH_IGNORE = 0x00
const U8 LL_PCODE_PATH_MIN = 0x01
const U8 LL_PCODE_PATH_LINE = 0x10
const U8 LL_PCODE_PATH_CIRCLE = 0x20
const U8 LL_PCODE_PATH_CIRCLE2 = 0x30
const U8 LL_PCODE_PATH_TEST = 0x40
const U8 LL_PCODE_PATH_FLEXIBLE = 0x80
const U8 LL_PCODE_PATH_MAX = 0x08
const LLFaceID LL_FACE_PATH_BEGIN = 0x1 << 0
const LLFaceID LL_FACE_PATH_END = 0x1 << 1
const LLFaceID LL_FACE_INNER_SIDE = 0x1 << 2
const LLFaceID LL_FACE_PROFILE_BEGIN = 0x1 << 3
const LLFaceID LL_FACE_PROFILE_END = 0x1 << 4
const LLFaceID LL_FACE_OUTER_SIDE_0 = 0x1 << 5
const LLFaceID LL_FACE_OUTER_SIDE_1 = 0x1 << 6
const LLFaceID LL_FACE_OUTER_SIDE_2 = 0x1 << 7
const LLFaceID LL_FACE_OUTER_SIDE_3 = 0x1 << 8
const U8 LL_SCULPT_TYPE_NONE = 0
const U8 LL_SCULPT_TYPE_SPHERE = 1
const U8 LL_SCULPT_TYPE_TORUS = 2
const U8 LL_SCULPT_TYPE_PLANE = 3
const U8 LL_SCULPT_TYPE_CYLINDER = 4


Detailed Description

LLVolume base class.

LicenseInfo
firstyear=2002&license=viewergpl

Copyright (c) 2002-2008, Linden Research, Inc.

Second Life Viewer Source Code The source code in this file ("Source Code") is provided by Linden Lab to you under the terms of the GNU General Public License, version 2.0 ("GPL"), unless you have obtained a separate licensing agreement ("Other License"), formally executed by you and Linden Lab. Terms of the GPL can be found in doc/GPL-license.txt in this distribution, or online at http://secondlifegrid.net/programs/open_source/licensing/gplv2

There are special exceptions to the terms and conditions of the GPL as it is applied to this Source Code. View the full text of the exception in the file doc/FLOSS-exception.txt in this software distribution, or online at http://secondlifegrid.net/programs/open_source/licensing/flossexception

By copying, modifying or distributing this software, you acknowledge that you have read and understood your obligations described above, and agree to abide by those obligations.

ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE. $/LicenseInfo$

Definition in file llvolume.h.


Define Documentation

#define U8_TO_F32 (  )     (F32)(*((S8 *)&x))

Definition at line 306 of file llvolume.h.

Referenced by LLPathParams::LLPathParams().


Typedef Documentation

Definition at line 522 of file llvolume.h.

typedef U16 LLFaceID

Definition at line 164 of file llvolume.h.

Definition at line 521 of file llvolume.h.


Function Documentation

LLVector3 calc_binormal_from_triangle ( const LLVector3 pos0,
const LLVector2 tex0,
const LLVector3 pos1,
const LLVector2 tex1,
const LLVector3 pos2,
const LLVector2 tex2 
)

Definition at line 5119 of file llvolume.cpp.

References LLVector2::mV, LLVector3::mV, r1, r2, VX, VY, and VZ.

Referenced by LLVolumeFace::createBinormals(), LLVolumeFace::createCap(), and LLVolumeFace::createUnCutCubeCap().

Here is the caller graph for this function:

std::ostream& operator<< ( std::ostream &  s,
const LLVolumeParams volume_params 
)

Definition at line 4134 of file llvolume.cpp.

References LLVolumeParams::mPathParams, and LLVolumeParams::mProfileParams.


Variable Documentation

const F32 CUT_QUANTA = 0.00002f

const F32 HOLLOW_QUANTA = 0.00002f

const LLFaceID LL_FACE_INNER_SIDE = 0x1 << 2

const LLFaceID LL_FACE_OUTER_SIDE_0 = 0x1 << 5

const LLFaceID LL_FACE_OUTER_SIDE_1 = 0x1 << 6

Definition at line 172 of file llvolume.h.

const LLFaceID LL_FACE_OUTER_SIDE_2 = 0x1 << 7

Definition at line 173 of file llvolume.h.

const LLFaceID LL_FACE_OUTER_SIDE_3 = 0x1 << 8

Definition at line 174 of file llvolume.h.

const LLFaceID LL_FACE_PATH_BEGIN = 0x1 << 0

const LLFaceID LL_FACE_PATH_END = 0x1 << 1

const LLFaceID LL_FACE_PROFILE_BEGIN = 0x1 << 3

const LLFaceID LL_FACE_PROFILE_END = 0x1 << 4

const LLPCode LL_PCODE_APP = 14

Definition at line 93 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 125 of file llvolume.h.

Referenced by LLToolPlacer::addObject().

Definition at line 88 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 92 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 124 of file llvolume.h.

Referenced by LLToolPlacer::addObject().

Definition at line 84 of file llvolume.h.

Referenced by LLPrimitive::pCodeToString().

const U8 LL_PCODE_HOLE_CIRCLE = 0x10

const U8 LL_PCODE_HOLE_MASK = 0xf0

const U8 LL_PCODE_HOLE_MAX = 0x03

Definition at line 150 of file llvolume.h.

Referenced by LLVolumeParams::setType().

const U8 LL_PCODE_HOLE_MIN = 0x00

Definition at line 145 of file llvolume.h.

const U8 LL_PCODE_HOLE_SAME = 0x00

const U8 LL_PCODE_HOLE_SQUARE = 0x20

const U8 LL_PCODE_HOLE_TRIANGLE = 0x30

Definition at line 81 of file llvolume.h.

Definition at line 104 of file llvolume.h.

Referenced by LLPrimitive::pCodeToString().

const LLPCode LL_PCODE_LEGACY_AVATAR = 0x20 | LL_PCODE_LEGACY

const LLPCode LL_PCODE_LEGACY_GRASS = 0x50 | LL_PCODE_LEGACY

const LLPCode LL_PCODE_LEGACY_PART_SYS = 0x80 | LL_PCODE_LEGACY

const LLPCode LL_PCODE_LEGACY_ROCK = 0x90 | LL_PCODE_LEGACY

Definition at line 115 of file llvolume.h.

const LLPCode LL_PCODE_LEGACY_TEXT_BUBBLE = 0xE0 | LL_PCODE_LEGACY

const LLPCode LL_PCODE_LEGACY_TREE = 0xF0 | LL_PCODE_LEGACY

Definition at line 83 of file llvolume.h.

const U8 LL_PCODE_PATH_CIRCLE = 0x20

const U8 LL_PCODE_PATH_CIRCLE2 = 0x30

Definition at line 156 of file llvolume.h.

Referenced by LLPath::generate(), and LLPanelObject::getState().

const U8 LL_PCODE_PATH_FLEXIBLE = 0x80

const U8 LL_PCODE_PATH_IGNORE = 0x00

Definition at line 152 of file llvolume.h.

const U8 LL_PCODE_PATH_LINE = 0x10

const U8 LL_PCODE_PATH_MAX = 0x08

Definition at line 159 of file llvolume.h.

Referenced by LLVolumeParams::setType().

const U8 LL_PCODE_PATH_MIN = 0x01

Definition at line 153 of file llvolume.h.

Referenced by LLVolumeParams::setType().

const U8 LL_PCODE_PATH_TEST = 0x40

Definition at line 157 of file llvolume.h.

Referenced by LLPath::generate().

Definition at line 89 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

const U8 LL_PCODE_PROFILE_MASK = 0x0f

const U8 LL_PCODE_PROFILE_MAX = 0x05

Definition at line 141 of file llvolume.h.

Referenced by LLVolumeParams::setType().

const U8 LL_PCODE_PROFILE_MIN = 0x00

Definition at line 134 of file llvolume.h.

Definition at line 91 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 82 of file llvolume.h.

Definition at line 94 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 126 of file llvolume.h.

Referenced by LLToolPlacer::addObject().

Definition at line 90 of file llvolume.h.

Referenced by LLToolPlacer::addObject(), and LLPrimitive::pCodeToString().

Definition at line 95 of file llvolume.h.

Referenced by LLToolPlacer::addObject().

Definition at line 127 of file llvolume.h.

const LLPCode LL_PCODE_TREE_NEW = 0x60 | LL_PCODE_LEGACY

Definition at line 184 of file llvolume.h.

Referenced by LLVolumeFace::createSide(), and LLVolume::sculptGenerateMapVertices().

Definition at line 180 of file llvolume.h.

Referenced by LLVolumeFace::createSide().

Definition at line 183 of file llvolume.h.

Definition at line 182 of file llvolume.h.

Referenced by LLVolumeFace::createSide(), and LLVolume::sculptGenerateMapVertices().

const S32 MAX_LOD = 3

Definition at line 61 of file llvolume.h.

Referenced by LLImagePreviewSculpted::LLImagePreviewSculpted().

Definition at line 76 of file llvolume.h.

Referenced by LLVolume::getTriangleIndices().

const S32 MIN_DETAIL_FACES = 6

Definition at line 59 of file llvolume.h.

Referenced by LLPath::generate(), and LLProfile::generate().

const S32 MIN_LOD = 0

const F32 MIN_VOLUME_PATH_WIDTH = 0.05f

Definition at line 67 of file llvolume.h.

Definition at line 66 of file llvolume.h.

const F32 REV_QUANTA = 0.015f

const F32 SCALE_QUANTA = 0.01f

const F32 SHEAR_QUANTA = 0.01f

const F32 TAPER_QUANTA = 0.01f


Generated on Fri May 16 08:35:15 2008 for SecondLife by  doxygen 1.5.5