summaryrefslogtreecommitdiff
path: root/morpher/src/morphmesh.h
diff options
context:
space:
mode:
Diffstat (limited to 'morpher/src/morphmesh.h')
-rw-r--r--morpher/src/morphmesh.h36
1 files changed, 30 insertions, 6 deletions
diff --git a/morpher/src/morphmesh.h b/morpher/src/morphmesh.h
index 7e3cb0b..ca1231c 100644
--- a/morpher/src/morphmesh.h
+++ b/morpher/src/morphmesh.h
@@ -18,26 +18,50 @@ Multiple meshes are loaded as morph targets
Coords are absolute
-TODO
-draw(vector<int> targets, vector<float> weights); - m
+
+--managing movement sequences
+--cycles can refer to targets by name
+--high level controller objects can refer to animation sequences by name
+--this makes it impossible for a re-odering to banjax everything
+
+cycles have a start time, and they either loop or act as a transition
+
+Working out the morphs is a question of:
+-working out which cycles are active based on behaviours
+-adding their morph targets into the current vector of targets
+
+behaviours are triggered by things like spotting people or avoiding the wall.
+These could be parameterised on top of the rest?
*/
+class sequence
+{
+ //stores a morph sequence: an animation cycle or transition
+ public:
+ sequence();
+ virtual ~sequence();
+
+
+};
+
class morphmesh : public ofMesh
{
public:
morphmesh();
morphmesh(string filename);
virtual ~morphmesh();
- bool loadfile(string filename);
+ bool loadMesh(string filename);
+ bool isLoaded();
+ void draw();
void draw(int target);
- void draw(const vector<int>& targets, const vector<float>& weights);
+ void draw(const vector<string>& targets, const vector<float>& weights);
int getNumTargets();
protected:
private:
- //vector < <vector <ofVec3f> >targets;
- vector< vector<ofVec3f> > morphs;
+ map< string,vector<ofVec3f> > morphs;
+ bool loaded;
};
#endif // MORPHMESH_H