Blender V2.61 - r43446
Classes | Functions

BL_ArmatureObject.h File Reference

#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)

Detailed Description

Definition in file BL_ArmatureObject.h.


Function Documentation

void game_blend_poses ( struct bPose dst,
struct bPose src,
float  srcweight 
)
void game_copy_pose ( bPose **  dst,
bPose src,
int  copy_constraint 
)

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)