createCamera method
dynamic
createCamera(
- dynamic relationships
Implementation
createCamera( relationships ) {
var model;
var cameraAttribute;
relationships.children.forEach( ( child ) {
var attr = fbxTree.Objects["NodeAttribute"][ child["ID"] ];
if ( attr != null ) {
cameraAttribute = attr;
}
} );
if ( cameraAttribute == null ) {
model = new Object3D();
} else {
var type = 0;
if ( cameraAttribute.CameraProjectionType != null && cameraAttribute.CameraProjectionType.value == 1 ) {
type = 1;
}
var nearClippingPlane = 1;
if ( cameraAttribute.NearPlane != null ) {
nearClippingPlane = cameraAttribute.NearPlane.value / 1000;
}
var farClippingPlane = 1000;
if ( cameraAttribute.FarPlane != null ) {
farClippingPlane = cameraAttribute.FarPlane.value / 1000;
}
var width = innerWidth;
var height = innerHeight;
if ( cameraAttribute.AspectWidth != null && cameraAttribute.AspectHeight != null ) {
width = cameraAttribute.AspectWidth.value;
height = cameraAttribute.AspectHeight.value;
}
var aspect = width / height;
var fov = 45;
if ( cameraAttribute.FieldOfView != null ) {
fov = cameraAttribute.FieldOfView.value;
}
var focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;
switch ( type ) {
case 0: // Perspective
model = new PerspectiveCamera( fov, aspect, nearClippingPlane, farClippingPlane );
if ( focalLength != null ) model.setFocalLength( focalLength );
break;
case 1: // Orthographic
model = new OrthographicCamera( - width / 2, width / 2, height / 2, - height / 2, nearClippingPlane, farClippingPlane );
break;
default:
print( 'THREE.FBXLoader: Unknown camera type ${type}.' );
model = new Object3D();
break;
}
}
return model;
}