Files
LBPM/analysis/decl.h

64 lines
1.3 KiB
C
Raw Normal View History

2018-07-27 16:23:39 -04:00
#include <vector>
2018-09-09 23:51:52 -04:00
#include "analysis/pmmc.h"
2018-07-27 16:23:39 -04:00
/*
Doubly-connected edge list (DECL)
*/
// Vertex structure
class Vertex{
public:
Vertex();
~Vertex();
void add(Point P);
void assign(unsigned long int idx, Point P);
2018-09-10 11:06:20 -04:00
unsigned long int size();
2018-07-27 16:23:39 -04:00
Point coords(unsigned long int idx);
unsigned long int IncidentEdge();
private:
std::vector<double> vertex_data;
2018-09-10 11:06:20 -04:00
unsigned long int size_;
2018-07-27 16:23:39 -04:00
};
// Halfedge structure
// Face
class Halfedge{
public:
Halfedge();
~Halfedge();
unsigned long int v1(unsigned long int edge);
unsigned long int v2(unsigned long int edge);
unsigned long int twin(unsigned long int edge);
unsigned long int face(unsigned long int edge);
unsigned long int next(unsigned long int edge);
unsigned long int prev(unsigned long int edge);
2018-09-10 11:06:20 -04:00
unsigned long int size();
2018-07-30 16:51:37 -04:00
Array<unsigned long int> data;
2018-07-27 16:23:39 -04:00
private:
2018-09-10 11:06:20 -04:00
unsigned long int size_;
2018-07-27 16:23:39 -04:00
};
// DECL
class DECL{
public:
DECL();
~DECL();
unsigned long int face();
Vertex vertex;
Halfedge halfedge;
2018-07-30 16:51:37 -04:00
void LocalIsosurface(const DoubleArray A, double value, int i, int j, int k);
2018-09-10 17:29:48 -04:00
unsigned long int Face(unsigned long int index);
2018-07-27 16:23:39 -04:00
double origin(int edge);
double EdgeAngle(int edge);
Point TriNormal(int edge);
2018-09-10 11:06:20 -04:00
unsigned long int TriangleCount;
unsigned long int VertexCount;
2018-07-30 16:51:37 -04:00
2018-07-27 16:23:39 -04:00
private:
2018-09-10 17:29:48 -04:00
Array <unsigned long int> FaceData;
2018-07-27 16:23:39 -04:00
};