MCPcopy Create free account
hub / github.com/microsoft/SandDance / getOffsetOrigin

Function getOffsetOrigin

docs/app/js/sanddance-app.js:79457–79502  ·  view source on GitHub ↗
(viewport, coordinateSystem)

Source from the content-addressed store, hash-verified

79455];
79456var getMemoizedViewportUniforms = (0, _memoizeDefault.default)(calculateViewportUniforms);
79457function getOffsetOrigin(viewport, coordinateSystem) {
79458 var coordinateOrigin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COORDINATE_ORIGIN;
79459 var shaderCoordinateOrigin = coordinateOrigin;
79460 var geospatialOrigin;
79461 var offsetMode = true;
79462 if (coordinateSystem === (0, _constants.COORDINATE_SYSTEM).LNGLAT_OFFSETS || coordinateSystem === (0, _constants.COORDINATE_SYSTEM).METER_OFFSETS) geospatialOrigin = coordinateOrigin;
79463 else geospatialOrigin = viewport.isGeospatial ? [
79464 Math.fround(viewport.longitude),
79465 Math.fround(viewport.latitude),
79466 0
79467 ] : null;
79468 switch(viewport.projectionMode){
79469 case (0, _constants.PROJECTION_MODE).WEB_MERCATOR:
79470 if (coordinateSystem === (0, _constants.COORDINATE_SYSTEM).LNGLAT || coordinateSystem === (0, _constants.COORDINATE_SYSTEM).CARTESIAN) offsetMode = false;
79471 break;
79472 case (0, _constants.PROJECTION_MODE).WEB_MERCATOR_AUTO_OFFSET:
79473 if (coordinateSystem === (0, _constants.COORDINATE_SYSTEM).LNGLAT) shaderCoordinateOrigin = geospatialOrigin;
79474 else if (coordinateSystem === (0, _constants.COORDINATE_SYSTEM).CARTESIAN) {
79475 shaderCoordinateOrigin = [
79476 Math.fround(viewport.center[0]),
79477 Math.fround(viewport.center[1]),
79478 0
79479 ];
79480 geospatialOrigin = viewport.unprojectPosition(shaderCoordinateOrigin);
79481 shaderCoordinateOrigin[0] -= coordinateOrigin[0];
79482 shaderCoordinateOrigin[1] -= coordinateOrigin[1];
79483 shaderCoordinateOrigin[2] -= coordinateOrigin[2];
79484 }
79485 break;
79486 case (0, _constants.PROJECTION_MODE).IDENTITY:
79487 shaderCoordinateOrigin = viewport.position.map(Math.fround);
79488 break;
79489 case (0, _constants.PROJECTION_MODE).GLOBE:
79490 offsetMode = false;
79491 geospatialOrigin = null;
79492 break;
79493 default:
79494 offsetMode = false;
79495 }
79496 shaderCoordinateOrigin[2] = shaderCoordinateOrigin[2] || 0;
79497 return {
79498 geospatialOrigin: geospatialOrigin,
79499 shaderCoordinateOrigin: shaderCoordinateOrigin,
79500 offsetMode: offsetMode
79501 };
79502}
79503function calculateMatrixAndOffset(viewport, coordinateSystem, coordinateOrigin) {
79504 var viewMatrixUncentered = viewport.viewMatrixUncentered, projectionMatrix = viewport.projectionMatrix;
79505 var viewMatrix = viewport.viewMatrix, viewProjectionMatrix = viewport.viewProjectionMatrix;

Callers 1

calculateMatrixAndOffsetFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected