r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / maskauto.h
blobdce7af293ced33af7be723b06c2fab15dbf9c55f
1 #ifndef MASKAUTO_H
2 #define MASKAUTO_H
5 #include "arraylist.h"
6 #include "auto.h"
7 #include "maskauto.inc"
8 #include "maskautos.inc"
10 class MaskPoint
12 public:
13 MaskPoint();
15 int operator==(MaskPoint& ptr);
16 MaskPoint& operator=(MaskPoint& ptr);
18 float x, y;
19 // Incoming acceleration
20 float control_x1, control_y1;
21 // Outgoing acceleration
22 float control_x2, control_y2;
25 class SubMask
27 public:
28 SubMask(MaskAuto *keyframe);
29 ~SubMask();
31 int operator==(SubMask& ptr);
32 void copy_from(SubMask& ptr);
33 void load(FileXML *file);
34 void copy(FileXML *file);
35 void dump();
37 ArrayList<MaskPoint*> points;
38 MaskAuto *keyframe;
41 class MaskAuto : public Auto
43 public:
44 MaskAuto(EDL *edl, MaskAutos *autos);
45 ~MaskAuto();
47 int operator==(Auto &that);
48 int operator==(MaskAuto &that);
49 int identical(MaskAuto *src);
50 void load(FileXML *file);
51 void copy(int64_t start, int64_t end, FileXML *file, int default_auto);
52 void copy_from(Auto *src);
53 void copy_from(MaskAuto *src);
55 void dump();
56 // Retrieve submask with clamping
57 SubMask* get_submask(int number);
60 ArrayList<SubMask*> masks;
61 // These are constant for the entire track
62 int mode;
63 float feather;
64 // 0 - 100
65 int value;
71 #endif