Ejemplo n.º 1
0
TransformConstraint::TransformConstraint(const TransformConstraintData& data, Skeleton& skeleton)
    : data(data)
{
    translateMix = data.translateMix;
    translation = data.translation;

    bone = skeleton.findBone(data.bone->name);
    target = skeleton.findBone(data.target->name);
}
Ejemplo n.º 2
0
IkConstraint::IkConstraint(IkConstraintData &data, Skeleton &skeleton) : Constraint(),
																		 _data(data),
																		 _bendDirection(data.getBendDirection()),
																		 _compress(data.getCompress()),
																		 _stretch(data.getStretch()),
																		 _mix(data.getMix()),
																		 _target(skeleton.findBone(
																				 data.getTarget()->getName())) {
	_bones.ensureCapacity(_data.getBones().size());
	for (size_t i = 0; i < _data.getBones().size(); i++) {
		BoneData *boneData = _data.getBones()[i];
		_bones.add(skeleton.findBone(boneData->getName()));
	}
}
Ejemplo n.º 3
0
PathConstraint::PathConstraint(PathConstraintData &data, Skeleton &skeleton) : Constraint(),
																			   _data(data),
																			   _target(skeleton.findSlot(
																					   data.getTarget()->getName())),
																			   _position(data.getPosition()),
																			   _spacing(data.getSpacing()),
																			   _rotateMix(data.getRotateMix()),
																			   _translateMix(data.getTranslateMix()) {
	_bones.ensureCapacity(_data.getBones().size());
	for (size_t i = 0; i < _data.getBones().size(); i++) {
		BoneData *boneData = _data.getBones()[i];
		_bones.add(skeleton.findBone(boneData->getName()));
	}

	_segments.setSize(10, 0);
}
Ejemplo n.º 4
0
void Model::setAttachment(const String& boneName, const EntityPtr& node)
{
	if( !mesh ) return;

	Skeleton* skeleton = mesh->getSkeleton().get();
	assert( skeleton != nullptr );

	Bone* bone = skeleton->findBone(boneName).get();
	if( !bone ) return;

	Attachment* attachment = AllocateThis(Attachment);
	
	attachment->bone = bone;
	attachment->node = node;

	attachments.push_back(attachment);
}