threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526
  1. import {Mesh} from 'threepipe'
  2. import {createBufferGeometry} from './geometry'
  3. import {createMaterial} from './material'
  4. export function createMesh(object: any) {
  5. if (!object.data) return null
  6. const geometry = createBufferGeometry(object.data, [0, 0, 0])
  7. const mat = object.data.mat[0]
  8. const material = mat ? createMaterial(mat) : undefined
  9. const mesh = new Mesh(geometry, material)
  10. mesh.castShadow = true
  11. mesh.receiveShadow = true
  12. mesh.rotateZ(object.rot[2])
  13. mesh.rotateY(object.rot[1])
  14. mesh.rotateX(object.rot[0])
  15. mesh.scale.fromArray(object.size, 0)
  16. mesh.position.fromArray([object.loc[0], object.loc[2], -object.loc[1]], 0)
  17. return mesh
  18. }