synfig-core  1.0.3
layer_skeletondeformation.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_LAYER_SKELETONDEFORMATION_H
26 #define __SYNFIG_LAYER_SKELETONDEFORMATION_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include "layer_meshtransform.h"
31 #include <synfig/pair.h>
32 #include <synfig/bone.h>
33 #include <synfig/polygon.h>
34 
35 /* === M A C R O S ========================================================= */
36 
37 /* === T Y P E D E F S ===================================================== */
38 
39 /* === C L A S S E S & S T R U C T S ======================================= */
40 
41 namespace synfig {
46 {
49 private:
51  ValueBase param_bones;
53  synfig::ValueBase param_point1;
55  synfig::ValueBase param_point2;
57  synfig::ValueBase param_x_subdivisions;
59  synfig::ValueBase param_y_subdivisions;
60 
61  struct GridPoint;
62  static Real distance_to_line(const Vector &p0, const Vector &p1, const Vector &x);
63  void prepare_mask();
64 
65 public:
66  typedef std::pair<Bone, Bone> BonePair;
67 
73  virtual String get_local_name()const;
74 
76  virtual bool set_param(const String & param, const synfig::ValueBase &value);
78  virtual ValueBase get_param(const String & param)const;
80  virtual Vocab get_param_vocab()const;
81 
82  void prepare_mesh();
83 }; // END of class SkeletonDeformation
84 
85 }; // END of namespace synfig
86 
87 /* === E N D =============================================================== */
88 
89 #endif