/** * 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 * @constructor */ GameLib.D3.API.Bone = function ( id, name, childBoneIds, parentBoneIds, position, quaternion, scale, up ) { 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; }; /** * 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) ); };