A Landscape Triangle. More...
#include <tessellation.h>
Inherits NL3D::CTessNodeList, and NL3D::CTessFacePListNode.
A Landscape Triangle.
MemSize: 28*4 octets. => for 100K faces, it takes 11.2 Mo.
Definition at line 231 of file tessellation.h.
Definition at line 262 of file tessellation.h.
| NL3D::CTessFace::CTessFace | ( | ) |
Definition at line 156 of file tessellation.cpp.
References ErrorMetricDate, Father, FBase, FLeft, FRight, Level, NL3D_MAX_TILE_FACE, NL3D_PROFILE_LAND_ADD, Patch, NL3D::ProfNTessFace, RecursMarkCanMerge, RecursMarkForceMerge, ShadowMapTriId, SonLeft, SonRight, TileFaces, TileMaterial, VBase, VLeft, and VRight.
| NL3D::CTessFace::~CTessFace | ( | ) |
Definition at line 187 of file tessellation.cpp.
References NL3D_PROFILE_LAND_ADD, nlassert, NL3D::ProfNTessFace, and ShadowMapTriId.
| void NL3D::CTessFace::allocTileUv | ( | TTileUvId | id | ) | [private] |
Definition at line 367 of file tessellation.cpp.
References NL3D::CPatch::appendNearVertexToRenderList(), NL3D::CPatch::getLandscape(), IdUvBase, IdUvLeft, IdUvRight, NL3D::CLandscape::newTessNearVertex(), NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, nlstop, Patch, NL3D::CTessNearVertex::Src, TileFaces, TileMaterial, NL3D::CTileFace::V, VBase, VLeft, and VRight.
Referenced by computeTileMaterial(), and heritTileMaterial().
| void NL3D::CTessFace::appendTessellationLeaves | ( | std::vector< const CTessFace * > & | leaves | ) | const |
Definition at line 3189 of file tessellation.cpp.
References appendTessellationLeaves(), isLeaf(), SonLeft, and SonRight.
Referenced by appendTessellationLeaves(), and NL3D::CPatch::appendTessellationLeaves().
| void NL3D::CTessFace::averageTesselationVertices | ( | ) |
Definition at line 2463 of file tessellation.cpp.
References averageTesselationVertices(), CantMergeFace, NL3D::CPatch::computeVertex(), NL3D::CTessVertex::EndPos, FBase, FLeft, NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), isLeaf(), isRectangular(), nlassert, Patch, PVBase, SonLeft, SonRight, and VBase.
Referenced by averageTesselationVertices(), and NL3D::CPatch::averageTesselationVertices().
| void NL3D::CTessFace::buildTileFaces | ( | ) | [private] |
Definition at line 506 of file tessellation.cpp.
References NL3D::CPatch::getLandscape(), IdUvBase, IdUvLeft, IdUvRight, NL3D::CLandscape::newTileFace(), NL3D_MAX_TILE_FACE, nlassert, NL3D::CTileMaterial::Pass, Patch, NL3D::CRdrTileId::PatchRdrPass, TileFaces, TileMaterial, and NL3D::CTileFace::V.
Referenced by computeTileMaterial(), and heritTileMaterial().
Definition at line 1544 of file tessellation.cpp.
References canMerge(), CantMergeFace, ErrorMetric, FBase, FLeft, isLeaf(), isRectangular(), nlassert, NL3D::CLandscapeGlobals::OORefineThreshold, RecursMarkCanMerge, SonLeft, SonRight, and updateErrorMetric().
Referenced by canMerge(), merge(), refineAll(), and updateRefineMerge().
Definition at line 296 of file tessellation.h.
References FBase, FLeft, and FRight.
Referenced by doMerge(), split(), splitRectangular(), unbind(), and updateBindAndSplit().
| void NL3D::CTessFace::checkCreateFillTileVB | ( | TTileUvId | id | ) | [private] |
Definition at line 398 of file tessellation.cpp.
References NL3D::CPatch::checkCreateVertexVBNear(), NL3D::CPatch::checkFillVertexVBNear(), NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, Patch, TileFaces, and NL3D::CTileFace::V.
Referenced by computeTileMaterial(), and heritTileMaterial().
| void NL3D::CTessFace::checkFillTileVB | ( | TTileUvId | id | ) | [private] |
Definition at line 419 of file tessellation.cpp.
References NL3D::CPatch::checkFillVertexVBNear(), NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, Patch, TileFaces, and NL3D::CTileFace::V.
Referenced by split(), and splitRectangular().
| float NL3D::CTessFace::computeNearLimit | ( | ) |
Definition at line 211 of file tessellation.cpp.
References Level, nlassert, Patch, and NL3D::CPatch::TileLimitLevel.
Referenced by computeTileErrorMetric(), split(), splitRectangular(), unbind(), updateRefineMerge(), and updateRefineSplit().
| void NL3D::CTessFace::computeSplitPoint | ( | ) |
compute the SplitPoint.
VBase / VLeft and VRight must be valid. Also compute MaxDistToSplitPoint.
Definition at line 340 of file tessellation.cpp.
References NL3D::CTessVertex::EndPos, isRectangular(), MaxDistToSplitPoint, SplitPoint, VBase, VLeft, and VRight.
Referenced by NL3D::CPatch::bind(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), and updateBindAndSplit().
Definition at line 3151 of file tessellation.cpp.
References NL3D::CTessVertex::computeGeomPos(), NLMISC::CTriangle::computeGradient(), NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), NL3D::CTessVertex::Pos, PVBase, PVLeft, PVRight, NLMISC::CVector::set(), NLMISC::CUV::U, NLMISC::CUV::V, NLMISC::CTriangle::V0, NLMISC::CTriangle::V1, NLMISC::CTriangle::V2, VBase, NL3D::CLandscapeGlobals::VertexProgramEnabled, VLeft, VRight, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
Referenced by getTesselatedPos().
| float NL3D::CTessFace::computeTileEMForUpdateRefine | ( | float | distSplitPoint, | |
| float | distMinFace, | |||
| float | nearLimit | |||
| ) | [inline, private] |
Definition at line 307 of file tessellation.cpp.
References NL3D::CLandscapeGlobals::OORefineThreshold, NL3D::CLandscapeGlobals::OOTileDistDeltaSqr, Size, NLMISC::sqr(), NL3D::CLandscapeGlobals::TileDistFar, NL3D::CLandscapeGlobals::TileDistFarSqr, and NL3D::CLandscapeGlobals::TileDistNear.
Referenced by updateRefineMerge(), and updateRefineSplit().
| void NL3D::CTessFace::computeTileErrorMetric | ( | ) | [private] |
Definition at line 229 of file tessellation.cpp.
References computeNearLimit(), NL3D::CTessVertex::EndPos, ErrorMetric, NLMISC::minof(), NL3D::CLandscapeGlobals::OOTileDistDeltaSqr, NL3D::CLandscapeGlobals::RefineCenter, NL3D::CLandscapeGlobals::RefineThreshold, NLMISC::sqr(), NL3D::CLandscapeGlobals::TileDistFarSqr, NL3D::CLandscapeGlobals::TileDistNearSqr, VBase, VLeft, and VRight.
Referenced by updateErrorMetric().
| void NL3D::CTessFace::computeTileMaterial | ( | ) |
Definition at line 670 of file tessellation.cpp.
References allocTileUv(), NL3D::CPatch::appendTileMaterialToRenderList(), buildTileFaces(), checkCreateFillTileVB(), copyTileUv(), FBase, NL3D::CPatch::getLandscape(), NL3D::CPatch::getTileLightMap(), NL3D::CPatch::getTileRenderPass(), IdUvBase, IdUvLeft, IdUvRight, initTileUvDLM(), initTileUvLightmap(), initTileUvRGBA(), Level, NL3D::CLandscape::newTileMaterial(), NL3D_MAX_TILE_FACE, NL3D_MAX_TILE_PASS, NL3D_TILE_PASS_ADD, NL3D_TILE_PASS_LIGHTMAP, NL3D_TILE_PASS_RGB0, NL3D_TILE_PASS_RGB1, NL3D_TILE_PASS_RGB2, nlassert, NL3D::CPatch::OrderS, NL3D::CPatch::OrderT, NL3D::CTileMaterial::Pass, Patch, NL3D::CRdrTileId::PatchRdrPass, PVBase, PVLeft, PVRight, NL3D::CParamCoord::S, NL3D::CParamCoord::T, TileFaces, TileId, NL3D::CPatch::TileLimitLevel, NL3D::CRdrTileId::TileMaterial, TileMaterial, NL3D::CTileMaterial::TileS, and NL3D::CTileMaterial::TileT.
Referenced by recreateTileUvs(), and split().
Definition at line 461 of file tessellation.cpp.
References NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, TileFaces, and NL3D::CTileFace::V.
Referenced by computeTileMaterial(), and heritTileMaterial().
| void NL3D::CTessFace::deleteTileFaces | ( | ) | [private] |
Definition at line 523 of file tessellation.cpp.
References NL3D::CLandscape::deleteTileFace(), NL3D::CPatch::getLandscape(), NL3D_MAX_TILE_FACE, nlassert, NL3D::CTileMaterial::Pass, Patch, NL3D::CRdrTileId::PatchRdrPass, TileFaces, and TileMaterial.
Referenced by deleteTileUvs(), doMerge(), and releaseTileMaterial().
| void NL3D::CTessFace::deleteTileUv | ( | TTileUvId | id | ) | [private] |
Definition at line 439 of file tessellation.cpp.
References NL3D::CPatch::checkDeleteVertexVBNear(), NL3D::CLandscape::deleteTessNearVertex(), NL3D::CPatch::getLandscape(), NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, Patch, NL3D::CPatch::removeNearVertexFromRenderList(), TileFaces, TileMaterial, and NL3D::CTileFace::V.
Referenced by deleteTileUvs(), doMerge(), and releaseTileMaterial().
| void NL3D::CTessFace::deleteTileUvs | ( | ) |
Definition at line 2964 of file tessellation.cpp.
References deleteTileFaces(), deleteTileUv(), deleteTileUvs(), emptyTileFaces(), FBase, IdUvBase, isLeaf(), Level, nlassert, Patch, releaseTileMaterial(), NL3D::CPatch::removeFaceFromTileRenderList(), sameTile(), SonLeft, SonRight, NL3D::CPatch::TileLimitLevel, and TileMaterial.
Referenced by deleteTileUvs(), and NL3D::CPatch::deleteTileUvs().
| void NL3D::CTessFace::doMerge | ( | ) | [private] |
Definition at line 1599 of file tessellation.cpp.
References NL3D::CLandscape::_MergePriorityList, NL3D::CLandscape::_SplitPriorityList, NL3D::CPatch::appendFaceToRenderList(), changeNeighbor(), NL3D::CPatch::checkDeleteVertexVBFar(), NL3D::CLandscape::deleteTessFace(), NL3D::CLandscape::deleteTessFarVertex(), NL3D::CLandscape::deleteTessVertex(), deleteTileFaces(), deleteTileUv(), doMerge(), Father, FBase, FLeft, FRight, FVBase, NL3D::CPatch::getLandscape(), IdUvBase, NL3D::CTessFacePriorityList::insert(), isLeaf(), isRectangular(), Level, nlassert, Patch, releaseTileMaterial(), NL3D::CPatch::removeFaceFromRenderList(), NL3D::CPatch::removeFarVertexFromRenderList(), sameTile(), SonLeft, SonRight, NL3D::CPatch::TileLimitLevel, and VBase.
| bool NL3D::CTessFace::emptyTileFaces | ( | ) | [private] |
Definition at line 544 of file tessellation.cpp.
References NL3D_MAX_TILE_FACE, and TileFaces.
Referenced by deleteTileUvs().
| void NL3D::CTessFace::forceMerge | ( | ) |
Definition at line 2407 of file tessellation.cpp.
References CantMergeFace, FBase, FLeft, forceMerge(), isLeaf(), isRectangular(), merge(), RecursMarkForceMerge, SonLeft, and SonRight.
Referenced by forceMerge(), forceMergeAtTileLevel(), and NL3D::CPatch::unbind().
| void NL3D::CTessFace::forceMergeAtTileLevel | ( | ) |
Definition at line 2443 of file tessellation.cpp.
References CantMergeFace, forceMerge(), forceMergeAtTileLevel(), isLeaf(), Level, Patch, SonLeft, SonRight, and NL3D::CPatch::TileLimitLevel.
Referenced by forceMergeAtTileLevel(), and NL3D::CPatch::forceMergeAtTileLevel().
Definition at line 3096 of file tessellation.cpp.
References computeTesselatedPos(), NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), getTesselatedPos(), isLeaf(), isRectangular(), PVBase, PVLeft, PVRight, NLMISC::CVector::set(), SonLeft, SonRight, NLMISC::CUV::U, NLMISC::CUV::V, NLMISC::CVector::x, and NLMISC::CVector::y.
Referenced by getTesselatedPos(), and NL3D::CPatch::getTesselatedPos().
| bool NL3D::CTessFace::hasEdge | ( | CTessVertex * | v0, | |
| CTessVertex * | v1 | |||
| ) | const [inline] |
Definition at line 295 of file tessellation.h.
References hasVertex().
| bool NL3D::CTessFace::hasVertex | ( | CTessVertex * | v | ) | const [inline] |
| void NL3D::CTessFace::heritTileMaterial | ( | ) | [private] |
Definition at line 3048 of file tessellation.cpp.
References allocTileUv(), buildTileFaces(), checkCreateFillTileVB(), copyTileUv(), FBase, heritTileUv(), IdUvBase, IdUvLeft, IdUvRight, isLeaf(), sameTile(), SonLeft, SonRight, TileId, and TileMaterial.
Referenced by recreateTileUvs(), and split().
| void NL3D::CTessFace::heritTileUv | ( | CTessFace * | baseFace | ) | [private] |
Definition at line 485 of file tessellation.cpp.
References IdUvBase, IdUvLeft, IdUvRight, NL3D::CTessNearVertex::initMiddleUv(), NL3D_MAX_TILE_FACE, NL3D_TILE_PASS_RGB0, nlassert, TileFaces, and NL3D::CTileFace::V.
Referenced by heritTileMaterial().
| void NL3D::CTessFace::initTileUvDLM | ( | CParamCoord | pointCoord, | |
| CUV & | uv | |||
| ) | [private] |
Definition at line 650 of file tessellation.cpp.
References NL3D::CPatch::_DLMContext, NL3D::CPatchDLMContext::DLMUBias, NL3D::CPatchDLMContext::DLMUScale, NL3D::CPatchDLMContext::DLMVBias, NL3D::CPatchDLMContext::DLMVScale, NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), nlassert, Patch, NLMISC::CUV::U, and NLMISC::CUV::V.
Referenced by computeTileMaterial().
| void NL3D::CTessFace::initTileUvLightmap | ( | CParamCoord | pointCoord, | |
| CParamCoord | middleCoord, | |||
| CUV & | uv | |||
| ) | [private] |
Definition at line 631 of file tessellation.cpp.
References NL3D::CPatch::getTileLightMapUvInfo(), Patch, NL3D::CParamCoord::S, NL3D::CParamCoord::T, TileMaterial, NL3D::CTileMaterial::TileS, NL3D::CTileMaterial::TileT, NLMISC::CUV::U, NLMISC::CUV::V, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
Referenced by computeTileMaterial().
| void NL3D::CTessFace::initTileUvRGBA | ( | sint | pass, | |
| bool | alpha, | |||
| CParamCoord | pointCoord, | |||
| CParamCoord | middleCoord, | |||
| CUV & | uv | |||
| ) | [private] |
Definition at line 560 of file tessellation.cpp.
References NL3D::CPatch::getTileUvInfo(), Patch, NL3D::CParamCoord::S, NL3D::CParamCoord::T, TileId, NL3D::CLandscapeGlobals::TilePixelBias128, NL3D::CLandscapeGlobals::TilePixelBias256, NL3D::CLandscapeGlobals::TilePixelScale128, NL3D::CLandscapeGlobals::TilePixelScale256, NLMISC::CUV::U, NLMISC::CUV::V, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
Referenced by computeTileMaterial().
| bool NL3D::CTessFace::isLeaf | ( | ) | const [inline] |
Definition at line 292 of file tessellation.h.
References SonLeft.
Referenced by appendTessellationLeaves(), averageTesselationVertices(), NL3D::CPatch::bind(), canMerge(), deleteTileUvs(), doMerge(), forceMerge(), forceMergeAtTileLevel(), getTesselatedPos(), heritTileMaterial(), linkTessFaceWithEdge(), merge(), recreateTileUvs(), refineAll(), refreshTesselationGeometry(), NL3D::CPatch::release(), split(), splitRectangular(), unbind(), NL3D::CPatch::unbind(), updateBind(), updateBindAndSplit(), updateBindEdge(), updateRefineMerge(), and updateRefineSplit().
| bool NL3D::CTessFace::isRectangular | ( | ) | const |
Definition at line 2949 of file tessellation.cpp.
References Level, Patch, and NL3D::CPatch::SquareLimitLevel.
Referenced by averageTesselationVertices(), canMerge(), computeSplitPoint(), doMerge(), forceMerge(), getTesselatedPos(), split(), splitRectangular(), unbind(), updateBindAndSplit(), and updateBindEdge().
| CTessFace * NL3D::CTessFace::linkTessFaceWithEdge | ( | const NLMISC::CVector2f & | uv0, | |
| const NLMISC::CVector2f & | uv1, | |||
| CTessFace * | linkTo | |||
| ) |
Definition at line 2899 of file tessellation.cpp.
References FBase, FLeft, FRight, NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), isLeaf(), linkTessFaceWithEdge(), NL3D::matchEdge(), nlassert, PVBase, PVLeft, PVRight, SonLeft, and SonRight.
Referenced by linkTessFaceWithEdge(), and NL3D::CPatch::linkTessFaceWithEdge().
| bool NL3D::CTessFace::merge | ( | ) |
Definition at line 1757 of file tessellation.cpp.
References canMerge(), doMerge(), isLeaf(), NL3D_PROFILE_LAND_ADD, nlassert, and NL3D::ProfNMerges.
Referenced by forceMerge(), refineAll(), and updateRefineMerge().
| void NL3D::CTessFace::recreateTileUvs | ( | ) |
Definition at line 3012 of file tessellation.cpp.
References NL3D::CPatch::appendFaceToTileRenderList(), computeTileMaterial(), heritTileMaterial(), isLeaf(), Level, Patch, recreateTileUvs(), SonLeft, SonRight, NL3D::CPatch::TileLimitLevel, and TileMaterial.
Referenced by recreateTileUvs(), and NL3D::CPatch::recreateTileUvs().
| void NL3D::CTessFace::refineAll | ( | ) |
refine the node, and his sons. Refine all nodes.
Definition at line 1778 of file tessellation.cpp.
References canMerge(), ErrorMetric, isLeaf(), Level, merge(), NL3D_PROFILE_LAND_ADD, NL3D::CLandscapeGlobals::OORefineThreshold, Patch, NL3D::ProfNRefineComputeFaces, NL3D::ProfNRefineFaces, NL3D::ProfNRefineLeaves, refineAll(), SonLeft, SonRight, split(), NL3D::CPatch::TileLimitLevel, NL3D::CLandscapeGlobals::TileMaxSubdivision, and updateErrorMetric().
Referenced by refineAll(), and NL3D::CPatch::refineAll().
| void NL3D::CTessFace::refreshTesselationGeometry | ( | ) |
Definition at line 2514 of file tessellation.cpp.
References NL3D::CPatch::computeVertex(), NL3D::CTessVertex::EndPos, NL3D::CPatch::extendTessBlockWithEndPos(), NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), isLeaf(), Patch, NL3D::CTessVertex::Pos, PVBase, refreshTesselationGeometry(), SonLeft, SonRight, and VBase.
Referenced by refreshTesselationGeometry(), and NL3D::CPatch::refreshTesselationGeometry().
| void NL3D::CTessFace::releaseTileMaterial | ( | ) |
Definition at line 830 of file tessellation.cpp.
References deleteTileFaces(), NL3D::CLandscape::deleteTileMaterial(), deleteTileUv(), FBase, NL3D::CPatch::getLandscape(), IdUvBase, IdUvLeft, IdUvRight, Level, nlassert, Patch, NL3D::CPatch::releaseTileLightMap(), NL3D::CPatch::removeTileMaterialFromRenderList(), NL3D::CPatch::TileLimitLevel, TileMaterial, NL3D::CTileMaterial::TileS, and NL3D::CTileMaterial::TileT.
Referenced by deleteTileUvs(), and doMerge().
| static bool NL3D::CTessFace::sameTile | ( | const CTessFace * | a, | |
| const CTessFace * | b | |||
| ) | [inline, static, private] |
Definition at line 366 of file tessellation.h.
Referenced by deleteTileUvs(), doMerge(), and heritTileMaterial().
| void NL3D::CTessFace::split | ( | bool | propagateSplit = true |
) |
Definition at line 1278 of file tessellation.cpp.
References NL3D::CLandscape::_MergePriorityList, NL3D::CPatch::appendFaceToRenderList(), NL3D::CPatch::appendFarVertexToRenderList(), changeNeighbor(), NL3D::CPatch::checkCreateVertexVBFar(), checkFillTileVB(), NL3D::CPatch::checkFillVertexVBFar(), computeNearLimit(), computeSplitPoint(), computeTileMaterial(), NL3D::CPatch::computeVertex(), NL3D::CTessVertex::EndPos, Father, FBase, FLeft, FRight, FVBase, FVLeft, FVRight, NL3D::CPatch::getLandscape(), NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), heritTileMaterial(), IdUvBase, NL3D::CTessFacePriorityList::insert(), isLeaf(), isRectangular(), Level, NL3D::CTessVertex::MaxFaceSize, NL3D::CTessVertex::MaxNearLimit, NL3D::CLandscape::newTessFace(), NL3D::CLandscape::newTessFarVertex(), NL3D::CLandscape::newTessVertex(), NL3D_PROFILE_LAND_ADD, nlassert, Patch, NL3D::CTessFarVertex::PCoord, NL3D::CTessVertex::Pos, NL3D::ProfNSplits, PVBase, PVLeft, PVRight, NL3D::CPatch::removeFaceFromRenderList(), Size, SonLeft, SonRight, split(), splitRectangular(), NL3D::CTessFarVertex::Src, NL3D::CTessVertex::StartPos, NL3D::CPatch::TileLimitLevel, NL3D::CTessFacePListNode::unlinkInPList(), VBase, NL3D::CLandscapeGlobals::VertexProgramEnabled, VLeft, and VRight.
Referenced by refineAll(), split(), splitRectangular(), updateBindAndSplit(), and updateRefineSplit().
| void NL3D::CTessFace::splitRectangular | ( | bool | propagateSplit | ) | [private] |
Definition at line 906 of file tessellation.cpp.
References NL3D::CLandscape::_MergePriorityList, NL3D::CPatch::appendFaceToRenderList(), NL3D::CPatch::appendFarVertexToRenderList(), changeNeighbor(), NL3D::CPatch::checkCreateVertexVBFar(), checkFillTileVB(), NL3D::CPatch::checkFillVertexVBFar(), computeNearLimit(), computeSplitPoint(), NL3D::CPatch::computeVertex(), NL3D::CTessVertex::EndPos, Father, FBase, FLeft, FRight, FVBase, FVLeft, FVRight, NL3D::CPatch::getLandscape(), NL3D::CParamCoord::getS(), NL3D::CParamCoord::getT(), IdUvBase, NL3D::CTessFacePriorityList::insert(), isLeaf(), isRectangular(), Level, NL3D::CTessVertex::MaxFaceSize, NL3D::CTessVertex::MaxNearLimit, NL3D::CLandscape::newTessFace(), NL3D::CLandscape::newTessFarVertex(), NL3D::CLandscape::newTessVertex(), nlassert, Patch, NL3D::CTessFarVertex::PCoord, NL3D::CTessVertex::Pos, PVBase, PVLeft, PVRight, NL3D::CPatch::removeFaceFromRenderList(), Size, SonLeft, SonRight, split(), NL3D::CTessFarVertex::Src, NL3D::CTessVertex::StartPos, NL3D::CPatch::TileLimitLevel, NL3D::CTessFacePListNode::unlinkInPList(), VBase, NL3D::CLandscapeGlobals::VertexProgramEnabled, VLeft, and VRight.
Referenced by split().
| void NL3D::CTessFace::unbind | ( | ) |
Definition at line 2269 of file tessellation.cpp.
References changeNeighbor(), computeNearLimit(), FBase, FLeft, FRight, NL3D::CPatch::getLandscape(), isLeaf(), isRectangular(), NL3D::CTessVertex::MaxFaceSize, NL3D::CTessVertex::MaxNearLimit, NL3D::CLandscape::newTessVertex(), nlassert, Patch, Size, SonLeft, SonRight, unbind(), updateNearFarVertices(), VBase, VLeft, and VRight.
Referenced by unbind(), and NL3D::CPatch::unbind().
| void NL3D::CTessFace::updateBind | ( | ) |
Definition at line 2855 of file tessellation.cpp.
References FBase, FLeft, FRight, isLeaf(), SonLeft, SonRight, updateBind(), updateBindAndSplit(), and updateBindEdge().
Referenced by NL3D::CPatch::bind(), and updateBind().
| void NL3D::CTessFace::updateBindAndSplit | ( | ) |
Definition at line 2638 of file tessellation.cpp.
References CantMergeFace, changeNeighbor(), computeSplitPoint(), NL3D::CLandscape::deleteTessVertex(), NL3D::CTessVertex::EndPos, FBase, FLeft, FRight, NL3D::CPatch::getLandscape(), isLeaf(), isRectangular(), MultipleBindFace, nlassert, Patch, NL3D::CTessVertex::Pos, SonLeft, SonRight, split(), NL3D::CTessVertex::StartPos, updateBindAndSplit(), updateBindEdge(), updateNearFarVertices(), VBase, and VRight.
Referenced by updateBind(), and updateBindAndSplit().
Definition at line 2539 of file tessellation.cpp.
References FBase, FLeft, FRight, isLeaf(), isRectangular(), nlstop, Patch, SonLeft, and SonRight.
Referenced by updateBind(), and updateBindAndSplit().
| void NL3D::CTessFace::updateErrorMetric | ( | ) |
Definition at line 273 of file tessellation.cpp.
References computeTileErrorMetric(), NL3D::CLandscapeGlobals::CurrentDate, ErrorMetric, ErrorMetricDate, MaxDistToSplitPoint, NL3D::CLandscapeGlobals::RefineCenter, Size, SplitPoint, NLMISC::sqr(), NLMISC::CVector::sqrnorm(), and NL3D::CLandscapeGlobals::TileDistFar.
Referenced by canMerge(), refineAll(), updateRefineMerge(), and updateRefineSplit().
| void NL3D::CTessFace::updateNearFarVertices | ( | ) | [private] |
Definition at line 868 of file tessellation.cpp.
References NL3D::CPatch::checkFillVertexVBFar(), NL3D::CPatch::checkFillVertexVBNear(), FVBase, FVLeft, FVRight, IdUvBase, IdUvLeft, IdUvRight, NL3D_MAX_TILE_FACE, nlassert, Patch, NL3D::CTessFarVertex::PCoord, PVBase, PVLeft, PVRight, NL3D::CTessNearVertex::Src, NL3D::CTessFarVertex::Src, TileFaces, NL3D::CTileFace::V, VBase, VLeft, and VRight.
Referenced by unbind(), and updateBindAndSplit().
| void NL3D::CTessFace::updateRefineMerge | ( | ) |
TileDistFar to +oo.
TileDistNear to TileDistFar.
0 to TileDistNear.
Definition at line 2103 of file tessellation.cpp.
References NL3D::CLandscape::_MergePriorityList, canMerge(), computeNearLimit(), computeTileEMForUpdateRefine(), NL3D::CTessVertex::EndPos, ErrorMetric, NL3D::CPatch::getLandscape(), NL3D::CTessFacePriorityList::insert(), isLeaf(), Level, merge(), min, NLMISC::minof(), NL3D_PROFILE_LAND_ADD, NL3D_REFINE_MERGE_THRESHOLD, nlassert, NL3D::CLandscapeGlobals::OORefineThreshold, Patch, NL3D::ProfNRefineFaces, NL3D::ProfNRefineInTileTransition, NL3D::CLandscapeGlobals::RefineCenter, NL3D::CLandscapeGlobals::RefineThreshold, Size, SplitPoint, NL3D::CLandscapeGlobals::TileDistFar, NL3D::CLandscapeGlobals::TileDistNear, NL3D::CPatch::TileLimitLevel, NL3D::CLandscapeGlobals::TileMaxSubdivision, updateErrorMetric(), VBase, VLeft, and VRight.
Referenced by NL3D::CLandscape::refine().
| void NL3D::CTessFace::updateRefineSplit | ( | ) |
TileDistFar to +oo.
TileDistNear to TileDistFar.
0 to TileDistNear.
Definition at line 1895 of file tessellation.cpp.
References NL3D::CLandscape::_SplitPriorityList, computeNearLimit(), computeTileEMForUpdateRefine(), NL3D::CTessVertex::EndPos, ErrorMetric, NL3D::CPatch::getLandscape(), NL3D::CTessFacePriorityList::getQuadrantDirection(), NL3D::CTessFacePriorityList::insert(), isLeaf(), Level, min, NLMISC::minof(), NL3D_PROFILE_LAND_ADD, NL3D_TESS_USE_QUADRANT_THRESHOLD, nlassert, NLMISC::CVector::norm(), NL3D::CLandscapeGlobals::OORefineThreshold, Patch, NL3D::ProfNRefineFaces, NL3D::ProfNRefineInTileTransition, NL3D::ProfNRefineWithLowDistance, NL3D::CLandscapeGlobals::RefineCenter, NL3D::CLandscapeGlobals::RefineThreshold, NL3D::CTessFacePriorityList::selectQuadrant(), Size, split(), SplitPoint, NLMISC::CVector::sqrnorm(), NL3D::CLandscapeGlobals::TileDistFar, NL3D::CLandscapeGlobals::TileDistNear, NL3D::CPatch::TileLimitLevel, NL3D::CLandscapeGlobals::TileMaxSubdivision, NL3D::CTessFacePListNode::unlinkInPList(), updateErrorMetric(), VBase, VLeft, and VRight.
Referenced by NL3D::CLandscape::refine().
CTessFace NL3D::CTessFace::CantMergeFace [static, private] |
Definition at line 433 of file tessellation.h.
Referenced by averageTesselationVertices(), canMerge(), forceMerge(), forceMergeAtTileLevel(), and updateBindAndSplit().
Definition at line 274 of file tessellation.h.
Referenced by canMerge(), computeTileErrorMetric(), refineAll(), updateErrorMetric(), updateRefineMerge(), and updateRefineSplit().
Definition at line 271 of file tessellation.h.
Referenced by CTessFace(), and updateErrorMetric().
Definition at line 241 of file tessellation.h.
Referenced by CTessFace(), doMerge(), split(), and splitRectangular().
Definition at line 240 of file tessellation.h.
Referenced by averageTesselationVertices(), NL3D::CPatch::bind(), canMerge(), changeNeighbor(), computeTileMaterial(), CTessFace(), deleteTileUvs(), doMerge(), forceMerge(), heritTileMaterial(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), releaseTileMaterial(), split(), splitRectangular(), unbind(), updateBind(), updateBindAndSplit(), and updateBindEdge().
Definition at line 240 of file tessellation.h.
Referenced by averageTesselationVertices(), NL3D::CPatch::bind(), canMerge(), NL3D::CPatch::changeEdgeNeighbor(), changeNeighbor(), CTessFace(), doMerge(), forceMerge(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), NL3D::CPatch::release(), split(), splitRectangular(), unbind(), NL3D::CPatch::unbind(), updateBind(), updateBindAndSplit(), and updateBindEdge().
Definition at line 240 of file tessellation.h.
Referenced by NL3D::CPatch::bind(), NL3D::CPatch::changeEdgeNeighbor(), changeNeighbor(), CTessFace(), doMerge(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), NL3D::CPatch::release(), split(), splitRectangular(), unbind(), NL3D::CPatch::unbind(), updateBind(), updateBindAndSplit(), and updateBindEdge().
Definition at line 280 of file tessellation.h.
Referenced by NL3D::CPatch::bind(), doMerge(), NL3D::CPatch::makeRoots(), NL3D::CTessBlock::refillFaceVectorFar0(), NL3D::CTessBlock::refillFaceVectorFar1(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 280 of file tessellation.h.
Referenced by NL3D::CPatch::bind(), NL3D::CPatch::makeRoots(), NL3D::CTessBlock::refillFaceVectorFar0(), NL3D::CTessBlock::refillFaceVectorFar1(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 280 of file tessellation.h.
Referenced by NL3D::CPatch::bind(), NL3D::CPatch::makeRoots(), NL3D::CTessBlock::refillFaceVectorFar0(), NL3D::CTessBlock::refillFaceVectorFar1(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 245 of file tessellation.h.
Referenced by NL3D::CPatch::appendFaceToRenderList(), computeNearLimit(), computeTileMaterial(), CTessFace(), deleteTileUvs(), doMerge(), NL3D::CPatch::extendTessBlockWithEndPos(), forceMergeAtTileLevel(), isRectangular(), NL3D::CPatch::makeRoots(), recreateTileUvs(), refineAll(), releaseTileMaterial(), NL3D::CPatch::removeFaceFromRenderList(), split(), splitRectangular(), updateRefineMerge(), and updateRefineSplit().
Definition at line 275 of file tessellation.h.
Referenced by computeSplitPoint(), and updateErrorMetric().
Definition at line 437 of file tessellation.h.
Referenced by NL3D::CPatch::bind(), and updateBindAndSplit().
Definition at line 238 of file tessellation.h.
Referenced by allocTileUv(), averageTesselationVertices(), buildTileFaces(), NL3D::CZoneLighter::buildZoneInformation(), checkCreateFillTileVB(), checkFillTileVB(), computeNearLimit(), computeTileMaterial(), CTessFace(), deleteTileFaces(), deleteTileUv(), deleteTileUvs(), doMerge(), forceMergeAtTileLevel(), initTileUvDLM(), initTileUvLightmap(), initTileUvRGBA(), isRectangular(), NL3D::CPatch::makeRoots(), recreateTileUvs(), refineAll(), refreshTesselationGeometry(), releaseTileMaterial(), sameTile(), split(), splitRectangular(), unbind(), updateBindAndSplit(), updateBindEdge(), updateNearFarVertices(), updateRefineMerge(), and updateRefineSplit().
Definition at line 243 of file tessellation.h.
Referenced by averageTesselationVertices(), NL3D::CZoneLighter::buildZoneInformation(), computeTesselatedPos(), computeTileMaterial(), NL3D::CPatch::getNumTessBlock(), getTesselatedPos(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), refreshTesselationGeometry(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 243 of file tessellation.h.
Referenced by NL3D::CZoneLighter::buildZoneInformation(), computeTesselatedPos(), computeTileMaterial(), NL3D::CPatch::getNumTessBlock(), getTesselatedPos(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 243 of file tessellation.h.
Referenced by NL3D::CZoneLighter::buildZoneInformation(), computeTesselatedPos(), computeTileMaterial(), NL3D::CPatch::getNumTessBlock(), getTesselatedPos(), linkTessFaceWithEdge(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), and updateNearFarVertices().
Definition at line 247 of file tessellation.h.
Referenced by canMerge(), and CTessFace().
Definition at line 248 of file tessellation.h.
Referenced by CTessFace(), and forceMerge().
Definition at line 284 of file tessellation.h.
Referenced by NL3D::CLandscape::appendToShadowPolyReceiver(), CTessFace(), NL3D::CLandscape::removeFromShadowPolyReceiver(), and ~CTessFace().
Definition at line 272 of file tessellation.h.
Referenced by computeTileEMForUpdateRefine(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), unbind(), updateErrorMetric(), updateRefineMerge(), and updateRefineSplit().
Definition at line 241 of file tessellation.h.
Referenced by appendTessellationLeaves(), averageTesselationVertices(), NL3D::CPatch::bind(), canMerge(), CTessFace(), deleteTileUvs(), doMerge(), forceMerge(), forceMergeAtTileLevel(), getTesselatedPos(), heritTileMaterial(), isLeaf(), linkTessFaceWithEdge(), recreateTileUvs(), refineAll(), refreshTesselationGeometry(), split(), splitRectangular(), unbind(), updateBind(), updateBindAndSplit(), and updateBindEdge().
Definition at line 241 of file tessellation.h.
Referenced by appendTessellationLeaves(), averageTesselationVertices(), NL3D::CPatch::bind(), canMerge(), CTessFace(), deleteTileUvs(), doMerge(), forceMerge(), forceMergeAtTileLevel(), getTesselatedPos(), heritTileMaterial(), linkTessFaceWithEdge(), recreateTileUvs(), refineAll(), refreshTesselationGeometry(), split(), splitRectangular(), unbind(), updateBind(), updateBindAndSplit(), and updateBindEdge().
Definition at line 273 of file tessellation.h.
Referenced by computeSplitPoint(), updateErrorMetric(), updateRefineMerge(), and updateRefineSplit().
| CTileFace* NL3D::CTessFace::TileFaces[NL3D_MAX_TILE_FACE] |
Definition at line 259 of file tessellation.h.
Referenced by allocTileUv(), NL3D::CPatch::appendFaceToTileRenderList(), buildTileFaces(), checkCreateFillTileVB(), checkFillTileVB(), computeTileMaterial(), copyTileUv(), CTessFace(), deleteTileFaces(), deleteTileUv(), emptyTileFaces(), heritTileUv(), NL3D::CPatch::removeFaceFromTileRenderList(), and updateNearFarVertices().
Definition at line 255 of file tessellation.h.
Referenced by computeTileMaterial(), heritTileMaterial(), initTileUvRGBA(), and sameTile().
Definition at line 257 of file tessellation.h.
Referenced by allocTileUv(), NL3D::CPatch::appendFaceToTileRenderList(), buildTileFaces(), computeTileMaterial(), CTessFace(), deleteTileFaces(), deleteTileUv(), deleteTileUvs(), heritTileMaterial(), initTileUvLightmap(), recreateTileUvs(), releaseTileMaterial(), and NL3D::CPatch::removeFaceFromTileRenderList().
Definition at line 239 of file tessellation.h.
Referenced by NL3D::CZoneLighter::addTriangles(), NL3D::CInstanceLighter::addTriangles(), allocTileUv(), NL3D::CPatch::appendFaceToRenderList(), NL3D::CLandscape::appendToShadowPolyReceiver(), averageTesselationVertices(), NL3D::CPatch::bind(), NL3D::CZoneLighter::buildZoneInformation(), computeSplitPoint(), computeTesselatedPos(), computeTileErrorMetric(), CTessFace(), doMerge(), NL3D::CPatch::extendTessBlockWithEndPos(), NL3D::CPatch::getRootVertexForEdge(), hasVertex(), NL3D::CPatch::makeRoots(), refreshTesselationGeometry(), split(), splitRectangular(), unbind(), updateBindAndSplit(), updateNearFarVertices(), updateRefineMerge(), and updateRefineSplit().
Definition at line 239 of file tessellation.h.
Referenced by NL3D::CZoneLighter::addTriangles(), NL3D::CInstanceLighter::addTriangles(), allocTileUv(), NL3D::CPatch::appendFaceToRenderList(), NL3D::CLandscape::appendToShadowPolyReceiver(), NL3D::CZoneLighter::buildZoneInformation(), computeSplitPoint(), computeTesselatedPos(), computeTileErrorMetric(), CTessFace(), NL3D::CPatch::extendTessBlockWithEndPos(), NL3D::CPatch::getRootVertexForEdge(), hasVertex(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), unbind(), updateNearFarVertices(), updateRefineMerge(), and updateRefineSplit().
Definition at line 239 of file tessellation.h.
Referenced by NL3D::CZoneLighter::addTriangles(), NL3D::CInstanceLighter::addTriangles(), allocTileUv(), NL3D::CPatch::appendFaceToRenderList(), NL3D::CLandscape::appendToShadowPolyReceiver(), NL3D::CZoneLighter::buildZoneInformation(), computeSplitPoint(), computeTesselatedPos(), computeTileErrorMetric(), CTessFace(), NL3D::CPatch::extendTessBlockWithEndPos(), NL3D::CPatch::getRootVertexForEdge(), hasVertex(), NL3D::CPatch::makeRoots(), split(), splitRectangular(), unbind(), updateBindAndSplit(), updateNearFarVertices(), updateRefineMerge(), and updateRefineSplit().
1.6.1