NL3D::CMeshMultiLod::CMeshSlot Class Reference


Detailed Description

This is a slot of the mesh base list

A LOD "currentLOD" is displayed between distances:

[previousLOD->DistMax - currentLOD->BlendLength ; currentLOD->DistMax]

Definition at line 197 of file mesh_multi_lod.h.

Public Types

enum  {
  BlendIn = 0x01, BlendOut = 0x02, CoarseMesh = 0x04, IsOpaque = 0x08,
  IsTransparent = 0x10
}
 Flags of CMeshSlot. More...


Public Member Functions

 CMeshSlot ()
 Ctor.

bool isOpaque ()
 Is Opaque ?

bool isTransparent ()
 Is Transparent ?

void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
 Serial.

 ~CMeshSlot ()

Data Fields

float A
 Factor of distance to polycount function. polyCount = A * distance + B.

float B
 Constant of distance to polycount function. polyCount = A * distance + B.

float BlendLength
 Length of the blend used to show this mesh.

uint CoarseNumTris
std::vector< uint32CoarseTriangles
float DistMax
 Dist max to show this mesh.

float EndPolygonCount
 Polygon count at dist max for this slot.

uint8 Flags
 Blend On/Off, misc flags.

IMeshGeomMeshGeom
 The mesh base. Can be NULL if the geom mesh has not been loaded.


Member Enumeration Documentation

anonymous enum
 

Flags of CMeshSlot.

Enumeration values:
BlendIn 
BlendOut 
CoarseMesh 
IsOpaque 
IsTransparent 

Definition at line 201 of file mesh_multi_lod.h.

00202                 {
00203                         BlendIn                         =       0x01,
00204                         BlendOut                        =       0x02,
00205                         CoarseMesh                      =       0x04,
00206                         IsOpaque                        =       0x08,
00207                         IsTransparent           =       0x10,
00208                 };


Constructor & Destructor Documentation

NL3D::CMeshMultiLod::CMeshSlot::CMeshSlot  ) 
 

Ctor.

Definition at line 430 of file mesh_multi_lod.cpp.

References CoarseNumTris.

00431 {
00432         MeshGeom=NULL;
00433         CoarseNumTris= 0;
00434 }

NL3D::CMeshMultiLod::CMeshSlot::~CMeshSlot  ) 
 

Definition at line 438 of file mesh_multi_lod.cpp.

00439 {
00440         if (MeshGeom)
00441                 delete MeshGeom;
00442 }


Member Function Documentation

bool NL3D::CMeshMultiLod::CMeshSlot::isOpaque  )  [inline]
 

Is Opaque ?

Definition at line 243 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

00243 { return (Flags&IsOpaque)!=0; }

bool NL3D::CMeshMultiLod::CMeshSlot::isTransparent  )  [inline]
 

Is Transparent ?

Definition at line 246 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

00246 { return (Flags&IsTransparent)!=0; }

void NL3D::CMeshMultiLod::CMeshSlot::serial NLMISC::IStream f  )  throw (NLMISC::EStream)
 

Serial.

Definition at line 410 of file mesh_multi_lod.cpp.

00411 {
00412         // Check version
00413         (void)f.serialVersion (0);
00414 
00415         f.serialPolyPtr (MeshGeom);
00416         f.serial (A);
00417         f.serial (B);
00418         f.serial (DistMax);
00419         f.serial (EndPolygonCount);
00420         f.serial (BlendLength);
00421         f.serial (Flags);
00422 
00423         if (f.isReading())
00424         {
00425         }
00426 }


Field Documentation

float NL3D::CMeshMultiLod::CMeshSlot::A
 

Factor of distance to polycount function. polyCount = A * distance + B.

Definition at line 218 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLod::getNumTrianglesWithCoarsestDist(), and NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

float NL3D::CMeshMultiLod::CMeshSlot::B
 

Constant of distance to polycount function. polyCount = A * distance + B.

Definition at line 221 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLod::getNumTrianglesWithCoarsestDist(), and NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

float NL3D::CMeshMultiLod::CMeshSlot::BlendLength
 

Length of the blend used to show this mesh.

Definition at line 230 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

uint NL3D::CMeshMultiLod::CMeshSlot::CoarseNumTris
 

Definition at line 236 of file mesh_multi_lod.h.

Referenced by CMeshSlot(), NL3D::CMeshMultiLod::compileCoarseMeshes(), and NL3D::CMeshMultiLod::renderCoarseMesh().

std::vector<uint32> NL3D::CMeshMultiLod::CMeshSlot::CoarseTriangles
 

Definition at line 237 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLod::compileCoarseMeshes(), and NL3D::CMeshMultiLod::renderCoarseMesh().

float NL3D::CMeshMultiLod::CMeshSlot::DistMax
 

Dist max to show this mesh.

Definition at line 224 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

float NL3D::CMeshMultiLod::CMeshSlot::EndPolygonCount
 

Polygon count at dist max for this slot.

Definition at line 227 of file mesh_multi_lod.h.

uint8 NL3D::CMeshMultiLod::CMeshSlot::Flags
 

Blend On/Off, misc flags.

Definition at line 233 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLod::compileCoarseMeshes(), NL3D::CMeshMultiLod::instanciateCoarseMeshSpace(), NL3D::CMeshMultiLod::profileMeshGeom(), NL3D::CMeshMultiLod::renderCoarseMesh(), NL3D::CMeshMultiLod::renderMeshGeom(), and NL3D::CMeshMultiLodInstance::traverseLoadBalancing().

IMeshGeom* NL3D::CMeshMultiLod::CMeshSlot::MeshGeom
 

The mesh base. Can be NULL if the geom mesh has not been loaded.

Definition at line 215 of file mesh_multi_lod.h.

Referenced by NL3D::CMeshMultiLod::build(), NL3D::CMeshMultiLod::clip(), NL3D::CMeshMultiLod::compileCoarseMeshes(), NL3D::CMeshMultiLod::getNumTrianglesWithCoarsestDist(), NL3D::CMeshMultiLod::instanciateCoarseMeshSpace(), NL3D::CMeshMultiLod::profileMeshGeom(), NL3D::CMeshMultiLod::renderCoarseMesh(), NL3D::CMeshMultiLod::renderMeshGeom(), and NL3D::CMeshMultiLodInstance::traverseLoadBalancing().


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 06:55:26 2004 for NeL by doxygen 1.3.6