From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/class_NL3D__CPatch.html | 4052 ++++++++++++++++++++++++++++++ 1 file changed, 4052 insertions(+) create mode 100644 docs/doxygen/nel/class_NL3D__CPatch.html (limited to 'docs/doxygen/nel/class_NL3D__CPatch.html') diff --git a/docs/doxygen/nel/class_NL3D__CPatch.html b/docs/doxygen/nel/class_NL3D__CPatch.html new file mode 100644 index 00000000..9df0c99f --- /dev/null +++ b/docs/doxygen/nel/class_NL3D__CPatch.html @@ -0,0 +1,4052 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

NL3D::CPatch Class Reference

A landscape patch. +More... +

+#include <patch.h> +

+Collaboration diagram for NL3D::CPatch:

Collaboration graph
+ + + + + + + + + + + + + +
[legend]
List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Methods

 CPatch ()
 Constructor. More...

 ~CPatch ()
 dtor. More...

void compile (CZone *z, uint8 orderS, uint8 orderT, CTessVertex *baseVertices[4], float errorSize=0)
 compile a valid patch. More...

void release ()
 Un-compile a patch. Tesselation is deleted. if patch is not compiled, no - op. More...

CZonegetZone () const
uint8 getOrderS () const
uint8 getOrderT () const
float getErrorSize () const
sint getFar0 () const
sint getFar1 () const
CAABBox buildBBox () const
 Build the bbox of the patch, according to ctrl points, and displacement map max value. More...

const CBSphere& getBSphere () const
 Return the bounding sphere. Work only when zone compiled. More...

CVector computeVertex (float s, float t) const
 Compute a vertex. More...

void unbind (CPatch *except[4])
 unbind the patch from All neighbors. More...

void bind (CBindInfo Edges[4])
 bind the patch to 4 neighbors, given in this patch edge order (0,1,2,3). More...

void forceMergeAtTileLevel ()
 For changing TileMaxSubdivision. force tesselation to be under tile. More...

void forceNoClip ()
 Classify this patch as UnClipped. More...

void forceClip ()
 Classify this patch as Clipped. More...

void clip (const std::vector<CPlane> &pyramid)
 Classify this patch. More...

void refine ()
 Refine / geomorph this patch. Even if clipped. More...

void preRender (const std::vector<CPlane> &pyramid)
 preRender this patch, if not clipped. Build RdrFace List .... More...

void renderFar0 ()
 Render this patch, if not clipped (append to VertexBuffers / materials primitive block). More...

void renderFar1 ()
void renderTile (sint pass)
void resetRenderFar ()
void deleteTileUvs ()
void recreateTileUvs ()
void serial (NLMISC::IStream &f)
void unpack (CBezierPatch &p) const
void expandShading (uint8 * Shading, uint ratio=1)
 Expand the shading part of the patch in bilinear. More...

void unpackShadowMap (class CTileLumel *pShadow, uint ratio=1)
 Unpack the lumels of the patches. More...

void packShadowMap (const class CTileLumel *pLumel)
 Pack the lumels of the patches. More...

void resetCompressedLumels ()
 Rebuild the packed lumels without shadow. More...

void clearUncompressedLumels ()
 Clear the uncompressed lumel of the patch. More...

void setSmoothFlag (uint edge, bool flag)
 Set the smooth flag for the n-th edge. More...

bool getSmoothFlag (uint edge)
 Get the smooth flag for the n-th edge. More...

bool isClipped () const

Public Attributes

CVector3s Vertices [4]
 The patch coordinates (see CBezierPatch). More...

CVector3s Tangents [8]
CVector3s Interiors [4]
std::vector<uint8CompressedLumels
std::vector<CTileLumelUncompressedLumels
std::vector<CTileElementTiles
std::vector<CTileColorTileColors

Private Types

enum  TFarVertType {
+  FVMasterBlock = 0, +
+  FVTessBlock, +
+  FVTessBlockEdge +
+ }

Private Methods

