MeshKit
1.0
|
00001 /* 00002 * primitives.h 00003 * 00004 * Created on: Mar 22, 2010 00005 * Author: iulian 00006 */ 00007 00008 #ifndef PRIMITIVES_H_ 00009 #define PRIMITIVES_H_ 00010 00011 #include "std.h" 00012 #include "3D.h" 00013 #include "Mat4.h" 00014 #include "moab/Interface.hpp" 00015 // this is for moab::ErrorCode ? 00016 00017 #include "meshkit/QslimOptions.hpp" 00018 #include <vector> 00019 00020 extern int validFaceCount; // defined in QslimDecimation 00021 extern moab::Tag validTag; // defined in QslimDecimation 00022 // the plane data will be stored for each triangle, and recomputed for each triangle 00023 // it will be needed only for the -m option active (so do not recompute if you do not need it) 00024 extern moab::Tag planeDataTag; // defined in QslimDecimation 00025 extern int ehIsValid(moab::EntityHandle v); // defined in QslimDecimation; maybe we should pass Interface too 00026 extern QslimOptions opts; 00027 extern moab::EntityHandle iniSet; 00028 00029 extern void filterValid(moab::Interface * mb, std::vector<moab::EntityHandle> & io); 00030 extern int classifyVertex(moab::Interface * mb, moab::EntityHandle v); 00031 00032 extern moab::ErrorCode contractionRegion(moab::Interface * mb, moab::EntityHandle v1, moab::EntityHandle v2, 00033 std::vector<moab::EntityHandle> & changed); 00034 00035 extern Vec3 getVec3FromMBVertex(moab::Interface * mb, moab::EntityHandle v); 00036 00037 // this will just retrieve it from the tag data 00038 extern Plane trianglePlane(moab::Interface * mb, moab::EntityHandle tri); 00039 00040 extern void computeTrianglePlane (moab::Interface * mb, moab::EntityHandle tri); 00041 00042 extern moab::ErrorCode contract (moab::Interface * mb, moab::EntityHandle v0, moab::EntityHandle v1, Vec3 & vnew, std::vector<moab::EntityHandle> & changed); 00043 00044 #endif /* PRIMITIVES_H_ */