hud observation for generic game objects
This commit is contained in:
+25
-2
@@ -1,4 +1,4 @@
|
||||
import { TextureLoader } from "three";
|
||||
import { TextureLoader, Box3, Vector3 } from "three";
|
||||
|
||||
function assignParams(mesh, params){
|
||||
['scale', 'rotation', 'position'].forEach(p=>params[p] && mesh[p].fromArray(params[p]));
|
||||
@@ -26,4 +26,27 @@ function assignMaterial(mesh, params){
|
||||
}
|
||||
}
|
||||
|
||||
export { assignParams, assignMaterial }
|
||||
function getBoundingBox(object){
|
||||
return new Box3().setFromObject(object);
|
||||
}
|
||||
|
||||
function getBoundingBoxMaxLength(bb){
|
||||
return Math.max(bb.max.x - bb.min.x, bb.max.y - bb.min.y, bb.max.z - bb.min.z)
|
||||
}
|
||||
|
||||
function getBoundingBoxCenterPoint(bb, relativeTo){
|
||||
relativeTo = relativeTo || new Vector3(0,0,0)
|
||||
return new Vector3(
|
||||
bb.min.x + (bb.max.x - bb.min.x)/2 - relativeTo.x,
|
||||
bb.min.y + (bb.max.y - bb.min.y)/2 - relativeTo.y,
|
||||
bb.min.z + (bb.max.z - bb.min.z)/2 - relativeTo.z
|
||||
)
|
||||
}
|
||||
|
||||
function autoScale(object, mk = 1) {
|
||||
let bb = getBoundingBox(object);
|
||||
let k = getBoundingBoxMaxLength(bb);
|
||||
object.scale.multiplyScalar(mk / k);
|
||||
}
|
||||
|
||||
export { assignParams, assignMaterial, autoScale, getBoundingBox, getBoundingBoxMaxLength, getBoundingBoxCenterPoint }
|
||||
Reference in New Issue
Block a user