r3-legacy/src/game-lib-d3-api-bone.js

82 lines
1.9 KiB
JavaScript
Raw Normal View History

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
);
};