summaryrefslogtreecommitdiffstats
path: root/src/Data/Triangle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Triangle.cpp')
-rw-r--r--src/Data/Triangle.cpp48
1 files changed, 19 insertions, 29 deletions
diff --git a/src/Data/Triangle.cpp b/src/Data/Triangle.cpp
index b3f76a7..51a4947 100644
--- a/src/Data/Triangle.cpp
+++ b/src/Data/Triangle.cpp
@@ -18,28 +18,18 @@
*/
#include "Triangle.h"
-#include <Util/Xml.h>
#include <cstdlib>
+#include <cstring>
namespace ZoomEdit {
namespace Data {
-Vertex Triangle::loadVertex(xmlpp::Element *node) const {
- Vertex v;
+vmml::vec3f Triangle::loadVector(xmlpp::Element *node) const {
+ vmml::vec3f v;
- v.setX(std::atof(node->get_attribute_value("x").c_str()));
- v.setY(std::atof(node->get_attribute_value("y").c_str()));
- v.setZ(std::atof(node->get_attribute_value("z").c_str()));
-
- return v;
-}
-
-Vector Triangle::loadVector(xmlpp::Element *node) const {
- Vector v;
-
- v.setX(std::atof(node->get_attribute_value("x").c_str()));
- v.setY(std::atof(node->get_attribute_value("y").c_str()));
- v.setZ(std::atof(node->get_attribute_value("z").c_str()));
+ v.x() = std::atof(node->get_attribute_value("x").c_str());
+ v.y() = std::atof(node->get_attribute_value("y").c_str());
+ v.z() = std::atof(node->get_attribute_value("z").c_str());
return v;
}
@@ -99,7 +89,7 @@ Triangle::Triangle(xmlpp::Element *node) : triangleNode(node) {
if(e->get_name() == "vertex") {
vertexNodes[++i] = e;
- vertices[i] = loadVertex(e);
+ vertices[i] = loadVector(e);
normalNodes[i] = 0;
texCoordsNodes[i] = 0;
@@ -110,23 +100,23 @@ Triangle::Triangle(xmlpp::Element *node) : triangleNode(node) {
texture = node->get_attribute_value("texture");
}
-void Triangle::setVertex(unsigned int i, const Vertex &v) {
+void Triangle::setVertex(unsigned int i, const vmml::vec3f &v) {
vertices[i] = v;
- vertexNodes[i]->set_attribute("x", Glib::ustring::format(v.getX()));
- vertexNodes[i]->set_attribute("y", Glib::ustring::format(v.getY()));
- vertexNodes[i]->set_attribute("z", Glib::ustring::format(v.getZ()));
+ vertexNodes[i]->set_attribute("x", Glib::ustring::format(v.x()));
+ vertexNodes[i]->set_attribute("y", Glib::ustring::format(v.y()));
+ vertexNodes[i]->set_attribute("z", Glib::ustring::format(v.z()));
}
-void Triangle::setNormal(unsigned int i, const Vector &n) {
+void Triangle::setNormal(unsigned int i, const vmml::vec3f &n) {
normals[i] = n;
if(!normalNodes[i])
- normalNodes[i] = Util::Xml::addSibling(static_cast<xmlpp::Node*>(vertexNodes[i]), "normal");
-
- normalNodes[i]->set_attribute("x", Glib::ustring::format(n.getX()));
- normalNodes[i]->set_attribute("y", Glib::ustring::format(n.getY()));
- normalNodes[i]->set_attribute("z", Glib::ustring::format(n.getZ()));
+ normalNodes[i] = triangleNode->add_child(vertexNodes[i], "normal");
+
+ normalNodes[i]->set_attribute("x", Glib::ustring::format(n.x()));
+ normalNodes[i]->set_attribute("y", Glib::ustring::format(n.y()));
+ normalNodes[i]->set_attribute("z", Glib::ustring::format(n.z()));
}
void Triangle::setTexCoords(unsigned int i, const TexCoords &t) {
@@ -134,9 +124,9 @@ void Triangle::setTexCoords(unsigned int i, const TexCoords &t) {
if(!texCoordsNodes[i]) {
if(normalNodes[i])
- texCoordsNodes[i] = Util::Xml::addSibling(static_cast<xmlpp::Node*>(normalNodes[i]), "texcoords");
+ texCoordsNodes[i] = triangleNode->add_child(normalNodes[i], "texcoords");
else
- texCoordsNodes[i] = Util::Xml::addSibling(static_cast<xmlpp::Node*>(vertexNodes[i]), "texcoords");
+ texCoordsNodes[i] = triangleNode->add_child(vertexNodes[i], "texcoords");
}
texCoordsNodes[i]->set_attribute("s", Glib::ustring::format(t.getS()));