From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a02774.html | 648 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 648 insertions(+) create mode 100644 docs/doxygen/nel/a02774.html (limited to 'docs/doxygen/nel/a02774.html') diff --git a/docs/doxygen/nel/a02774.html b/docs/doxygen/nel/a02774.html new file mode 100644 index 00000000..34a1b5e1 --- /dev/null +++ b/docs/doxygen/nel/a02774.html @@ -0,0 +1,648 @@ + + +NeL: NL3D::CLoadBalancingGroup class Reference + + + +
+

NL3D::CLoadBalancingGroup Class Reference

#include <load_balancing_trav.h> +

+


Detailed Description

+A LoadBalancing Group. Models are owned by a group. Groups are created in CLoadBalancingTrav.

+

See also:
CScene CLoadBalancingTrav
+
Author:
Lionel Berenguier

+Nevrax France

+
Date:
2002
+ +

+ +

+Definition at line 60 of file load_balancing_trav.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

enum  TPolygonBalancingMode { PolygonBalancingOff = 0, +PolygonBalancingOn, +PolygonBalancingClamp, +CountPolygonBalancing + }

Public Member Functions

void addNbFacesPass0 (float v)
 CLoadBalancingGroup ()
float computeModelNbFace (float faceIn)
 Compute the number of face to be rendered for thismodel, according to the number of faces he want to draw.

float getNbFaceAsked () const
uint getNbFaceWanted () const
void setNbFaceWanted (uint nFaces)

Data Fields

std::string Name

Private Member Functions

void computeRatioAndSmooth (TPolygonBalancingMode polMode)

Private Attributes

bool _DefaultGroup
float _FaceRatio
float _NbFacePass0
uint _NbFaceWanted
TPolygonBalancingMode _PrecPolygonBalancingMode
NLMISC::CValueSmoother _ValueSmoother

Friends

class CLoadBalancingTrav
+


Member Enumeration Documentation

+

+ + + + +
+ + +
enum NL3D::CLoadBalancingGroup::TPolygonBalancingMode +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + +
PolygonBalancingOff  +
PolygonBalancingOn  +
PolygonBalancingClamp  +
CountPolygonBalancing  +
+
+ +

+Definition at line 64 of file load_balancing_trav.h. +

+

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CLoadBalancingGroup::CLoadBalancingGroup  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 54 of file load_balancing_trav.cpp. +

+References _DefaultGroup, _FaceRatio, _NbFacePass0, _NbFaceWanted, _PrecPolygonBalancingMode, _ValueSmoother, NLMISC::CValueSmootherTemplate< float >::init(), and NL3D_DEFAULT_LOADBALANCING_VALUE_SMOOTHER. +

+

00055 {
+00056         _PrecPolygonBalancingMode= CLoadBalancingGroup::PolygonBalancingOff;
+00057         _NbFaceWanted= 20000;
+00058         _ValueSmoother.init(NL3D_DEFAULT_LOADBALANCING_VALUE_SMOOTHER);
+00059         _DefaultGroup= false;
+00060 
+00061         _NbFacePass0= 0;
+00062         _FaceRatio= 1;
+00063 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLoadBalancingGroup::addNbFacesPass0 float  v  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 80 of file load_balancing_trav.h. +

+References _NbFacePass0, and v. +

+Referenced by NL3D::CTransformShape::traverseLoadBalancingPass0(). +

+

00080 {_NbFacePass0+= v;}
+
+

+ + + + +
+ + + + + + + + + + +
float NL3D::CLoadBalancingGroup::computeModelNbFace float  faceIn  )  [inline]
+
+ + + + + +
+   + + +

+Compute the number of face to be rendered for thismodel, according to the number of faces he want to draw. +

+ +

+Definition at line 83 of file load_balancing_trav.h. +

+References _FaceRatio. +

+Referenced by NL3D::CTransformShape::traverseLoadBalancingPass1(). +

+

00083 {return faceIn * _FaceRatio;}
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLoadBalancingGroup::computeRatioAndSmooth TPolygonBalancingMode  polMode  )  [private]
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file load_balancing_trav.cpp. +

+References _DefaultGroup, _FaceRatio, _NbFacePass0, _NbFaceWanted, _PrecPolygonBalancingMode, _ValueSmoother, NLMISC::CValueSmootherTemplate< float >::addValue(), NLMISC::clamp(), NLMISC::CValueSmootherTemplate< float >::getSmoothValue(), NLMISC::CValueSmootherTemplate< float >::init(), NLMISC::isValidDouble(), NL3D_DEFAULT_LOADBALANCING_VALUE_SMOOTHER, NL3D_LOADBALANCING_SMOOTHER_MAX_RATIO, PolygonBalancingClamp, PolygonBalancingOff, PolygonBalancingOn, and NLMISC::CValueSmootherTemplate< float >::reset(). +

+

