Blender V2.61 - r43446
|
#include "KX_GameObject.h"
#include "BL_ArmatureConstraint.h"
#include "BL_ArmatureChannel.h"
#include "SG_IObject.h"
#include <vector>
#include <algorithm>
Go to the source code of this file.
Classes | |
class | BL_ArmatureObject |
Functions | |
void | game_blend_poses (struct bPose *dst, struct bPose *src, float srcweight) |
void | game_copy_pose (struct bPose **dst, struct bPose *src, int copy_con) |
void | game_free_pose (struct bPose *pose) |
Definition in file BL_ArmatureObject.h.
Definition at line 137 of file BL_ArmatureObject.cpp.
References ACTSTRIPMODE_ADD, ACTSTRIPMODE_BLEND, bPose::chanbase, bPoseChannel::constraints, copy_qt_qt(), bPose::ctime, bConstraint::enforce, bPoseChannel::eul, ListBase::first, i, interp_qt_qtqt(), bPoseChannel::loc, mul_fac_qt_fl(), mul_qt_qtqt(), bPoseChannel::next, bConstraint::next, normalize_qt(), bPoseChannel::quat, ROT_MODE_QUAT, bPoseChannel::rotmode, and bPoseChannel::size.
Referenced by BL_Action::Update().
Move here pose function for game engine so that we can mix with GE objects Principle is as follow: Use Blender structures so that where_is_pose can be used unchanged Copy the constraint so that they can be enabled/disabled/added/removed at runtime Don't copy the constraints for the pose used by the Action actuator, it does not need them. Scan the constraint structures so that the KX equivalent of target objects are identified and stored in separate list. When it is about to evaluate the pose, set the KX object position in the obmat of the corresponding Blender objects and restore after the evaluation.
Definition at line 72 of file BL_ArmatureObject.cpp.
References bPose::agroups, BLI_duplicatelist(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), bPose::chanbase, bPose::chanhash, bPoseChannel::child, bPoseChannel::constraints, copy_constraints(), FALSE, ListBase::first, bPose::flag, bPose::ikdata, bPose::ikparam, ListBase::last, make_pose_channels_hash(), MEM_dupallocN(), bPoseChannel::next, NULL, bPoseChannel::parent, POSE_GAME_ENGINE, and bPoseChannel::prop.
Referenced by BL_ArmatureObject::BL_ArmatureObject(), BL_ArmatureObject::GetMRDPose(), BL_ArmatureObject::GetPose(), and BL_ArmatureObject::ProcessReplica().
void game_free_pose | ( | struct bPose * | pose | ) |
Definition at line 197 of file BL_ArmatureObject.cpp.
References BIK_clear_data(), free_pose_channels(), bPose::ikparam, and MEM_freeN().
Referenced by BL_Action::~BL_Action(), BL_ActionActuator::~BL_ActionActuator(), and BL_ArmatureObject::~BL_ArmatureObject().