init versie
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#ifndef FACE_H
|
||||
#define FACE_H
|
||||
#include "vertex.h"
|
||||
#include "tilevertexinfo.h"
|
||||
#include <QVector3D>
|
||||
class Face;
|
||||
class Vertex;
|
||||
class TileVertexInfo;
|
||||
class Face
|
||||
{
|
||||
private:
|
||||
Vertex *m_v1;
|
||||
Vertex *m_v2;
|
||||
Vertex *m_v3;
|
||||
|
||||
TileVertexInfo *m_vi1;
|
||||
TileVertexInfo *m_vi2;
|
||||
TileVertexInfo *m_vi3;
|
||||
|
||||
Face * m_parent;
|
||||
|
||||
QVector3D m_normal;
|
||||
Face * m_subface = NULL;
|
||||
float sign (QVector2D p1, QVector2D p2, QVector2D p3);
|
||||
bool PointInFace (QVector2D pt);
|
||||
|
||||
public:
|
||||
Face () { m_subface= NULL;}
|
||||
Face(Vertex *v1
|
||||
, TileVertexInfo *vi1
|
||||
, Vertex *v2
|
||||
, TileVertexInfo *vi2
|
||||
, Vertex *v3
|
||||
, TileVertexInfo *vi3);
|
||||
|
||||
void setSettings(Vertex *v1
|
||||
, TileVertexInfo *vi1
|
||||
, Vertex *v2
|
||||
, TileVertexInfo *vi2
|
||||
, Vertex *v3
|
||||
, TileVertexInfo *vi3);
|
||||
|
||||
void recalcNormal();
|
||||
QVector3D normal();
|
||||
|
||||
inline TileVertexInfo * getVi1() { return m_vi1; }
|
||||
inline TileVertexInfo * getVi2() { return m_vi2; }
|
||||
inline TileVertexInfo * getVi3() { return m_vi3; }
|
||||
|
||||
void createSub() {
|
||||
m_subface = new Face[4];
|
||||
for (int i=0; i<4;i++) {
|
||||
m_subface[i].setParent(this);
|
||||
}
|
||||
}
|
||||
inline Face &getSub(int nr) { return m_subface[nr]; }
|
||||
inline void setParent(Face *parent) {m_parent = parent;}
|
||||
void findFaces(std::vector<Face *> &vec, QVector2D s);
|
||||
};
|
||||
|
||||
#endif // FACE_H
|
||||
Reference in New Issue
Block a user