00068 {
+00069         // If Default group, disable load balancing
+00070         if(_DefaultGroup)
+00071                 polMode= PolygonBalancingOff;
+00072 
+00073         // Compute ratio
+00074         switch(polMode)
+00075         {
+00076         case PolygonBalancingOff:
+00077                 _FaceRatio= 1;
+00078                 break;
+00079         case PolygonBalancingOn :
+00080                 if(_NbFacePass0!=0)
+00081                         _FaceRatio= (float)_NbFaceWanted / _NbFacePass0;
+00082                 else
+00083                         _FaceRatio= 1;
+00084                 break;
+00085         case PolygonBalancingClamp:
+00086                 if(_NbFacePass0!=0)
+00087                         _FaceRatio= (float)_NbFaceWanted / _NbFacePass0;
+00088                 else
+00089                         _FaceRatio= 1;
+00090                 clamp(_FaceRatio, 0, 1);
+00091                 break;
+00092                 default: break;
+00093         };
+00094 
+00095         // smooth the value.
+00096         // if change of PolygonBalancingMode, reset the _ValueSmoother.
+00097         if(polMode!=_PrecPolygonBalancingMode)
+00098         {
+00099                 _ValueSmoother.init(NL3D_DEFAULT_LOADBALANCING_VALUE_SMOOTHER);
+00100                 _PrecPolygonBalancingMode= polMode;
+00101         }
+00102         // if not PolygonBalancingOff, smooth the ratio.
+00103         if(polMode!=PolygonBalancingOff)
+00104         {
+00105                 // FIX: If the _FaceRatio is not a float (NaN or +-oo), don't add it!!
+00106                 if(isValidDouble(_FaceRatio))
+00107                         _ValueSmoother.addValue(_FaceRatio);
+00108                 float   fSmooth= _ValueSmoother.getSmoothValue();
+00109 
+00110                 // If after smoothing, the number of faces is still too big, reduce smooth effect! (frustrum clip effect)
+00111                 if(fSmooth*_NbFacePass0 > _NbFaceWanted*NL3D_LOADBALANCING_SMOOTHER_MAX_RATIO)
+00112                 {
+00113                         // reset the smoother
+00114                         _ValueSmoother.reset();
+00115                         // reduce smooth effect
+00116                         fSmooth= _FaceRatio*NL3D_LOADBALANCING_SMOOTHER_MAX_RATIO;
+00117                         _ValueSmoother.addValue(fSmooth);
+00118                 }
+00119 
+00120                 // take the smoothed value.
+00121                 _FaceRatio= fSmooth;
+00122         }
+00123 
+00124 
+00125 }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLoadBalancingGroup::getNbFaceAsked  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 76 of file load_balancing_trav.h. +

+References _NbFacePass0. +

+

00076 {return _NbFacePass0;}
+
+

+ + + + +
+ + + + + + + + + +
uint NL3D::CLoadBalancingGroup::getNbFaceWanted  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 74 of file load_balancing_trav.h. +

+References _NbFaceWanted, and uint. +

+Referenced by NL3D::CLoadBalancingTrav::getGroupNbFaceWanted(). +

+

00074 {return _NbFaceWanted;}
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLoadBalancingGroup::setNbFaceWanted uint  nFaces  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 73 of file load_balancing_trav.h. +

+References _NbFaceWanted, and uint. +

+Referenced by NL3D::CLoadBalancingTrav::setGroupNbFaceWanted(). +

+

00073 {_NbFaceWanted= nFaces;}
+
+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend class CLoadBalancingTrav [friend] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 86 of file load_balancing_trav.h.

+


Field Documentation

+

+ + + + +
+ + +
bool NL3D::CLoadBalancingGroup::_DefaultGroup [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 89 of file load_balancing_trav.h. +

+Referenced by CLoadBalancingGroup(), and computeRatioAndSmooth().

+

+ + + + +
+ + +
float NL3D::CLoadBalancingGroup::_FaceRatio [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 98 of file load_balancing_trav.h. +

+Referenced by CLoadBalancingGroup(), computeModelNbFace(), and computeRatioAndSmooth().

+

+ + + + +
+ + +
float NL3D::CLoadBalancingGroup::_NbFacePass0 [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 92 of file load_balancing_trav.h. +

+Referenced by addNbFacesPass0(), CLoadBalancingGroup(), computeRatioAndSmooth(), and getNbFaceAsked().

+

+ + + + +
+ + +
uint NL3D::CLoadBalancingGroup::_NbFaceWanted [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 95 of file load_balancing_trav.h. +

+Referenced by CLoadBalancingGroup(), computeRatioAndSmooth(), getNbFaceWanted(), and setNbFaceWanted().

+

+ + + + +
+ + +
TPolygonBalancingMode NL3D::CLoadBalancingGroup::_PrecPolygonBalancingMode [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 103 of file load_balancing_trav.h. +

+Referenced by CLoadBalancingGroup(), and computeRatioAndSmooth().

+

+ + + + +
+ + +
NLMISC::CValueSmoother NL3D::CLoadBalancingGroup::_ValueSmoother [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 101 of file load_balancing_trav.h. +

+Referenced by CLoadBalancingGroup(), and computeRatioAndSmooth().

+

+ + + + +
+ + +
std::string NL3D::CLoadBalancingGroup::Name +
+
+ + + + + +
+   + + +

+ +

+Definition at line 68 of file load_balancing_trav.h. +

+Referenced by NL3D::CTransform::getLoadBalancingGroup().

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 06:49:40 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1