MCPcopy
hub / github.com/CesiumGS/cesium / execute2DViewportCommands

Function execute2DViewportCommands

packages/engine/Source/Scene/Scene.js:3322–3483  ·  view source on GitHub ↗

* Execute the draw commands to render into a 2D viewport. * * @param {Scene} scene * @param {PassState} passState * * @private

(scene, passState)

Source from the content-addressed store, hash-verified

3320 * @private
3321 */
3322function execute2DViewportCommands(scene, passState) {
3323 const { frameState, camera } = scene;
3324 const { uniformState } = scene.context;
3325
3326 const originalViewport = passState.viewport;
3327 const viewport = BoundingRectangle.clone(originalViewport, scratch2DViewport);
3328 passState.viewport = viewport;
3329
3330 const maxCartographic = scratch2DViewportCartographic;
3331 const maxCoord = scratch2DViewportMaxCoord;
3332
3333 const projection = scene.mapProjection;
3334 projection.project(maxCartographic, maxCoord);
3335
3336 const position = Cartesian3.clone(
3337 camera.position,
3338 scratch2DViewportSavedPosition,
3339 );
3340 const transform = Matrix4.clone(
3341 camera.transform,
3342 scratch2DViewportCameraTransform,
3343 );
3344 const frustum = camera.frustum.clone();
3345
3346 camera._setTransform(Matrix4.IDENTITY);
3347
3348 const viewportTransformation = Matrix4.computeViewportTransformation(
3349 viewport,
3350 0.0,
3351 1.0,
3352 scratch2DViewportTransform,
3353 );
3354 const projectionMatrix = camera.frustum.projectionMatrix;
3355
3356 const x = camera.positionWC.y;
3357 const eyePoint = Cartesian3.fromElements(
3358 CesiumMath.sign(x) * maxCoord.x - x,
3359 0.0,
3360 -camera.positionWC.x,
3361 scratch2DViewportEyePoint,
3362 );
3363 const windowCoordinates = Transforms.pointToGLWindowCoordinates(
3364 projectionMatrix,
3365 viewportTransformation,
3366 eyePoint,
3367 scratch2DViewportWindowCoords,
3368 );
3369
3370 windowCoordinates.x = Math.floor(windowCoordinates.x);
3371
3372 const viewportX = viewport.x;
3373 const viewportWidth = viewport.width;
3374
3375 if (
3376 x === 0.0 ||
3377 windowCoordinates.x <= viewportX ||
3378 windowCoordinates.x >= viewportX + viewportWidth
3379 ) {

Callers 1

Scene.jsFile · 0.85

Calls 7

cloneMethod · 0.45
projectMethod · 0.45
fromElementsMethod · 0.45
absMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…