mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 00:32:57 -04:00
chan: add various property interfaces to animation system
This commit is contained in:
parent
69f8f8b7b7
commit
594e6b394b
@ -38,6 +38,9 @@ PUBLISHED:
|
|||||||
INLINE double get_base_frame_rate() const;
|
INLINE double get_base_frame_rate() const;
|
||||||
INLINE int get_num_frames() const;
|
INLINE int get_num_frames() const;
|
||||||
|
|
||||||
|
MAKE_PROPERTY(base_frame_rate, get_base_frame_rate);
|
||||||
|
MAKE_PROPERTY(num_frames, get_num_frames);
|
||||||
|
|
||||||
virtual void output(std::ostream &out) const;
|
virtual void output(std::ostream &out) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -41,6 +41,8 @@ public:
|
|||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
INLINE AnimBundle *get_bundle() const;
|
INLINE AnimBundle *get_bundle() const;
|
||||||
|
|
||||||
|
MAKE_PROPERTY(bundle, get_bundle);
|
||||||
|
|
||||||
static AnimBundle *find_anim_bundle(PandaNode *root);
|
static AnimBundle *find_anim_bundle(PandaNode *root);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -57,6 +57,8 @@ PUBLISHED:
|
|||||||
INLINE const TransformState *get_value_transform() const;
|
INLINE const TransformState *get_value_transform() const;
|
||||||
INLINE PandaNode *get_value_node() const;
|
INLINE PandaNode *get_value_node() const;
|
||||||
|
|
||||||
|
MAKE_PROPERTY(value_node, get_value_node, set_value_node);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual AnimGroup *make_copy(AnimGroup *parent) const;
|
virtual AnimGroup *make_copy(AnimGroup *parent) const;
|
||||||
|
|
||||||
|
@ -59,6 +59,8 @@ PUBLISHED:
|
|||||||
INLINE bool has_table(char table_id) const;
|
INLINE bool has_table(char table_id) const;
|
||||||
INLINE void clear_table(char table_id);
|
INLINE void clear_table(char table_id);
|
||||||
|
|
||||||
|
MAKE_MAP_PROPERTY(tables, has_table, get_table, set_table, clear_table);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void write(std::ostream &out, int indent_level) const;
|
virtual void write(std::ostream &out, int indent_level) const;
|
||||||
|
|
||||||
|
@ -10,3 +10,25 @@
|
|||||||
* @author drose
|
* @author drose
|
||||||
* @date 2003-10-20
|
* @date 2003-10-20
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the channel. This will return the value explicitly
|
||||||
|
* specified by set_value() unless a value node was specified using
|
||||||
|
* set_value_node().
|
||||||
|
*/
|
||||||
|
INLINE PN_stdfloat AnimChannelScalarDynamic::
|
||||||
|
get_value() const {
|
||||||
|
if (_value_node != nullptr) {
|
||||||
|
return _value->get_pos()[0];
|
||||||
|
} else {
|
||||||
|
return _float_value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the node that was set via set_value_node(), if any.
|
||||||
|
*/
|
||||||
|
INLINE PandaNode *AnimChannelScalarDynamic::
|
||||||
|
get_value_node() const {
|
||||||
|
return _value_node;
|
||||||
|
}
|
||||||
|
@ -84,16 +84,12 @@ has_changed(int, double, int, double) {
|
|||||||
*/
|
*/
|
||||||
void AnimChannelScalarDynamic::
|
void AnimChannelScalarDynamic::
|
||||||
get_value(int, PN_stdfloat &value) {
|
get_value(int, PN_stdfloat &value) {
|
||||||
if (_value_node != nullptr) {
|
value = get_value();
|
||||||
value = _value->get_pos()[0];
|
|
||||||
|
|
||||||
} else {
|
|
||||||
value = _float_value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Explicitly sets the value.
|
* Explicitly sets the value. This will remove any node assigned via
|
||||||
|
* set_value_node().
|
||||||
*/
|
*/
|
||||||
void AnimChannelScalarDynamic::
|
void AnimChannelScalarDynamic::
|
||||||
set_value(PN_stdfloat value) {
|
set_value(PN_stdfloat value) {
|
||||||
@ -104,7 +100,8 @@ set_value(PN_stdfloat value) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies a node whose transform will be queried each frame to implicitly
|
* Specifies a node whose transform will be queried each frame to implicitly
|
||||||
* specify the transform of this joint.
|
* specify the transform of this joint. This will override the values set by
|
||||||
|
* set_value().
|
||||||
*/
|
*/
|
||||||
void AnimChannelScalarDynamic::
|
void AnimChannelScalarDynamic::
|
||||||
set_value_node(PandaNode *value_node) {
|
set_value_node(PandaNode *value_node) {
|
||||||
|
@ -41,11 +41,16 @@ public:
|
|||||||
virtual bool has_changed(int last_frame, double last_frac,
|
virtual bool has_changed(int last_frame, double last_frac,
|
||||||
int this_frame, double this_frac);
|
int this_frame, double this_frac);
|
||||||
virtual void get_value(int frame, PN_stdfloat &value);
|
virtual void get_value(int frame, PN_stdfloat &value);
|
||||||
|
INLINE PN_stdfloat get_value() const;
|
||||||
|
INLINE PandaNode *get_value_node() const;
|
||||||
|
|
||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
void set_value(PN_stdfloat value);
|
void set_value(PN_stdfloat value);
|
||||||
void set_value_node(PandaNode *node);
|
void set_value_node(PandaNode *node);
|
||||||
|
|
||||||
|
MAKE_PROPERTY(value, get_value, set_value);
|
||||||
|
MAKE_PROPERTY(value_node, get_value_node, set_value_node);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual AnimGroup *make_copy(AnimGroup *parent) const;
|
virtual AnimGroup *make_copy(AnimGroup *parent) const;
|
||||||
|
|
||||||
|
@ -44,6 +44,8 @@ PUBLISHED:
|
|||||||
INLINE bool has_table() const;
|
INLINE bool has_table() const;
|
||||||
INLINE void clear_table();
|
INLINE void clear_table();
|
||||||
|
|
||||||
|
MAKE_PROPERTY2(table, has_table, get_table, set_table, clear_table);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void write(std::ostream &out, int indent_level) const;
|
virtual void write(std::ostream &out, int indent_level) const;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user