GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
SeqApi.hh
Go to the documentation of this file.
1
15
16class SeqObj;
17class TimeObj;
18
19class SeqApi
20{
21public:
22 // returns point
23 int push_point() { points.push_back(Point()); return points.size()-1; }
24 // EQuad, ECube, ESphere, ECone, ERing, returns object
25 int push_obj(int seq_api_type);
26 // EQuad => 4 points
27 // ECube => 8 points
28 // ESphere => 2 points (center + radius)
29 // ECone => 2 points for line + 2 points for circles
30 // ERing => 1 point for center + 1 point for radius1, 1 point for 2nd radius
31 void link_obj_point(int object, int point, int obj_point);
32 // time_type={ELine,ECurve}, returns time_obj
33 int push_time_obj(int time_type, float start_time, float end_time);
34 int link_time_point(int time_obj, float time, int point, Point pos);
35 int link_timeobj_and_obj(int time_obj, int object);
36 P frame(int time) const;
37private:
38 std::vector<SeqObj*> *Objects() { return &objects; }
39 std::vector<Point> *Points() { return &points; }
40private:
41 std::vector<Point> points; // points in 3d and 2d space
42 std::vector<SeqObj*> objects; // displayable objects
43 std::vector<TimeObj*> timeline; // timed objects
44 friend class SeqObj;
45 friend class TimeObj;
46};
47
48class SeqObj
49{
50public:
51 void init();
52 void set_point(int num, int idx) { points[num]=idx; }
53 int num_points() const { return points.size(); }
54 virtual int NumPoints() const=0;
55 virtual P draw(const std::vector<Point> &points) const=0;
56protected:
57 std::vector<int> points;
58};
59
61{
62public:
64 void push_object(int idx) { objects.push_back(idx); }
65 void set_point(int point, float time, Point pos)
66 {
67 point_idx.push_back(point);
68 points.push_back(pos);
69 point_times.push_back(time);
70 }
71 bool decide_visibility(float time) const;
72 virtual P frame(float time) const;
73protected:
74 virtual void set_points(float time, std::vector<Point> &points) const=0;
75private:
76 void generate_objects(float time);
77protected:
80 float duration;
81 std::vector<int> objects;
83 std::vector<int> point_idx;
84 std::vector<Point> points;
85 std::vector<float> point_times;
86};
87
88//
89// Objects
90//
91class QuadSeqObj : public SeqObj
92{
93public:
94 QuadSeqObj(GameApi::Env &e) : poly(e) { }
95 virtual int NumPoints() const { return 4; }
96 virtual P draw(const std::vector<Point> &points_list) const
97 {
98 int p1 = points[0];
99 int p2 = points[1];
100 int p3 = points[2];
101 int p4 = points[3];
102 Point pp1 = points_list[p1];
103 Point pp2 = points_list[p2];
104 Point pp3 = points_list[p3];
105 Point pp4 = points_list[p4];
106 PT pt1 = point.point(pp1.x,pp1.y,pp1.z);
107 PT pt2 = point.point(pp2.x,pp2.y,pp2.z);
108 PT pt3 = point.point(pp3.x,pp3.y,pp3.z);
109 PT pt4 = point.point(pp4.x,pp4.y,pp4.z);
110 return poly.quad(pt1,pt2,pt3,pt4);
111 }
112private:
113 GameApi::Polygon poly;
114 GameApi::Point point;
115};
Env e
Definition Common.cc:2
SeqApiType
Definition SeqApi.hh:3
@ ESphere
Definition SeqApi.hh:6
@ ECone
Definition SeqApi.hh:7
@ ERing
Definition SeqApi.hh:8
@ EQuad
Definition SeqApi.hh:4
@ ECube
Definition SeqApi.hh:5
SeqApiTimeType
Definition SeqApi.hh:11
@ ELine
Definition SeqApi.hh:12
@ ECurve
Definition SeqApi.hh:13
Definition GameApi.hh:362
virtual P draw(const std::vector< Point > &points_list) const
Definition SeqApi.hh:96
QuadSeqObj(GameApi::Env &e)
Definition SeqApi.hh:94
virtual int NumPoints() const
Definition SeqApi.hh:95
Definition SeqApi.hh:20
int link_timeobj_and_obj(int time_obj, int object)
Definition SeqApi.cc:63
int push_time_obj(int time_type, float start_time, float end_time)
Definition SeqApi.cc:47
int push_point()
Definition SeqApi.hh:23
int link_time_point(int time_obj, float time, int point, Point pos)
Definition SeqApi.cc:57
P frame(int time) const
Definition SeqApi.cc:69
int push_obj(int seq_api_type)
Definition SeqApi.cc:29
friend class TimeObj
Definition SeqApi.hh:45
void link_obj_point(int object, int point, int obj_point)
Definition SeqApi.cc:42
friend class SeqObj
Definition SeqApi.hh:44
Definition SeqApi.hh:49
virtual P draw(const std::vector< Point > &points) const =0
std::vector< int > points
Definition SeqApi.hh:57
int num_points() const
Definition SeqApi.hh:53
void init()
Definition SeqApi.cc:86
void set_point(int num, int idx)
Definition SeqApi.hh:52
virtual int NumPoints() const =0
Definition SeqApi.hh:61
TimeObj(SeqApi &api, float start_time, float duration)
Definition SeqApi.hh:63
std::vector< Point > points
Definition SeqApi.hh:84
virtual void set_points(float time, std::vector< Point > &points) const =0
float start_time
Definition SeqApi.hh:79
virtual P frame(float time) const
Definition SeqApi.cc:2
std::vector< float > point_times
Definition SeqApi.hh:85
void set_point(int point, float time, Point pos)
Definition SeqApi.hh:65
void push_object(int idx)
Definition SeqApi.hh:64
std::vector< int > point_idx
Definition SeqApi.hh:83
float duration
Definition SeqApi.hh:80
bool decide_visibility(float time) const
Definition SeqApi.cc:9
SeqApi & api
Definition SeqApi.hh:78
std::vector< P > objects_in_current_frame
Definition SeqApi.hh:82
std::vector< int > objects
Definition SeqApi.hh:81
Definition SpaceDiv.hh:21
Definition GameApi.h:16
Definition GameApi.h:23
Definition Parser.cc:60
float x
Definition Parser.cc:60
float y
Definition Parser.cc:60
float z
Definition Parser.cc:60
num
Definition view.php:2821