# 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::CVisualCollisionEntityUser Class Reference

UVisualCollisionEntity implementation. More...

#include <visual_collision_entity_user.h>

Inheritance diagram for NL3D::CVisualCollisionEntityUser:

NL3D::UVisualCollisionEntity List of all members.

Public Methods

 CVisualCollisionEntityUser (CVisualCollisionManager *manager)
 Constructor. create entity. More...

 ~CVisualCollisionEntityUser ()
 dtor, delete the entity. More...

virtual bool snapToGround (CVector &pos)
 Snap the entity onto the ground. More...

virtual bool snapToGround (CVector &pos, CVector &normal)
 Snap the entity onto the ground. More...

virtual void setGroundMode (bool groundMode)
 If groundMode is true, the entity is snapped on faces with normal.z > 0. More...

virtual void setCeilMode (bool ceilMode)
 If ceilMode is true, the entity is snapped on faces with normal.z < 0. More...

virtual bool getGroundMode () const
virtual bool getCeilMode () const
virtual void setSnapToRenderedTesselation (bool snapMode)
 By default, the visual collision entity is snapped on rendered/geomorphed tesselation (true). More...

virtual bool getSnapToRenderedTesselation () const
virtual bool getSurfaceInfo (const CVector &pos, CSurfaceInfo &surfaceInfo)
 Get surface informations. More...

virtual bool getStaticLightSetup (const CVector &pos, std::vector< CPointLightInfluence > &pointLightList, uint8 &sunContribution, NLMISC::CRGBA &localAmbient)
 Get the static Light Setup, using landscape under us. More...

virtual void displayDebugGrid (UDriver &drv) const
 Draw lines for the landscape quadgrid collision faces under us NB: a drv.setMatrixMode3D() should have been done before. More...


Private Attributes

CVisualCollisionManager_Manager
CVisualCollisionEntity_Entity

Detailed Description

UVisualCollisionEntity implementation.

Author:
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 46 of file visual_collision_entity_user.h.


Constructor & Destructor Documentation

NL3D::CVisualCollisionEntityUser::CVisualCollisionEntityUser CVisualCollisionManager   manager [inline]
 

Constructor. create entity.

Definition at line 51 of file visual_collision_entity_user.h.

References _Entity, _Manager, and NL3D_MEM_ENTITY_USER.

NL3D::CVisualCollisionEntityUser::~CVisualCollisionEntityUser   [inline]
 

dtor, delete the entity.

Definition at line 58 of file visual_collision_entity_user.h.

References _Entity, _Manager, and NL3D_MEM_ENTITY_USER.


Member Function Documentation

void NL3D::CVisualCollisionEntityUser::displayDebugGrid UDriver   drv const [virtual]
 

Draw lines for the landscape quadgrid collision faces under us NB: a drv.setMatrixMode3D() should have been done before.

Implements NL3D::UVisualCollisionEntity.

Definition at line 118 of file visual_collision_entity_user.cpp.

References _Entity, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::getCeilMode   const [virtual]
 

Implements NL3D::UVisualCollisionEntity.

Definition at line 84 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::getGroundMode   const [virtual]
 

Implements NL3D::UVisualCollisionEntity.

Definition at line 77 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::getSnapToRenderedTesselation   const [virtual]
 

Implements NL3D::UVisualCollisionEntity.

Definition at line 100 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::getStaticLightSetup const CVector &    pos,
std::vector< CPointLightInfluence > &    pointLightList,
uint8   sunContribution,
NLMISC::CRGBA   localAmbient
[virtual]
 

Get the static Light Setup, using landscape under us.

append lights to pointLightList. NB: if find no landscape faces, don't modify pointLightList, set sunContribution=255, and return false Else, use CPatch::TileLightInfluences to get lights, and use CPatch::Lumels to get sunContribution. NB: because CPatch::Lumels encode the gouraud shading on the surface, return lumelValue*2 so the object won't be too darken.

Implements NL3D::UVisualCollisionEntity.

Definition at line 109 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_LIGHT_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::getSurfaceInfo const CVector &    pos,
CSurfaceInfo   surfaceInfo
[virtual]
 

Get surface informations.

pos is checked with polygons that are at least (cache dependent) at +- 10m in altitude.

Parameters:
info  will be filled with surface informations if the method returns true.
Returns:
true if the surface has been found and informations has been filled.

Implements NL3D::UVisualCollisionEntity.

Definition at line 125 of file visual_collision_entity_user.cpp.

References _Entity, and NL3D_MEM_ENTITY_USER.

void NL3D::CVisualCollisionEntityUser::setCeilMode bool    ceilMode [virtual]
 

If ceilMode is true, the entity is snapped on faces with normal.z < 0.

Default is false. NB: if both groundMode and ceilMode are false, snapToGround is a no-op.

Implements NL3D::UVisualCollisionEntity.

Definition at line 70 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

void NL3D::CVisualCollisionEntityUser::setGroundMode bool    groundMode [virtual]
 

If groundMode is true, the entity is snapped on faces with normal.z > 0.

Default is true. NB: if both groundMode and ceilMode are false, snapToGround is a no-op.

Implements NL3D::UVisualCollisionEntity.

Definition at line 63 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

void NL3D::CVisualCollisionEntityUser::setSnapToRenderedTesselation bool    snapMode [virtual]
 

By default, the visual collision entity is snapped on rendered/geomorphed tesselation (true).

Use this method to change this behavior. if false, the entity is snapped to the tile level tesselation according to noise etc...

Implements NL3D::UVisualCollisionEntity.

Definition at line 93 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_UI_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::snapToGround CVector &    pos,
CVector &    normal
[virtual]
 

Snap the entity onto the ground.

pos.z is modified so that it lies on the ground, according to rendered landscapes and meshes setuped into the visual collision manager. pos is checked with polygons that are at least (cache dependent) at +- 10m in altitude.

Parameters:
normal  the ret normal of where it is snapped. NB: if return false, not modified.
Returns:
true if pos.z has been modified (sometimes it may not find a solution).

Implements NL3D::UVisualCollisionEntity.

Definition at line 53 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_SNAP_VCE, and NL3D_MEM_ENTITY_USER.

bool NL3D::CVisualCollisionEntityUser::snapToGround CVector &    pos [virtual]
 

Snap the entity onto the ground.

pos.z is modified so that it lies on the ground, according to rendered landscapes and meshes setuped into the visual collision manager. pos is checked with polygons that are at least (cache dependent) at +- 10m in altitude.

Returns:
true if pos.z has been modified (sometimes it may not find a solution).

Implements NL3D::UVisualCollisionEntity.

Definition at line 46 of file visual_collision_entity_user.cpp.

References _Entity, NL3D_HAUTO_SNAP_VCE, and NL3D_MEM_ENTITY_USER.


Member Data Documentation

CVisualCollisionEntity* NL3D::CVisualCollisionEntityUser::_Entity [private]
 

Definition at line 90 of file visual_collision_entity_user.h.

Referenced by CVisualCollisionEntityUser, displayDebugGrid, getCeilMode, getGroundMode, getSnapToRenderedTesselation, getStaticLightSetup, getSurfaceInfo, setCeilMode, setGroundMode, setSnapToRenderedTesselation, snapToGround, and ~CVisualCollisionEntityUser.

CVisualCollisionManager* NL3D::CVisualCollisionEntityUser::_Manager [private]
 

Definition at line 89 of file visual_collision_entity_user.h.

Referenced by CVisualCollisionEntityUser, and ~CVisualCollisionEntityUser.


The documentation for this class was generated from the following files: