MeVisLab Toolbox Reference
MLWEMIncludes.h File Reference
#include "MLWEMSystem.h"
#include <algorithm>
#include <vector>
#include <string>
#include <mlModuleIncludes.h>
#include <mlModule.h>
#include <fstream>
#include <mlUnicode.h>

Go to the source code of this file.

Classes

struct  ml::WEMPersistenceParameters
 Structure to gather persistence parameters. More...
 
struct  ml::WEMProgressUpdater
 Helper struct for updating the progress bar while loading/saving. More...
 
struct  ml::WEMReadParameters
 Helper struct for bundling parameters to keep method interfaces small. More...
 

Namespaces

 ml
 Main documentation file for ML users and developers.
 

Macros

#define NULL_VEC   Vector3(0,0,0)
 
#define UNIT_VEC   Vector3(0,1,0)
 
#define WEM_PRINT(msg)   { std::cout << msg << std::endl; };
 Defines an output routine for debug output (short, without output of the file name and the line). More...
 
#define WEM_ERROR(msg)   { WEM_PRINT("WEM ERROR: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };
 Defines an output routine for error messages. More...
 
#define WEM_WARNING(msg)   { WEM_PRINT("WEM WARNING: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };
 Defines an output routine for warning messages. More...
 
#define WEM_DEBUG(msg)   { WEM_PRINT("WEM Debug: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };
 Defines an output routine for debug messages. More...
 
#define WEM_MODULE_ERROR(function, msg)   { mlError(function) << whoAmI() << ": " << msg; };
 Defines a macro to output module errors. More...
 
#define WEM_MODULE_WARNING(function, msg)   { mlWarning(function) << whoAmI() << ": " << msg; };
 Defines a macro to output module warnings. More...
 
#define WEM_MODULE_INFO(function, msg)   { mlInfo(function) << whoAmI() << ": " << msg; };
 Defines a macro to output module infos. More...
 
#define NORMALIZE_VECTOR3(v)   v.normalize()
 Defines a normalization method for SML (Vector3) vectors. More...
 

Enumerations

enum  ml::WEMUpdateMode { ml::Off = 0 , ml::AutoUpdate , ml::AutoClear }
 Defines the update modes of WEM modules. More...
 
enum  ml::WEMNotificationType {
  ml::WEM_NOTIFICATION_NONE = 0 , ml::WEM_NOTIFICATION_SELECTION = 1 , ml::WEM_NOTIFICATION_FINISHED = 2 , ml::WEM_NOTIFICATION_REPAINT = 4 ,
  ml::WEM_NOTIFICATION_INTERACTION_INIT = 8
}
 Defines the available WEM notifications. More...
 
enum  ml::ColorModes {
  ml::WEM_COLOR_GENERAL = 0 , ml::WEM_COLOR_NODE_COLORS = 1 , ml::WEM_COLOR_LUT_VALUES = 2 , ml::WEM_COLOR_LUT_VALUES_INTEGER = 3 ,
  ml::WEM_COLOR_TEXTURED = 4 , ml::WEM_COLOR_NONE = 5
}
 Enumeration of the color modes. Note that these are 'mirrored' in the SoWEM part. More...
 
enum  ml::NodeRenderingModes { ml::WEM_NODE_RENDERING_NORMAL = 0 , ml::WEM_NODE_RENDERING_HIGH = 1 , ml::WEM_NODE_RENDERING_EXTRA_HIGH = 2 }
 Enumeration of the node rendering modes. Note that these are 'mirrored' in the SoWEM part. More...
 
enum  ml::BoundingBoxModes { ml::WEM_BOUNDING_BOX_AXIS_ALIGNED = 0 , ml::WEM_BOUNDING_BOX_OBJECT_ALIGNED = 1 }
 Enumeration of bounding box visualization. Note that these are 'mirrored' in the SoWEM part. More...
 
enum  ml::TriangulationModes { ml::WEM_TRIANGULATION_CENTER = 0 , ml::WEM_TRIANGULATION_FAN = 1 , ml::WEM_TRIANGULATION_STRIP = 2 }
 Enumeration of the triangulation modes. Note that these are 'mirrored' in the SoWEM part. More...
 
enum  ml::PatchTypes : std::int32_t { ml::WEM_PATCH_UNKNOWN = 0 , ml::WEM_PATCH_TRIANGLES = 1 , ml::WEM_PATCH_QUADS = 2 , ml::WEM_PATCH_POLYGONS = 3 }
 Enumeration of mesh types. More...
 
enum  ml::PrimitiveValueListTypes : std::int32_t { ml::WEM_PRIMITIVE_VALUE_LIST_NODE = 0 , ml::WEM_PRIMITIVE_VALUE_LIST_EDGE = 1 , ml::WEM_PRIMITIVE_VALUE_LIST_FACE = 2 }
 Enumeration of primitive value list types. More...
 
enum  ml::OrientationTypes { ml::WEM_ORIENTATION_UNKNOWN = 0 , ml::WEM_ORIENTATION_OUTWARD = 1 , ml::WEM_ORIENTATION_INWARD = 2 }
 Enumeration of orientation types. More...
 

Variables

const double WEM_EPSILON = 0.00001
 Epsilon value used in Vector3 comparisons. More...
 
const double WEM_LARGE_EPSILON = 0.0002
 Epsilon value used in Vector3 comparisons when precision is an issue. More...
 
const int WEM_VERSION = 7
 Current version of WEM library. More...
 
const double WEM_GOLDEN_PERIMETER = 4.5590141139
 Golden perimeter. More...
 
const unsigned int WEM_MAX_VALENCE = 30
 Maximum edge and face valence for nodes. More...
 
