buildCamera method

Camera? buildCamera(
  1. Map<String, dynamic> data
)

Implementation

Camera? buildCamera(Map<String, dynamic> data ) {
  Camera? camera;

  switch ( data['optics']['technique'] ) {
    case 'perspective':
      camera = PerspectiveCamera(
        data['optics']['parameters']['yfov'],
        data['optics']['parameters']['aspect_ratio'],
        data['optics']['parameters']['znear'],
        data['optics']['parameters']['zfar']
      );
      break;
    case 'orthographic':
      var ymag = data['optics']['parameters']['ymag'];
      var xmag = data['optics']['parameters']['xmag'];
      final aspectRatio = data['optics']['parameters']['aspect_ratio'];

      xmag = ( xmag == null ) ? ( ymag * aspectRatio ) : xmag;
      ymag = ( ymag == null ) ? ( xmag / aspectRatio ) : ymag;

      xmag *= 0.5;
      ymag *= 0.5;

      camera = OrthographicCamera(
        - xmag, xmag, ymag, - ymag, // left, right, top, bottom
        data['optics']['parameters']['znear'],
        data['optics']['parameters']['zfar']
      );
      break;
    default:
      camera =PerspectiveCamera();
      break;
  }

  camera.name = data['name'] ?? '';
  return camera;
}