#ifndef MARKER_H #define MARKER_H #include "MotionCapturer.h" /* basically converts local coord to world coord of a pt */ class Marker; // keeps track of a link list of one's ancestral info typedef struct Ancestry Ancestry; // marker ptr + whether it should be drawn typedef struct MarkerDrawn { Marker *marker; bool b_draw; } MarkerDrawn; class Marker { public: char name[LINESIZE]; char parent_name[LINESIZE]; Ancestry *ancestors; Node *parent; // last one in the last of ancestors double offset[3]; // xyz offset from parent joint double *trans; int frame_cnt; Marker *next; Marker(int in_frame_cnt); ~Marker(); }; /* read a marker request file, alloc and init a link list of markers, headed by m_head */ Status read_marker_request_file(char *filename, int f_cnt, Marker* &m_head); // create an end effector marker and add it to the list of end effector marker list void add_endsite_marker(Node *parent, Node *root, double local_pos[3], int f_cnt, Marker* &m_head); // draw trace of one marker void draw_marker(Marker *m, int begin_frame, int end_frame); #endif