loadCamera method

Camera? loadCamera(
  1. dynamic cameraIndex
)

Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras @param {number} cameraIndex @return {Promise

Implementation

Camera? loadCamera(cameraIndex) {
  Camera? camera;
  Map<String, dynamic> cameraDef = json["cameras"][cameraIndex];
  final params = cameraDef[cameraDef["type"]];

  if (params == null) {
    console.warning('GLTFLoader: Missing camera parameters.');
    return null;
  }

  if (cameraDef["type"] == 'perspective') {
    camera = PerspectiveCamera(
      (params["yfov"].toDouble() as double).toDeg(),
      params["aspectRatio"]?.toDouble() ?? 1.0,
      params["znear"]?.toDouble() ?? 1.0,
      params["zfar"]?.toDouble() ?? 2e6*1.0
    );
  } else if (cameraDef["type"] == 'orthographic') {
    camera = OrthographicCamera(
      params["xmag"] == null?-1.0:-params["xmag"]?.toDouble(),
      params["xmag"]?.toDouble(),
      params["ymag"]?.toDouble(),
      params["ymag"] == null?-1.0:-params["ymag"]?.toDouble(),
      params["znear"]?.toDouble(),
      params["zfar"]?.toDouble()
    );
  }

  if (cameraDef["name"] != null){
    camera?.name = createUniqueName(cameraDef["name"]);
  }

  assignExtrasToUserData(camera, cameraDef);

  return camera;
}