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

A class used to setup CornerSmoothFlag in CPatch. More...

#include <zone_corner_smoother.h>

List of all members.

Public Methods

 CZoneCornerSmoother ()
 Constructor. More...

void computeAllCornerSmoothFlags (CZone *zone, std::vector< CZone * > neighborZones)
 the doit method. More...


Private Types

typedef std::map< sint, CVertexSmoothInfoTVertexMap
typedef TVertexMap::iterator ItVertexMap
typedef std::map< const CTessVertex *,
sint
TIdVertexMap
typedef TIdVertexMap::iterator ItIdVertexMap

Private Methods

void buildPatchBindInfo (CPatch &pa, const CZone::CPatchConnect &pc, bool smoothEdge[4], bool cornerOnBind[4])
void updateVertex (uint idVert, uint corner, bool smoothEdge[4], bool cornerOnBind[4])

Private Attributes

TVertexMap VertexMap
TIdVertexMap IdVertexMap


Detailed Description

A class used to setup CornerSmoothFlag in CPatch.

NB: it works with a compiled CZone (ie added in a landscape, and got with landscape->getZone()). NB: it changes values directly in CPatch (which it should not be permitted...), but don't except see the changes in realtime.

Author:
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 51 of file zone_corner_smoother.h.


Member Typedef Documentation

typedef TIdVertexMap::iterator NL3D::CZoneCornerSmoother::ItIdVertexMap [private]
 

Definition at line 95 of file zone_corner_smoother.h.

Referenced by computeAllCornerSmoothFlags.

typedef TVertexMap::iterator NL3D::CZoneCornerSmoother::ItVertexMap [private]
 

Definition at line 92 of file zone_corner_smoother.h.

typedef std::map<const CTessVertex *, sint> NL3D::CZoneCornerSmoother::TIdVertexMap [private]
 

Definition at line 94 of file zone_corner_smoother.h.

typedef std::map<sint, CVertexSmoothInfo> NL3D::CZoneCornerSmoother::TVertexMap [private]
 

Definition at line 91 of file zone_corner_smoother.h.


Constructor & Destructor Documentation

NL3D::CZoneCornerSmoother::CZoneCornerSmoother  
 

Constructor.

Definition at line 36 of file zone_corner_smoother.cpp.


Member Function Documentation

void NL3D::CZoneCornerSmoother::buildPatchBindInfo CPatch   pa,
const CZone::CPatchConnect   pc,
bool    smoothEdge[4],
bool    cornerOnBind[4]
[private]
 

Definition at line 42 of file zone_corner_smoother.cpp.

Referenced by computeAllCornerSmoothFlags.

void NL3D::CZoneCornerSmoother::computeAllCornerSmoothFlags CZone   zone,
std::vector< CZone * >    neighborZones
 

the doit method.

this Zone and his 8 neighbors should be added into a landscape. this method call setCornerSmoothFlag() on all CPatch of the zone. All corner smooth are set to false but if:

  • the corner is a vertex on a bind 1/X OR the vertex has exaclty 4 patch around him. AND
  • All edges sharing this corner must be smoothed getSmoothFlag()==true. AND
  • All edges sharing this corner must be "SameEdgeOrder", ie the patchs sharing this edge must have same number of tiles along this edge.
This is important for noise computing, and lighting.

Definition at line 134 of file zone_corner_smoother.cpp.

References buildPatchBindInfo, IdVertexMap, ItIdVertexMap, nlassert, updateVertex, and VertexMap.

void NL3D::CZoneCornerSmoother::updateVertex uint    idVert,
uint    corner,
bool    smoothEdge[4],
bool    cornerOnBind[4]
[private]
 

Definition at line 111 of file zone_corner_smoother.cpp.

References VertexMap.

Referenced by computeAllCornerSmoothFlags.


Member Data Documentation

TIdVertexMap NL3D::CZoneCornerSmoother::IdVertexMap [private]
 

Definition at line 100 of file zone_corner_smoother.h.

Referenced by computeAllCornerSmoothFlags.

TVertexMap NL3D::CZoneCornerSmoother::VertexMap [private]
 

Definition at line 99 of file zone_corner_smoother.h.

Referenced by computeAllCornerSmoothFlags, and updateVertex.


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