const unsigned int WEM_DEFAULT_VALENCE = 16
 Default vector size of edge and face valence for nodes. More...
 
const unsigned int WEM_MAX_NUM_NODES = 100
 Maximum number of nodes for polygons. More...
 
const double WEM_NODE_VALENCE3_THRESHOLD = 0.35
 Angle threshold for nodes with valence 3 removal for default check (~70 degrees). More...
 
const double WEM_NODE_VALENCE3_NEIGHBORHOOD_THRESHOLD = 0.6
 Angle threshold for nodes with valence 3 removal for neighborhood check (~50 degrees). More...
 
const std::string WEM_SINGLE_COLORED_FACES = "WEMSingleColoredFaces"
 Name of the PVL for faces where a value of -1 signals to use the nodes' PVL, all other values are to be used as a look-up into the LUT. More...
 
const int ml::WEM_PATCH_ID_ALL = -1
 Patch Id meaning: all patches. More...
 

Macro Definition Documentation

◆ NORMALIZE_VECTOR3

#define NORMALIZE_VECTOR3 (   v)    v.normalize()

Defines a normalization method for SML (Vector3) vectors.

Definition at line 77 of file MLWEMIncludes.h.

◆ NULL_VEC

#define NULL_VEC   Vector3(0,0,0)

Definition at line 57 of file MLWEMIncludes.h.

◆ UNIT_VEC

#define UNIT_VEC   Vector3(0,1,0)

Definition at line 58 of file MLWEMIncludes.h.

◆ WEM_DEBUG

#define WEM_DEBUG (   msg)    { WEM_PRINT("WEM Debug: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };

Defines an output routine for debug messages.

Definition at line 67 of file MLWEMIncludes.h.

◆ WEM_ERROR

#define WEM_ERROR (   msg)    { WEM_PRINT("WEM ERROR: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };

Defines an output routine for error messages.

Definition at line 63 of file MLWEMIncludes.h.

◆ WEM_MODULE_ERROR

#define WEM_MODULE_ERROR (   function,
  msg 
)    { mlError(function) << whoAmI() << ": " << msg; };

Defines a macro to output module errors.

Definition at line 70 of file MLWEMIncludes.h.

◆ WEM_MODULE_INFO

#define WEM_MODULE_INFO (   function,
  msg 
)    { mlInfo(function) << whoAmI() << ": " << msg; };

Defines a macro to output module infos.

Definition at line 74 of file MLWEMIncludes.h.

◆ WEM_MODULE_WARNING

#define WEM_MODULE_WARNING (   function,
  msg 
)    { mlWarning(function) << whoAmI() << ": " << msg; };

Defines a macro to output module warnings.

Definition at line 72 of file MLWEMIncludes.h.

◆ WEM_PRINT

#define WEM_PRINT (   msg)    { std::cout << msg << std::endl; };

Defines an output routine for debug output (short, without output of the file name and the line).

Definition at line 61 of file MLWEMIncludes.h.

◆ WEM_WARNING

#define WEM_WARNING (   msg)    { WEM_PRINT("WEM WARNING: " << msg << " in file " << __FILE__ << ", line: " << __LINE__); };

Defines an output routine for warning messages.

Definition at line 65 of file MLWEMIncludes.h.

Variable Documentation

◆ WEM_DEFAULT_VALENCE

const unsigned int WEM_DEFAULT_VALENCE = 16

Default vector size of edge and face valence for nodes.

Definition at line 37 of file MLWEMIncludes.h.

◆ WEM_EPSILON

const double WEM_EPSILON = 0.00001

Epsilon value used in Vector3 comparisons.

Definition at line 22 of file MLWEMIncludes.h.

Referenced by ml::WEMBoundingBox::isScalable().

◆ WEM_GOLDEN_PERIMETER

const double WEM_GOLDEN_PERIMETER = 4.5590141139

Golden perimeter.

Definition at line 31 of file MLWEMIncludes.h.

◆ WEM_LARGE_EPSILON

const double WEM_LARGE_EPSILON = 0.0002

Epsilon value used in Vector3 comparisons when precision is an issue.

Definition at line 25 of file MLWEMIncludes.h.

◆ WEM_MAX_NUM_NODES

const unsigned int WEM_MAX_NUM_NODES = 100

Maximum number of nodes for polygons.

Definition at line 40 of file MLWEMIncludes.h.

◆ WEM_MAX_VALENCE

const unsigned int WEM_MAX_VALENCE = 30

Maximum edge and face valence for nodes.

Definition at line 34 of file MLWEMIncludes.h.

◆ WEM_NODE_VALENCE3_NEIGHBORHOOD_THRESHOLD

const double WEM_NODE_VALENCE3_NEIGHBORHOOD_THRESHOLD = 0.6

Angle threshold for nodes with valence 3 removal for neighborhood check (~50 degrees).

Definition at line 46 of file MLWEMIncludes.h.

◆ WEM_NODE_VALENCE3_THRESHOLD

const double WEM_NODE_VALENCE3_THRESHOLD = 0.35

Angle threshold for nodes with valence 3 removal for default check (~70 degrees).

Definition at line 43 of file MLWEMIncludes.h.

◆ WEM_SINGLE_COLORED_FACES

const std::string WEM_SINGLE_COLORED_FACES = "WEMSingleColoredFaces"

Name of the PVL for faces where a value of -1 signals to use the nodes' PVL, all other values are to be used as a look-up into the LUT.

Also, nodes and edges adjacent to a face with a value != 1 should not be smoothed, collapsed, or otherwise modified.

Definition at line 52 of file MLWEMIncludes.h.

◆ WEM_VERSION

const int WEM_VERSION = 7

Current version of WEM library.

Definition at line 28 of file MLWEMIncludes.h.