#include <MultiResMeshEditor.h>
Public Slots | |
1/2 CORE & INIT MESH SLOTS | |
Slots linked to signals from the Mesh interface tab. . | |
S_ToggleDrawLevel (int Level) | |
S_ToggleDrawMode (int DrawMode) | |
S_ToggleInitMeshUSize (int USize) | |
S_ToggleInitMeshVSize (int VSize) | |
S_ToggleInitMeshWSize (int WSize) | |
S_ToggleInitMeshCreateMode (int Mode) | |
S_SetDrawParameter1 (const QString &Value) | |
S_SetDrawParameter2 (const QString &Value) | |
S_SetDrawParameter3 (const QString &Value) | |
S_CreateInitMesh () | |
S_ResetPerturbations () | |
S_ResetLevelPerturbations () | |
S_ResetSelectedPerturbations () | |
S_DeletePatch () | |
S_CutSubtreePatch () | |
S_SelectNeighbors () | |
S_SelectNextPoint () | |
S_SelectPrevPoint () | |
S_SelectNextPatch () | |
S_SelectPrevPatch () | |
S_InversePointSelection () | |
S_CreateSaveTable (int Key) | |
S_PrintSaveTable (int Key) | |
3 SUBDIV SLOTS | |
Slots linked to signals from the Div interface tab. . | |
S_ChangeSubFileName (const QString &Name) | |
S_LoadSubdivScheme () | |
S_NewSubdivScheme () | |
S_EditSubdivScheme () | |
S_ActivateTransfo (int Uindice, int Vindice, int Windice) | |
S_RotateTransfo (int Uindice, int Vindice, int Windice, int Axis) | |
S_SymetriseTransfo (int Uindice, int Vindice, int Windice, int Axis) | |
S_ApplySchemeToSelectedPatches () | |
S_SubdivideLevel () | |
S_SubdivideSelected () | |
S_BuildPerturbations () | |
4 OUTPUT SLOTS | |
Slots linked to signals from the Out interface tab. . | |
S_ChangeObjFileName (const QString &Name) | |
S_ToggleOutputMode (int Mode) | |
S_SaveObjFile () | |
S_SaveStructure () | |
S_LoadStructure () | |
S_BuildStructureFromPoints (int NbGridPoints) | |
5 HELPER SLOTS | |
Slots linked to signals from the Helper interface tab. . | |
S_ToggleHelperView (bool B) | |
S_ChangeHelperSize (int S) | |
S_SetHelperPosX (const QString &S) | |
S_SetHelperPosY (const QString &S) | |
S_SetHelperPosZ (const QString &S) | |
S_ToggleBaryAbs (bool Abs) | |
S_SetHelperPt1 () | |
S_SetHelperPt2 () | |
S_SetHelperPt3 () | |
S_SetHelperOrientX (const QString &S) | |
S_SetHelperOrientY (const QString &S) | |
S_SetHelperOrientZ (const QString &S) | |
S_PutMFOnHelper () | |
S_MoveMFOnHelper () | |
S_PutHelperOnPt () | |
S_ToggleHelperFollowMF (bool B) | |
S_ConstrainHelperXY (bool B) | |
S_ConstrainHelperZ (bool B) | |
S_ConstrainHelperFree (bool B) | |
6 PLANARITY SLOTS | |
Slots linked to signals from the Out interface tab. . | |
S_ViewWorstPlanarity () | |
S_ViewAveragePlanarity () | |
S_ResetColor () | |
S_TogglePlanarityOnSelected (bool B) | |
S_TogglePlanarityBySelected (bool B) | |
S_TogglePlanarityMoveTypeFree (bool B) | |
S_SetPlanarityThreshHold (const QString &S) | |
S_SetPlanarityDerStep (const QString &S) | |
S_SetPlanarityMoveStep (const QString &S) | |
S_SetPlanarityAlpha (const QString &S) | |
S_SetPlanarityBeta (const QString &S) | |
S_SetPlanarityNbIter (int I) | |
S_TogglePlanarityDegMode (bool B) | |
S_SetPlanarityNbTestsBetter (int N) | |
Signals | |
7 SIGNALS | |
void | S_DisplayQstring (const QString &Q) |
void | S_ResetSubdivSchemeModifier (int NbTU, int NbTV, int NbTW) |
void | S_ResetProgressBar () |
void | S_SetProgressBar (int B) |
Public Member Functions | |
0 CLASS FUNCTIONS | |
MultiResMeshEditor (QWidget *parent, const char *name) | |
virtual void | draw () |
virtual void | drawWithNames () |
virtual void | init () |
virtual QString | helpString () const |
virtual void | postSelection (const QPoint &point) |
virtual void | keyPressEvent (QKeyEvent *e) |
void | RefreshHelperPos () |
double | OptimizePlanarityFunctionTables (double &WorstPlanarity, double &AveragePlanarity, int NbQuads, Point ***Quads, double *QuadPlanarities) |
double | OptimizePlanarityFunctionTablesAfterPerturbModif (double &WorstPlanarity, double &NewWorstPlanarity, double &AveragePlanarity, double &NewAveragePlanarity, int NbQ, Point ***QTable, double *QuadPlanarities, int *ModifiedQuads) |
OptimizePlanarityTables (bool OnlySelectedPerturb, bool OnlySelectedPatches, float MaxBigVectorNorm, float DerStep, float MoveStep, int NbIter, float Alpha, float Beta, float Gamma) | |
OptimizePlanarityTablesZMode (bool OnlySelectedPerturb, bool OnlySelectedPatches, float MaxBigVectorNorm, float DerStep, float MoveStep, int NbIter, float Alpha, float Beta, float Gamma) | |
Public Attributes | |
1 CORE ATTRIBUTES | |
These attributes compose the essential data used by the drawing and mouse manipulation procedures | |
int | _DrawLevel |
int | _DrawMode |
BaryPatch * | _RootPatch |
Point ** | _LvlZeroPts |
int | _LvlZeroNbPts |
ManipulatedFrame * | _MyManipulatedFrame |
2 INIT MESH ATTRIBUTES | |
The attributes related to the creation of the initial mesh. Usually modified via the Mesh Tab of the interface. The Initial Mesh is also referred to as the Level 0 mesh. Level 0 patches are initially organised in a (U,V,W) grid structure. | |
int | _InitMeshUSize |
int | _InitMeshVSize |
int | _InitMeshWSize |
int | _InitMeshCreateMode |
float | _DrawParameter1 |
float | _DrawParameter2 |
float | _DrawParameter3 |
3 SUBDIV ATTRIBUTES | |
Attributes related to structure subdivision functions and subdivided structures. Usually modified via the Div Tab of the interface. See documentation for a more detailed description on patch morphologies, connections and subdivision transformations. | |
QString | _SubFileName |
SubdivScheme * | _SubdivScheme |
int | _SubdivSchemeUCnx1 |
int | _SubdivSchemeUCnx2 |
int | _SubdivSchemeVCnx1 |
int | _SubdivSchemeVCnx2 |
int | _SubdivSchemeWCnx1 |
int | _SubdivSchemeWCnx2 |
stack< SubdivScheme * > | _UsedSchemes |
stack< Point * > | _PointTable1 |
stack< Point * > | _PointTable2 |
stack< Point * > | _PointTable3 |
stack< Point * > | _PointTable4 |
stack< BaryPatch * > | _PatchTable1 |
stack< BaryPatch * > | _PatchTable2 |
stack< BaryPatch * > | _PatchTable3 |
stack< BaryPatch * > | _PatchTable4 |
int | _TablesLevel [8] |
int | _LevelMax |
Point *** | _PerturbTable |
int * | _NbPerturb |
4 OUTPUT ATTRIBUTES | |
Attributes related to the output functions. Usually modified via the Out Tab of the interface. | |
QString | _ObjFileName |
QString | _SaveName |
int | _OutputMode |
int | _NbGridPoints |
5 HELPER ATTRIBUTES | |
Attributes related to the manipulation of the helper (yellow disk). Usually modified via the Helper Tab of the interface. | |
Frame | _HelperFrame |
bool | _HelperDraw |
float | _HelperSize |
float | _HelperPosX |
float | _HelperPosY |
float | _HelperPosZ |
Point * | _HelperPt1 |
Point * | _HelperPt2 |
Point * | _HelperPt3 |
bool | _HelperBaryPos |
float | _HelperOrientX |
float | _HelperOrientY |
float | _HelperOrientZ |
bool | _HelperFollowMF |
AxisPlaneConstraint * | _PlaneConstrainedObject |
AxisPlaneConstraint * | _AxisConstrainedObject |
AxisPlaneConstraint * | _FreeObject |
6 PLANARITY ATTRIBUTES | |
Attributes related to the quad planarity optimisation functions . Usually modified via the Plan Tab of the interface. | |
float | _PlanaritySelectionThreshHold |
float | _PlanarityOptimDerStep |
int | _PlanarityOptimNbIter |
bool | _PlanarityOptimSelectedPatches |
bool | _PlanarityOptimSelectedPerturbs |
float | _PlanarityOptimMoveStep |
float | _PlanarityOptimAlpha |
float | _PlanarityOptimBeta |
bool | _PlanarityOptimZMode |
bool | _PlanarityDegMode |
int | _PlanarityNbTestsBetter |
The MultiResMesh class is visually represented by the main viewer window.
It orchestrates the visualisation of structures, their interactive manipulation, the connection between interface elements and corresponding functions performed on program data.
Variables are regrouped in six families: core, initial mesh, subdivision, output, helper and planarity
void MultiResMeshEditor::draw | ( | ) | [virtual] |
Draw the elements of the _DrawLevel in the patch tree structure, as well as leaves from levels < _DrawLevel. Draw elements down the tree from the root patch if possible
QString MultiResMeshEditor::helpString | ( | ) | const [virtual] |
Sets the message displayed in the help window
void MultiResMeshEditor::init | ( | ) | [virtual] |
Starts the program and sets the datas
void MultiResMeshEditor::keyPressEvent | ( | QKeyEvent * | e | ) | [virtual] |
What happens when a keyboard button is pressed. See help for keyboard shortcuts.
double MultiResMeshEditor::OptimizePlanarityFunctionTables | ( | double & | WorstPlanarity, | |
double & | AveragePlanarity, | |||
int | NbQuads, | |||
Point *** | Quads, | |||
double * | QuadPlanarities | |||
) |
Reevaluates AveragePlanarity and WorstPlanarity on all level quads
double MultiResMeshEditor::OptimizePlanarityFunctionTablesAfterPerturbModif | ( | double & | WorstPlanarity, | |
double & | NewWorstPlanarity, | |||
double & | AveragePlanarity, | |||
double & | NewAveragePlanarity, | |||
int | NbQ, | |||
Point *** | QTable, | |||
double * | QuadPlanarities, | |||
int * | ModifiedQuads | |||
) |
Reevaluates AveragePlanarity and WorstPlanarity on level quads containing a particular perturbation (much faster to use than OptimizePlanarityFunctionTables when possible)
MultiResMeshEditor::OptimizePlanarityTables | ( | bool | OnlySelectedPerturb, | |
bool | OnlySelectedPatches, | |||
float | MaxBigVectorNorm, | |||
float | DerStep, | |||
float | MoveStep, | |||
int | NbIter, | |||
float | Alpha, | |||
float | Beta, | |||
float | Gamma | |||
) |
The quad planarity optimisation algorithm Uses a lot of the PLANARITY ATTRIBUTES(Key F5)
MultiResMeshEditor::OptimizePlanarityTablesZMode | ( | bool | OnlySelectedPerturb, | |
bool | OnlySelectedPatches, | |||
float | MaxBigVectorNorm, | |||
float | DerStep, | |||
float | MoveStep, | |||
int | NbIter, | |||
float | Alpha, | |||
float | Beta, | |||
float | Gamma | |||
) |
The quad planarity optimisation algorithm, restrained to Z components of the perturbations (3 times less variables) (Key F5)
void MultiResMeshEditor::postSelection | ( | const QPoint & | point | ) | [virtual] |
What happens when something is selected (ManipulatedFrame is set to the new SelectionCenterOfGravity and point coordinates are refreshed accordingly)
void MultiResMeshEditor::RefreshHelperPos | ( | ) |
Helper function : Updates the position of the helper
MultiResMeshEditor::S_ActivateTransfo | ( | int | Uindice, | |
int | Vindice, | |||
int | Windice | |||
) | [slot] |
Slot triggered by the SubdivSchemeModifier. Activates/Deactivates a particular transformation of the _SubdivScheme
MultiResMeshEditor::S_ApplySchemeToSelectedPatches | ( | ) | [slot] |
Applies the current _SubdivScheme to the selected patches (Alt D Key)
MultiResMeshEditor::S_BuildPerturbations | ( | ) | [slot] |
Builds the perturbations of the current _DrawLevel patches, these perturbations are drawn and manipulatable in the viewer window. (B Key)
MultiResMeshEditor::S_BuildStructureFromPoints | ( | int | NbGridPoints | ) | [slot] |
Writes data to /ObjFiles/X.txt, Y.txt, Z.txt which contain the XYZ positions of a structure's points taken on a UVW grid (_NbGridPoints elements per dimension)
MultiResMeshEditor::S_ChangeHelperSize | ( | int | S | ) | [slot] |
Changes the _HelperSize value
MultiResMeshEditor::S_ChangeObjFileName | ( | const QString & | Name | ) | [slot] |
Sets _ObjFileName
MultiResMeshEditor::S_ChangeSubFileName | ( | const QString & | Name | ) | [slot] |
Sets the _SubFileName variable
MultiResMeshEditor::S_ConstrainHelperFree | ( | bool | B | ) | [slot] |
Frees the manipulated frame with _FreeObject
MultiResMeshEditor::S_ConstrainHelperXY | ( | bool | B | ) | [slot] |
Constrains the manipulated frame with _PlaneConstrainedObject
MultiResMeshEditor::S_ConstrainHelperZ | ( | bool | B | ) | [slot] |
Constrains the manipulated frame with _AxisConstrainedObject
MultiResMeshEditor::S_CreateInitMesh | ( | ) | [slot] |
Deletes existing patches, creates new level 0 structure using defined parameters and loaded subdivision scheme's data
MultiResMeshEditor::S_CreateSaveTable | ( | int | Key | ) | [slot] |
Saves the selected points or patches in one of 4 possible table
_PointTable1 (Ctrl 1...8 keys)
MultiResMeshEditor::S_CutSubtreePatch | ( | ) | [slot] |
Stops the subdivisions of the selected patch (their subdivScheme is set to NULL, they will not be affected by next subdivision, they will become tree leaves in the tree hierarchy) (End Key)
MultiResMeshEditor::S_DeletePatch | ( | ) | [slot] |
Deletes the selected patches and their children (Del key)
void MultiResMeshEditor::S_DisplayQstring | ( | const QString & | Q | ) | [signal] |
Display a string in the frame above the viewer window. Used to display useful information on program execution.
MultiResMeshEditor::S_EditSubdivScheme | ( | ) | [slot] |
launches the SubdivSchemeEditor to edit the current _SubdivScheme
MultiResMeshEditor::S_InversePointSelection | ( | ) | [slot] |
The selected points are unselected and the others are selected (Ctrl I key) (I to inverse PatchSelection)
MultiResMeshEditor::S_LoadStructure | ( | ) | [slot] |
Loads structure saved by S_SaveStructure
MultiResMeshEditor::S_LoadSubdivScheme | ( | ) | [slot] |
Finds the /SubFiles/_SubFileName SubFile and loads the scheme written in it in _SubdivScheme
MultiResMeshEditor::S_MoveMFOnHelper | ( | ) | [slot] |
Sets the manipulated frame's position to the helper's position, the selected points move along with the manipulated frame
MultiResMeshEditor::S_NewSubdivScheme | ( | ) | [slot] |
Copies the current _SubdivScheme in a new SubdivScheme, ready to be modified and applied to some patches without modifying the schemes of patches that already use the current _SubdivScheme
MultiResMeshEditor::S_PrintSaveTable | ( | int | Key | ) | [slot] |
Unselects all, selects the points or the patches of the appropriate table
MultiResMeshEditor::S_PutHelperOnPt | ( | ) | [slot] |
The helper's position is set to the last selected point's position
MultiResMeshEditor::S_PutMFOnHelper | ( | ) | [slot] |
Sets the manipulated frame's position to the helper's position, the selected points do not move
MultiResMeshEditor::S_ResetColor | ( | ) | [slot] |
Displays patches in their original color
MultiResMeshEditor::S_ResetLevelPerturbations | ( | ) | [slot] |
Resets (to (0,0,0) vector) all the structure's perturbations of a given level (Alt R key)
MultiResMeshEditor::S_ResetPerturbations | ( | ) | [slot] |
Resets (to (0,0,0) vector) all the structure's perturbations (all levels) (Ctrl R key)
void MultiResMeshEditor::S_ResetProgressBar | ( | ) | [signal] |
Resets the progress bar in the frame above the viewer window. Used in planarity optimisation routines.
MultiResMeshEditor::S_ResetSelectedPerturbations | ( | ) | [slot] |
Resets (to (0,0,0) vector) all the structure's selected perturbations (R key)
void MultiResMeshEditor::S_ResetSubdivSchemeModifier | ( | int | NbTU, | |
int | NbTV, | |||
int | NbTW | |||
) | [signal] |
Calls a reset on the SubdivSchemeModifier, see this class for more details
MultiResMeshEditor::S_RotateTransfo | ( | int | Uindice, | |
int | Vindice, | |||
int | Windice, | |||
int | Axis | |||
) | [slot] |
Slot triggered by the SubdivSchemeModifier. Rotates (90° around selected UVW Axis) a particular transformation of the _SubdivScheme
MultiResMeshEditor::S_SaveObjFile | ( | ) | [slot] |
Saves the structure in a .obj file. This file can be opened in 3D software (Rhino, Maya)
MultiResMeshEditor::S_SaveStructure | ( | ) | [slot] |
Saves the whole structure (patch hierarchy, perturbations) in the /ObjFile/Structure.str file
MultiResMeshEditor::S_SelectNeighbors | ( | ) | [slot] |
Selects the neighbor patches of the last selected patch (N key)
MultiResMeshEditor::S_SelectNextPatch | ( | ) | [slot] |
Selects the next patch in the level patch table (L key)
MultiResMeshEditor::S_SelectNextPoint | ( | ) | [slot] |
Selects the next point in the level perturbation table (X key)
MultiResMeshEditor::S_SelectPrevPatch | ( | ) | [slot] |
Selects the previous patch in the level patch table (K key)
MultiResMeshEditor::S_SelectPrevPoint | ( | ) | [slot] |
Selects the previous point in the level perturbation table (Y key)
MultiResMeshEditor::S_SetDrawParameter1 | ( | const QString & | Value | ) | [slot] |
Modifies the _DrawParameter1 value
MultiResMeshEditor::S_SetDrawParameter2 | ( | const QString & | Value | ) | [slot] |
Modifies the _DrawParameter2 value
MultiResMeshEditor::S_SetDrawParameter3 | ( | const QString & | Value | ) | [slot] |
Modifies the _DrawParameter3 value
MultiResMeshEditor::S_SetHelperOrientX | ( | const QString & | S | ) | [slot] |
Sets the _HelperOrientX value
MultiResMeshEditor::S_SetHelperOrientY | ( | const QString & | S | ) | [slot] |
Sets the _HelperOrientY value
MultiResMeshEditor::S_SetHelperOrientZ | ( | const QString & | S | ) | [slot] |
Sets the _HelperOrientZ value
MultiResMeshEditor::S_SetHelperPosX | ( | const QString & | S | ) | [slot] |
Changes the _HelperPosX value
MultiResMeshEditor::S_SetHelperPosY | ( | const QString & | S | ) | [slot] |
Changes the _HelperPosY value
MultiResMeshEditor::S_SetHelperPosZ | ( | const QString & | S | ) | [slot] |
Changes the _HelperPosZ value
MultiResMeshEditor::S_SetHelperPt1 | ( | ) | [slot] |
Sets the _HelperPt1 to the last selected point
MultiResMeshEditor::S_SetHelperPt2 | ( | ) | [slot] |
Sets the _HelperPt2 to the last selected point
MultiResMeshEditor::S_SetHelperPt3 | ( | ) | [slot] |
Sets the _HelperPt3 to the last selected point
MultiResMeshEditor::S_SetPlanarityAlpha | ( | const QString & | S | ) | [slot] |
Changes _PlanarityOptimAlpha value
MultiResMeshEditor::S_SetPlanarityBeta | ( | const QString & | S | ) | [slot] |
Changes _PlanarityOptimBeta value
MultiResMeshEditor::S_SetPlanarityDerStep | ( | const QString & | S | ) | [slot] |
Changes _PlanarityOptimDerStep value
MultiResMeshEditor::S_SetPlanarityMoveStep | ( | const QString & | S | ) | [slot] |
Changes _PlanarityOptimMoveStep value
MultiResMeshEditor::S_SetPlanarityNbIter | ( | int | I | ) | [slot] |
Changes _PlanarityOptimNbIter value
MultiResMeshEditor::S_SetPlanarityNbTestsBetter | ( | int | N | ) | [slot] |
Changes _PlanarityNbTestsBetter value
MultiResMeshEditor::S_SetPlanarityThreshHold | ( | const QString & | S | ) | [slot] |
Changes _PlanaritySelectionThreshHold value
void MultiResMeshEditor::S_SetProgressBar | ( | int | B | ) | [signal] |
Controls the progress bar (100 steps) in the frame above the viewer window. Used in planarity optimisation routines.
MultiResMeshEditor::S_SubdivideLevel | ( | ) | [slot] |
Subdivides all patches according to their _NextSubdiv scheme, patches with _NextSubdiv==NULL are not subdivided (D Key)
MultiResMeshEditor::S_SubdivideSelected | ( | ) | [slot] |
Same thing as S_SubdivideLevel, but only on selected patches (Shift D Key)
MultiResMeshEditor::S_SymetriseTransfo | ( | int | Uindice, | |
int | Vindice, | |||
int | Windice, | |||
int | Axis | |||
) | [slot] |
Slot triggered by the SubdivSchemeModifier. Performs a symmetry (across selected UVW Plane) on a particular transformation of the _SubdivScheme
MultiResMeshEditor::S_ToggleBaryAbs | ( | bool | Abs | ) | [slot] |
Toggles the _HelperBaryPos value
MultiResMeshEditor::S_ToggleDrawLevel | ( | int | Level | ) | [slot] |
Modifies the _DrawLevel value
MultiResMeshEditor::S_ToggleDrawMode | ( | int | DrawMode | ) | [slot] |
Modifies the _DrawMode value
MultiResMeshEditor::S_ToggleHelperFollowMF | ( | bool | B | ) | [slot] |
Toggles the _HelperFollowMF value
MultiResMeshEditor::S_ToggleHelperView | ( | bool | B | ) | [slot] |
Toggles the _HelperDraw value
MultiResMeshEditor::S_ToggleInitMeshCreateMode | ( | int | Mode | ) | [slot] |
Modifies the _InitMeshCreateMode value
MultiResMeshEditor::S_ToggleInitMeshUSize | ( | int | USize | ) | [slot] |
Modifies the _InitMeshUSize value
MultiResMeshEditor::S_ToggleInitMeshVSize | ( | int | VSize | ) | [slot] |
Modifies the _InitMeshVSize value
MultiResMeshEditor::S_ToggleInitMeshWSize | ( | int | WSize | ) | [slot] |
Modifies the _InitMeshWSize value
MultiResMeshEditor::S_ToggleOutputMode | ( | int | Mode | ) | [slot] |
Sets _OutputMode
MultiResMeshEditor::S_TogglePlanarityBySelected | ( | bool | B | ) | [slot] |
Toggles _PlanarityOptimSelectedPerturbs value
MultiResMeshEditor::S_TogglePlanarityDegMode | ( | bool | B | ) | [slot] |
Toggles _PlanarityDegMode value
MultiResMeshEditor::S_TogglePlanarityMoveTypeFree | ( | bool | B | ) | [slot] |
Toggles _PlanarityOptimZMode value
MultiResMeshEditor::S_TogglePlanarityOnSelected | ( | bool | B | ) | [slot] |
Toggles _PlanarityOptimSelectedPatches value
MultiResMeshEditor::S_ViewAveragePlanarity | ( | ) | [slot] |
Displays patches in a color wich is linked to their average quad planarity. Colors are mapped to a scale from the structure's worst planarity to 1.0
MultiResMeshEditor::S_ViewWorstPlanarity | ( | ) | [slot] |
Displays patches in a color wich is linked to their worst quad planarity. Colors are mapped to a scale from the structure's worst planarity to 1.0
AxisPlaneConstraint* MultiResMeshEditor::_AxisConstrainedObject |
Helper constraint : helper movement will stay on Z axis.
Subdivision level displayed on screen, its value is between : 0 : initial mesh and N : highest subdivision level in the structure. Init 0
How are the geometries drawn (OpenGL diplay option): 0 for FILL, 1 for LINE, 2 for POINT and 3 for LINE+FILL. Init 0
first size parameter of the structure in IR^3 :
plane length, cylindre radius, big torus radius. Init 1.0
Second size parameter of the structure in IR^3 :
plane width, cylindre height, small torus radius. Init 0.5
Third size parameter of the structure in IR^3 :
plane/cylindre/torus thickness. Init 0.2
AxisPlaneConstraint* MultiResMeshEditor::_FreeObject |
Helper constraint : helper movement is free (default).
False if defined coordinates are interpreted as absolute coordinates, true if they are interpreted as barycentric coordinates. Init false
Defines whether the helper is drawn or not. Init false
If the helper position must stay on the Manipulated Frame. Init false
The helper has its own frame, the position and orientation of which can be set accurately
The orientation of the helper arrow (X,Y,Z coordinates of point towards which it points), (useful for helper axis constraint). Init (0,0,1)
Its position on X,Y,Z if _HelperBaryPos is false, its barycentric coordinates relatively to _HelperPt1,_HelperPt2,_HelperPt3 if _HelperBaryPos is true. Init (0,0,0)
The first, second and third point used as reference for the barycentric position of the helper. Init (NULL,NULL,NULL)
The radius of the helper visualisation disk. Init 0.1
What kind of structure is the initial Level 0 structure ?
0 : plane, 1 : cylindre, 2 : Torus. Init 0
How many patches created on the U dimension in the Level 0 Structure. Init 1
How many patches created on the V dimension in the Level 0 Structure. Init 1
How many patches created on the W dimension in the Level 0 Structure. Init 1
Security upper bound for subdivision. Init 12.
Size of _LevelZeroPts. Init 0
Level0 patches compose the initial structure created in S_CreateInitMesh This table contains pointers to the points of the Level0 patches. Init NULL
ManipulatedFrame* MultiResMeshEditor::_MyManipulatedFrame |
Work frame manipulated by the mouse and associated to the current selection.
This frame's position is refreshed to the selection's center of gravity whenever the selection changes.
Manipulated points have 2 coordinate systems which are respectively used when selected and when unselcted :
their position relatively to _MyManipulatedFrame and their world position
number of points used when building a UVW point grid (in BuildStructureFromPoints) Init 200
Number of perturbation pointers in (_PerturbTable[Level])
QString MultiResMeshEditor::_ObjFileName |
file to which structures are written in obj format in the /ObjFiles folder. Init OutputFile
Output format, choices are (Init 0):
0 : single object obj file (welded)
1 : 1 object per patch obj file (split)
2 : 1 patch + neighbours per obj file (Neighbours)
Save tables containing patche selections (RTS-game-like Ctrl5...Ctrl8 keys)
Stores built perturbations for faster drawing purposes
Uses degree or cosine Planarity expression
Warning : degree expression has been removed, numerically very unstable
Number of tests performed to adapt _PlanarityOptimMoveStep after every iterations
Optimisation function parameters : the function to maximise is Alpha*WorstPlanarity+NbPatches*Beta*AveragePlanarity
Variation (X,Y,Z) used to calculate derrivatives (gradient components) in the planarity optimization algorithm
Distance (euclidian in IRn) along which points are moved on the gradient direction on every algorithm itteration
Number of iterations made to improve planarity
Restrains planarity optimisation to selected patches
Restrains planarity optimisation to selected perturbations
Restrains optimistion to Z components of the perturbations
Patches with a planarity value above this limit are selectable via F4 key (SelectPatchesWorstPlanarityAbove(...))
AxisPlaneConstraint* MultiResMeshEditor::_PlaneConstrainedObject |
Helper constraint : helper movement will stay on XY plane.
Save tables containing point selections (RTS-game-like Ctrl1...Ctrl4 keys)
First virtual patch (never drawn), it is the parent of all Level0 (initial mesh) patches. Init NULL
QString MultiResMeshEditor::_SaveName |
file to which structures are written in str format in the /ObjFiles folder : Structure.str
Current scheme used for the subdivisions as read from the last loaded file. Init NULL
How do patches connect and how are they drawn along the U,V,W dimension. Loaded from SubFile with SubdivScheme.
QString MultiResMeshEditor::_SubFileName |
File from which subdiv schemes are loaded from the /SubFiles folder. Init InputFile
On which subdivision level the saved point and patch tables were built
List of undeleted old schemes
(Kept for deletion purposes, but proper deletion not implemented)