SubdivSchemeModifier Class Reference

#include <SubdivSchemeModifier.h>

List of all members.

Public Slots

 S_ResetSubdivSchemeModifier (int NbTU, int NbTV, int NbTW)
 S_Activate ()
 S_Rotate ()
 S_Symmetrise ()
 S_ToggleCurrentAxis (int A)

Signals

void S_ActivateTransfo (int Uindice, int Vindice, int Windice)
void S_RotateTransfo (int Uindice, int Vindice, int Windice, int Axis)
void S_SymmetriseTransfo (int Uindice, int Vindice, int Windice, int Axis)

Public Member Functions

 SubdivSchemeModifier (QWidget *parent, const char *name)

Public Attributes

int _NbTU
int _NbTV
int _NbTW
int _HideUBelow
int _HideVBelow
int _HideWBelow
int _HideUAbove
int _HideVAbove
int _HideWAbove
int _CurrentAxis
bool *** _Activations
bool *** _ReverseNormals
SSMatrix *** _TransfoModifMatrices

Protected Member Functions

virtual void init ()
virtual void draw ()
virtual void drawWithNames ()
Vec MatriceVecMultiply (SSMatrix M, Vec V)
void drawTransfo (int u, int v, int w)
void fastDrawQuad (Vec P1, Vec P2, Vec P3, Vec P4)
 RotateW ()
 RotateV ()
 RotateU ()
 SymmetriseU ()
 SymmetriseV ()
 SymmetriseW ()


Detailed Description

The SubdivSchemeModifier class is visually represented by the small viewer window in the "Modifier" menu of the "Div" tab of the MultiResMeshEditor interface. It is used to symbolically visualize a subdivision scheme's transformations and modify these transformations. The modifications are of a different nature than those performed by the SubdivSchemeEditor : the SubdivSchemeModifier does not change the matrices' coefficients but performs rotation/symetries of these transformations in the UVW space.
The actions performed in the SubdivSchemeModifier will be transmitted to the current subdivision scheme used in the MultiResMeshEditor via signals and slots.


Constructor & Destructor Documentation

SubdivSchemeModifier::SubdivSchemeModifier ( QWidget *  parent,
const char *  name 
)

Basic constructor : The SubdivSchemeModifier is a QOBJECT


Member Function Documentation

void SubdivSchemeModifier::draw (  )  [protected, virtual]

Symbolically draws activated transformation in big, deactivated transformations in small, in a UVW grid

void SubdivSchemeModifier::drawTransfo ( int  u,
int  v,
int  w 
) [protected]

Draws the transformation symbol (pyramid like shape)

void SubdivSchemeModifier::drawWithNames (  )  [protected, virtual]

Uses PushNames to render drawn elements selectable

void SubdivSchemeModifier::fastDrawQuad ( Vec  P1,
Vec  P2,
Vec  P3,
Vec  P4 
) [protected]

Draws a quad (no shit Sherlock)

void SubdivSchemeModifier::init (  )  [protected, virtual]

Initializes class attributes and openGL viewing parameters.

Vec SubdivSchemeModifier::MatriceVecMultiply ( SSMatrix  M,
Vec  V 
) [protected]

Operator that multiplies a Vec with a SSMatrix, applies transformation to a point in IR^3

SubdivSchemeModifier::RotateU (  )  [protected]

See also:
RotateW

SubdivSchemeModifier::RotateV (  )  [protected]

See also:
RotateW

SubdivSchemeModifier::RotateW (  )  [protected]

Changes the matrix to make this transformation rotate on W
columns of the matrix are permutated in such a way that the transformation
which would have given the patch :
+ P10 + P11


+ P00 + P01
^ V
|
|
---> U

now gives the patch :
+ P10 + P11


+ P00 + P01
---> V
|
|
v U

SubdivSchemeModifier::S_Activate (  )  [slot]