void computeDefaultErrorSize ()
void makeRoots ()
CTessFacegetRootFaceForEdge (sint edge) const
CTessVertexgetRootVertexForEdge (sint edge) const
void changeEdgeNeighbor (sint edge, CTessFace *to)
void resetMasterBlock ()
void clearTessBlocks ()
void addRefTessBlocks ()
void decRefTessBlocks ()
uint getNumTessBlock (CTessFace *face)
void getNumTessBlock (CParamCoord pc, TFarVertType &type, uint &numtb)
void appendFaceToRenderList (CTessFace *face)
void removeFaceFromRenderList (CTessFace *face)
void appendFaceToTileRenderList (CTessFace *face)
void removeFaceFromTileRenderList (CTessFace *face)
void appendTileMaterialToRenderList (CTileMaterial *tm)
void removeTileMaterialFromRenderList (CTileMaterial *tm)
void appendFarVertexToRenderList (CTessFarVertex *fv)
void removeFarVertexFromRenderList (CTessFarVertex *fv)
void appendNearVertexToRenderList (CTileMaterial *tileMat, CTessNearVertex *nv)
void removeNearVertexFromRenderList (CTileMaterial *tileMat, CTessNearVertex *nv)
CPatchRdrPassgetTileRenderPass (sint tileId, sint pass)
void getTileUvInfo (sint tileId, sint pass, bool alpha, uint8 &orient, CVector &uvScaleBias, bool &is256x256, uint8 &uvOff)
uint getTileLightMap (sint ts, sint tt, CPatchRdrPass *&rdrpass)
void getTileLightMapUvInfo (uint tileLightMapId, CVector &uvScaleBias)
void releaseTileLightMap (uint tileLightMapId)
void fillFar0VB (CTessList<CTessFarVertex> &vertList)
void fillFar1VB (CTessList<CTessFarVertex> &vertList)
void fillTileVB (CTessList<CTessNearVertex> &vertList)
void addFar0TriList (CPatchRdrPass *pass, CTessList<CTessFace> &flist)
void addFar1TriList (CPatchRdrPass *pass, CTessList<CTessFace> &flist)
void addTileTriList (CPatchRdrPass *pass, CTessList<CTileFace> &flist)
CBezierPatchunpackIntoCache () const

Private Attributes

CZoneZone
uint8 OrderS
uint8 OrderT
sint TessBlockLimitLevel
sint TileLimitLevel
sint SquareLimitLevel
float ErrorSize
CTessFaceSon0
CTessFaceSon1
CTessVertexBaseVertices [4]
CTessFarVertex BaseFarVertices [4]
CBSphere BSphere
sint Far0
sint Far1
float Far0UScale
float Far0VScale
float Far0UBias
float Far0VBias
float Far1UScale
float Far1VScale
float Far1UBias
float Far1VBias
uint8 Flags
 Flags NL_PATCH_FAR0_ROTATED and NL_PATCH_FAR1_ROTATED NL_PATCH_FAR0_ROTATED for Far0, NL_PATCH_FAR1_ROTATED for Far1 If the flag is set, the far texture of the patch is rotated of 1 (to the left of course). More...

bool Clipped
bool ComputeTileErrorMetric
bool TileFarTransition
CPatchRdrPassPass0
CPatchRdrPassPass1
float TransitionSqrMin
float OOTransitionSqrDelta
CTessBlock MasterBlock
std::vector<CTessBlockTessBlocks
sint TessBlockRefCount

Static Private Attributes

uint8 _ShadingBuffer []
 Static buffer used to expand shading in expandShading. More...

uint32 _Version = 2
 Stream version of the class. More...

CBezierPatch CachePatch
const CPatch* LastPatch = NULL

Friends

class  CTessFace
class  CZone
+

Detailed Description

+A landscape patch. +

+QuadPatch layout (same notations as 3ds Max SDK). +

+A---> ad ---- da <---D | | | | v v ab ia id dc +

+| | | | +

+ba ib ic cd ^ ^ | | | | B---> bc ---- cb <---C +

+NB: Patch 1x1 or 1xX are illegal: lot of problem: rectangular geomoprh, Son0 and Son1 must be setup as tile at beginning ... +

+NB: Edges number are:

    +
  • 0: AB.
  • 1: BC.
  • 2: CD.
  • 3: DA.
+
+Author(s):
+ Lionel Berenguier , Nevrax France
+Date:
+ 2000
+

+ +

+Definition at line 132 of file patch.h.


Member Enumeration Documentation

+

+ + + + +
+ + + + + +
+enum NL3D::CPatch::TFarVertType [private] +
+
+ + + + + +
+   + + +

+

+Enumeration values:
+ + + + +
FVMasterBlock +
FVTessBlock +
FVTessBlockEdge +
+
+ +

+Definition at line 447 of file patch.h.

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + +
+NL3D::CPatch::CPatch ( + +) +
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 49 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+NL3D::CPatch::~CPatch ( + +) +
+
+ + + + + +
+   + + +

+dtor. +

+ +

