r672: Fixed that pan and mask keyframes were not drawn.
[cinelerra_cv.git] / cinelerra / maskauto.h
blobd331ddd88e2a6563cd6d19be500bfef593f3990c
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 int interpolate_from(Auto *a1, Auto *a2, int64_t position);
54 void copy_from(MaskAuto *src);
56 void dump();
57 // Retrieve submask with clamping
58 SubMask* get_submask(int number);
59 // Translates all submasks
60 void translate_submasks(float translate_x, float translate_y);
63 ArrayList<SubMask*> masks;
64 // These are constant for the entire track
65 int mode;
66 float feather;
67 // 0 - 100
68 int value;
74 #endif