94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
/**
|
|
* Bone Superset
|
|
* @param id
|
|
* @param name string
|
|
* @param childBoneIds
|
|
* @param parentBoneIds
|
|
* @param quaternion GameLib.API.Quaternion
|
|
* @param position GameLib.API.Vector3
|
|
* @param scale GameLib.API.Vector3
|
|
* @param up GameLib.API.Vector3
|
|
* @param parentEntity
|
|
* @constructor
|
|
*/
|
|
GameLib.D3.API.Bone = function (
|
|
id,
|
|
name,
|
|
childBoneIds,
|
|
parentBoneIds,
|
|
position,
|
|
quaternion,
|
|
scale,
|
|
up,
|
|
parentEntity
|
|
) {
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(id)) {
|
|
id = GameLib.Utils.RandomId();
|
|
}
|
|
this.id = id;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(name)) {
|
|
name = 'Bone (' + this.id + ')';
|
|
}
|
|
this.name = name;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(childBoneIds)) {
|
|
childBoneIds = [];
|
|
}
|
|
this.childBoneIds = childBoneIds;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(parentBoneIds)) {
|
|
parentBoneIds = [];
|
|
}
|
|
this.parentBoneIds = parentBoneIds;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(position)) {
|
|
position = new GameLib.API.Vector3();
|
|
}
|
|
this.position = position;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(quaternion)) {
|
|
quaternion = new GameLib.API.Quaternion();
|
|
}
|
|
this.quaternion = quaternion;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(scale)) {
|
|
scale = new GameLib.API.Vector3(1,1,1);
|
|
}
|
|
this.scale = scale;
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(up)) {
|
|
up = new GameLib.API.Vector3(0,1,0);
|
|
}
|
|
this.up = up;
|
|
|
|
GameLib.API.Component.call(
|
|
this,
|
|
GameLib.Component.BONE,
|
|
parentEntity
|
|
);
|
|
};
|
|
|
|
GameLib.D3.API.Bone.prototype = Object.create(GameLib.Component.prototype);
|
|
GameLib.D3.API.Bone.prototype.constructor = GameLib.D3.API.Bone;
|
|
|
|
/**
|
|
* Returns an API bone from an Object bone
|
|
* @param objectBone
|
|
* @constructor
|
|
*/
|
|
GameLib.D3.API.Bone.FromObject = function(objectBone) {
|
|
return new GameLib.D3.API.Bone(
|
|
objectBone.id,
|
|
objectBone.name,
|
|
objectBone.childBoneIds,
|
|
objectBone.parentBoneIds,
|
|
GameLib.API.Vector3.FromObject(objectBone.position),
|
|
GameLib.API.Quaternion.FromObject(objectBone.quaternion),
|
|
GameLib.API.Vector3.FromObject(objectBone.scale),
|
|
GameLib.API.Vector3.FromObject(objectBone.up),
|
|
objectBone.parentEntity
|
|
);
|
|
};
|