1 /* === S Y N F I G ========================================================= */
2 /*!	\file valuenode_boneweightpair.h
3 **	\brief Header file for implementation of the "BoneWeightPair" valuenode conversion.
4 **
5 **	$Id$
6 **
7 **	\legal
8 **	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
9 **	Copyright (c) 2008 Chris Moore
10 **	Copyright (c) 2008 Carlos López
11 **
12 **	This package is free software; you can redistribute it and/or
13 **	modify it under the terms of the GNU General Public License as
14 **	published by the Free Software Foundation; either version 2 of
15 **	the License, or (at your option) any later version.
16 **
17 **	This package is distributed in the hope that it will be useful,
18 **	but WITHOUT ANY WARRANTY; without even the implied warranty of
19 **	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 **	General Public License for more details.
21 **	\endlegal
22 */
23 /* ========================================================================= */
24 
25 /* === S T A R T =========================================================== */
26 
27 #ifndef __SYNFIG_VALUENODE_BONEWEIGHTPAIR_H
28 #define __SYNFIG_VALUENODE_BONEWEIGHTPAIR_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include <synfig/valuenode.h>
33 
34 /* === M A C R O S ========================================================= */
35 
36 /* === C L A S S E S & S T R U C T S ======================================= */
37 
38 namespace synfig {
39 
40 class ValueNode_BoneWeightPair : public LinkableValueNode
41 {
42 	ValueNode::RHandle bone_;
43 	ValueNode::RHandle weight_;
44 
45 	ValueNode_BoneWeightPair(const ValueBase &value, etl::loose_handle<Canvas> = 0);
46 
47 public:
48 
49 	typedef etl::handle<ValueNode_BoneWeightPair> Handle;
50 	typedef etl::handle<const ValueNode_BoneWeightPair> ConstHandle;
51 
52 
53 	virtual ValueBase operator()(Time t)const;
54 
55 	virtual ~ValueNode_BoneWeightPair();
56 
57 	virtual String get_name()const;
58 	virtual String get_local_name()const;
59 
60 	virtual ValueNode::LooseHandle get_link_vfunc(int i)const;
61 
62 protected:
63 	LinkableValueNode* create_new()const;
64 	virtual bool set_link_vfunc(int i,ValueNode::Handle x);
65 
66 public:
67 	using synfig::LinkableValueNode::get_link_vfunc;
68 
69 	using synfig::LinkableValueNode::set_link_vfunc;
70 	static bool check_type(Type &type);
71 	static ValueNode_BoneWeightPair* create(const ValueBase &x, etl::loose_handle<Canvas>);
72 	virtual Vocab get_children_vocab_vfunc()const;
73 }; // END of class ValueNode_BoneWeightPair
74 
75 }; // END of namespace synfig
76 
77 /* === E N D =============================================================== */
78 
79 #endif
80