#include <vegetable_instance_group.h>
Inheritance diagram for NL3D::CVegetableInstanceGroup:
Nevrax France
Definition at line 59 of file vegetable_instance_group.h.
UpdateLighting management | |
void | linkBeforeUL (CVegetableInstanceGroup *igNext) |
insert this before igNext. | |
void | unlinkUL () |
unlink | |
CVegetableInstanceGroup * | _ULNext |
insert this before igNext. | |
uint | _ULNumVertices |
insert this before igNext. | |
CVegetableInstanceGroup * | _ULPrec |
insert this before igNext. | |
Public Member Functions | |
CVegetableInstanceGroup () | |
Constructor. | |
bool | isEmpty () const |
tells if the instanceGroup has no faces at all. | |
~CVegetableInstanceGroup () | |
Data Fields | |
CTessNodeList * | Next |
CTessNodeList * | Prec |
CVegetableLightEx | VegetableLightEx |
Private Attributes | |
CVegetableClipBlock * | _ClipOwner |
bool | _HasZSortPassInstances |
CVegetableRdrPass | _RdrPass [NL3D_VEGETABLE_NRDRPASS] |
CVegetableSortBlock * | _SortOwner |
NLMISC::CObjectVector< sint16, false > | _TriangleQuadrantOrderArray |
uint | _TriangleQuadrantOrderNumTriangles |
sint16 * | _TriangleQuadrantOrders [NL3D_VEGETABLE_NUM_QUADRANT] |
Friends | |
class | CVegetableClipBlock |
class | CVegetableManager |
class | CVegetableSortBlock |
|
Constructor.
Definition at line 36 of file vegetable_instance_group.cpp. References _ClipOwner, _HasZSortPassInstances, _SortOwner, _TriangleQuadrantOrderNumTriangles, and _ULNumVertices.
00037 { 00038 _ClipOwner= NULL; 00039 _SortOwner= NULL; 00040 _HasZSortPassInstances= false; 00041 _TriangleQuadrantOrderNumTriangles= 0; 00042 _ULPrec= this; 00043 _ULNext= this; 00044 _ULNumVertices= 0; 00045 } |
|
Definition at line 49 of file vegetable_instance_group.cpp. References unlinkUL().
00050 { 00051 unlinkUL(); 00052 } |
|
tells if the instanceGroup has no faces at all.
Definition at line 90 of file vegetable_instance_group.cpp. References _RdrPass, NL3D_VEGETABLE_NRDRPASS, NL3D::CVegetableInstanceGroup::CVegetableRdrPass::NTriangles, and uint.
00091 { 00092 for(uint i=0; i<NL3D_VEGETABLE_NRDRPASS; i++) 00093 { 00094 const CVegetableRdrPass &vegetRdrPass= _RdrPass[i]; 00095 // If some triangles to render, the ig is not empty 00096 if(vegetRdrPass.NTriangles != 0) 00097 return false; 00098 } 00099 00100 // for all pass, no triangles to render => the ig is empty. 00101 return true; 00102 } |
|
insert this before igNext.
Definition at line 56 of file vegetable_instance_group.cpp. References _ULNext, _ULPrec, and nlassert. Referenced by NL3D::CVegetableManager::addInstance().
00057 { 00058 nlassert(igNext); 00059 00060 // first, unlink others from me. NB: works even if _ULPrec==_ULNext==this. 00061 _ULNext->_ULPrec= _ULPrec; 00062 _ULPrec->_ULNext= _ULNext; 00063 // link to igNext. 00064 _ULNext= igNext; 00065 _ULPrec= igNext->_ULPrec; 00066 // link others to me. 00067 _ULNext->_ULPrec= this; 00068 _ULPrec->_ULNext= this; 00069 } |
|
unlink
Definition at line 72 of file vegetable_instance_group.cpp. References _ULNext, and _ULPrec. Referenced by NL3D::CVegetableManager::deleteIg(), and ~CVegetableInstanceGroup().
|
|
Definition at line 78 of file vegetable_instance_group.h. |
|
Definition at line 77 of file vegetable_instance_group.h. |
|
Definition at line 79 of file vegetable_instance_group.h. |
|
Definition at line 83 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), NL3D::CVegetableManager::createIg(), CVegetableInstanceGroup(), and NL3D::CVegetableManager::deleteIg(). |
|
Definition at line 146 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), CVegetableInstanceGroup(), and NL3D::CVegetableManager::deleteIg(). |
|
|
Definition at line 84 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), NL3D::CVegetableManager::createIg(), CVegetableInstanceGroup(), and NL3D::CVegetableManager::deleteIg(). |
|
Definition at line 142 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::reserveIgCompile(). |
|
Definition at line 143 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), CVegetableInstanceGroup(), and NL3D::CVegetableManager::reserveIgCompile(). |
|
Definition at line 144 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), NL3D::CVegetableManager::reserveIgCompile(), and NL3D::CVegetableSortBlock::updateSortBlock(). |
|
insert this before igNext.
Definition at line 154 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::deleteIg(), NL3D::CVegetableManager::doUpdateLighting(), linkBeforeUL(), and unlinkUL(). |
|
insert this before igNext.
Definition at line 156 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), CVegetableInstanceGroup(), and NL3D::CVegetableManager::deleteIg(). |
|
insert this before igNext.
Definition at line 153 of file vegetable_instance_group.h. Referenced by linkBeforeUL(), and unlinkUL(). |
|
|
Definition at line 43 of file tess_list.h. Referenced by NL3D::CTessNodeList::CTessNodeList(). |
|
The Vegetable Light Information. Contains list of PointLights which influence the vegetIg. NB: PointLights ptrs are kept so the ig must be deleted when the lights are deleted. Definition at line 73 of file vegetable_instance_group.h. Referenced by NL3D::CVegetableManager::addInstance(), NL3D::CPatch::generateTileVegetable(), NL3D::CVegetableManager::updateInstanceLighting(), and NL3D::CVegetableManager::updateLightingIGPart(). |