From 623e1924aeea83ea70c8ae7f645b067f17a293ea Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Wed, 28 Mar 2012 16:28:45 +0100 Subject: mesh loader and morpher working --- morpher/src/morphmesh.cpp | 104 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 99 insertions(+), 5 deletions(-) (limited to 'morpher/src/morphmesh.cpp') diff --git a/morpher/src/morphmesh.cpp b/morpher/src/morphmesh.cpp index c8826f3..c617f6f 100644 --- a/morpher/src/morphmesh.cpp +++ b/morpher/src/morphmesh.cpp @@ -10,17 +10,111 @@ morphmesh::~morphmesh() //dtor } -bool morphmesh::loadmesh(string filename){ +int morphmesh::getNumTargets(){ + return targets.size(); +} + +void morphmesh::draw(int target){ + clearVertices(); + addVertices(targets[target]); + ofMesh::draw(); +} +void morphmesh::draw(const vector& targetBlend){ + clearVertices(); + //normalise weights + int weightsNum=min(targetBlend.size(),targets.size()); + float totalWeights=0; + for (int i=0;i verts; + + string vertstring=XML.getAttribute("Attribute","Data","none",0); + stringstream ss(vertstring); + istream_iterator begin(ss); + istream_iterator end; + vector vstrings(begin, end); + for (int j=0;j norms; + string normstring=XML.getAttribute("Attribute","Data","none",1); + stringstream ns(normstring); + istream_iterator nbegin(ns); + istream_iterator nend; + vector nstrings(nbegin, nend); + for (int j=0;j texcords; + string texstring=XML.getAttribute("Attribute","Data","none",2); + stringstream ts(texstring); + istream_iterator tbegin(ts); + istream_iterator tend; + vector tstrings(tbegin, tend); + for (int j=0;j faces; + string facestring=XML.getAttribute("Index","Data","none",0); + stringstream fs(facestring); + istream_iterator fbegin(fs); + istream_iterator fend; + vector fstrings(fbegin, fend); + for (int j=0;j