MeshKit  1.0
QslimDecimation.cpp File Reference
#include <assert.h>
#include "QslimDecimation.hpp"
#include "moab/AdaptiveKDTree.hpp"
#include "moab/ReadUtilIface.hpp"
#include "Mat4.h"
#include "defs.h"
#include "quadrics.h"
#include <time.h>
#include <map>
#include <limits>
#include "primitives.h"
#include "Heap.hpp"
Include dependency graph for QslimDecimation.cpp:

Go to the source code of this file.

Classes

class  pair_info
class  vert_info

Namespaces

namespace  MeshKit

Defines

#define MESH_INVERSION_PENALTY   1e9

Typedefs

typedef buffer< pair_info * > pair_buffer

Functions

int uniqID (moab::EntityHandle v)
int ehIsValid (moab::EntityHandle v)
static vert_infovertex_info (moab::EntityHandle v)
static bool check_for_pair (moab::EntityHandle v0, moab::EntityHandle v1)
static pair_infonew_pair (moab::EntityHandle v0, moab::EntityHandle v1)
static void delete_pair (pair_info *pair)
static int predict_face (moab::EntityHandle tria, moab::EntityHandle v1, moab::EntityHandle v2, Vec3 &vnew, Vec3 &f1, Vec3 &f2, Vec3 &f3)
static double pair_mesh_positivity (moab::EntityHandle v1, moab::EntityHandle v2, Vec3 &vnew)
static double pair_mesh_topology (moab::EntityHandle v1, moab::EntityHandle v2)
static double pair_mesh_penalty (moab::EntityHandle v1, moab::EntityHandle v2, Vec3 &vnew)
static void compute_pair_info (pair_info *pair)
void recomputeChangedPairsCost (std::vector< moab::EntityHandle > &changed, moab::EntityHandle v0)
static void do_contract (pair_info *pair)
bool decimate_quadric (moab::EntityHandle v, Mat4 &Q)
void decimate_contract ()
double decimate_error (moab::EntityHandle v)
double decimate_min_error ()

Variables

moab::Interface * mb
moab::Tag uniqIDtag
moab::Tag validTag
moab::Tag costTag
moab::Tag planeDataTag
moab::Range verts
moab::Range triangles
moab::Range edgs
QslimOptions opts
moab::EntityHandle iniSet
static Heapheap
static array< vert_infovinfo
static double proximity_limit
int validFaceCount
int validVertCount

Define Documentation

#define MESH_INVERSION_PENALTY   1e9

Definition at line 227 of file QslimDecimation.cpp.


Typedef Documentation

Definition at line 85 of file QslimDecimation.cpp.


Function Documentation

static bool check_for_pair ( moab::EntityHandle  v0,
moab::EntityHandle  v1 
) [static]

Definition at line 125 of file QslimDecimation.cpp.

static void compute_pair_info ( pair_info pair) [static]

Definition at line 393 of file QslimDecimation.cpp.

Definition at line 595 of file QslimDecimation.cpp.

double decimate_error ( moab::EntityHandle  v)

Definition at line 627 of file QslimDecimation.cpp.

double decimate_min_error ( )

Definition at line 638 of file QslimDecimation.cpp.

bool decimate_quadric ( moab::EntityHandle  v,
Mat4 Q 
)

Definition at line 585 of file QslimDecimation.cpp.

static void delete_pair ( pair_info pair) [static]

Definition at line 150 of file QslimDecimation.cpp.

static void do_contract ( pair_info pair) [static]

Definition at line 477 of file QslimDecimation.cpp.

int ehIsValid ( moab::EntityHandle  v)

Definition at line 52 of file QslimDecimation.cpp.

static pair_info* new_pair ( moab::EntityHandle  v0,
moab::EntityHandle  v1 
) [static]

Definition at line 137 of file QslimDecimation.cpp.

static double pair_mesh_penalty ( moab::EntityHandle  v1,
moab::EntityHandle  v2,
Vec3 vnew 
) [static]

Definition at line 351 of file QslimDecimation.cpp.

static double pair_mesh_positivity ( moab::EntityHandle  v1,
moab::EntityHandle  v2,
Vec3 vnew 
) [static]

Definition at line 230 of file QslimDecimation.cpp.

static double pair_mesh_topology ( moab::EntityHandle  v1,
moab::EntityHandle  v2 
) [static]

triangles connected to the 3 nodes

Definition at line 293 of file QslimDecimation.cpp.

static int predict_face ( moab::EntityHandle  tria,
moab::EntityHandle  v1,
moab::EntityHandle  v2,
Vec3 vnew,
Vec3 f1,
Vec3 f2,
Vec3 f3 
) [static]

Definition at line 183 of file QslimDecimation.cpp.

void recomputeChangedPairsCost ( std::vector< moab::EntityHandle > &  changed,
moab::EntityHandle  v0 
)

Definition at line 441 of file QslimDecimation.cpp.

int uniqID ( moab::EntityHandle  v)

Definition at line 43 of file QslimDecimation.cpp.

static vert_info& vertex_info ( moab::EntityHandle  v) [inline, static]

Definition at line 115 of file QslimDecimation.cpp.


Variable Documentation

moab::Tag costTag

Definition at line 30 of file QslimDecimation.cpp.

moab::Range edgs

Definition at line 39 of file QslimDecimation.cpp.

Heap* heap [static]

Definition at line 103 of file QslimDecimation.cpp.

moab::EntityHandle iniSet

Definition at line 41 of file QslimDecimation.cpp.

moab::Interface* mb
Examples:
example_basic.cpp, and example_fbgeom.cpp.

Definition at line 26 of file QslimDecimation.cpp.

Definition at line 40 of file QslimDecimation.cpp.

moab::Tag planeDataTag

Definition at line 35 of file QslimDecimation.cpp.

double proximity_limit [static]

Definition at line 105 of file QslimDecimation.cpp.

moab::Range triangles

Definition at line 38 of file QslimDecimation.cpp.

moab::Tag uniqIDtag

Definition at line 27 of file QslimDecimation.cpp.

Definition at line 107 of file QslimDecimation.cpp.

moab::Tag validTag

Definition at line 28 of file QslimDecimation.cpp.

Definition at line 108 of file QslimDecimation.cpp.

moab::Range verts
Examples:
example_extrudemesh.cpp.

Definition at line 37 of file QslimDecimation.cpp.

array<vert_info> vinfo [static]

Definition at line 104 of file QslimDecimation.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines