summaryrefslogtreecommitdiffstats
path: root/src/Data/Triangle.h
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2008-04-10 14:00:05 +0200
committerneoraider <devnull@localhost>2008-04-10 14:00:05 +0200
commit2271ef709f6785b2e156ddca311c7628b7803af0 (patch)
tree30c4ffc6d714a5577bb71c0d349f8013e43e907d /src/Data/Triangle.h
parent3c72a44fa4592e0105af6bb9a440b0da06d0bde4 (diff)
downloadzoomedit-2271ef709f6785b2e156ddca311c7628b7803af0.tar
zoomedit-2271ef709f6785b2e156ddca311c7628b7803af0.zip
zoomedit:
* Level can load Room data from the XML tree now.
Diffstat (limited to 'src/Data/Triangle.h')
-rw-r--r--src/Data/Triangle.h42
1 files changed, 13 insertions, 29 deletions
diff --git a/src/Data/Triangle.h b/src/Data/Triangle.h
index e3e6130..0c17834 100644
--- a/src/Data/Triangle.h
+++ b/src/Data/Triangle.h
@@ -22,66 +22,50 @@
#include "Vertex.h"
#include "TexCoords.h"
+#include <libxml++/nodes/element.h>
namespace ZoomEdit {
namespace Data {
class Triangle {
private:
+ xmlpp::Element *triangleNode;
+ xmlpp::Element *vertexNodes[3];
+ xmlpp::Element *normalNodes[3];
+ xmlpp::Element *texCoordsNodes[3];
+ xmlpp::Attribute *visibleNode;
+
Vertex vertices[3];
Vector normals[3];
TexCoords texCoords[3];
bool visible;
- public:
- Triangle(bool vis = true) : visible(vis) {}
-
- Triangle(Vertex v0, Vertex v1, Vertex v2, bool vis = true) : visible(vis) {
- vertices[0] = v0; vertices[1] = v1; vertices[2] = v2;
- }
-
- Triangle(Vertex v[3], bool vis = true) : visible(vis) {
- vertices[0] = v[0]; vertices[1] = v[1]; vertices[2] = v[2];
- }
-
- Triangle(Vertex v[3], Vector n[3], bool vis = true) : visible(vis) {
- vertices[0] = v[0]; vertices[1] = v[1]; vertices[2] = v[2];
- normals[0] = n[0]; normals[1] = n[1]; normals[2] = n[2];
- }
-
- Triangle(Vertex v[3], TexCoords t[3], bool vis = true) : visible(vis) {
- vertices[0] = v[0]; vertices[1] = v[1]; vertices[2] = v[2];
- texCoords[0] = t[0]; texCoords[1] = t[1]; texCoords[2] = t[2];
- }
+ Vertex loadVertex(xmlpp::Element *node) const;
+ Vector loadVector(xmlpp::Element *node) const;
+ TexCoords loadTexCoords(xmlpp::Element *node) const;
- Triangle(Vertex v[3], Vector n[3], TexCoords t[3], bool vis = true) : visible(vis) {
- vertices[0] = v[0]; vertices[1] = v[1]; vertices[2] = v[2];
- normals[0] = n[0]; normals[1] = n[1]; normals[2] = n[2];
- texCoords[0] = t[0]; texCoords[1] = t[1]; texCoords[2] = t[2];
- }
+ public:
+ Triangle(xmlpp::Element *node);
- Vertex& getVertex(unsigned int i) {return vertices[i%3];}
const Vertex& getVertex(unsigned int i) const {return vertices[i%3];}
void setVertex(unsigned int i, Vertex v) {vertices[i%3] = v;}
void setVertices(Vertex v[3]) {
vertices[0] = v[0]; vertices[1] = v[1]; vertices[2] = v[2];
}
- Vector& getNormal(unsigned int i) {return normals[i%3];}
const Vector& getNormal(unsigned int i) const {return normals[i%3];}
void setNormal(unsigned int i, Vector n) {normals[i%3] = n;}
void setNormals(Vector n[3]) {
normals[0] = n[0]; normals[1] = n[1]; normals[2] = n[2];
}
- TexCoords& getTexCoords(unsigned int i) {return texCoords[i%3];}
const TexCoords& getTexCoords(unsigned int i) const {return texCoords[i%3];}
void getTexCoords(unsigned int i, TexCoords t) {texCoords[i%3] = t;}
void getTexCoords(TexCoords t[3]) {
texCoords[0] = t[0]; texCoords[1] = t[1]; texCoords[2] = t[2];
}
- bool isVisible() {return visible;}
+ bool isVisible() const {return visible;}
void setVisible(bool vis) {visible = vis;}
};