HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_MotionClipRW Class Reference

#include <GU_MotionClip.h>

+ Inheritance diagram for GU_MotionClipRW:

Public Member Functions

 GU_MotionClipRW (GU_Detail *gdp, UT_WorkBuffer &err_msg, bool can_evaluate=true, GU_MotionClipInfo *clipinfo=nullptr, bool compute_default_clipinfo=false, bool do_sort_samples=true, bool enable_locking=true)
 
 ~GU_MotionClipRW () override=default
 
bool updateGdp (const GU_Detail *gdp) override
 
bool updateGdpNC (GU_Detail *gdp)
 
bool setTopology (fpreal time, const GU_Detail *sample, UT_WorkBuffer &error_msg)
 
void addClipInfo ()
 This will add a clipinfo detail attribute based on the primitive times. More...
 
- Public Member Functions inherited from GU_MotionClipRO
 GU_MotionClipRO (const GU_Detail *gdp, UT_WorkBuffer &err_msg, bool can_evaluate=true, GU_MotionClipInfo *clipinfo=nullptr, bool compute_default_clipinfo=false, bool do_sort_samples=true, bool enable_locking=true)
 clipinfo will override the gdp's clipinfo detail attribute More...
 
virtual ~GU_MotionClipRO ()=default
 
void getTopology (fpreal &time, GU_Detail *dest, const GA_AttributeFilter *skip=nullptr)
 
bool hasTopology () const
 
void evaluate (fpreal time, GU_Detail *result, const GA_PointGroup *result_pts=nullptr, const GA_PointGroup *topology_pts=nullptr, const GA_AttributeFilter *extra_attribs_to_unpack=nullptr, GU_MotionClipEndBehavior left_end_behavior=GU_MotionClipEndBehavior::Clamp, GU_MotionClipEndBehavior right_end_behavior=GU_MotionClipEndBehavior::Clamp)
 
void evaluate (fpreal time, GU_Detail *result, const EvaluationParms &evaluation_parms, const GA_PointGroup *result_pts=nullptr, const GA_PointGroup *topology_pts=nullptr, UT_ArrayStringMap< bool > *is_anim_point_attrib=nullptr)
 
void evaluateNoLock (fpreal time, GU_Detail *result, const EvaluationParms &evaluation_parms, const GA_PointGroup *result_pts=nullptr, const GA_PointGroup *topology_pts=nullptr, UT_ArrayStringMap< bool > *is_anim_point_attrib=nullptr)
 
void setScaleInheritance (UT_ScaleInheritanceMode scale_inheritance)
 
void computeLocalTransforms (fpreal time, UT_Array< GU_AgentXformD > &result, bool constant_evaluation=false)
 
exint getJointIndex (const UT_StringHolder &joint_name) const
 
const GA_PointGroupgetJointGroup (GOP_Manager &gop, const UT_StringHolder &pattern) const
 
void getJointsInGroup (GOP_Manager &gop, const UT_StringHolder &pattern, UT_StringArray &joints_in_group) const
 
bool isInitialised () const
 
exint numJoints () const
 
const GU_MotionClipInfoclipInfo () const
 
const GU_DetailgetSample (fpreal time) const
 returns the sample at time, or nullptr if not found More...
 
const GU_DetailrestFrame () const
 
void getSortedFrameOrder (UT_Array< exint > &frame_order)
 
const UT_Array< fpreal > & getSampleTimes ()
 
bool canEvaluate () const
 

Friends

class GU_MotionClipBuilder
 

Additional Inherited Members

- Protected Member Functions inherited from GU_MotionClipRO
void sortPrimitives (GU_Detail *gdp, bool clear_array)
 
- Protected Attributes inherited from GU_MotionClipRO
const GU_DetailourGdp
 
GU_MotionClipDataIds ourDataIds
 

Detailed Description

MotionClip object which allows for modifications

You can add/remove frames by passing an instance of this into GU_MotionBuilder

Definition at line 546 of file GU_MotionClip.h.

Constructor & Destructor Documentation

GU_MotionClipRW::GU_MotionClipRW ( GU_Detail gdp,
UT_WorkBuffer err_msg,
bool  can_evaluate = true,
GU_MotionClipInfo clipinfo = nullptr,
bool  compute_default_clipinfo = false,
bool  do_sort_samples = true,
bool  enable_locking = true 
)
GU_MotionClipRW::~GU_MotionClipRW ( )
overridedefault

Member Function Documentation

void GU_MotionClipRW::addClipInfo ( )

This will add a clipinfo detail attribute based on the primitive times.

bool GU_MotionClipRW::setTopology ( fpreal  time,
const GU_Detail sample,
UT_WorkBuffer error_msg 
)

Sets the topology to the sample geometry, marking the packed primitive with the given time attribute

If there is already an existing topology sample must contain only the same joints.

The topology must be set before attempting to add frames

returns false on error

bool GU_MotionClipRW::updateGdp ( const GU_Detail gdp)
inlineoverridevirtual

Reimplemented from GU_MotionClipRO.

Definition at line 562 of file GU_MotionClip.h.

bool GU_MotionClipRW::updateGdpNC ( GU_Detail gdp)
inline

Definition at line 563 of file GU_MotionClip.h.

Friends And Related Function Documentation

friend class GU_MotionClipBuilder
friend

Definition at line 549 of file GU_MotionClip.h.


The documentation for this class was generated from the following file: