2016-10-14 12:32:53 +02:00
|
|
|
/**
|
|
|
|
* Bone Superset
|
|
|
|
* @param id
|
|
|
|
* @param name string
|
|
|
|
* @param childBoneIds
|
2016-12-23 16:07:10 +01:00
|
|
|
* @param parentBoneIds
|
|
|
|
* @param quaternion GameLib.API.Quaternion
|
|
|
|
* @param position GameLib.API.Vector3
|
2016-12-15 14:53:39 +01:00
|
|
|
* @param scale GameLib.API.Vector3
|
2016-12-23 16:07:10 +01:00
|
|
|
* @param up GameLib.API.Vector3
|
2016-10-14 12:32:53 +02:00
|
|
|
* @constructor
|
|
|
|
*/
|
2016-12-23 16:07:10 +01:00
|
|
|
GameLib.D3.API.Bone = function (
|
2016-10-14 12:32:53 +02:00
|
|
|
id,
|
|
|
|
name,
|
|
|
|
childBoneIds,
|
2016-12-23 16:07:10 +01:00
|
|
|
parentBoneIds,
|
2016-10-14 12:32:53 +02:00
|
|
|
position,
|
2016-12-23 16:07:10 +01:00
|
|
|
quaternion,
|
2016-10-14 12:32:53 +02:00
|
|
|
scale,
|
|
|
|
up
|
|
|
|
) {
|
2016-12-23 16:07:10 +01:00
|
|
|
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(id)) {
|
|
|
|
id = GameLib.Utils.RandomId();
|
|
|
|
}
|
2016-10-14 12:32:53 +02:00
|
|
|
this.id = id;
|
2016-12-23 16:07:10 +01:00
|
|
|
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(name)) {
|
|
|
|
name = 'Bone (' + this.id + ')';
|
|
|
|
}
|
2016-10-14 12:32:53 +02:00
|
|
|
this.name = name;
|
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(childBoneIds)) {
|
2016-10-14 12:32:53 +02:00
|
|
|
childBoneIds = [];
|
|
|
|
}
|
|
|
|
this.childBoneIds = childBoneIds;
|
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(parentBoneIds)) {
|
|
|
|
parentBoneIds = [];
|
2016-10-14 12:32:53 +02:00
|
|
|
}
|
2016-12-23 16:07:10 +01:00
|
|
|
this.parentBoneIds = parentBoneIds;
|
2016-10-14 12:32:53 +02:00
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(position)) {
|
|
|
|
position = new GameLib.API.Vector3();
|
2016-10-14 12:32:53 +02:00
|
|
|
}
|
|
|
|
this.position = position;
|
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(quaternion)) {
|
|
|
|
quaternion = new GameLib.API.Quaternion();
|
2016-10-14 12:32:53 +02:00
|
|
|
}
|
2016-12-23 16:07:10 +01:00
|
|
|
this.quaternion = quaternion;
|
2016-10-14 12:32:53 +02:00
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(scale)) {
|
2016-12-15 14:53:39 +01:00
|
|
|
scale = new GameLib.API.Vector3(1,1,1);
|
2016-10-14 12:32:53 +02:00
|
|
|
}
|
|
|
|
this.scale = scale;
|
|
|
|
|
2016-12-23 16:07:10 +01:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(up)) {
|
2016-12-15 14:53:39 +01:00
|
|
|
up = new GameLib.API.Vector3(0,1,0);
|
2016-10-14 12:32:53 +02:00
|
|
|
}
|
|
|
|
this.up = up;
|
2017-01-05 19:34:28 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns an API bone from an Object bone
|
|
|
|
* @param objectBone
|
|
|
|
* @constructor
|
|
|
|
*/
|
2017-06-14 14:21:57 +02:00
|
|
|
GameLib.D3.API.Bone.FromObject = function(objectBone) {
|
2017-01-05 19:34:28 +01:00
|
|
|
return new GameLib.D3.API.Bone(
|
|
|
|
objectBone.id,
|
|
|
|
objectBone.name,
|
|
|
|
objectBone.childBoneIds,
|
|
|
|
objectBone.parentBoneIds,
|
2017-06-14 14:21:57 +02:00
|
|
|
GameLib.API.Vector3.FromObject(objectBone.position),
|
|
|
|
GameLib.API.Quaternion.FromObject(objectBone.quaternion),
|
|
|
|
GameLib.API.Vector3.FromObject(objectBone.scale),
|
|
|
|
GameLib.API.Vector3.FromObject(objectBone.up)
|
2017-01-05 19:34:28 +01:00
|
|
|
);
|
|
|
|
};
|