Activates or desactivates the selected transformation. Deactivated transformations will not take part in a subdivision iterration

void SubdivSchemeModifier::S_ActivateTransfo ( int  Uindice,
int  Vindice,
int  Windice 
) [signal]

These signals are used to signify to the MultiResMeshEditor when a transformation has been modified via the SubdivSchemeModifier

SubdivSchemeModifier::S_ResetSubdivSchemeModifier ( int  NbTU,
int  NbTV,
int  NbTW 
) [slot]

Deletes all transformation modification, rebuilds initial data with no modifications

SubdivSchemeModifier::S_Rotate (  )  [slot]

Rotates the selected transformation around the selected UVW axis

void SubdivSchemeModifier::S_RotateTransfo ( int  Uindice,
int  Vindice,
int  Windice,
int  Axis 
) [signal]

These signals are used to signify to the MultiResMeshEditor when a transformation has been modified via the SubdivSchemeModifier

SubdivSchemeModifier::S_Symmetrise (  )  [slot]

Performs a symetry of the selected transformation across the selected UVW plane

void SubdivSchemeModifier::S_SymmetriseTransfo ( int  Uindice,
int  Vindice,
int  Windice,
int  Axis 
) [signal]

These signals are used to signify to the MultiResMeshEditor when a transformation has been modified via the SubdivSchemeModifier

SubdivSchemeModifier::S_ToggleCurrentAxis ( int  A  )  [slot]

Changes the current axis (U:0, V:1, W:2)

See also:
_CurrentAxis

SubdivSchemeModifier::SymmetriseU (  )  [protected]

Changes the matrix to perform a symetry on W
Columns of the matrix are permutated in such a way that the transformation which would have given the patch :
+ P10 + P11


+ P00 + P01
^ V
|
|
---> U

now gives the patch :
+ P10 + P11


+ P00 + P01

^ V
|
|
U <---

SubdivSchemeModifier::SymmetriseV (  )  [protected]

See also:
SymmetriseU

SubdivSchemeModifier::SymmetriseW (  )  [protected]

See also:
SymmetriseU


Member Data Documentation

bool*** SubdivSchemeModifier::_Activations

Array on U,V and W that contains the information : is transformation (U,V,W) used or is it desactivated ?

int SubdivSchemeModifier::_CurrentAxis

Axis used for symmetries and rotations (U:0, V:1, W:2)

int SubdivSchemeModifier::_HideUAbove

See also:
_HideUBelow

int SubdivSchemeModifier::_HideUBelow

The transformations of which the u indice is below _HideUBelow are not symbolically represented in the SubdivSchemeModifier viewer

int SubdivSchemeModifier::_HideVAbove

See also:
_HideVBelow

int SubdivSchemeModifier::_HideVBelow

The transformations of which the v indice is below _HideVBelow are not symbolically represented in the SubdivSchemeModifier viewer

int SubdivSchemeModifier::_HideWAbove

See also:
_HideWBelow

int SubdivSchemeModifier::_HideWBelow

The transformations of which the w indice is below _HideWBelow are not symbolically represented in the SubdivSchemeModifier viewer

int SubdivSchemeModifier::_NbTU

How many transformation has the SubdivScheme we are modifying, along the U dimension

int SubdivSchemeModifier::_NbTV

How many transformation has the SubdivScheme we are modifying, along the V dimension

int SubdivSchemeModifier::_NbTW

How many transformation has the SubdivScheme we are modifying, along the W dimension

bool*** SubdivSchemeModifier::_ReverseNormals

Is it necessary to reverse normals when drawing transformation (U,V,W) (useful after a symetry, where clockwise quads become counter-clockwise)

SSMatrix*** SubdivSchemeModifier::_TransfoModifMatrices

Array on U,V and W that contains the modified transformation matrices


The documentation for this class was generated from the following files:
Generated on Thu Sep 28 09:38:09 2006 by  doxygen 1.4.7