X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmaskauto.h;h=a1338f43313a8005eebe39f10044426016720e6c;hp=acc035c68b4eb6fdb6e1cf7b88225ebb1ca6d11b;hb=076da20a596fe698e1152ce2f3f2d75d2daddec8;hpb=3f801b05e0de577b00e98019b099ed38d66b9550 diff --git a/cinelerra-5.1/cinelerra/maskauto.h b/cinelerra-5.1/cinelerra/maskauto.h index acc035c6..a1338f43 100644 --- a/cinelerra-5.1/cinelerra/maskauto.h +++ b/cinelerra-5.1/cinelerra/maskauto.h @@ -44,7 +44,44 @@ public: float control_x2, control_y2; }; +class MaskCoord { public: double x, y, z; }; + +class MaskEdge : public ArrayList +{ +public: + MaskCoord &append(double x, double y, double z=0) { + MaskCoord &c = ArrayList::append(); + c.x = x; c.y = y; c.z = z; + return c; + } + void load(MaskPoints &points, float ofs); +}; + +class MaskEdges : public ArrayList { +public: + MaskEdges() {} + ~MaskEdges() { remove_all_objects(); } +}; + +class MaskPoints : public ArrayList +{ +public: + void clear() { remove_all_objects(); } + MaskPoints() {} + ~MaskPoints() { clear(); } +}; + +class MaskPointSets : public ArrayList +{ +public: + void clear() { remove_all_objects(); } + MaskPointSets() {} + ~MaskPointSets() { clear(); } +}; + #define FEATHER_MAX 100 +// GL reg limit 1024 incls shader param list +#define MAX_FEATHER 1000 class SubMask { @@ -60,9 +97,9 @@ public: void dump(FILE *fp); char name[BCSTRLEN]; - float fader; // -100 - 100 - float feather; // -100 - 100 - ArrayList points; + float fader; + float feather; + MaskPoints points; MaskAuto *keyframe; }; @@ -83,9 +120,9 @@ public: void copy_from(MaskAuto *src); // Copy data but not position void copy_data(MaskAuto *src); - void get_points(ArrayList *points, + void get_points(MaskPoints *points, int submask); - void set_points(ArrayList *points, + void set_points(MaskPoints *points, int submask); // Copy parameters to this which differ between ref & src @@ -105,19 +142,6 @@ public: int disable_opengl_masking; }; -class MaskCoord { public: double x, y, z; }; - -class MaskEdge : public ArrayList -{ -public: - MaskCoord &append() { return ArrayList::append(); } - MaskCoord &append(double x, double y, double z=0) { - MaskCoord &c = append(); - c.x = x; c.y = y; c.z = z; - return c; - } -}; - // shader buffer unsized array vec only seems to work for dvec (05/2019) class MaskSpot { public: double x, y; }; @@ -132,25 +156,4 @@ public: } }; -class MaskEdges : public ArrayList { -public: - MaskEdges() {} - ~MaskEdges() { remove_all_objects(); } -}; - -class MaskPointSet : public ArrayList -{ -public: - void clear() { remove_all_objects(); } - MaskPointSet() {} - ~MaskPointSet() { clear(); } -}; -class MaskPointSets : public ArrayList -{ -public: - void clear() { remove_all_objects(); } - MaskPointSets() {} - ~MaskPointSets() { clear(); } -}; - #endif