+Definition at line 68 of file patch.cpp.

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::addFar0TriList ( + +CPatchRdrPass * pass, +
+CTessList< CTessFace >& flist ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1154 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::addFar1TriList ( + +CPatchRdrPass * pass, +
+CTessList< CTessFace >& flist ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1165 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::addRefTessBlocks ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 178 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::addTileTriList ( + +CPatchRdrPass * pass, +
+CTessList< CTileFace >& flist ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1176 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::appendFaceToRenderList ( + +CTessFace * face ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 266 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::appendFaceToTileRenderList ( + +CTessFace * face ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 321 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::appendFarVertexToRenderList ( + +CTessFarVertex * fv ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 404 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::appendNearVertexToRenderList ( + +CTileMaterial * tileMat, +
+CTessNearVertex * nv ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 448 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::appendTileMaterialToRenderList ( + +CTileMaterial * tm ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 378 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::bind ( + +CBindInfo Edges[4] ) +
+
+ + + + + +
+   + + +

+bind the patch to 4 neighbors, given in this patch edge order (0,1,2,3). +

+Tesselation is reseted (patch unbound first). NB: this patch and his neighborood must be compiled... NB: neighbor patchs must not be NULL (but according to NPatchs). +

+Definition at line 1427 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+CAABBox NL3D::CPatch::buildBBox ( + +) const +
+
+ + + + + +
+   + + +

+Build the bbox of the patch, according to ctrl points, and displacement map max value. +

+ +

+Definition at line 143 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::changeEdgeNeighbor ( + +sint edge, +
+CTessFace * to ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1398 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::clearTessBlocks ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 206 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::clearUncompressedLumels ( + +) +
+
+ + + + + +
+   + + +

+Clear the uncompressed lumel of the patch. +

+

+See also:
+ expandShading(), packShadowMap(), unpackShadowMap()
+

+Definition at line 1980 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::clip ( + +const std::vector< CPlane >& pyramid ) +
+
+ + + + + +
+   + + +

+Classify this patch. +

+ +

+Definition at line 709 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+void NL3D::CPatch::compile ( + +CZone * z, +
+uint8 orderS, +
+uint8 orderT, +
+CTessVertex * baseVertices[4], +
+float errorSize = 0 ) +
+
+ + + + + +
+   + + +

+compile a valid patch. +

+(init) Call this method before any other. Zone and Control points must be valid before calling compile().
+ This is an ERROR to call compile() two times.
+

+Parameters:
+ + + + + +
z + zone where the patch must be binded.
orderS + the Tile order in S direction: 2,4,8,16.
orderT + the Tile order in T direction: 2,4,8,16.
errorSize + if 0, setup() compute himself the errormetric of the patch. May be setup to surface of patch, modulated by tangents and displacement map.
+
+

+Definition at line 625 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::computeDefaultErrorSize ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 129 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+CVector NL3D::CPatch::computeVertex ( + +float s, +
+float t ) const +
+
+ + + + + +
+   + + +

+Compute a vertex. +

+Compute a vertex according to:

    +
  • s,t
  • patch control points uncompressed with zone Bias/Scale.
+Patch UV geometric correction.
    +
  • Patch noise (and noise of Patch neighbor).
+ +

+Definition at line 671 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::decRefTessBlocks ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 195 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::deleteTileUvs ( + +) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1642 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::expandShading ( + +uint8 * Shading, +
+uint ratio = 1 ) +
+
+ + + + + +
+   + + +

+Expand the shading part of the patch in bilinear. +

+Array must have a size of ((OrderS*4/ratio)+1)*((OrderT*4/ratio)+1)

+Parameters:
+ + + +
Shading + is a pointer on the destination shading buffer. Size must be ((OrderS*4/ratio)+1)*((OrderT*4/ratio)+1).
ratio + is the one over the ratio of the texture destination. Must be 1 or 2.
+
+See also:
+ unpackShadowMap(), packShadowMap(), resetCompressedLumels(), clearUncompressedLumels()
+

+Definition at line 1758 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::fillFar0VB ( + +CTessList< CTessFarVertex >& vertList ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1025 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::fillFar1VB ( + +CTessList< CTessFarVertex >& vertList ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1070 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::fillTileVB ( + +CTessList< CTessNearVertex >& vertList ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1120 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::forceClip ( + +) [inline] +
+
+ + + + + +
+   + + +

+Classify this patch as Clipped. +

+ +

+Definition at line 229 of file patch.h.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::forceMergeAtTileLevel ( + +) +
+
+ + + + + +
+   + + +

+For changing TileMaxSubdivision. force tesselation to be under tile. +

+ +

+Definition at line 1522 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::forceNoClip ( + +) [inline] +
+
+ + + + + +
+   + + +

+Classify this patch as UnClipped. +

+ +

+Definition at line 227 of file patch.h.

+

+ + + + +
+ + + + + + +
+const CBSphere & NL3D::CPatch::getBSphere ( + +) const [inline] +
+
+ + + + + +
+   + + +

+Return the bounding sphere. Work only when zone compiled. +

+ +

+Definition at line 199 of file patch.h.

+

+ + + + +
+ + + + + + +
+float NL3D::CPatch::getErrorSize ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 191 of file patch.h.

+

+ + + + +
+ + + + + + +
+sint NL3D::CPatch::getFar0 ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 192 of file patch.h.

+

+ + + + +
+ + + + + + +
+sint NL3D::CPatch::getFar1 ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 193 of file patch.h.

+

+ + + + +
+ + + + + + + + + + + + + + +
+void NL3D::CPatch::getNumTessBlock ( + +CParamCoord pc, +
+TFarVertType & type, +
+uint & numtb ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 239 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+uint NL3D::CPatch::getNumTessBlock ( + +CTessFace * face ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 223 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+uint8 NL3D::CPatch::getOrderS ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 189 of file patch.h.

+

+ + + + +
+ + + + + + +
+uint8 NL3D::CPatch::getOrderT ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 190 of file patch.h.

+

+ + + + +
+ + + + + + +
+CTessFace * NL3D::CPatch::getRootFaceForEdge ( + +sint edge ) const [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1344 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+CTessVertex * NL3D::CPatch::getRootVertexForEdge ( + +sint edge ) const [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1366 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+bool NL3D::CPatch::getSmoothFlag ( + +uint edge ) [inline] +
+
+ + + + + +
+   + + +

+Get the smooth flag for the n-th edge. +

+Return false if this edge must by smoothed, true else. +

+Definition at line 319 of file patch.h.

+

+ + + + +
+ + + + + + + + + + + + + + +
+uint NL3D::CPatch::getTileLightMap ( + +sint ts, +
+sint tt, +
+CPatchRdrPass *& rdrpass ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1677 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::getTileLightMapUvInfo ( + +uint tileLightMapId, +
+CVector & uvScaleBias ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1747 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+CPatchRdrPass * NL3D::CPatch::getTileRenderPass ( + +sint tileId, +
+sint pass ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1563 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void NL3D::CPatch::getTileUvInfo ( + +sint tileId, +
+sint pass, +
+bool alpha, +
+uint8 & orient, +
+CVector & uvScaleBias, +
+bool & is256x256, +
+uint8 & uvOff ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1592 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+CZone * NL3D::CPatch::getZone ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 188 of file patch.h.

+

+ + + + +
+ + + + + + +
+bool NL3D::CPatch::isClipped ( + +) const [inline] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 327 of file patch.h.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::makeRoots ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 484 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::packShadowMap ( + +const class CTileLumel * pLumel ) +
+
+ + + + + +
+   + + +

+Pack the lumels of the patches. +

+Lumels are classes that describe the lighting environnement at a given texel of the lightmap. It is used to compute the shadow map of the patch, compress it and uncompress it. This method compress the lumels passed in parameter and stored them in its Lumels member.

+Parameters:
+ + +
pShadow + is a pointer on the destination lumel buffer. Size must be (OrderS*4+1)*(OrderS*4+1).
+
+See also:
+ expandShading(), unpackShadowMap(), resetCompressedLumels(), clearUncompressedLumels()
+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::preRender ( + +const std::vector< CPlane >& pyramid ) +
+
+ + + + + +
+   + + +

+preRender this patch, if not clipped. Build RdrFace List .... +

+ +

+Definition at line 748 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::recreateTileUvs ( + +) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1650 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::refine ( + +) +
+
+ + + + + +
+   + + +

+Refine / geomorph this patch. Even if clipped. +

+ +

+Definition at line 680 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::release ( + +void ) +
+
+ + + + + +
+   + + +

+Un-compile a patch. Tesselation is deleted. if patch is not compiled, no - op. +

+ +

+Definition at line 74 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::releaseTileLightMap ( + +uint tileLightMapId ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1752 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::removeFaceFromRenderList ( + +CTessFace * face ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 300 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::removeFaceFromTileRenderList ( + +CTessFace * face ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 343 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::removeFarVertexFromRenderList ( + +CTessFarVertex * fv ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 425 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::removeNearVertexFromRenderList ( + +CTileMaterial * tileMat, +
+CTessNearVertex * nv ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 460 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::removeTileMaterialFromRenderList ( + +CTileMaterial * tm ) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 390 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::renderFar0 ( + +) +
+
+ + + + + +
+   + + +

+Render this patch, if not clipped (append to VertexBuffers / materials primitive block). +

+ +

+Definition at line 1187 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::renderFar1 ( + +) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1228 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::renderTile ( + +sint pass ) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1267 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::resetCompressedLumels ( + +) +
+
+ + + + + +
+   + + +

+Rebuild the packed lumels without shadow. +

+Only the interpolated color will be used. +

+

+See also:
+ expandShading(), packShadowMap(), unpackShadowMap(), clearUncompressedLumels()
+

+Definition at line 1967 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::resetMasterBlock ( + +) [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 214 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::resetRenderFar ( + +) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 726 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::serial ( + +NLMISC::IStream & f ) +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1533 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::setSmoothFlag ( + +uint edge, +
+bool flag ) [inline] +
+
+ + + + + +
+   + + +

+Set the smooth flag for the n-th edge. +

+flag is false if this edge must by smoothed, true else. +

+Definition at line 307 of file patch.h.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::unbind ( + +CPatch * except[4] ) +
+
+ + + + + +
+   + + +

+unbind the patch from All neighbors. +

+neighbors patchs links are modified too. The tesselation is forcemerged. unbind from patchs except those in except (usefull for bind 2/1 or 4/1). +

+Definition at line 1329 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+void NL3D::CPatch::unpack ( + +CBezierPatch & p ) const +
+
+ + + + + +
+   + + +

+ +

+Definition at line 115 of file patch.cpp.

+

+ + + + +
+ + + + + + +
+CBezierPatch * NL3D::CPatch::unpackIntoCache ( + +) const [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 105 of file patch.cpp.

+

+ + + + +
+ + + + + + + + + + +
+void NL3D::CPatch::unpackShadowMap ( + +class CTileLumel * pLumel, +
+uint ratio = 1 ) +
+
+ + + + + +
+   + + +

+Unpack the lumels of the patches. +

+Lumels are classes that describe the lighting environnement at a given texel of the lightmap. It is used to compute the shadow map of the patch, compress it and uncompress it. This method uncompress the lumels stored in its Lumels member.

+Parameters:
+ + + +
pShadow + is a pointer on the destination lumel buffer. Size must be ((OrderS*4/ratio)+1)*((OrderT*4/ratio)+1).
ratio + is the one over the ratio of the texture destination. Must be 1 or 2.
+
+See also:
+ expandShading(), packShadowMap(), resetCompressedLumels(), clearUncompressedLumels()
+

+Definition at line 1825 of file patch.cpp.

+


Friends And Related Function Documentation

+

+ + + + +
+ + + + + +
+class CTessFace [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 333 of file patch.h.

+

+ + + + +
+ + + + + +
+class CZone [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 334 of file patch.h.

+


Member Data Documentation

+

+ + + + +
+ + + + + +
+CBSphere NL3D::CPatch::BSphere [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 354 of file patch.h.

+

+ + + + +
+ + + + + +
+CTessFarVertex NL3D::CPatch::BaseFarVertices[4] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 352 of file patch.h.

+

+ + + + +
+ + + + + +
+CTessVertex * NL3D::CPatch::BaseVertices[4] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 350 of file patch.h.

+

+ + + + +
+ + + + + +
+CBezierPatch NL3D::CPatch::CachePatch [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 43 of file patch.cpp.

+

+ + + + +
+ + + + + +
+bool NL3D::CPatch::Clipped [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 379 of file patch.h.

+

+ + + + +
+ + + + + +
+std::vector< uint8 > NL3D::CPatch::CompressedLumels +
+
+ + + + + +
+   + + +

+ +

+Definition at line 156 of file patch.h.

+

+ + + + +
+ + + + + +
+bool NL3D::CPatch::ComputeTileErrorMetric [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 382 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::ErrorSize [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 346 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::Far0 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 359 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far0UBias [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 361 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far0UScale [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 361 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far0VBias [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 361 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far0VScale [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 361 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::Far1 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 360 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far1UBias [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 362 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far1UScale [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 362 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far1VBias [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 362 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::Far1VScale [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 362 of file patch.h.

+

+ + + + +
+ + + + + +
+uint8 NL3D::CPatch::Flags [private] +
+
+ + + + + +
+   + + +

+Flags NL_PATCH_FAR0_ROTATED and NL_PATCH_FAR1_ROTATED NL_PATCH_FAR0_ROTATED for Far0, NL_PATCH_FAR1_ROTATED for Far1 If the flag is set, the far texture of the patch is rotated of 1 (to the left of course). +

+Flags NL_PATCH_SMOOTH_FLAG_MASK 4 flag for smooth edge. Same as CPatchInfo::CBindInfo shifted by (<<NL_PATCH_SMOOTH_FLAG_SHIFT). See CPatchInfo::CBindInfo::Flags for details. +

+Definition at line 376 of file patch.h.

+

+ + + + +
+ + + + + +
+CVector3s NL3D::CPatch::Interiors[4] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 148 of file patch.h.

+

+ + + + +
+ + + + + +
+const CPatch * NL3D::CPatch::LastPatch = NULL [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 44 of file patch.cpp.

+

+ + + + +
+ + + + + +
+CTessBlock NL3D::CPatch::MasterBlock [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 398 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::OOTransitionSqrDelta [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 393 of file patch.h.

+

+ + + + +
+ + + + + +
+uint8 NL3D::CPatch::OrderS [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 338 of file patch.h.

+

+ + + + +
+ + + + + +
+uint8 NL3D::CPatch::OrderT [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 338 of file patch.h.

+

+ + + + +
+ + + + + +
+CPatchRdrPass * NL3D::CPatch::Pass0 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 390 of file patch.h.

+

+ + + + +
+ + + + + +
+CPatchRdrPass * NL3D::CPatch::Pass1 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 390 of file patch.h.

+

+ + + + +
+ + + + + +
+CTessFace * NL3D::CPatch::Son0 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 348 of file patch.h.

+

+ + + + +
+ + + + + +
+CTessFace * NL3D::CPatch::Son1 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 348 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::SquareLimitLevel [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 344 of file patch.h.

+

+ + + + +
+ + + + + +
+CVector3s NL3D::CPatch::Tangents[8] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 147 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::TessBlockLimitLevel [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 340 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::TessBlockRefCount [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 403 of file patch.h.

+

+ + + + +
+ + + + + +
+std::vector< CTessBlock > NL3D::CPatch::TessBlocks [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 401 of file patch.h.

+

+ + + + +
+ + + + + +
+std::vector< CTileColor > NL3D::CPatch::TileColors +
+
+ + + + + +
+   + + +

+ +

+Definition at line 165 of file patch.h.

+

+ + + + +
+ + + + + +
+bool NL3D::CPatch::TileFarTransition [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 386 of file patch.h.

+

+ + + + +
+ + + + + +
+sint NL3D::CPatch::TileLimitLevel [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 342 of file patch.h.

+

+ + + + +
+ + + + + +
+std::vector< CTileElement > NL3D::CPatch::Tiles +
+
+ + + + + +
+   + + +

+ +

+Definition at line 162 of file patch.h.

+

+ + + + +
+ + + + + +
+float NL3D::CPatch::TransitionSqrMin [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 392 of file patch.h.

+

+ + + + +
+ + + + + +
+std::vector< CTileLumel > NL3D::CPatch::UncompressedLumels +
+
+ + + + + +
+   + + +

+ +

+Definition at line 159 of file patch.h.

+

+ + + + +
+ + + + + +
+CVector3s NL3D::CPatch::Vertices[4] +
+
+ + + + + +
+   + + +

+The patch coordinates (see CBezierPatch). +

+ +

+Definition at line 146 of file patch.h.

+

+ + + + +
+ + + + + +
+CZone * NL3D::CPatch::Zone [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 336 of file patch.h.

+

+ + + + +
+ + + + + +
+uint8 NL3D::CPatch::_ShadingBuffer [static, private] +
+
+ + + + + +
+   + + +

+Static buffer used to expand shading in expandShading. +

+Its size is (NL_MAX_TILES_BY_PATCH_EDGE*NL_LUMEL_BY_TILE+1)*(NL_MAX_TILES_BY_PATCH_EDGE*NL_LUMEL_BY_TILE+1) +

+Definition at line 45 of file patch.cpp.

+

+ + + + +
+ + + + + +
+uint32 NL3D::CPatch::_Version = 2 [static, private] +
+
+ + + + + +
+   + + +

+Stream version of the class. +

+ +

+Definition at line 46 of file patch.cpp.

+


The documentation for this class was generated from the following files: + + + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1