@babylonjs/core 6.28.0 → 6.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/Animations/animatable.js +1 -1
  2. package/Animations/animatable.js.map +1 -1
  3. package/Animations/animation.js +1 -1
  4. package/Animations/animation.js.map +1 -1
  5. package/Animations/animationKey.d.ts +5 -0
  6. package/Animations/animationKey.js.map +1 -1
  7. package/Behaviors/Meshes/fadeInOutBehavior.js +2 -1
  8. package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
  9. package/Cameras/arcRotateCamera.js +37 -13
  10. package/Cameras/arcRotateCamera.js.map +1 -1
  11. package/Cameras/camera.d.ts +21 -0
  12. package/Cameras/camera.js +35 -0
  13. package/Cameras/camera.js.map +1 -1
  14. package/Cameras/targetCamera.js +51 -30
  15. package/Cameras/targetCamera.js.map +1 -1
  16. package/Debug/debugLayer.d.ts +4 -0
  17. package/Debug/debugLayer.js +12 -1
  18. package/Debug/debugLayer.js.map +1 -1
  19. package/Engines/constants.d.ts +2 -0
  20. package/Engines/constants.js +2 -0
  21. package/Engines/constants.js.map +1 -1
  22. package/Engines/thinEngine.js +2 -2
  23. package/Engines/thinEngine.js.map +1 -1
  24. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +2 -2
  25. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  26. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +1 -1
  27. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +1 -1
  28. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +21 -9
  29. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +7 -8
  30. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
  31. package/FlowGraph/flowGraph.d.ts +2 -8
  32. package/FlowGraph/flowGraph.js +2 -9
  33. package/FlowGraph/flowGraph.js.map +1 -1
  34. package/FlowGraph/flowGraphBlock.d.ts +1 -0
  35. package/FlowGraph/flowGraphBlock.js +3 -0
  36. package/FlowGraph/flowGraphBlock.js.map +1 -1
  37. package/FlowGraph/flowGraphContext.d.ts +20 -2
  38. package/FlowGraph/flowGraphContext.js +37 -33
  39. package/FlowGraph/flowGraphContext.js.map +1 -1
  40. package/FlowGraph/flowGraphContextLogger.d.ts +9 -0
  41. package/FlowGraph/flowGraphContextLogger.js +14 -0
  42. package/FlowGraph/flowGraphContextLogger.js.map +1 -0
  43. package/FlowGraph/flowGraphCoordinator.d.ts +14 -5
  44. package/FlowGraph/flowGraphCoordinator.js +27 -3
  45. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  46. package/FlowGraph/flowGraphDataConnection.js +1 -0
  47. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  48. package/FlowGraph/flowGraphEventBlock.js +1 -0
  49. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  50. package/FlowGraph/flowGraphSignalConnection.js +1 -0
  51. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  52. package/FlowGraph/index.d.ts +1 -1
  53. package/FlowGraph/index.js +1 -1
  54. package/FlowGraph/index.js.map +1 -1
  55. package/FlowGraph/serialization.d.ts +16 -0
  56. package/FlowGraph/serialization.js +79 -0
  57. package/FlowGraph/serialization.js.map +1 -0
  58. package/Materials/Textures/baseTexture.d.ts +2 -1
  59. package/Materials/Textures/baseTexture.js +12 -1
  60. package/Materials/Textures/baseTexture.js.map +1 -1
  61. package/Materials/Textures/renderTargetTexture.d.ts +2 -0
  62. package/Materials/Textures/renderTargetTexture.js +5 -2
  63. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  64. package/Materials/Textures/texture.d.ts +2 -0
  65. package/Materials/Textures/texture.js +8 -3
  66. package/Materials/Textures/texture.js.map +1 -1
  67. package/Materials/materialPluginManager.js +1 -1
  68. package/Materials/materialPluginManager.js.map +1 -1
  69. package/Maths/math.vector.js +41 -26
  70. package/Maths/math.vector.js.map +1 -1
  71. package/Meshes/Builders/textBuilder.js +0 -1
  72. package/Meshes/Builders/textBuilder.js.map +1 -1
  73. package/Meshes/GreasedLine/greasedLineMesh.js +1 -1
  74. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  75. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +2 -2
  76. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  77. package/Meshes/Node/Blocks/Sources/boxBlock.js +2 -1
  78. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  79. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +2 -1
  80. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
  81. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +2 -1
  82. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
  83. package/Meshes/Node/Blocks/Sources/discBlock.js +2 -1
  84. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
  85. package/Meshes/Node/Blocks/Sources/gridBlock.js +2 -1
  86. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  87. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +2 -1
  88. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
  89. package/Meshes/Node/Blocks/Sources/planeBlock.js +2 -1
  90. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  91. package/Meshes/Node/Blocks/Sources/sphereBlock.js +2 -1
  92. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
  93. package/Meshes/Node/Blocks/Sources/torusBlock.js +2 -1
  94. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
  95. package/Meshes/abstractMesh.js +13 -9
  96. package/Meshes/abstractMesh.js.map +1 -1
  97. package/Meshes/csg.d.ts +8 -8
  98. package/Meshes/csg.js +12 -12
  99. package/Meshes/csg.js.map +1 -1
  100. package/Misc/deepCopier.d.ts +3 -1
  101. package/Misc/deepCopier.js +7 -5
  102. package/Misc/deepCopier.js.map +1 -1
  103. package/Misc/observable.d.ts +6 -2
  104. package/Misc/observable.js +0 -14
  105. package/Misc/observable.js.map +1 -1
  106. package/Misc/precisionDate.js +2 -4
  107. package/Misc/precisionDate.js.map +1 -1
  108. package/Rendering/renderingManager.d.ts +4 -0
  109. package/Rendering/renderingManager.js +18 -13
  110. package/Rendering/renderingManager.js.map +1 -1
  111. package/package.json +1 -1
  112. package/scene.d.ts +6 -0
  113. package/scene.js +11 -1
  114. package/scene.js.map +1 -1
  115. package/FlowGraph/flowGraphCustomEvent.d.ts +0 -5
  116. package/FlowGraph/flowGraphCustomEvent.js +0 -2
  117. package/FlowGraph/flowGraphCustomEvent.js.map +0 -1
  118. package/FlowGraph/flowGraphEventCoordinator.d.ts +0 -23
  119. package/FlowGraph/flowGraphEventCoordinator.js +0 -37
  120. package/FlowGraph/flowGraphEventCoordinator.js.map +0 -1
  121. package/FlowGraph/flowGraphVariableDefinitions.d.ts +0 -32
  122. package/FlowGraph/flowGraphVariableDefinitions.js +0 -51
  123. package/FlowGraph/flowGraphVariableDefinitions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"targetCamera.js","sourceRoot":"","sources":["../../../../dev/core/src/Cameras/targetCamera.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, serializeAsVector3, serializeAsMeshReference } from \"../Misc/decorators\";\r\nimport type { Nullable } from \"../types\";\r\nimport { Camera } from \"./camera\";\r\nimport type { Scene } from \"../scene\";\r\nimport { Quaternion, Matrix, Vector3, Vector2, TmpVectors } from \"../Maths/math.vector\";\r\nimport { Epsilon } from \"../Maths/math.constants\";\r\nimport { Axis } from \"../Maths/math.axis\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\n/**\r\n * A target camera takes a mesh or position as a target and continues to look at it while it moves.\r\n * This is the base of the follow, arc rotate cameras and Free camera\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\r\n */\r\nexport class TargetCamera extends Camera {\r\n private static _RigCamTransformMatrix = new Matrix();\r\n private static _TargetTransformMatrix = new Matrix();\r\n private static _TargetFocalPoint = new Vector3();\r\n\r\n private _tmpUpVector = Vector3.Zero();\r\n private _tmpTargetVector = Vector3.Zero();\r\n\r\n /**\r\n * Define the current direction the camera is moving to\r\n */\r\n public cameraDirection = new Vector3(0, 0, 0);\r\n /**\r\n * Define the current rotation the camera is rotating to\r\n */\r\n public cameraRotation = new Vector2(0, 0);\r\n\r\n /** Gets or sets a boolean indicating that the scaling of the parent hierarchy will not be taken in account by the camera */\r\n public ignoreParentScaling = false;\r\n\r\n /**\r\n * When set, the up vector of the camera will be updated by the rotation of the camera\r\n */\r\n public updateUpVectorFromRotation = false;\r\n private _tmpQuaternion = new Quaternion();\r\n\r\n /**\r\n * Define the current rotation of the camera\r\n */\r\n @serializeAsVector3()\r\n public rotation = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Define the current rotation of the camera as a quaternion to prevent Gimbal lock\r\n */\r\n public rotationQuaternion: Quaternion;\r\n\r\n /**\r\n * Define the current speed of the camera\r\n */\r\n @serialize()\r\n public speed = 2.0;\r\n\r\n /**\r\n * Add constraint to the camera to prevent it to move freely in all directions and\r\n * around all axis.\r\n */\r\n public noRotationConstraint = false;\r\n\r\n /**\r\n * Reverses mouselook direction to 'natural' panning as opposed to traditional direct\r\n * panning\r\n */\r\n public invertRotation = false;\r\n\r\n /**\r\n * Speed multiplier for inverse camera panning\r\n */\r\n public inverseRotationSpeed = 0.2;\r\n\r\n /**\r\n * Define the current target of the camera as an object or a position.\r\n * Please note that locking a target will disable panning.\r\n */\r\n @serializeAsMeshReference(\"lockedTargetId\")\r\n public lockedTarget: any = null;\r\n\r\n /** @internal */\r\n public _currentTarget = Vector3.Zero();\r\n /** @internal */\r\n public _initialFocalDistance = 1;\r\n /** @internal */\r\n public _viewMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _camMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _cameraTransformMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _cameraRotationMatrix = Matrix.Zero();\r\n\r\n /** @internal */\r\n public _referencePoint = new Vector3(0, 0, 1);\r\n /** @internal */\r\n public _transformedReferencePoint = Vector3.Zero();\r\n\r\n protected _deferredPositionUpdate = new Vector3();\r\n protected _deferredRotationQuaternionUpdate = new Quaternion();\r\n protected _deferredRotationUpdate = new Vector3();\r\n protected _deferredUpdated = false;\r\n protected _deferOnly: boolean = false;\r\n\r\n /** @internal */\r\n public _reset: () => void;\r\n\r\n private _defaultUp = Vector3.Up();\r\n\r\n /**\r\n * Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.\r\n * This is the base of the follow, arc rotate cameras and Free camera\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\r\n * @param name Defines the name of the camera in the scene\r\n * @param position Defines the start position of the camera in the scene\r\n * @param scene Defines the scene the camera belongs to\r\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined\r\n */\r\n constructor(name: string, position: Vector3, scene?: Scene, setActiveOnSceneIfNoneActive = true) {\r\n super(name, position, scene, setActiveOnSceneIfNoneActive);\r\n }\r\n\r\n /**\r\n * Gets the position in front of the camera at a given distance.\r\n * @param distance The distance from the camera we want the position to be\r\n * @returns the position\r\n */\r\n public getFrontPosition(distance: number): Vector3 {\r\n this.getWorldMatrix();\r\n const direction = this.getTarget().subtract(this.position);\r\n direction.normalize();\r\n direction.scaleInPlace(distance);\r\n return this.globalPosition.add(direction);\r\n }\r\n\r\n /** @internal */\r\n public _getLockedTargetPosition(): Nullable<Vector3> {\r\n if (!this.lockedTarget) {\r\n return null;\r\n }\r\n\r\n if (this.lockedTarget.absolutePosition) {\r\n const lockedTarget = this.lockedTarget as AbstractMesh;\r\n const m = lockedTarget.computeWorldMatrix();\r\n // in some cases the absolute position resets externally, but doesn't update since the matrix is cached.\r\n m.getTranslationToRef(lockedTarget.absolutePosition);\r\n }\r\n\r\n return this.lockedTarget.absolutePosition || this.lockedTarget;\r\n }\r\n\r\n private _storedPosition: Vector3;\r\n private _storedRotation: Vector3;\r\n private _storedRotationQuaternion: Quaternion;\r\n\r\n /**\r\n * Store current camera state of the camera (fov, position, rotation, etc..)\r\n * @returns the camera\r\n */\r\n public storeState(): Camera {\r\n this._storedPosition = this.position.clone();\r\n this._storedRotation = this.rotation.clone();\r\n if (this.rotationQuaternion) {\r\n this._storedRotationQuaternion = this.rotationQuaternion.clone();\r\n }\r\n\r\n return super.storeState();\r\n }\r\n\r\n /**\r\n * Restored camera state. You must call storeState() first\r\n * @returns whether it was successful or not\r\n * @internal\r\n */\r\n public _restoreStateValues(): boolean {\r\n if (!super._restoreStateValues()) {\r\n return false;\r\n }\r\n\r\n this.position = this._storedPosition.clone();\r\n this.rotation = this._storedRotation.clone();\r\n\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion = this._storedRotationQuaternion.clone();\r\n }\r\n\r\n this.cameraDirection.copyFromFloats(0, 0, 0);\r\n this.cameraRotation.copyFromFloats(0, 0);\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public _initCache() {\r\n super._initCache();\r\n this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateCache(ignoreParentClass?: boolean): void {\r\n if (!ignoreParentClass) {\r\n super._updateCache();\r\n }\r\n\r\n const lockedTargetPosition = this._getLockedTargetPosition();\r\n if (!lockedTargetPosition) {\r\n this._cache.lockedTarget = null;\r\n } else {\r\n if (!this._cache.lockedTarget) {\r\n this._cache.lockedTarget = lockedTargetPosition.clone();\r\n } else {\r\n this._cache.lockedTarget.copyFrom(lockedTargetPosition);\r\n }\r\n }\r\n\r\n this._cache.rotation.copyFrom(this.rotation);\r\n if (this.rotationQuaternion) {\r\n this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n }\r\n }\r\n\r\n // Synchronized\r\n /** @internal */\r\n public _isSynchronizedViewMatrix(): boolean {\r\n if (!super._isSynchronizedViewMatrix()) {\r\n return false;\r\n }\r\n\r\n const lockedTargetPosition = this._getLockedTargetPosition();\r\n\r\n return (\r\n (this._cache.lockedTarget ? this._cache.lockedTarget.equals(lockedTargetPosition) : !lockedTargetPosition) &&\r\n (this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation))\r\n );\r\n }\r\n\r\n // Methods\r\n /** @internal */\r\n public _computeLocalCameraSpeed(): number {\r\n const engine = this.getEngine();\r\n return this.speed * Math.sqrt(engine.getDeltaTime() / (engine.getFps() * 100.0));\r\n }\r\n\r\n // Target\r\n\r\n /**\r\n * Defines the target the camera should look at.\r\n * @param target Defines the new target as a Vector\r\n */\r\n public setTarget(target: Vector3): void {\r\n this.upVector.normalize();\r\n\r\n this._initialFocalDistance = target.subtract(this.position).length();\r\n\r\n if (this.position.z === target.z) {\r\n this.position.z += Epsilon;\r\n }\r\n\r\n this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance);\r\n\r\n Matrix.LookAtLHToRef(this.position, target, this._defaultUp, this._camMatrix);\r\n this._camMatrix.invert();\r\n\r\n this.rotation.x = Math.atan(this._camMatrix.m[6] / this._camMatrix.m[10]);\r\n\r\n const vDir = target.subtract(this.position);\r\n\r\n if (vDir.x >= 0.0) {\r\n this.rotation.y = -Math.atan(vDir.z / vDir.x) + Math.PI / 2.0;\r\n } else {\r\n this.rotation.y = -Math.atan(vDir.z / vDir.x) - Math.PI / 2.0;\r\n }\r\n\r\n this.rotation.z = 0;\r\n\r\n if (isNaN(this.rotation.x)) {\r\n this.rotation.x = 0;\r\n }\r\n\r\n if (isNaN(this.rotation.y)) {\r\n this.rotation.y = 0;\r\n }\r\n\r\n if (isNaN(this.rotation.z)) {\r\n this.rotation.z = 0;\r\n }\r\n\r\n if (this.rotationQuaternion) {\r\n Quaternion.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion);\r\n }\r\n }\r\n\r\n /**\r\n * Defines the target point of the camera.\r\n * The camera looks towards it form the radius distance.\r\n */\r\n public get target(): Vector3 {\r\n return this.getTarget();\r\n }\r\n public set target(value: Vector3) {\r\n this.setTarget(value);\r\n }\r\n\r\n /**\r\n * Return the current target position of the camera. This value is expressed in local space.\r\n * @returns the target position\r\n */\r\n public getTarget(): Vector3 {\r\n return this._currentTarget;\r\n }\r\n\r\n /** @internal */\r\n public _decideIfNeedsToMove(): boolean {\r\n return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n if (this.parent) {\r\n this.parent.getWorldMatrix().invertToRef(TmpVectors.Matrix[0]);\r\n Vector3.TransformNormalToRef(this.cameraDirection, TmpVectors.Matrix[0], TmpVectors.Vector3[0]);\r\n this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0]);\r\n if (!this._deferOnly) {\r\n this.position.copyFrom(this._deferredPositionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n return;\r\n }\r\n this._deferredPositionUpdate.addInPlace(this.cameraDirection);\r\n if (!this._deferOnly) {\r\n this.position.copyFrom(this._deferredPositionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public _checkInputs(): void {\r\n const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;\r\n const needToMove = this._decideIfNeedsToMove();\r\n const needToRotate = this.cameraRotation.x || this.cameraRotation.y;\r\n\r\n this._deferredUpdated = false;\r\n this._deferredRotationUpdate.copyFrom(this.rotation);\r\n this._deferredPositionUpdate.copyFrom(this.position);\r\n if (this.rotationQuaternion) {\r\n this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);\r\n }\r\n\r\n // Move\r\n if (needToMove) {\r\n this._updatePosition();\r\n }\r\n\r\n // Rotate\r\n if (needToRotate) {\r\n //rotate, if quaternion is set and rotation was used\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);\r\n }\r\n\r\n this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier;\r\n this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier;\r\n\r\n // Apply constraints\r\n if (!this.noRotationConstraint) {\r\n const limit = 1.570796;\r\n\r\n if (this._deferredRotationUpdate.x > limit) {\r\n this._deferredRotationUpdate.x = limit;\r\n }\r\n if (this._deferredRotationUpdate.x < -limit) {\r\n this._deferredRotationUpdate.x = -limit;\r\n }\r\n }\r\n\r\n if (!this._deferOnly) {\r\n this.rotation.copyFrom(this._deferredRotationUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n\r\n //rotate, if quaternion is set and rotation was used\r\n if (this.rotationQuaternion) {\r\n const len = this._deferredRotationUpdate.lengthSquared();\r\n if (len) {\r\n Quaternion.RotationYawPitchRollToRef(\r\n this._deferredRotationUpdate.y,\r\n this._deferredRotationUpdate.x,\r\n this._deferredRotationUpdate.z,\r\n this._deferredRotationQuaternionUpdate\r\n );\r\n if (!this._deferOnly) {\r\n this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Inertia\r\n if (needToMove) {\r\n if (Math.abs(this.cameraDirection.x) < this.speed * Epsilon) {\r\n this.cameraDirection.x = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraDirection.y) < this.speed * Epsilon) {\r\n this.cameraDirection.y = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraDirection.z) < this.speed * Epsilon) {\r\n this.cameraDirection.z = 0;\r\n }\r\n\r\n this.cameraDirection.scaleInPlace(this.inertia);\r\n }\r\n if (needToRotate) {\r\n if (Math.abs(this.cameraRotation.x) < this.speed * Epsilon) {\r\n this.cameraRotation.x = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraRotation.y) < this.speed * Epsilon) {\r\n this.cameraRotation.y = 0;\r\n }\r\n this.cameraRotation.scaleInPlace(this.inertia);\r\n }\r\n\r\n super._checkInputs();\r\n }\r\n\r\n protected _updateCameraRotationMatrix() {\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix);\r\n } else {\r\n Matrix.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);\r\n }\r\n }\r\n\r\n /**\r\n * Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)\r\n * @returns the current camera\r\n */\r\n private _rotateUpVectorWithCameraRotationMatrix(): TargetCamera {\r\n Vector3.TransformNormalToRef(this._defaultUp, this._cameraRotationMatrix, this.upVector);\r\n return this;\r\n }\r\n\r\n private _cachedRotationZ = 0;\r\n private _cachedQuaternionRotationZ = 0;\r\n /** @internal */\r\n public _getViewMatrix(): Matrix {\r\n if (this.lockedTarget) {\r\n this.setTarget(this._getLockedTargetPosition()!);\r\n }\r\n\r\n // Compute\r\n this._updateCameraRotationMatrix();\r\n\r\n // Apply the changed rotation to the upVector\r\n if (this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z) {\r\n this._rotateUpVectorWithCameraRotationMatrix();\r\n this._cachedQuaternionRotationZ = this.rotationQuaternion.z;\r\n } else if (this._cachedRotationZ !== this.rotation.z) {\r\n this._rotateUpVectorWithCameraRotationMatrix();\r\n this._cachedRotationZ = this.rotation.z;\r\n }\r\n\r\n Vector3.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint);\r\n\r\n // Computing target and final matrix\r\n this.position.addToRef(this._transformedReferencePoint, this._currentTarget);\r\n if (this.updateUpVectorFromRotation) {\r\n if (this.rotationQuaternion) {\r\n Axis.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector);\r\n } else {\r\n Quaternion.FromEulerVectorToRef(this.rotation, this._tmpQuaternion);\r\n Axis.Y.rotateByQuaternionToRef(this._tmpQuaternion, this.upVector);\r\n }\r\n }\r\n this._computeViewMatrix(this.position, this._currentTarget, this.upVector);\r\n return this._viewMatrix;\r\n }\r\n\r\n protected _computeViewMatrix(position: Vector3, target: Vector3, up: Vector3): void {\r\n if (this.ignoreParentScaling) {\r\n if (this.parent) {\r\n const parentWorldMatrix = this.parent.getWorldMatrix();\r\n Vector3.TransformCoordinatesToRef(position, parentWorldMatrix, this._globalPosition);\r\n Vector3.TransformCoordinatesToRef(target, parentWorldMatrix, this._tmpTargetVector);\r\n Vector3.TransformNormalToRef(up, parentWorldMatrix, this._tmpUpVector);\r\n this._markSyncedWithParent();\r\n } else {\r\n this._globalPosition.copyFrom(position);\r\n this._tmpTargetVector.copyFrom(target);\r\n this._tmpUpVector.copyFrom(up);\r\n }\r\n\r\n if (this.getScene().useRightHandedSystem) {\r\n Matrix.LookAtRHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix);\r\n } else {\r\n Matrix.LookAtLHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix);\r\n }\r\n return;\r\n }\r\n\r\n if (this.getScene().useRightHandedSystem) {\r\n Matrix.LookAtRHToRef(position, target, up, this._viewMatrix);\r\n } else {\r\n Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);\r\n }\r\n\r\n if (this.parent) {\r\n const parentWorldMatrix = this.parent.getWorldMatrix();\r\n this._viewMatrix.invert();\r\n this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);\r\n this._viewMatrix.getTranslationToRef(this._globalPosition);\r\n this._viewMatrix.invert();\r\n this._markSyncedWithParent();\r\n } else {\r\n this._globalPosition.copyFrom(position);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public createRigCamera(name: string, cameraIndex: number): Nullable<Camera> {\r\n if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {\r\n const rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());\r\n rigCamera.isRigCamera = true;\r\n rigCamera.rigParent = this;\r\n if (this.cameraRigMode === Camera.RIG_MODE_VR) {\r\n if (!this.rotationQuaternion) {\r\n this.rotationQuaternion = new Quaternion();\r\n }\r\n rigCamera._cameraRigParams = {};\r\n rigCamera.rotationQuaternion = new Quaternion();\r\n }\r\n\r\n rigCamera.mode = this.mode;\r\n rigCamera.orthoLeft = this.orthoLeft;\r\n rigCamera.orthoRight = this.orthoRight;\r\n rigCamera.orthoTop = this.orthoTop;\r\n rigCamera.orthoBottom = this.orthoBottom;\r\n\r\n return rigCamera;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateRigCameras() {\r\n const camLeft = <TargetCamera>this._rigCameras[0];\r\n const camRight = <TargetCamera>this._rigCameras[1];\r\n\r\n this.computeWorldMatrix();\r\n\r\n switch (this.cameraRigMode) {\r\n case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:\r\n case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:\r\n case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:\r\n case Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER:\r\n case Camera.RIG_MODE_STEREOSCOPIC_INTERLACED: {\r\n //provisionnaly using _cameraRigParams.stereoHalfAngle instead of calculations based on _cameraRigParams.interaxialDistance:\r\n const leftSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1;\r\n const rightSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;\r\n this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * leftSign, camLeft);\r\n this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * rightSign, camRight);\r\n break;\r\n }\r\n case Camera.RIG_MODE_VR:\r\n if (camLeft.rotationQuaternion) {\r\n camLeft.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else {\r\n camLeft.rotation.copyFrom(this.rotation);\r\n camRight.rotation.copyFrom(this.rotation);\r\n }\r\n camLeft.position.copyFrom(this.position);\r\n camRight.position.copyFrom(this.position);\r\n\r\n break;\r\n }\r\n super._updateRigCameras();\r\n }\r\n\r\n private _getRigCamPositionAndTarget(halfSpace: number, rigCamera: TargetCamera) {\r\n const target = this.getTarget();\r\n target.subtractToRef(this.position, TargetCamera._TargetFocalPoint);\r\n\r\n TargetCamera._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);\r\n const newFocalTarget = TargetCamera._TargetFocalPoint.addInPlace(this.position);\r\n\r\n Matrix.TranslationToRef(-newFocalTarget.x, -newFocalTarget.y, -newFocalTarget.z, TargetCamera._TargetTransformMatrix);\r\n TargetCamera._TargetTransformMatrix.multiplyToRef(Matrix.RotationAxis(rigCamera.upVector, halfSpace), TargetCamera._RigCamTransformMatrix);\r\n Matrix.TranslationToRef(newFocalTarget.x, newFocalTarget.y, newFocalTarget.z, TargetCamera._TargetTransformMatrix);\r\n\r\n TargetCamera._RigCamTransformMatrix.multiplyToRef(TargetCamera._TargetTransformMatrix, TargetCamera._RigCamTransformMatrix);\r\n\r\n Vector3.TransformCoordinatesToRef(this.position, TargetCamera._RigCamTransformMatrix, rigCamera.position);\r\n rigCamera.setTarget(newFocalTarget);\r\n }\r\n\r\n /**\r\n * Gets the current object class name.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"TargetCamera\";\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"targetCamera.js","sourceRoot":"","sources":["../../../../dev/core/src/Cameras/targetCamera.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, serializeAsVector3, serializeAsMeshReference } from \"../Misc/decorators\";\r\nimport type { Nullable } from \"../types\";\r\nimport { Camera } from \"./camera\";\r\nimport type { Scene } from \"../scene\";\r\nimport { Quaternion, Matrix, Vector3, Vector2, TmpVectors } from \"../Maths/math.vector\";\r\nimport { Epsilon } from \"../Maths/math.constants\";\r\nimport { Axis } from \"../Maths/math.axis\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\n/**\r\n * A target camera takes a mesh or position as a target and continues to look at it while it moves.\r\n * This is the base of the follow, arc rotate cameras and Free camera\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\r\n */\r\nexport class TargetCamera extends Camera {\r\n private static _RigCamTransformMatrix = new Matrix();\r\n private static _TargetTransformMatrix = new Matrix();\r\n private static _TargetFocalPoint = new Vector3();\r\n\r\n private _tmpUpVector = Vector3.Zero();\r\n private _tmpTargetVector = Vector3.Zero();\r\n\r\n /**\r\n * Define the current direction the camera is moving to\r\n */\r\n public cameraDirection = new Vector3(0, 0, 0);\r\n /**\r\n * Define the current rotation the camera is rotating to\r\n */\r\n public cameraRotation = new Vector2(0, 0);\r\n\r\n /** Gets or sets a boolean indicating that the scaling of the parent hierarchy will not be taken in account by the camera */\r\n public ignoreParentScaling = false;\r\n\r\n /**\r\n * When set, the up vector of the camera will be updated by the rotation of the camera\r\n */\r\n public updateUpVectorFromRotation = false;\r\n private _tmpQuaternion = new Quaternion();\r\n\r\n /**\r\n * Define the current rotation of the camera\r\n */\r\n @serializeAsVector3()\r\n public rotation = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Define the current rotation of the camera as a quaternion to prevent Gimbal lock\r\n */\r\n public rotationQuaternion: Quaternion;\r\n\r\n /**\r\n * Define the current speed of the camera\r\n */\r\n @serialize()\r\n public speed = 2.0;\r\n\r\n /**\r\n * Add constraint to the camera to prevent it to move freely in all directions and\r\n * around all axis.\r\n */\r\n public noRotationConstraint = false;\r\n\r\n /**\r\n * Reverses mouselook direction to 'natural' panning as opposed to traditional direct\r\n * panning\r\n */\r\n public invertRotation = false;\r\n\r\n /**\r\n * Speed multiplier for inverse camera panning\r\n */\r\n public inverseRotationSpeed = 0.2;\r\n\r\n /**\r\n * Define the current target of the camera as an object or a position.\r\n * Please note that locking a target will disable panning.\r\n */\r\n @serializeAsMeshReference(\"lockedTargetId\")\r\n public lockedTarget: any = null;\r\n\r\n /** @internal */\r\n public _currentTarget = Vector3.Zero();\r\n /** @internal */\r\n public _initialFocalDistance = 1;\r\n /** @internal */\r\n public _viewMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _camMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _cameraTransformMatrix = Matrix.Zero();\r\n /** @internal */\r\n public _cameraRotationMatrix = Matrix.Zero();\r\n\r\n /** @internal */\r\n public _referencePoint = new Vector3(0, 0, 1);\r\n /** @internal */\r\n public _transformedReferencePoint = Vector3.Zero();\r\n\r\n protected _deferredPositionUpdate = new Vector3();\r\n protected _deferredRotationQuaternionUpdate = new Quaternion();\r\n protected _deferredRotationUpdate = new Vector3();\r\n protected _deferredUpdated = false;\r\n protected _deferOnly: boolean = false;\r\n\r\n /** @internal */\r\n public _reset: () => void;\r\n\r\n private _defaultUp = Vector3.Up();\r\n\r\n /**\r\n * Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.\r\n * This is the base of the follow, arc rotate cameras and Free camera\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\r\n * @param name Defines the name of the camera in the scene\r\n * @param position Defines the start position of the camera in the scene\r\n * @param scene Defines the scene the camera belongs to\r\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined\r\n */\r\n constructor(name: string, position: Vector3, scene?: Scene, setActiveOnSceneIfNoneActive = true) {\r\n super(name, position, scene, setActiveOnSceneIfNoneActive);\r\n }\r\n\r\n /**\r\n * Gets the position in front of the camera at a given distance.\r\n * @param distance The distance from the camera we want the position to be\r\n * @returns the position\r\n */\r\n public getFrontPosition(distance: number): Vector3 {\r\n this.getWorldMatrix();\r\n const direction = this.getTarget().subtract(this.position);\r\n direction.normalize();\r\n direction.scaleInPlace(distance);\r\n return this.globalPosition.add(direction);\r\n }\r\n\r\n /** @internal */\r\n public _getLockedTargetPosition(): Nullable<Vector3> {\r\n if (!this.lockedTarget) {\r\n return null;\r\n }\r\n\r\n if (this.lockedTarget.absolutePosition) {\r\n const lockedTarget = this.lockedTarget as AbstractMesh;\r\n const m = lockedTarget.computeWorldMatrix();\r\n // in some cases the absolute position resets externally, but doesn't update since the matrix is cached.\r\n m.getTranslationToRef(lockedTarget.absolutePosition);\r\n }\r\n\r\n return this.lockedTarget.absolutePosition || this.lockedTarget;\r\n }\r\n\r\n private _storedPosition: Vector3;\r\n private _storedRotation: Vector3;\r\n private _storedRotationQuaternion: Quaternion;\r\n\r\n /**\r\n * Store current camera state of the camera (fov, position, rotation, etc..)\r\n * @returns the camera\r\n */\r\n public storeState(): Camera {\r\n this._storedPosition = this.position.clone();\r\n this._storedRotation = this.rotation.clone();\r\n if (this.rotationQuaternion) {\r\n this._storedRotationQuaternion = this.rotationQuaternion.clone();\r\n }\r\n\r\n return super.storeState();\r\n }\r\n\r\n /**\r\n * Restored camera state. You must call storeState() first\r\n * @returns whether it was successful or not\r\n * @internal\r\n */\r\n public _restoreStateValues(): boolean {\r\n if (!super._restoreStateValues()) {\r\n return false;\r\n }\r\n\r\n this.position = this._storedPosition.clone();\r\n this.rotation = this._storedRotation.clone();\r\n\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion = this._storedRotationQuaternion.clone();\r\n }\r\n\r\n this.cameraDirection.copyFromFloats(0, 0, 0);\r\n this.cameraRotation.copyFromFloats(0, 0);\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public _initCache() {\r\n super._initCache();\r\n this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateCache(ignoreParentClass?: boolean): void {\r\n if (!ignoreParentClass) {\r\n super._updateCache();\r\n }\r\n\r\n const lockedTargetPosition = this._getLockedTargetPosition();\r\n if (!lockedTargetPosition) {\r\n this._cache.lockedTarget = null;\r\n } else {\r\n if (!this._cache.lockedTarget) {\r\n this._cache.lockedTarget = lockedTargetPosition.clone();\r\n } else {\r\n this._cache.lockedTarget.copyFrom(lockedTargetPosition);\r\n }\r\n }\r\n\r\n this._cache.rotation.copyFrom(this.rotation);\r\n if (this.rotationQuaternion) {\r\n this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n }\r\n }\r\n\r\n // Synchronized\r\n /** @internal */\r\n public _isSynchronizedViewMatrix(): boolean {\r\n if (!super._isSynchronizedViewMatrix()) {\r\n return false;\r\n }\r\n\r\n const lockedTargetPosition = this._getLockedTargetPosition();\r\n\r\n return (\r\n (this._cache.lockedTarget ? this._cache.lockedTarget.equals(lockedTargetPosition) : !lockedTargetPosition) &&\r\n (this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation))\r\n );\r\n }\r\n\r\n // Methods\r\n /** @internal */\r\n public _computeLocalCameraSpeed(): number {\r\n const engine = this.getEngine();\r\n return this.speed * Math.sqrt(engine.getDeltaTime() / (engine.getFps() * 100.0));\r\n }\r\n\r\n // Target\r\n\r\n /**\r\n * Defines the target the camera should look at.\r\n * @param target Defines the new target as a Vector\r\n */\r\n public setTarget(target: Vector3): void {\r\n this.upVector.normalize();\r\n\r\n this._initialFocalDistance = target.subtract(this.position).length();\r\n\r\n if (this.position.z === target.z) {\r\n this.position.z += Epsilon;\r\n }\r\n\r\n this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance);\r\n\r\n Matrix.LookAtLHToRef(this.position, target, this._defaultUp, this._camMatrix);\r\n this._camMatrix.invert();\r\n\r\n this.rotation.x = Math.atan(this._camMatrix.m[6] / this._camMatrix.m[10]);\r\n\r\n const vDir = target.subtract(this.position);\r\n\r\n if (vDir.x >= 0.0) {\r\n this.rotation.y = -Math.atan(vDir.z / vDir.x) + Math.PI / 2.0;\r\n } else {\r\n this.rotation.y = -Math.atan(vDir.z / vDir.x) - Math.PI / 2.0;\r\n }\r\n\r\n this.rotation.z = 0;\r\n\r\n if (isNaN(this.rotation.x)) {\r\n this.rotation.x = 0;\r\n }\r\n\r\n if (isNaN(this.rotation.y)) {\r\n this.rotation.y = 0;\r\n }\r\n\r\n if (isNaN(this.rotation.z)) {\r\n this.rotation.z = 0;\r\n }\r\n\r\n if (this.rotationQuaternion) {\r\n Quaternion.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this.rotationQuaternion);\r\n }\r\n }\r\n\r\n /**\r\n * Defines the target point of the camera.\r\n * The camera looks towards it form the radius distance.\r\n */\r\n public get target(): Vector3 {\r\n return this.getTarget();\r\n }\r\n public set target(value: Vector3) {\r\n this.setTarget(value);\r\n }\r\n\r\n /**\r\n * Return the current target position of the camera. This value is expressed in local space.\r\n * @returns the target position\r\n */\r\n public getTarget(): Vector3 {\r\n return this._currentTarget;\r\n }\r\n\r\n /** @internal */\r\n public _decideIfNeedsToMove(): boolean {\r\n return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n const relativeInertia = this._getInertiaRelativeToTime();\r\n const scaleFactor = this._getRelativeScaleFactor(relativeInertia);\r\n\r\n // If we have an inertia of zero, copy the values to apply and then zero out the direction vector\r\n // Else, scale the previous values and apply them\r\n if (this.inertia === 0) {\r\n TmpVectors.Vector3[0].copyFrom(this.cameraDirection);\r\n this.cameraDirection.scaleInPlace(0);\r\n } else {\r\n this.cameraDirection.scaleInPlace(relativeInertia);\r\n TmpVectors.Vector3[0].copyFrom(this.cameraDirection);\r\n }\r\n\r\n if (this.parent) {\r\n this.parent.getWorldMatrix().invertToRef(TmpVectors.Matrix[0]);\r\n Vector3.TransformNormalToRef(TmpVectors.Vector3[0], TmpVectors.Matrix[0], TmpVectors.Vector3[0]);\r\n this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0].scaleInPlace(scaleFactor));\r\n if (!this._deferOnly) {\r\n this.position.copyFrom(this._deferredPositionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n return;\r\n }\r\n\r\n TmpVectors.Vector3[0].scaleToRef(scaleFactor, TmpVectors.Vector3[0]);\r\n this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0]);\r\n if (!this._deferOnly) {\r\n this.position.copyFrom(this._deferredPositionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public _checkInputs(): void {\r\n const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;\r\n const needToMove = this._decideIfNeedsToMove();\r\n const needToRotate = this.cameraRotation.x || this.cameraRotation.y;\r\n const endMovementThreshold = this.speed * Epsilon; // minimum movement threshold before we end movement\r\n\r\n this._deferredUpdated = false;\r\n this._deferredRotationUpdate.copyFrom(this.rotation);\r\n this._deferredPositionUpdate.copyFrom(this.position);\r\n if (this.rotationQuaternion) {\r\n this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);\r\n }\r\n\r\n // Move\r\n if (needToMove) {\r\n this._updatePosition();\r\n\r\n if (Math.abs(this.cameraDirection.x) < endMovementThreshold) {\r\n this.cameraDirection.x = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraDirection.y) < endMovementThreshold) {\r\n this.cameraDirection.y = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraDirection.z) < endMovementThreshold) {\r\n this.cameraDirection.z = 0;\r\n }\r\n }\r\n\r\n // Rotate\r\n if (needToRotate) {\r\n if (this.inertia === 0) {\r\n //rotate, if quaternion is set and rotation was used\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);\r\n }\r\n\r\n this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier;\r\n this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier;\r\n this.cameraRotation.scaleInPlace(0);\r\n } else {\r\n const relativeInertia = this._getInertiaRelativeToTime();\r\n const scaleFactor = this._getRelativeScaleFactor(relativeInertia);\r\n this.cameraRotation.scaleInPlace(relativeInertia);\r\n\r\n //rotate, if quaternion is set and rotation was used\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);\r\n }\r\n\r\n this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier * scaleFactor;\r\n this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier * scaleFactor;\r\n\r\n if (Math.abs(this.cameraRotation.x) < endMovementThreshold) {\r\n this.cameraRotation.x = 0;\r\n }\r\n\r\n if (Math.abs(this.cameraRotation.y) < endMovementThreshold) {\r\n this.cameraRotation.y = 0;\r\n }\r\n }\r\n\r\n // Apply constraints\r\n if (!this.noRotationConstraint) {\r\n const limit = 1.570796;\r\n\r\n if (this._deferredRotationUpdate.x > limit) {\r\n this._deferredRotationUpdate.x = limit;\r\n }\r\n if (this._deferredRotationUpdate.x < -limit) {\r\n this._deferredRotationUpdate.x = -limit;\r\n }\r\n }\r\n\r\n if (!this._deferOnly) {\r\n this.rotation.copyFrom(this._deferredRotationUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n\r\n //rotate, if quaternion is set and rotation was used\r\n if (this.rotationQuaternion) {\r\n const len = this._deferredRotationUpdate.lengthSquared();\r\n if (len) {\r\n Quaternion.RotationYawPitchRollToRef(\r\n this._deferredRotationUpdate.y,\r\n this._deferredRotationUpdate.x,\r\n this._deferredRotationUpdate.z,\r\n this._deferredRotationQuaternionUpdate\r\n );\r\n if (!this._deferOnly) {\r\n this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate);\r\n } else {\r\n this._deferredUpdated = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n super._checkInputs();\r\n }\r\n\r\n protected _updateCameraRotationMatrix() {\r\n if (this.rotationQuaternion) {\r\n this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix);\r\n } else {\r\n Matrix.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);\r\n }\r\n }\r\n\r\n /**\r\n * Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)\r\n * @returns the current camera\r\n */\r\n private _rotateUpVectorWithCameraRotationMatrix(): TargetCamera {\r\n Vector3.TransformNormalToRef(this._defaultUp, this._cameraRotationMatrix, this.upVector);\r\n return this;\r\n }\r\n\r\n private _cachedRotationZ = 0;\r\n private _cachedQuaternionRotationZ = 0;\r\n /** @internal */\r\n public _getViewMatrix(): Matrix {\r\n if (this.lockedTarget) {\r\n this.setTarget(this._getLockedTargetPosition()!);\r\n }\r\n\r\n // Compute\r\n this._updateCameraRotationMatrix();\r\n\r\n // Apply the changed rotation to the upVector\r\n if (this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z) {\r\n this._rotateUpVectorWithCameraRotationMatrix();\r\n this._cachedQuaternionRotationZ = this.rotationQuaternion.z;\r\n } else if (this._cachedRotationZ !== this.rotation.z) {\r\n this._rotateUpVectorWithCameraRotationMatrix();\r\n this._cachedRotationZ = this.rotation.z;\r\n }\r\n\r\n Vector3.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint);\r\n\r\n // Computing target and final matrix\r\n this.position.addToRef(this._transformedReferencePoint, this._currentTarget);\r\n if (this.updateUpVectorFromRotation) {\r\n if (this.rotationQuaternion) {\r\n Axis.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector);\r\n } else {\r\n Quaternion.FromEulerVectorToRef(this.rotation, this._tmpQuaternion);\r\n Axis.Y.rotateByQuaternionToRef(this._tmpQuaternion, this.upVector);\r\n }\r\n }\r\n this._computeViewMatrix(this.position, this._currentTarget, this.upVector);\r\n return this._viewMatrix;\r\n }\r\n\r\n protected _computeViewMatrix(position: Vector3, target: Vector3, up: Vector3): void {\r\n if (this.ignoreParentScaling) {\r\n if (this.parent) {\r\n const parentWorldMatrix = this.parent.getWorldMatrix();\r\n Vector3.TransformCoordinatesToRef(position, parentWorldMatrix, this._globalPosition);\r\n Vector3.TransformCoordinatesToRef(target, parentWorldMatrix, this._tmpTargetVector);\r\n Vector3.TransformNormalToRef(up, parentWorldMatrix, this._tmpUpVector);\r\n this._markSyncedWithParent();\r\n } else {\r\n this._globalPosition.copyFrom(position);\r\n this._tmpTargetVector.copyFrom(target);\r\n this._tmpUpVector.copyFrom(up);\r\n }\r\n\r\n if (this.getScene().useRightHandedSystem) {\r\n Matrix.LookAtRHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix);\r\n } else {\r\n Matrix.LookAtLHToRef(this._globalPosition, this._tmpTargetVector, this._tmpUpVector, this._viewMatrix);\r\n }\r\n return;\r\n }\r\n\r\n if (this.getScene().useRightHandedSystem) {\r\n Matrix.LookAtRHToRef(position, target, up, this._viewMatrix);\r\n } else {\r\n Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);\r\n }\r\n\r\n if (this.parent) {\r\n const parentWorldMatrix = this.parent.getWorldMatrix();\r\n this._viewMatrix.invert();\r\n this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);\r\n this._viewMatrix.getTranslationToRef(this._globalPosition);\r\n this._viewMatrix.invert();\r\n this._markSyncedWithParent();\r\n } else {\r\n this._globalPosition.copyFrom(position);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public createRigCamera(name: string, cameraIndex: number): Nullable<Camera> {\r\n if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {\r\n const rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());\r\n rigCamera.isRigCamera = true;\r\n rigCamera.rigParent = this;\r\n if (this.cameraRigMode === Camera.RIG_MODE_VR) {\r\n if (!this.rotationQuaternion) {\r\n this.rotationQuaternion = new Quaternion();\r\n }\r\n rigCamera._cameraRigParams = {};\r\n rigCamera.rotationQuaternion = new Quaternion();\r\n }\r\n\r\n rigCamera.mode = this.mode;\r\n rigCamera.orthoLeft = this.orthoLeft;\r\n rigCamera.orthoRight = this.orthoRight;\r\n rigCamera.orthoTop = this.orthoTop;\r\n rigCamera.orthoBottom = this.orthoBottom;\r\n\r\n return rigCamera;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _updateRigCameras() {\r\n const camLeft = <TargetCamera>this._rigCameras[0];\r\n const camRight = <TargetCamera>this._rigCameras[1];\r\n\r\n this.computeWorldMatrix();\r\n\r\n switch (this.cameraRigMode) {\r\n case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:\r\n case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:\r\n case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:\r\n case Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER:\r\n case Camera.RIG_MODE_STEREOSCOPIC_INTERLACED: {\r\n //provisionnaly using _cameraRigParams.stereoHalfAngle instead of calculations based on _cameraRigParams.interaxialDistance:\r\n const leftSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1;\r\n const rightSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;\r\n this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * leftSign, camLeft);\r\n this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * rightSign, camRight);\r\n break;\r\n }\r\n case Camera.RIG_MODE_VR:\r\n if (camLeft.rotationQuaternion) {\r\n camLeft.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else {\r\n camLeft.rotation.copyFrom(this.rotation);\r\n camRight.rotation.copyFrom(this.rotation);\r\n }\r\n camLeft.position.copyFrom(this.position);\r\n camRight.position.copyFrom(this.position);\r\n\r\n break;\r\n }\r\n super._updateRigCameras();\r\n }\r\n\r\n private _getRigCamPositionAndTarget(halfSpace: number, rigCamera: TargetCamera) {\r\n const target = this.getTarget();\r\n target.subtractToRef(this.position, TargetCamera._TargetFocalPoint);\r\n\r\n TargetCamera._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);\r\n const newFocalTarget = TargetCamera._TargetFocalPoint.addInPlace(this.position);\r\n\r\n Matrix.TranslationToRef(-newFocalTarget.x, -newFocalTarget.y, -newFocalTarget.z, TargetCamera._TargetTransformMatrix);\r\n TargetCamera._TargetTransformMatrix.multiplyToRef(Matrix.RotationAxis(rigCamera.upVector, halfSpace), TargetCamera._RigCamTransformMatrix);\r\n Matrix.TranslationToRef(newFocalTarget.x, newFocalTarget.y, newFocalTarget.z, TargetCamera._TargetTransformMatrix);\r\n\r\n TargetCamera._RigCamTransformMatrix.multiplyToRef(TargetCamera._TargetTransformMatrix, TargetCamera._RigCamTransformMatrix);\r\n\r\n Vector3.TransformCoordinatesToRef(this.position, TargetCamera._RigCamTransformMatrix, rigCamera.position);\r\n rigCamera.setTarget(newFocalTarget);\r\n }\r\n\r\n /**\r\n * Gets the current object class name.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"TargetCamera\";\r\n }\r\n}\r\n"]}
@@ -193,6 +193,10 @@ export declare class DebugLayer {
193
193
  * @ignoreNaming
194
194
  */
195
195
  static InspectorURL: string;
196
+ /**
197
+ * The default configuration of the inspector
198
+ */
199
+ static Config: IInspectorOptions;
196
200
  private _scene;
197
201
  private BJSINSPECTOR;
198
202
  private _onPropertyChangedObservable?;
@@ -112,7 +112,7 @@ export class DebugLayer {
112
112
  this._onSelectionChangedObservable.clear();
113
113
  this._onSelectionChangedObservable = undefined;
114
114
  }
115
- const userOptions = Object.assign({ overlay: false, showExplorer: true, showInspector: true, embedMode: false, handleResize: true, enablePopup: true }, config);
115
+ const userOptions = Object.assign(Object.assign({}, DebugLayer.Config), config);
116
116
  this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector();
117
117
  this.BJSINSPECTOR.Inspector.Show(this._scene, userOptions);
118
118
  }
@@ -198,4 +198,15 @@ export class DebugLayer {
198
198
  * @ignoreNaming
199
199
  */
200
200
  DebugLayer.InspectorURL = `${Tools._DefaultCdnUrl}/v${Engine.Version}/inspector/babylon.inspector.bundle.js`;
201
+ /**
202
+ * The default configuration of the inspector
203
+ */
204
+ DebugLayer.Config = {
205
+ overlay: false,
206
+ showExplorer: true,
207
+ showInspector: true,
208
+ embedMode: false,
209
+ handleResize: true,
210
+ enablePopup: true,
211
+ };
201
212
  //# sourceMappingURL=debugLayer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugLayer.js","sourceRoot":"","sources":["../../../../dev/core/src/Debug/debugLayer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"../Misc/tools\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { Scene } from \"../scene\";\r\nimport { Engine } from \"../Engines/engine\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport type { IInspectable } from \"../Misc/iInspectable\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\n// declare INSPECTOR namespace for compilation issue\r\ndeclare let INSPECTOR: any;\r\ndeclare let BABYLON: any;\r\n// load the inspector using require, if not present in the global namespace.\r\n\r\n/**\r\n * Interface used to define scene explorer extensibility option\r\n */\r\nexport interface IExplorerExtensibilityOption {\r\n /**\r\n * Define the option label\r\n */\r\n label: string;\r\n /**\r\n * Defines the action to execute on click\r\n */\r\n action: (entity: any) => void;\r\n /**\r\n * Keep popup open after click\r\n */\r\n keepOpenAfterClick?: boolean;\r\n}\r\n\r\n/**\r\n * Defines a group of actions associated with a predicate to use when extending the Inspector scene explorer\r\n */\r\nexport interface IExplorerExtensibilityGroup {\r\n /**\r\n * Defines a predicate to test if a given type mut be extended\r\n */\r\n predicate: (entity: any) => boolean;\r\n /**\r\n * Gets the list of options added to a type\r\n */\r\n entries: IExplorerExtensibilityOption[];\r\n}\r\n\r\n/**\r\n * Defines a new node that will be displayed as top level node in the explorer\r\n */\r\nexport interface IExplorerAdditionalChild {\r\n /**\r\n * Gets the name of the additional node\r\n */\r\n name: string;\r\n /**\r\n * Function used to return the class name of the child node\r\n */\r\n getClassName(): string;\r\n /**\r\n * List of inspectable custom properties (used by the Inspector)\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility\r\n */\r\n inspectableCustomProperties: IInspectable[];\r\n}\r\n\r\n/**\r\n * Defines a new node that will be displayed as top level node in the explorer\r\n */\r\nexport interface IExplorerAdditionalNode {\r\n /**\r\n * Gets the name of the additional node\r\n */\r\n name: string;\r\n /**\r\n * Function used to return the list of child entries\r\n */\r\n getContent(): IExplorerAdditionalChild[];\r\n}\r\n\r\nexport type IInspectorContextMenuType = \"pipeline\" | \"node\" | \"materials\" | \"spriteManagers\" | \"particleSystems\";\r\n\r\n/**\r\n * Context menu item\r\n */\r\nexport interface IInspectorContextMenuItem {\r\n /**\r\n * Display label - menu item\r\n */\r\n label: string;\r\n /**\r\n * Callback function that will be called when the menu item is selected\r\n * @param entity the entity that is currently selected in the scene explorer\r\n */\r\n action: (entity?: unknown) => void;\r\n}\r\n\r\n/**\r\n * Interface used to define the options to use to create the Inspector\r\n */\r\nexport interface IInspectorOptions {\r\n /**\r\n * Display in overlay mode (default: false)\r\n */\r\n overlay?: boolean;\r\n /**\r\n * HTML element to use as root (the parent of the rendering canvas will be used as default value)\r\n */\r\n globalRoot?: HTMLElement;\r\n /**\r\n * Display the Scene explorer\r\n */\r\n showExplorer?: boolean;\r\n /**\r\n * Display the property inspector\r\n */\r\n showInspector?: boolean;\r\n /**\r\n * Display in embed mode (both panes on the right)\r\n */\r\n embedMode?: boolean;\r\n /**\r\n * let the Inspector handles resize of the canvas when panes are resized (default to true)\r\n */\r\n handleResize?: boolean;\r\n /**\r\n * Allow the panes to popup (default: true)\r\n */\r\n enablePopup?: boolean;\r\n /**\r\n * Allow the panes to be closed by users (default: true)\r\n */\r\n enableClose?: boolean;\r\n /**\r\n * Optional list of extensibility entries\r\n */\r\n explorerExtensibility?: IExplorerExtensibilityGroup[];\r\n /**\r\n * Optional list of additional top level nodes\r\n */\r\n additionalNodes?: IExplorerAdditionalNode[];\r\n /**\r\n * Optional URL to get the inspector script from (by default it uses the babylonjs CDN).\r\n */\r\n inspectorURL?: string;\r\n /**\r\n * Optional initial tab (default to DebugLayerTab.Properties)\r\n */\r\n initialTab?: DebugLayerTab;\r\n /**\r\n * Optional camera to use to render the gizmos from the inspector (default to the scene.activeCamera or the latest from scene.activeCameras)\r\n */\r\n gizmoCamera?: Camera;\r\n /**\r\n * Context menu for inspector tools such as \"Post Process\", \"Nodes\", \"Materials\", etc.\r\n */\r\n contextMenu?: Partial<Record<IInspectorContextMenuType, IInspectorContextMenuItem[]>>;\r\n /**\r\n * List of context menu items that should be completely overridden by custom items from the contextMenu property.\r\n */\r\n contextMenuOverride?: IInspectorContextMenuType[];\r\n}\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /**\r\n * @internal\r\n * Backing field\r\n */\r\n _debugLayer: DebugLayer;\r\n\r\n /**\r\n * Gets the debug layer (aka Inspector) associated with the scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n */\r\n debugLayer: DebugLayer;\r\n }\r\n}\r\nObject.defineProperty(Scene.prototype, \"debugLayer\", {\r\n get: function (this: Scene) {\r\n if (!this._debugLayer) {\r\n this._debugLayer = new DebugLayer(this);\r\n }\r\n return this._debugLayer;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n/**\r\n * Enum of inspector action tab\r\n */\r\nexport enum DebugLayerTab {\r\n /**\r\n * Properties tag (default)\r\n */\r\n Properties = 0,\r\n /**\r\n * Debug tab\r\n */\r\n Debug = 1,\r\n /**\r\n * Statistics tab\r\n */\r\n Statistics = 2,\r\n /**\r\n * Tools tab\r\n */\r\n Tools = 3,\r\n /**\r\n * Settings tab\r\n */\r\n Settings = 4,\r\n}\r\n\r\n/**\r\n * The debug layer (aka Inspector) is the go to tool in order to better understand\r\n * what is happening in your scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n */\r\nexport class DebugLayer {\r\n /**\r\n * Define the url to get the inspector script from.\r\n * By default it uses the babylonjs CDN.\r\n * @ignoreNaming\r\n */\r\n public static InspectorURL = `${Tools._DefaultCdnUrl}/v${Engine.Version}/inspector/babylon.inspector.bundle.js`;\r\n\r\n private _scene: Scene;\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private BJSINSPECTOR = this._getGlobalInspector();\r\n\r\n private _onPropertyChangedObservable?: Observable<{ object: any; property: string; value: any; initialValue: any }>;\r\n /**\r\n * Observable triggered when a property is changed through the inspector.\r\n */\r\n public get onPropertyChangedObservable() {\r\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\r\n return this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable;\r\n }\r\n\r\n if (!this._onPropertyChangedObservable) {\r\n this._onPropertyChangedObservable = new Observable<{ object: any; property: string; value: any; initialValue: any }>();\r\n }\r\n\r\n return this._onPropertyChangedObservable;\r\n }\r\n\r\n private _onSelectionChangedObservable?: Observable<any>;\r\n /**\r\n * Observable triggered when the selection is changed through the inspector.\r\n */\r\n public get onSelectionChangedObservable() {\r\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\r\n return this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable;\r\n }\r\n\r\n if (!this._onSelectionChangedObservable) {\r\n this._onSelectionChangedObservable = new Observable<any>();\r\n }\r\n\r\n return this._onSelectionChangedObservable;\r\n }\r\n\r\n /**\r\n * Instantiates a new debug layer.\r\n * The debug layer (aka Inspector) is the go to tool in order to better understand\r\n * what is happening in your scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n * @param scene Defines the scene to inspect\r\n */\r\n constructor(scene?: Scene) {\r\n this._scene = scene || <Scene>EngineStore.LastCreatedScene;\r\n if (!this._scene) {\r\n return;\r\n }\r\n this._scene.onDisposeObservable.add(() => {\r\n // Debug layer\r\n if (this._scene._debugLayer) {\r\n this._scene._debugLayer.hide();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Creates the inspector window.\r\n * @param config\r\n */\r\n private _createInspector(config?: Partial<IInspectorOptions>) {\r\n if (this.isVisible()) {\r\n return;\r\n }\r\n\r\n if (this._onPropertyChangedObservable) {\r\n for (const observer of this._onPropertyChangedObservable!.observers) {\r\n this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(observer);\r\n }\r\n this._onPropertyChangedObservable.clear();\r\n this._onPropertyChangedObservable = undefined;\r\n }\r\n\r\n if (this._onSelectionChangedObservable) {\r\n for (const observer of this._onSelectionChangedObservable!.observers) {\r\n this.BJSINSPECTOR.Inspector.OnSelectionChangedObservable.add(observer);\r\n }\r\n this._onSelectionChangedObservable.clear();\r\n this._onSelectionChangedObservable = undefined;\r\n }\r\n\r\n const userOptions: IInspectorOptions = {\r\n overlay: false,\r\n showExplorer: true,\r\n showInspector: true,\r\n embedMode: false,\r\n handleResize: true,\r\n enablePopup: true,\r\n ...config,\r\n };\r\n\r\n this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector();\r\n\r\n this.BJSINSPECTOR.Inspector.Show(this._scene, userOptions);\r\n }\r\n\r\n /**\r\n * Select a specific entity in the scene explorer and highlight a specific block in that entity property grid\r\n * @param entity defines the entity to select\r\n * @param lineContainerTitles defines the specific blocks to highlight (could be a string or an array of strings)\r\n */\r\n public select(entity: any, lineContainerTitles?: string | string[]) {\r\n if (this.BJSINSPECTOR) {\r\n if (lineContainerTitles) {\r\n if (Object.prototype.toString.call(lineContainerTitles) == \"[object String]\") {\r\n this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(lineContainerTitles);\r\n } else {\r\n this.BJSINSPECTOR.Inspector.MarkMultipleLineContainerTitlesForHighlighting(lineContainerTitles);\r\n }\r\n }\r\n this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(entity);\r\n }\r\n }\r\n\r\n /** Get the inspector from bundle or global */\r\n private _getGlobalInspector(): any {\r\n // UMD Global name detection from Webpack Bundle UMD Name.\r\n if (typeof INSPECTOR !== \"undefined\") {\r\n return INSPECTOR;\r\n }\r\n\r\n // In case of module let s check the global emitted from the Inspector entry point.\r\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.Inspector !== \"undefined\") {\r\n return BABYLON;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Get if the inspector is visible or not.\r\n * @returns true if visible otherwise, false\r\n */\r\n public isVisible(): boolean {\r\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible;\r\n }\r\n\r\n /**\r\n * Hide the inspector and close its window.\r\n */\r\n public hide() {\r\n if (this.BJSINSPECTOR) {\r\n this.BJSINSPECTOR.Inspector.Hide();\r\n }\r\n }\r\n\r\n /**\r\n * Update the scene in the inspector\r\n */\r\n public setAsActiveScene() {\r\n if (this.BJSINSPECTOR) {\r\n this.BJSINSPECTOR.Inspector._SetNewScene(this._scene);\r\n }\r\n }\r\n\r\n /**\r\n * Launch the debugLayer.\r\n * @param config Define the configuration of the inspector\r\n * @returns a promise fulfilled when the debug layer is visible\r\n */\r\n public show(config?: IInspectorOptions): Promise<DebugLayer> {\r\n return new Promise((resolve) => {\r\n if (typeof this.BJSINSPECTOR == \"undefined\") {\r\n const inspectorUrl = config && config.inspectorURL ? config.inspectorURL : DebugLayer.InspectorURL;\r\n\r\n // Load inspector and add it to the DOM\r\n Tools.LoadBabylonScript(inspectorUrl, () => {\r\n this._createInspector(config);\r\n resolve(this);\r\n });\r\n } else {\r\n // Otherwise creates the inspector\r\n this._createInspector(config);\r\n resolve(this);\r\n }\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"debugLayer.js","sourceRoot":"","sources":["../../../../dev/core/src/Debug/debugLayer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from \"../Misc/tools\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { Scene } from \"../scene\";\r\nimport { Engine } from \"../Engines/engine\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport type { IInspectable } from \"../Misc/iInspectable\";\r\nimport type { Camera } from \"../Cameras/camera\";\r\n\r\n// declare INSPECTOR namespace for compilation issue\r\ndeclare let INSPECTOR: any;\r\ndeclare let BABYLON: any;\r\n// load the inspector using require, if not present in the global namespace.\r\n\r\n/**\r\n * Interface used to define scene explorer extensibility option\r\n */\r\nexport interface IExplorerExtensibilityOption {\r\n /**\r\n * Define the option label\r\n */\r\n label: string;\r\n /**\r\n * Defines the action to execute on click\r\n */\r\n action: (entity: any) => void;\r\n /**\r\n * Keep popup open after click\r\n */\r\n keepOpenAfterClick?: boolean;\r\n}\r\n\r\n/**\r\n * Defines a group of actions associated with a predicate to use when extending the Inspector scene explorer\r\n */\r\nexport interface IExplorerExtensibilityGroup {\r\n /**\r\n * Defines a predicate to test if a given type mut be extended\r\n */\r\n predicate: (entity: any) => boolean;\r\n /**\r\n * Gets the list of options added to a type\r\n */\r\n entries: IExplorerExtensibilityOption[];\r\n}\r\n\r\n/**\r\n * Defines a new node that will be displayed as top level node in the explorer\r\n */\r\nexport interface IExplorerAdditionalChild {\r\n /**\r\n * Gets the name of the additional node\r\n */\r\n name: string;\r\n /**\r\n * Function used to return the class name of the child node\r\n */\r\n getClassName(): string;\r\n /**\r\n * List of inspectable custom properties (used by the Inspector)\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility\r\n */\r\n inspectableCustomProperties: IInspectable[];\r\n}\r\n\r\n/**\r\n * Defines a new node that will be displayed as top level node in the explorer\r\n */\r\nexport interface IExplorerAdditionalNode {\r\n /**\r\n * Gets the name of the additional node\r\n */\r\n name: string;\r\n /**\r\n * Function used to return the list of child entries\r\n */\r\n getContent(): IExplorerAdditionalChild[];\r\n}\r\n\r\nexport type IInspectorContextMenuType = \"pipeline\" | \"node\" | \"materials\" | \"spriteManagers\" | \"particleSystems\";\r\n\r\n/**\r\n * Context menu item\r\n */\r\nexport interface IInspectorContextMenuItem {\r\n /**\r\n * Display label - menu item\r\n */\r\n label: string;\r\n /**\r\n * Callback function that will be called when the menu item is selected\r\n * @param entity the entity that is currently selected in the scene explorer\r\n */\r\n action: (entity?: unknown) => void;\r\n}\r\n\r\n/**\r\n * Interface used to define the options to use to create the Inspector\r\n */\r\nexport interface IInspectorOptions {\r\n /**\r\n * Display in overlay mode (default: false)\r\n */\r\n overlay?: boolean;\r\n /**\r\n * HTML element to use as root (the parent of the rendering canvas will be used as default value)\r\n */\r\n globalRoot?: HTMLElement;\r\n /**\r\n * Display the Scene explorer\r\n */\r\n showExplorer?: boolean;\r\n /**\r\n * Display the property inspector\r\n */\r\n showInspector?: boolean;\r\n /**\r\n * Display in embed mode (both panes on the right)\r\n */\r\n embedMode?: boolean;\r\n /**\r\n * let the Inspector handles resize of the canvas when panes are resized (default to true)\r\n */\r\n handleResize?: boolean;\r\n /**\r\n * Allow the panes to popup (default: true)\r\n */\r\n enablePopup?: boolean;\r\n /**\r\n * Allow the panes to be closed by users (default: true)\r\n */\r\n enableClose?: boolean;\r\n /**\r\n * Optional list of extensibility entries\r\n */\r\n explorerExtensibility?: IExplorerExtensibilityGroup[];\r\n /**\r\n * Optional list of additional top level nodes\r\n */\r\n additionalNodes?: IExplorerAdditionalNode[];\r\n /**\r\n * Optional URL to get the inspector script from (by default it uses the babylonjs CDN).\r\n */\r\n inspectorURL?: string;\r\n /**\r\n * Optional initial tab (default to DebugLayerTab.Properties)\r\n */\r\n initialTab?: DebugLayerTab;\r\n /**\r\n * Optional camera to use to render the gizmos from the inspector (default to the scene.activeCamera or the latest from scene.activeCameras)\r\n */\r\n gizmoCamera?: Camera;\r\n /**\r\n * Context menu for inspector tools such as \"Post Process\", \"Nodes\", \"Materials\", etc.\r\n */\r\n contextMenu?: Partial<Record<IInspectorContextMenuType, IInspectorContextMenuItem[]>>;\r\n /**\r\n * List of context menu items that should be completely overridden by custom items from the contextMenu property.\r\n */\r\n contextMenuOverride?: IInspectorContextMenuType[];\r\n}\r\n\r\ndeclare module \"../scene\" {\r\n export interface Scene {\r\n /**\r\n * @internal\r\n * Backing field\r\n */\r\n _debugLayer: DebugLayer;\r\n\r\n /**\r\n * Gets the debug layer (aka Inspector) associated with the scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n */\r\n debugLayer: DebugLayer;\r\n }\r\n}\r\nObject.defineProperty(Scene.prototype, \"debugLayer\", {\r\n get: function (this: Scene) {\r\n if (!this._debugLayer) {\r\n this._debugLayer = new DebugLayer(this);\r\n }\r\n return this._debugLayer;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n\r\n/**\r\n * Enum of inspector action tab\r\n */\r\nexport enum DebugLayerTab {\r\n /**\r\n * Properties tag (default)\r\n */\r\n Properties = 0,\r\n /**\r\n * Debug tab\r\n */\r\n Debug = 1,\r\n /**\r\n * Statistics tab\r\n */\r\n Statistics = 2,\r\n /**\r\n * Tools tab\r\n */\r\n Tools = 3,\r\n /**\r\n * Settings tab\r\n */\r\n Settings = 4,\r\n}\r\n\r\n/**\r\n * The debug layer (aka Inspector) is the go to tool in order to better understand\r\n * what is happening in your scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n */\r\nexport class DebugLayer {\r\n /**\r\n * Define the url to get the inspector script from.\r\n * By default it uses the babylonjs CDN.\r\n * @ignoreNaming\r\n */\r\n public static InspectorURL = `${Tools._DefaultCdnUrl}/v${Engine.Version}/inspector/babylon.inspector.bundle.js`;\r\n\r\n /**\r\n * The default configuration of the inspector\r\n */\r\n public static Config: IInspectorOptions = {\r\n overlay: false,\r\n showExplorer: true,\r\n showInspector: true,\r\n embedMode: false,\r\n handleResize: true,\r\n enablePopup: true,\r\n };\r\n\r\n private _scene: Scene;\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private BJSINSPECTOR = this._getGlobalInspector();\r\n\r\n private _onPropertyChangedObservable?: Observable<{ object: any; property: string; value: any; initialValue: any }>;\r\n /**\r\n * Observable triggered when a property is changed through the inspector.\r\n */\r\n public get onPropertyChangedObservable() {\r\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\r\n return this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable;\r\n }\r\n\r\n if (!this._onPropertyChangedObservable) {\r\n this._onPropertyChangedObservable = new Observable<{ object: any; property: string; value: any; initialValue: any }>();\r\n }\r\n\r\n return this._onPropertyChangedObservable;\r\n }\r\n\r\n private _onSelectionChangedObservable?: Observable<any>;\r\n /**\r\n * Observable triggered when the selection is changed through the inspector.\r\n */\r\n public get onSelectionChangedObservable() {\r\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\r\n return this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable;\r\n }\r\n\r\n if (!this._onSelectionChangedObservable) {\r\n this._onSelectionChangedObservable = new Observable<any>();\r\n }\r\n\r\n return this._onSelectionChangedObservable;\r\n }\r\n\r\n /**\r\n * Instantiates a new debug layer.\r\n * The debug layer (aka Inspector) is the go to tool in order to better understand\r\n * what is happening in your scene\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\r\n * @param scene Defines the scene to inspect\r\n */\r\n constructor(scene?: Scene) {\r\n this._scene = scene || <Scene>EngineStore.LastCreatedScene;\r\n if (!this._scene) {\r\n return;\r\n }\r\n this._scene.onDisposeObservable.add(() => {\r\n // Debug layer\r\n if (this._scene._debugLayer) {\r\n this._scene._debugLayer.hide();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Creates the inspector window.\r\n * @param config\r\n */\r\n private _createInspector(config?: Partial<IInspectorOptions>) {\r\n if (this.isVisible()) {\r\n return;\r\n }\r\n\r\n if (this._onPropertyChangedObservable) {\r\n for (const observer of this._onPropertyChangedObservable!.observers) {\r\n this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(observer);\r\n }\r\n this._onPropertyChangedObservable.clear();\r\n this._onPropertyChangedObservable = undefined;\r\n }\r\n\r\n if (this._onSelectionChangedObservable) {\r\n for (const observer of this._onSelectionChangedObservable!.observers) {\r\n this.BJSINSPECTOR.Inspector.OnSelectionChangedObservable.add(observer);\r\n }\r\n this._onSelectionChangedObservable.clear();\r\n this._onSelectionChangedObservable = undefined;\r\n }\r\n\r\n const userOptions: IInspectorOptions = {\r\n ...DebugLayer.Config,\r\n ...config,\r\n };\r\n\r\n this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector();\r\n\r\n this.BJSINSPECTOR.Inspector.Show(this._scene, userOptions);\r\n }\r\n\r\n /**\r\n * Select a specific entity in the scene explorer and highlight a specific block in that entity property grid\r\n * @param entity defines the entity to select\r\n * @param lineContainerTitles defines the specific blocks to highlight (could be a string or an array of strings)\r\n */\r\n public select(entity: any, lineContainerTitles?: string | string[]) {\r\n if (this.BJSINSPECTOR) {\r\n if (lineContainerTitles) {\r\n if (Object.prototype.toString.call(lineContainerTitles) == \"[object String]\") {\r\n this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(lineContainerTitles);\r\n } else {\r\n this.BJSINSPECTOR.Inspector.MarkMultipleLineContainerTitlesForHighlighting(lineContainerTitles);\r\n }\r\n }\r\n this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(entity);\r\n }\r\n }\r\n\r\n /** Get the inspector from bundle or global */\r\n private _getGlobalInspector(): any {\r\n // UMD Global name detection from Webpack Bundle UMD Name.\r\n if (typeof INSPECTOR !== \"undefined\") {\r\n return INSPECTOR;\r\n }\r\n\r\n // In case of module let s check the global emitted from the Inspector entry point.\r\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.Inspector !== \"undefined\") {\r\n return BABYLON;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Get if the inspector is visible or not.\r\n * @returns true if visible otherwise, false\r\n */\r\n public isVisible(): boolean {\r\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible;\r\n }\r\n\r\n /**\r\n * Hide the inspector and close its window.\r\n */\r\n public hide() {\r\n if (this.BJSINSPECTOR) {\r\n this.BJSINSPECTOR.Inspector.Hide();\r\n }\r\n }\r\n\r\n /**\r\n * Update the scene in the inspector\r\n */\r\n public setAsActiveScene() {\r\n if (this.BJSINSPECTOR) {\r\n this.BJSINSPECTOR.Inspector._SetNewScene(this._scene);\r\n }\r\n }\r\n\r\n /**\r\n * Launch the debugLayer.\r\n * @param config Define the configuration of the inspector\r\n * @returns a promise fulfilled when the debug layer is visible\r\n */\r\n public show(config?: IInspectorOptions): Promise<DebugLayer> {\r\n return new Promise((resolve) => {\r\n if (typeof this.BJSINSPECTOR == \"undefined\") {\r\n const inspectorUrl = config && config.inspectorURL ? config.inspectorURL : DebugLayer.InspectorURL;\r\n\r\n // Load inspector and add it to the DOM\r\n Tools.LoadBabylonScript(inspectorUrl, () => {\r\n this._createInspector(config);\r\n resolve(this);\r\n });\r\n } else {\r\n // Otherwise creates the inspector\r\n this._createInspector(config);\r\n resolve(this);\r\n }\r\n });\r\n }\r\n}\r\n"]}
@@ -729,4 +729,6 @@ export declare class Constants {
729
729
  static readonly GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA = 32772;
730
730
  /** URL to the snippet server. Points to the public snippet server by default */
731
731
  static SnippetUrl: string;
732
+ /** Standard time a frame should take at 60 fps (in ms) */
733
+ static readonly STANDARD_TIME_STEP: number;
732
734
  }
@@ -734,4 +734,6 @@ Constants.GL_ALPHA_FUNCTION_CONSTANT_ALPHA = 0x8003;
734
734
  Constants.GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA = 0x8004;
735
735
  /** URL to the snippet server. Points to the public snippet server by default */
736
736
  Constants.SnippetUrl = "https://snippet.babylonjs.com";
737
+ /** Standard time a frame should take at 60 fps (in ms) */
738
+ Constants.STANDARD_TIME_STEP = 1000 / 60;
737
739
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/constants.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n/** Defines the cross module used constants to avoid circular dependencies */\r\nexport class Constants {\r\n /** Defines that alpha blending is disabled */\r\n public static readonly ALPHA_DISABLE = 0;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + DEST */\r\n public static readonly ALPHA_ADD = 1;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\r\n public static readonly ALPHA_COMBINE = 2;\r\n /** Defines that alpha blending is DEST - SRC * DEST */\r\n public static readonly ALPHA_SUBTRACT = 3;\r\n /** Defines that alpha blending is SRC * DEST */\r\n public static readonly ALPHA_MULTIPLY = 4;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + (1 - SRC) * DEST */\r\n public static readonly ALPHA_MAXIMIZED = 5;\r\n /** Defines that alpha blending is SRC + DEST */\r\n public static readonly ALPHA_ONEONE = 6;\r\n /** Defines that alpha blending is SRC + (1 - SRC ALPHA) * DEST */\r\n public static readonly ALPHA_PREMULTIPLIED = 7;\r\n /**\r\n * Defines that alpha blending is SRC + (1 - SRC ALPHA) * DEST\r\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n public static readonly ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\r\n /** Defines that alpha blending is CST * SRC + (1 - CST) * DEST */\r\n public static readonly ALPHA_INTERPOLATE = 9;\r\n /**\r\n * Defines that alpha blending is SRC + (1 - SRC) * DEST\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n public static readonly ALPHA_SCREENMODE = 10;\r\n /**\r\n * Defines that alpha blending is SRC + DST\r\n * Alpha will be set to SRC ALPHA + DST ALPHA\r\n */\r\n public static readonly ALPHA_ONEONE_ONEONE = 11;\r\n /**\r\n * Defines that alpha blending is SRC * DST ALPHA + DST\r\n * Alpha will be set to 0\r\n */\r\n public static readonly ALPHA_ALPHATOCOLOR = 12;\r\n /**\r\n * Defines that alpha blending is SRC * (1 - DST) + DST * (1 - SRC)\r\n */\r\n public static readonly ALPHA_REVERSEONEMINUS = 13;\r\n /**\r\n * Defines that alpha blending is SRC + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + DST ALPHA * (1 - SRC ALPHA)\r\n */\r\n public static readonly ALPHA_SRC_DSTONEMINUSSRCALPHA = 14;\r\n /**\r\n * Defines that alpha blending is SRC + DST\r\n * Alpha will be set to SRC ALPHA\r\n */\r\n public static readonly ALPHA_ONEONE_ONEZERO = 15;\r\n /**\r\n * Defines that alpha blending is SRC * (1 - DST) + DST * (1 - SRC)\r\n * Alpha will be set to DST ALPHA\r\n */\r\n public static readonly ALPHA_EXCLUSION = 16;\r\n /**\r\n * Defines that alpha blending is SRC * SRC ALPHA + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DST ALPHA\r\n */\r\n public static readonly ALPHA_LAYER_ACCUMULATE = 17;\r\n\r\n /** Defines that alpha blending equation a SUM */\r\n public static readonly ALPHA_EQUATION_ADD = 0;\r\n /** Defines that alpha blending equation a SUBSTRACTION */\r\n public static readonly ALPHA_EQUATION_SUBSTRACT = 1;\r\n /** Defines that alpha blending equation a REVERSE SUBSTRACTION */\r\n public static readonly ALPHA_EQUATION_REVERSE_SUBTRACT = 2;\r\n /** Defines that alpha blending equation a MAX operation */\r\n public static readonly ALPHA_EQUATION_MAX = 3;\r\n /** Defines that alpha blending equation a MIN operation */\r\n public static readonly ALPHA_EQUATION_MIN = 4;\r\n /**\r\n * Defines that alpha blending equation a DARKEN operation:\r\n * It takes the min of the src and sums the alpha channels.\r\n */\r\n public static readonly ALPHA_EQUATION_DARKEN = 5;\r\n\r\n /** Defines that the resource is not delayed*/\r\n public static readonly DELAYLOADSTATE_NONE = 0;\r\n /** Defines that the resource was successfully delay loaded */\r\n public static readonly DELAYLOADSTATE_LOADED = 1;\r\n /** Defines that the resource is currently delay loading */\r\n public static readonly DELAYLOADSTATE_LOADING = 2;\r\n /** Defines that the resource is delayed and has not started loading */\r\n public static readonly DELAYLOADSTATE_NOTLOADED = 4;\r\n\r\n // Depth or Stencil test Constants.\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\r\n public static readonly NEVER = 0x0200;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n public static readonly ALWAYS = 0x0207;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\r\n public static readonly LESS = 0x0201;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\r\n public static readonly EQUAL = 0x0202;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\r\n public static readonly LEQUAL = 0x0203;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\r\n public static readonly GREATER = 0x0204;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\r\n public static readonly GEQUAL = 0x0206;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\r\n public static readonly NOTEQUAL = 0x0205;\r\n\r\n // Stencil Actions Constants.\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n public static readonly KEEP = 0x1e00;\r\n /** Passed to stencilOperation to specify that stencil value must be zero */\r\n public static readonly ZERO = 0x0000;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n public static readonly REPLACE = 0x1e01;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented */\r\n public static readonly INCR = 0x1e02;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented */\r\n public static readonly DECR = 0x1e03;\r\n /** Passed to stencilOperation to specify that stencil value must be inverted */\r\n public static readonly INVERT = 0x150a;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\r\n public static readonly INCR_WRAP = 0x8507;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\r\n public static readonly DECR_WRAP = 0x8508;\r\n\r\n /** Texture is not repeating outside of 0..1 UVs */\r\n public static readonly TEXTURE_CLAMP_ADDRESSMODE = 0;\r\n /** Texture is repeating outside of 0..1 UVs */\r\n public static readonly TEXTURE_WRAP_ADDRESSMODE = 1;\r\n /** Texture is repeating and mirrored */\r\n public static readonly TEXTURE_MIRROR_ADDRESSMODE = 2;\r\n\r\n /** Flag to create a storage texture */\r\n public static readonly TEXTURE_CREATIONFLAG_STORAGE = 1;\r\n\r\n /** ALPHA */\r\n public static readonly TEXTUREFORMAT_ALPHA = 0;\r\n /** LUMINANCE */\r\n public static readonly TEXTUREFORMAT_LUMINANCE = 1;\r\n /** LUMINANCE_ALPHA */\r\n public static readonly TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\r\n /** RGB */\r\n public static readonly TEXTUREFORMAT_RGB = 4;\r\n /** RGBA */\r\n public static readonly TEXTUREFORMAT_RGBA = 5;\r\n /** RED */\r\n public static readonly TEXTUREFORMAT_RED = 6;\r\n /** RED (2nd reference) */\r\n public static readonly TEXTUREFORMAT_R = 6;\r\n /** RG */\r\n public static readonly TEXTUREFORMAT_RG = 7;\r\n /** RED_INTEGER */\r\n public static readonly TEXTUREFORMAT_RED_INTEGER = 8;\r\n /** RED_INTEGER (2nd reference) */\r\n public static readonly TEXTUREFORMAT_R_INTEGER = 8;\r\n /** RG_INTEGER */\r\n public static readonly TEXTUREFORMAT_RG_INTEGER = 9;\r\n /** RGB_INTEGER */\r\n public static readonly TEXTUREFORMAT_RGB_INTEGER = 10;\r\n /** RGBA_INTEGER */\r\n public static readonly TEXTUREFORMAT_RGBA_INTEGER = 11;\r\n /** BGRA */\r\n public static readonly TEXTUREFORMAT_BGRA = 12;\r\n\r\n /** Depth 24 bits + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24_STENCIL8 = 13;\r\n /** Depth 32 bits float */\r\n public static readonly TEXTUREFORMAT_DEPTH32_FLOAT = 14;\r\n /** Depth 16 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH16 = 15;\r\n /** Depth 24 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24 = 16;\r\n /** Depth 24 bits unorm + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 = 17;\r\n /** Depth 32 bits float + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8 = 18;\r\n /** Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_STENCIL8 = 19;\r\n\r\n /** Compressed BC7 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM = 36492;\r\n /** Compressed BC7 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 36493;\r\n /** Compressed BC6 unsigned float */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 36495;\r\n /** Compressed BC6 signed float */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 36494;\r\n /** Compressed BC3 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5 = 33779;\r\n /** Compressed BC3 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919;\r\n /** Compressed BC2 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3 = 33778;\r\n /** Compressed BC2 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918;\r\n /** Compressed BC1 (RGBA) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1 = 33777;\r\n /** Compressed BC1 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1 = 33776;\r\n /** Compressed BC1 (SRGB+A) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917;\r\n /** Compressed BC1 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916;\r\n /** Compressed ASTC 4x4 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4 = 37808;\r\n /** Compressed ASTC 4x4 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840;\r\n /** Compressed ETC1 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL = 36196;\r\n /** Compressed ETC2 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB8_ETC2 = 37492;\r\n /** Compressed ETC2 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2 = 37493;\r\n /** Compressed ETC2 (RGB+A1) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494;\r\n /** Compressed ETC2 (SRGB+A1)*/\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495;\r\n /** Compressed ETC2 (RGB+A) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC = 37496;\r\n /** Compressed ETC2 (SRGB+1) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497;\r\n\r\n /** UNSIGNED_BYTE */\r\n public static readonly TEXTURETYPE_UNSIGNED_BYTE = 0;\r\n /** UNSIGNED_BYTE (2nd reference) */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT = 0;\r\n /** FLOAT */\r\n public static readonly TEXTURETYPE_FLOAT = 1;\r\n /** HALF_FLOAT */\r\n public static readonly TEXTURETYPE_HALF_FLOAT = 2;\r\n /** BYTE */\r\n public static readonly TEXTURETYPE_BYTE = 3;\r\n /** SHORT */\r\n public static readonly TEXTURETYPE_SHORT = 4;\r\n /** UNSIGNED_SHORT */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT = 5;\r\n /** INT */\r\n public static readonly TEXTURETYPE_INT = 6;\r\n /** UNSIGNED_INT */\r\n public static readonly TEXTURETYPE_UNSIGNED_INTEGER = 7;\r\n /** UNSIGNED_SHORT_4_4_4_4 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\r\n /** UNSIGNED_SHORT_5_5_5_1 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\r\n /** UNSIGNED_SHORT_5_6_5 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\r\n /** UNSIGNED_INT_2_10_10_10_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\r\n /** UNSIGNED_INT_24_8 */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\r\n /** UNSIGNED_INT_10F_11F_11F_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\r\n /** UNSIGNED_INT_5_9_9_9_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\r\n /** FLOAT_32_UNSIGNED_INT_24_8_REV */\r\n public static readonly TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\r\n /** UNDEFINED */\r\n public static readonly TEXTURETYPE_UNDEFINED = 16;\r\n\r\n /** 2D Texture target*/\r\n public static readonly TEXTURE_2D = 3553;\r\n /** 2D Array Texture target */\r\n public static readonly TEXTURE_2D_ARRAY = 35866;\r\n /** Cube Map Texture target */\r\n public static readonly TEXTURE_CUBE_MAP = 34067;\r\n /** Cube Map Array Texture target */\r\n public static readonly TEXTURE_CUBE_MAP_ARRAY = 0xdeadbeef;\r\n /** 3D Texture target */\r\n public static readonly TEXTURE_3D = 32879;\r\n\r\n /** nearest is mag = nearest and min = nearest and no mip */\r\n public static readonly TEXTURE_NEAREST_SAMPLINGMODE = 1;\r\n /** mag = nearest and min = nearest and mip = none */\r\n public static readonly TEXTURE_NEAREST_NEAREST = 1;\r\n\r\n /** Bilinear is mag = linear and min = linear and no mip */\r\n public static readonly TEXTURE_BILINEAR_SAMPLINGMODE = 2;\r\n /** mag = linear and min = linear and mip = none */\r\n public static readonly TEXTURE_LINEAR_LINEAR = 2;\r\n\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n public static readonly TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n public static readonly TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\r\n\r\n /** mag = nearest and min = nearest and mip = nearest */\r\n public static readonly TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\r\n /** mag = nearest and min = linear and mip = nearest */\r\n public static readonly TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\r\n /** mag = nearest and min = linear and mip = linear */\r\n public static readonly TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\r\n /** mag = nearest and min = linear and mip = none */\r\n public static readonly TEXTURE_NEAREST_LINEAR = 7;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n public static readonly TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8;\r\n /** mag = linear and min = nearest and mip = nearest */\r\n public static readonly TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\r\n /** mag = linear and min = nearest and mip = linear */\r\n public static readonly TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n public static readonly TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11;\r\n /** mag = linear and min = nearest and mip = none */\r\n public static readonly TEXTURE_LINEAR_NEAREST = 12;\r\n\r\n /** Explicit coordinates mode */\r\n public static readonly TEXTURE_EXPLICIT_MODE = 0;\r\n /** Spherical coordinates mode */\r\n public static readonly TEXTURE_SPHERICAL_MODE = 1;\r\n /** Planar coordinates mode */\r\n public static readonly TEXTURE_PLANAR_MODE = 2;\r\n /** Cubic coordinates mode */\r\n public static readonly TEXTURE_CUBIC_MODE = 3;\r\n /** Projection coordinates mode */\r\n public static readonly TEXTURE_PROJECTION_MODE = 4;\r\n /** Skybox coordinates mode */\r\n public static readonly TEXTURE_SKYBOX_MODE = 5;\r\n /** Inverse Cubic coordinates mode */\r\n public static readonly TEXTURE_INVCUBIC_MODE = 6;\r\n /** Equirectangular coordinates mode */\r\n public static readonly TEXTURE_EQUIRECTANGULAR_MODE = 7;\r\n /** Equirectangular Fixed coordinates mode */\r\n public static readonly TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\r\n /** Equirectangular Fixed Mirrored coordinates mode */\r\n public static readonly TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\r\n\r\n /** Offline (baking) quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_OFFLINE = 4096;\r\n\r\n /** High quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_HIGH = 64;\r\n\r\n /** Medium quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_MEDIUM = 16;\r\n\r\n /** Low quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_LOW = 8;\r\n\r\n // Texture rescaling mode\r\n /** Defines that texture rescaling will use a floor to find the closer power of 2 size */\r\n public static readonly SCALEMODE_FLOOR = 1;\r\n /** Defines that texture rescaling will look for the nearest power of 2 size */\r\n public static readonly SCALEMODE_NEAREST = 2;\r\n /** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\r\n public static readonly SCALEMODE_CEILING = 3;\r\n\r\n /**\r\n * The dirty texture flag value\r\n */\r\n public static readonly MATERIAL_TextureDirtyFlag = 1;\r\n /**\r\n * The dirty light flag value\r\n */\r\n public static readonly MATERIAL_LightDirtyFlag = 2;\r\n /**\r\n * The dirty fresnel flag value\r\n */\r\n public static readonly MATERIAL_FresnelDirtyFlag = 4;\r\n /**\r\n * The dirty attribute flag value\r\n */\r\n public static readonly MATERIAL_AttributesDirtyFlag = 8;\r\n /**\r\n * The dirty misc flag value\r\n */\r\n public static readonly MATERIAL_MiscDirtyFlag = 16;\r\n /**\r\n * The dirty prepass flag value\r\n */\r\n public static readonly MATERIAL_PrePassDirtyFlag = 32;\r\n /**\r\n * The all dirty flag value\r\n */\r\n public static readonly MATERIAL_AllDirtyFlag = 63;\r\n\r\n /**\r\n * Returns the triangle fill mode\r\n */\r\n public static readonly MATERIAL_TriangleFillMode = 0;\r\n /**\r\n * Returns the wireframe mode\r\n */\r\n public static readonly MATERIAL_WireFrameFillMode = 1;\r\n /**\r\n * Returns the point fill mode\r\n */\r\n public static readonly MATERIAL_PointFillMode = 2;\r\n /**\r\n * Returns the point list draw mode\r\n */\r\n public static readonly MATERIAL_PointListDrawMode = 3;\r\n /**\r\n * Returns the line list draw mode\r\n */\r\n public static readonly MATERIAL_LineListDrawMode = 4;\r\n /**\r\n * Returns the line loop draw mode\r\n */\r\n public static readonly MATERIAL_LineLoopDrawMode = 5;\r\n /**\r\n * Returns the line strip draw mode\r\n */\r\n public static readonly MATERIAL_LineStripDrawMode = 6;\r\n\r\n /**\r\n * Returns the triangle strip draw mode\r\n */\r\n public static readonly MATERIAL_TriangleStripDrawMode = 7;\r\n /**\r\n * Returns the triangle fan draw mode\r\n */\r\n public static readonly MATERIAL_TriangleFanDrawMode = 8;\r\n\r\n /**\r\n * Stores the clock-wise side orientation\r\n */\r\n public static readonly MATERIAL_ClockWiseSideOrientation = 0;\r\n /**\r\n * Stores the counter clock-wise side orientation\r\n */\r\n public static readonly MATERIAL_CounterClockWiseSideOrientation = 1;\r\n\r\n /**\r\n * Nothing\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_NothingTrigger = 0;\r\n /**\r\n * On pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickTrigger = 1;\r\n /**\r\n * On left pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnLeftPickTrigger = 2;\r\n /**\r\n * On right pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnRightPickTrigger = 3;\r\n /**\r\n * On center pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnCenterPickTrigger = 4;\r\n /**\r\n * On pick down\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickDownTrigger = 5;\r\n /**\r\n * On double pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnDoublePickTrigger = 6;\r\n /**\r\n * On pick up\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickUpTrigger = 7;\r\n /**\r\n * On pick out.\r\n * This trigger will only be raised if you also declared a OnPickDown\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickOutTrigger = 16;\r\n /**\r\n * On long press\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnLongPressTrigger = 8;\r\n /**\r\n * On pointer over\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPointerOverTrigger = 9;\r\n /**\r\n * On pointer out\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPointerOutTrigger = 10;\r\n /**\r\n * On every frame\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnEveryFrameTrigger = 11;\r\n /**\r\n * On intersection enter\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnIntersectionEnterTrigger = 12;\r\n /**\r\n * On intersection exit\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnIntersectionExitTrigger = 13;\r\n /**\r\n * On key down\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnKeyDownTrigger = 14;\r\n /**\r\n * On key up\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnKeyUpTrigger = 15;\r\n\r\n /**\r\n * Billboard mode will only apply to Y axis\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_Y = 2;\r\n /**\r\n * Billboard mode will apply to all axes\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_ALL = 7;\r\n /**\r\n * Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_STRETCHED = 8;\r\n /**\r\n * Special billboard mode where the particle will be billboard to the camera but only around the axis of the direction of particle emission\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL = 9;\r\n\r\n /** Default culling strategy : this is an exclusion test and it's the more accurate.\r\n * Test order :\r\n * Is the bounding sphere outside the frustum ?\r\n * If not, are the bounding box vertices outside the frustum ?\r\n * It not, then the cullable object is in the frustum.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_STANDARD = 0;\r\n /** Culling strategy : Bounding Sphere Only.\r\n * This is an exclusion test. It's faster than the standard strategy because the bounding box is not tested.\r\n * It's also less accurate than the standard because some not visible objects can still be selected.\r\n * Test : is the bounding sphere outside the frustum ?\r\n * If not, then the cullable object is in the frustum.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\r\n /** Culling strategy : Optimistic Inclusion.\r\n * This in an inclusion test first, then the standard exclusion test.\r\n * This can be faster when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the standard test when the tested object center is not the frustum but one of its bounding box vertex is still inside.\r\n * Anyway, it's as accurate as the standard strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the default culling strategy.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\r\n /** Culling strategy : Optimistic Inclusion then Bounding Sphere Only.\r\n * This in an inclusion test first, then the bounding sphere only exclusion test.\r\n * This can be the fastest test when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the BoundingSphereOnly strategy when the tested object center is not in the frustum but its bounding sphere still intersects it.\r\n * It's less accurate than the standard strategy and as accurate as the BoundingSphereOnly strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the Bounding Sphere Only strategy. No Bounding Box is tested here.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\r\n\r\n /**\r\n * No logging while loading\r\n */\r\n public static readonly SCENELOADER_NO_LOGGING = 0;\r\n /**\r\n * Minimal logging while loading\r\n */\r\n public static readonly SCENELOADER_MINIMAL_LOGGING = 1;\r\n /**\r\n * Summary logging while loading\r\n */\r\n public static readonly SCENELOADER_SUMMARY_LOGGING = 2;\r\n /**\r\n * Detailed logging while loading\r\n */\r\n public static readonly SCENELOADER_DETAILED_LOGGING = 3;\r\n\r\n /**\r\n * Constant used to retrieve the irradiance texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_IRRADIANCE_TEXTURE_TYPE = 0;\r\n /**\r\n * Constant used to retrieve the position texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_POSITION_TEXTURE_INDEX)\r\n */\r\n public static readonly PREPASS_POSITION_TEXTURE_TYPE = 1;\r\n /**\r\n * Constant used to retrieve the velocity texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_VELOCITY_TEXTURE_INDEX)\r\n */\r\n public static readonly PREPASS_VELOCITY_TEXTURE_TYPE = 2;\r\n /**\r\n * Constant used to retrieve the reflectivity texture index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_REFLECTIVITY_TEXTURE_TYPE = 3;\r\n /**\r\n * Constant used to retrieve the lit color texture index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_COLOR_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_COLOR_TEXTURE_TYPE = 4;\r\n /**\r\n * Constant used to retrieve depth index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_DEPTH_TEXTURE_TYPE = 5;\r\n /**\r\n * Constant used to retrieve normal index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_NORMAL_TEXTURE_TYPE = 6;\r\n /**\r\n * Constant used to retrieve albedo index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_ALBEDO_SQRT_TEXTURE_TYPE = 7;\r\n\r\n /** Flag to create a readable buffer (the buffer can be the source of a copy) */\r\n public static readonly BUFFER_CREATIONFLAG_READ = 1;\r\n /** Flag to create a writable buffer (the buffer can be the destination of a copy) */\r\n public static readonly BUFFER_CREATIONFLAG_WRITE = 2;\r\n /** Flag to create a readable and writable buffer */\r\n public static readonly BUFFER_CREATIONFLAG_READWRITE = 3;\r\n /** Flag to create a buffer suitable to be used as a uniform buffer */\r\n public static readonly BUFFER_CREATIONFLAG_UNIFORM = 4;\r\n /** Flag to create a buffer suitable to be used as a vertex buffer */\r\n public static readonly BUFFER_CREATIONFLAG_VERTEX = 8;\r\n /** Flag to create a buffer suitable to be used as an index buffer */\r\n public static readonly BUFFER_CREATIONFLAG_INDEX = 16;\r\n /** Flag to create a buffer suitable to be used as a storage buffer */\r\n public static readonly BUFFER_CREATIONFLAG_STORAGE = 32;\r\n\r\n /**\r\n * Prefixes used by the engine for sub mesh draw wrappers\r\n */\r\n\r\n /** @internal */\r\n public static readonly RENDERPASS_MAIN = 0;\r\n\r\n /**\r\n * Constant used as key code for Alt key\r\n */\r\n public static readonly INPUT_ALT_KEY = 18;\r\n\r\n /**\r\n * Constant used as key code for Ctrl key\r\n */\r\n public static readonly INPUT_CTRL_KEY = 17;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Left Win, Left Cmd)\r\n */\r\n public static readonly INPUT_META_KEY1 = 91;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Right Win)\r\n */\r\n public static readonly INPUT_META_KEY2 = 92;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Right Win, Right Cmd)\r\n */\r\n public static readonly INPUT_META_KEY3 = 93;\r\n\r\n /**\r\n * Constant used as key code for Shift key\r\n */\r\n public static readonly INPUT_SHIFT_KEY = 16;\r\n\r\n /** Standard snapshot rendering. In this mode, some form of dynamic behavior is possible (for eg, uniform buffers are still updated) */\r\n public static readonly SNAPSHOTRENDERING_STANDARD = 0;\r\n\r\n /** Fast snapshot rendering. In this mode, everything is static and only some limited form of dynamic behaviour is possible */\r\n public static readonly SNAPSHOTRENDERING_FAST = 1;\r\n\r\n /**\r\n * This is the default projection mode used by the cameras.\r\n * It helps recreating a feeling of perspective and better appreciate depth.\r\n * This is the best way to simulate real life cameras.\r\n */\r\n public static readonly PERSPECTIVE_CAMERA = 0;\r\n /**\r\n * This helps creating camera with an orthographic mode.\r\n * Orthographic is commonly used in engineering as a means to produce object specifications that communicate dimensions unambiguously, each line of 1 unit length (cm, meter..whatever) will appear to have the same length everywhere on the drawing. This allows the drafter to dimension only a subset of lines and let the reader know that other lines of that length on the drawing are also that length in reality. Every parallel line in the drawing is also parallel in the object.\r\n */\r\n public static readonly ORTHOGRAPHIC_CAMERA = 1;\r\n\r\n /**\r\n * This is the default FOV mode for perspective cameras.\r\n * This setting aligns the upper and lower bounds of the viewport to the upper and lower bounds of the camera frustum.\r\n */\r\n public static readonly FOVMODE_VERTICAL_FIXED = 0;\r\n /**\r\n * This setting aligns the left and right bounds of the viewport to the left and right bounds of the camera frustum.\r\n */\r\n public static readonly FOVMODE_HORIZONTAL_FIXED = 1;\r\n\r\n /**\r\n * This specifies there is no need for a camera rig.\r\n * Basically only one eye is rendered corresponding to the camera.\r\n */\r\n public static readonly RIG_MODE_NONE = 0;\r\n /**\r\n * Simulates a camera Rig with one blue eye and one red eye.\r\n * This can be use with 3d blue and red glasses.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10;\r\n /**\r\n * Defines that both eyes of the camera will be rendered side by side with a parallel target.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11;\r\n /**\r\n * Defines that both eyes of the camera will be rendered side by side with a none parallel target.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12;\r\n /**\r\n * Defines that both eyes of the camera will be rendered over under each other.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_OVERUNDER = 13;\r\n /**\r\n * Defines that both eyes of the camera will be rendered on successive lines interlaced for passive 3d monitors.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_INTERLACED = 14;\r\n /**\r\n * Defines that both eyes of the camera should be renderered in a VR mode (carbox).\r\n */\r\n public static readonly RIG_MODE_VR = 20;\r\n /**\r\n * Custom rig mode allowing rig cameras to be populated manually with any number of cameras\r\n */\r\n public static readonly RIG_MODE_CUSTOM = 22;\r\n\r\n /**\r\n * Maximum number of uv sets supported\r\n */\r\n public static readonly MAX_SUPPORTED_UV_SETS = 6;\r\n\r\n /**\r\n * GL constants\r\n */\r\n /** Alpha blend equation: ADD */\r\n public static readonly GL_ALPHA_EQUATION_ADD = 0x8006;\r\n /** Alpha equation: MIN */\r\n public static readonly GL_ALPHA_EQUATION_MIN = 0x8007;\r\n /** Alpha equation: MAX */\r\n public static readonly GL_ALPHA_EQUATION_MAX = 0x8008;\r\n /** Alpha equation: SUBTRACT */\r\n public static readonly GL_ALPHA_EQUATION_SUBTRACT = 0x800a;\r\n /** Alpha equation: REVERSE_SUBTRACT */\r\n public static readonly GL_ALPHA_EQUATION_REVERSE_SUBTRACT = 0x800b;\r\n\r\n /** Alpha blend function: SRC */\r\n public static readonly GL_ALPHA_FUNCTION_SRC = 0x0300;\r\n /** Alpha blend function: ONE_MINUS_SRC */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR = 0x0301;\r\n /** Alpha blend function: SRC_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_SRC_ALPHA = 0x0302;\r\n /** Alpha blend function: ONE_MINUS_SRC_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA = 0x0303;\r\n /** Alpha blend function: DST_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_DST_ALPHA = 0x0304;\r\n /** Alpha blend function: ONE_MINUS_DST_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA = 0x0305;\r\n /** Alpha blend function: ONE_MINUS_DST */\r\n public static readonly GL_ALPHA_FUNCTION_DST_COLOR = 0x0306;\r\n /** Alpha blend function: ONE_MINUS_DST */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR = 0x0307;\r\n /** Alpha blend function: SRC_ALPHA_SATURATED */\r\n public static readonly GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED = 0x0308;\r\n /** Alpha blend function: CONSTANT */\r\n public static readonly GL_ALPHA_FUNCTION_CONSTANT_COLOR = 0x8001;\r\n /** Alpha blend function: ONE_MINUS_CONSTANT */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR = 0x8002;\r\n /** Alpha blend function: CONSTANT_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_CONSTANT_ALPHA = 0x8003;\r\n /** Alpha blend function: ONE_MINUS_CONSTANT_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA = 0x8004;\r\n\r\n /** URL to the snippet server. Points to the public snippet server by default */\r\n public static SnippetUrl = \"https://snippet.babylonjs.com\";\r\n}\r\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/constants.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,6EAA6E;AAC7E,MAAM,OAAO,SAAS;;AAClB,8CAA8C;AACvB,uBAAa,GAAG,CAAC,CAAC;AACzC,4DAA4D;AACrC,mBAAS,GAAG,CAAC,CAAC;AACrC,8EAA8E;AACvD,uBAAa,GAAG,CAAC,CAAC;AACzC,uDAAuD;AAChC,wBAAc,GAAG,CAAC,CAAC;AAC1C,gDAAgD;AACzB,wBAAc,GAAG,CAAC,CAAC;AAC1C,wEAAwE;AACjD,yBAAe,GAAG,CAAC,CAAC;AAC3C,gDAAgD;AACzB,sBAAY,GAAG,CAAC,CAAC;AACxC,kEAAkE;AAC3C,6BAAmB,GAAG,CAAC,CAAC;AAC/C;;;GAGG;AACoB,wCAA8B,GAAG,CAAC,CAAC;AAC1D,kEAAkE;AAC3C,2BAAiB,GAAG,CAAC,CAAC;AAC7C;;;GAGG;AACoB,0BAAgB,GAAG,EAAE,CAAC;AAC7C;;;GAGG;AACoB,6BAAmB,GAAG,EAAE,CAAC;AAChD;;;GAGG;AACoB,4BAAkB,GAAG,EAAE,CAAC;AAC/C;;GAEG;AACoB,+BAAqB,GAAG,EAAE,CAAC;AAClD;;;GAGG;AACoB,uCAA6B,GAAG,EAAE,CAAC;AAC1D;;;GAGG;AACoB,8BAAoB,GAAG,EAAE,CAAC;AACjD;;;GAGG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAC5C;;;GAGG;AACoB,gCAAsB,GAAG,EAAE,CAAC;AAEnD,iDAAiD;AAC1B,4BAAkB,GAAG,CAAC,CAAC;AAC9C,0DAA0D;AACnC,kCAAwB,GAAG,CAAC,CAAC;AACpD,kEAAkE;AAC3C,yCAA+B,GAAG,CAAC,CAAC;AAC3D,2DAA2D;AACpC,4BAAkB,GAAG,CAAC,CAAC;AAC9C,2DAA2D;AACpC,4BAAkB,GAAG,CAAC,CAAC;AAC9C;;;GAGG;AACoB,+BAAqB,GAAG,CAAC,CAAC;AAEjD,8CAA8C;AACvB,6BAAmB,GAAG,CAAC,CAAC;AAC/C,8DAA8D;AACvC,+BAAqB,GAAG,CAAC,CAAC;AACjD,2DAA2D;AACpC,gCAAsB,GAAG,CAAC,CAAC;AAClD,uEAAuE;AAChD,kCAAwB,GAAG,CAAC,CAAC;AAEpD,mCAAmC;AACnC,+HAA+H;AACxG,eAAK,GAAG,MAAM,CAAC;AACtC,2JAA2J;AACpI,gBAAM,GAAG,MAAM,CAAC;AACvC,kJAAkJ;AAC3H,cAAI,GAAG,MAAM,CAAC;AACrC,kJAAkJ;AAC3H,eAAK,GAAG,MAAM,CAAC;AACtC,8JAA8J;AACvI,gBAAM,GAAG,MAAM,CAAC;AACvC,qJAAqJ;AAC9H,iBAAO,GAAG,MAAM,CAAC;AACxC,iKAAiK;AAC1I,gBAAM,GAAG,MAAM,CAAC;AACvC,qJAAqJ;AAC9H,kBAAQ,GAAG,MAAM,CAAC;AAEzC,6BAA6B;AAC7B,4EAA4E;AACrD,cAAI,GAAG,MAAM,CAAC;AACrC,4EAA4E;AACrD,cAAI,GAAG,MAAM,CAAC;AACrC,gFAAgF;AACzD,iBAAO,GAAG,MAAM,CAAC;AACxC,mFAAmF;AAC5D,cAAI,GAAG,MAAM,CAAC;AACrC,mFAAmF;AAC5D,cAAI,GAAG,MAAM,CAAC;AACrC,gFAAgF;AACzD,gBAAM,GAAG,MAAM,CAAC;AACvC,iGAAiG;AAC1E,mBAAS,GAAG,MAAM,CAAC;AAC1C,iGAAiG;AAC1E,mBAAS,GAAG,MAAM,CAAC;AAE1C,mDAAmD;AAC5B,mCAAyB,GAAG,CAAC,CAAC;AACrD,+CAA+C;AACxB,kCAAwB,GAAG,CAAC,CAAC;AACpD,wCAAwC;AACjB,oCAA0B,GAAG,CAAC,CAAC;AAEtD,uCAAuC;AAChB,sCAA4B,GAAG,CAAC,CAAC;AAExD,YAAY;AACW,6BAAmB,GAAG,CAAC,CAAC;AAC/C,gBAAgB;AACO,iCAAuB,GAAG,CAAC,CAAC;AACnD,sBAAsB;AACC,uCAA6B,GAAG,CAAC,CAAC;AACzD,UAAU;AACa,2BAAiB,GAAG,CAAC,CAAC;AAC7C,WAAW;AACY,4BAAkB,GAAG,CAAC,CAAC;AAC9C,UAAU;AACa,2BAAiB,GAAG,CAAC,CAAC;AAC7C,0BAA0B;AACH,yBAAe,GAAG,CAAC,CAAC;AAC3C,SAAS;AACc,0BAAgB,GAAG,CAAC,CAAC;AAC5C,kBAAkB;AACK,mCAAyB,GAAG,CAAC,CAAC;AACrD,kCAAkC;AACX,iCAAuB,GAAG,CAAC,CAAC;AACnD,iBAAiB;AACM,kCAAwB,GAAG,CAAC,CAAC;AACpD,kBAAkB;AACK,mCAAyB,GAAG,EAAE,CAAC;AACtD,mBAAmB;AACI,oCAA0B,GAAG,EAAE,CAAC;AACvD,WAAW;AACY,4BAAkB,GAAG,EAAE,CAAC;AAE/C,qCAAqC;AACd,wCAA8B,GAAG,EAAE,CAAC;AAC3D,0BAA0B;AACH,qCAA2B,GAAG,EAAE,CAAC;AACxD,oBAAoB;AACG,+BAAqB,GAAG,EAAE,CAAC;AAClD,oBAAoB;AACG,+BAAqB,GAAG,EAAE,CAAC;AAClD,2CAA2C;AACpB,6CAAmC,GAAG,EAAE,CAAC;AAChE,2CAA2C;AACpB,6CAAmC,GAAG,EAAE,CAAC;AAChE,qBAAqB;AACE,gCAAsB,GAAG,EAAE,CAAC;AAEnD,qBAAqB;AACE,kDAAwC,GAAG,KAAK,CAAC;AACxE,4BAA4B;AACL,wDAA8C,GAAG,KAAK,CAAC;AAC9E,oCAAoC;AACb,0DAAgD,GAAG,KAAK,CAAC;AAChF,kCAAkC;AACX,wDAA8C,GAAG,KAAK,CAAC;AAC9E,qBAAqB;AACE,iDAAuC,GAAG,KAAK,CAAC;AACvE,4BAA4B;AACL,2DAAiD,GAAG,KAAK,CAAC;AACjF,qBAAqB;AACE,iDAAuC,GAAG,KAAK,CAAC;AACvE,4BAA4B;AACL,2DAAiD,GAAG,KAAK,CAAC;AACjF,4BAA4B;AACL,iDAAuC,GAAG,KAAK,CAAC;AACvE,2BAA2B;AACJ,gDAAsC,GAAG,KAAK,CAAC;AACtE,8BAA8B;AACP,2DAAiD,GAAG,KAAK,CAAC;AACjF,4BAA4B;AACL,qDAA2C,GAAG,KAAK,CAAC;AAC3E,0BAA0B;AACH,gDAAsC,GAAG,KAAK,CAAC;AACtE,iCAAiC;AACV,4DAAkD,GAAG,KAAK,CAAC;AAClF,4BAA4B;AACL,iDAAuC,GAAG,KAAK,CAAC;AACvE,4BAA4B;AACL,4CAAkC,GAAG,KAAK,CAAC;AAClE,6BAA6B;AACN,6CAAmC,GAAG,KAAK,CAAC;AACnE,+BAA+B;AACR,gEAAsD,GAAG,KAAK,CAAC;AACtF,+BAA+B;AACR,iEAAuD,GAAG,KAAK,CAAC;AACvF,8BAA8B;AACP,iDAAuC,GAAG,KAAK,CAAC;AACvE,+BAA+B;AACR,wDAA8C,GAAG,KAAK,CAAC;AAE9E,oBAAoB;AACG,mCAAyB,GAAG,CAAC,CAAC;AACrD,oCAAoC;AACb,kCAAwB,GAAG,CAAC,CAAC;AACpD,YAAY;AACW,2BAAiB,GAAG,CAAC,CAAC;AAC7C,iBAAiB;AACM,gCAAsB,GAAG,CAAC,CAAC;AAClD,WAAW;AACY,0BAAgB,GAAG,CAAC,CAAC;AAC5C,YAAY;AACW,2BAAiB,GAAG,CAAC,CAAC;AAC7C,qBAAqB;AACE,oCAA0B,GAAG,CAAC,CAAC;AACtD,UAAU;AACa,yBAAe,GAAG,CAAC,CAAC;AAC3C,mBAAmB;AACI,sCAA4B,GAAG,CAAC,CAAC;AACxD,6BAA6B;AACN,4CAAkC,GAAG,CAAC,CAAC;AAC9D,6BAA6B;AACN,4CAAkC,GAAG,CAAC,CAAC;AAC9D,2BAA2B;AACJ,0CAAgC,GAAG,EAAE,CAAC;AAC7D,kCAAkC;AACX,iDAAuC,GAAG,EAAE,CAAC;AACpE,wBAAwB;AACD,uCAA6B,GAAG,EAAE,CAAC;AAC1D,mCAAmC;AACZ,kDAAwC,GAAG,EAAE,CAAC;AACrE,+BAA+B;AACR,8CAAoC,GAAG,EAAE,CAAC;AACjE,qCAAqC;AACd,oDAA0C,GAAG,EAAE,CAAC;AACvE,gBAAgB;AACO,+BAAqB,GAAG,EAAE,CAAC;AAElD,uBAAuB;AACA,oBAAU,GAAG,IAAI,CAAC;AACzC,8BAA8B;AACP,0BAAgB,GAAG,KAAK,CAAC;AAChD,8BAA8B;AACP,0BAAgB,GAAG,KAAK,CAAC;AAChD,oCAAoC;AACb,gCAAsB,GAAG,UAAU,CAAC;AAC3D,wBAAwB;AACD,oBAAU,GAAG,KAAK,CAAC;AAE1C,4DAA4D;AACrC,sCAA4B,GAAG,CAAC,CAAC;AACxD,qDAAqD;AAC9B,iCAAuB,GAAG,CAAC,CAAC;AAEnD,2DAA2D;AACpC,uCAA6B,GAAG,CAAC,CAAC;AACzD,mDAAmD;AAC5B,+BAAqB,GAAG,CAAC,CAAC;AAEjD,kEAAkE;AAC3C,wCAA8B,GAAG,CAAC,CAAC;AAC1D,kEAAkE;AAC3C,yCAA+B,GAAG,CAAC,CAAC;AAE3D,wDAAwD;AACjC,4CAAkC,GAAG,CAAC,CAAC;AAC9D,uDAAuD;AAChC,2CAAiC,GAAG,CAAC,CAAC;AAC7D,sDAAsD;AAC/B,0CAAgC,GAAG,CAAC,CAAC;AAC5D,oDAAoD;AAC7B,gCAAsB,GAAG,CAAC,CAAC;AAClD,kEAAkE;AAC3C,2CAAiC,GAAG,CAAC,CAAC;AAC7D,uDAAuD;AAChC,2CAAiC,GAAG,CAAC,CAAC;AAC7D,sDAAsD;AAC/B,0CAAgC,GAAG,EAAE,CAAC;AAC7D,kEAAkE;AAC3C,0CAAgC,GAAG,EAAE,CAAC;AAC7D,oDAAoD;AAC7B,gCAAsB,GAAG,EAAE,CAAC;AAEnD,gCAAgC;AACT,+BAAqB,GAAG,CAAC,CAAC;AACjD,iCAAiC;AACV,gCAAsB,GAAG,CAAC,CAAC;AAClD,8BAA8B;AACP,6BAAmB,GAAG,CAAC,CAAC;AAC/C,6BAA6B;AACN,4BAAkB,GAAG,CAAC,CAAC;AAC9C,kCAAkC;AACX,iCAAuB,GAAG,CAAC,CAAC;AACnD,8BAA8B;AACP,6BAAmB,GAAG,CAAC,CAAC;AAC/C,qCAAqC;AACd,+BAAqB,GAAG,CAAC,CAAC;AACjD,uCAAuC;AAChB,sCAA4B,GAAG,CAAC,CAAC;AACxD,6CAA6C;AACtB,4CAAkC,GAAG,CAAC,CAAC;AAC9D,sDAAsD;AAC/B,qDAA2C,GAAG,CAAC,CAAC;AAEvE,qDAAqD;AAC9B,2CAAiC,GAAG,IAAI,CAAC;AAEhE,yCAAyC;AAClB,wCAA8B,GAAG,EAAE,CAAC;AAE3D,2CAA2C;AACpB,0CAAgC,GAAG,EAAE,CAAC;AAE7D,wCAAwC;AACjB,uCAA6B,GAAG,CAAC,CAAC;AAEzD,yBAAyB;AACzB,yFAAyF;AAClE,yBAAe,GAAG,CAAC,CAAC;AAC3C,+EAA+E;AACxD,2BAAiB,GAAG,CAAC,CAAC;AAC7C,wFAAwF;AACjE,2BAAiB,GAAG,CAAC,CAAC;AAE7C;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,iCAAuB,GAAG,CAAC,CAAC;AACnD;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,sCAA4B,GAAG,CAAC,CAAC;AACxD;;GAEG;AACoB,gCAAsB,GAAG,EAAE,CAAC;AACnD;;GAEG;AACoB,mCAAyB,GAAG,EAAE,CAAC;AACtD;;GAEG;AACoB,+BAAqB,GAAG,EAAE,CAAC;AAElD;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;GAEG;AACoB,gCAAsB,GAAG,CAAC,CAAC;AAClD;;GAEG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AAEtD;;GAEG;AACoB,wCAA8B,GAAG,CAAC,CAAC;AAC1D;;GAEG;AACoB,sCAA4B,GAAG,CAAC,CAAC;AAExD;;GAEG;AACoB,2CAAiC,GAAG,CAAC,CAAC;AAC7D;;GAEG;AACoB,kDAAwC,GAAG,CAAC,CAAC;AAEpE;;;GAGG;AACoB,+BAAqB,GAAG,CAAC,CAAC;AACjD;;;GAGG;AACoB,8BAAoB,GAAG,CAAC,CAAC;AAChD;;;GAGG;AACoB,kCAAwB,GAAG,CAAC,CAAC;AACpD;;;GAGG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;;GAGG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;;GAGG;AACoB,kCAAwB,GAAG,CAAC,CAAC;AACpD;;;GAGG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;;GAGG;AACoB,gCAAsB,GAAG,CAAC,CAAC;AAClD;;;;GAIG;AACoB,iCAAuB,GAAG,EAAE,CAAC;AACpD;;;GAGG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;;GAGG;AACoB,qCAA2B,GAAG,CAAC,CAAC;AACvD;;;GAGG;AACoB,oCAA0B,GAAG,EAAE,CAAC;AACvD;;;GAGG;AACoB,oCAA0B,GAAG,EAAE,CAAC;AACvD;;;GAGG;AACoB,2CAAiC,GAAG,EAAE,CAAC;AAC9D;;;GAGG;AACoB,0CAAgC,GAAG,EAAE,CAAC;AAC7D;;;GAGG;AACoB,iCAAuB,GAAG,EAAE,CAAC;AACpD;;;GAGG;AACoB,+BAAqB,GAAG,EAAE,CAAC;AAElD;;GAEG;AACoB,mCAAyB,GAAG,CAAC,CAAC;AACrD;;GAEG;AACoB,qCAA2B,GAAG,CAAC,CAAC;AACvD;;GAEG;AACoB,2CAAiC,GAAG,CAAC,CAAC;AAC7D;;GAEG;AACoB,iDAAuC,GAAG,CAAC,CAAC;AAEnE;;;;;GAKG;AACoB,yCAA+B,GAAG,CAAC,CAAC;AAC3D;;;;;GAKG;AACoB,oDAA0C,GAAG,CAAC,CAAC;AACtE;;;;;;;;GAQG;AACoB,qDAA2C,GAAG,CAAC,CAAC;AACvE;;;;;;;;GAQG;AACoB,uEAA6D,GAAG,CAAC,CAAC;AAEzF;;GAEG;AACoB,gCAAsB,GAAG,CAAC,CAAC;AAClD;;GAEG;AACoB,qCAA2B,GAAG,CAAC,CAAC;AACvD;;GAEG;AACoB,qCAA2B,GAAG,CAAC,CAAC;AACvD;;GAEG;AACoB,sCAA4B,GAAG,CAAC,CAAC;AAExD;;;GAGG;AACoB,yCAA+B,GAAG,CAAC,CAAC;AAC3D;;;GAGG;AACoB,uCAA6B,GAAG,CAAC,CAAC;AACzD;;;GAGG;AACoB,uCAA6B,GAAG,CAAC,CAAC;AACzD;;;GAGG;AACoB,2CAAiC,GAAG,CAAC,CAAC;AAC7D;;;GAGG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;;GAGG;AACoB,oCAA0B,GAAG,CAAC,CAAC;AACtD;;;GAGG;AACoB,qCAA2B,GAAG,CAAC,CAAC;AACvD;;;GAGG;AACoB,0CAAgC,GAAG,CAAC,CAAC;AAE5D,gFAAgF;AACzD,kCAAwB,GAAG,CAAC,CAAC;AACpD,qFAAqF;AAC9D,mCAAyB,GAAG,CAAC,CAAC;AACrD,oDAAoD;AAC7B,uCAA6B,GAAG,CAAC,CAAC;AACzD,sEAAsE;AAC/C,qCAA2B,GAAG,CAAC,CAAC;AACvD,qEAAqE;AAC9C,oCAA0B,GAAG,CAAC,CAAC;AACtD,qEAAqE;AAC9C,mCAAyB,GAAG,EAAE,CAAC;AACtD,sEAAsE;AAC/C,qCAA2B,GAAG,EAAE,CAAC;AAExD;;GAEG;AAEH,gBAAgB;AACO,yBAAe,GAAG,CAAC,CAAC;AAE3C;;GAEG;AACoB,uBAAa,GAAG,EAAE,CAAC;AAE1C;;GAEG;AACoB,wBAAc,GAAG,EAAE,CAAC;AAE3C;;GAEG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAE5C,uIAAuI;AAChH,oCAA0B,GAAG,CAAC,CAAC;AAEtD,8HAA8H;AACvG,gCAAsB,GAAG,CAAC,CAAC;AAElD;;;;GAIG;AACoB,4BAAkB,GAAG,CAAC,CAAC;AAC9C;;;GAGG;AACoB,6BAAmB,GAAG,CAAC,CAAC;AAE/C;;;GAGG;AACoB,gCAAsB,GAAG,CAAC,CAAC;AAClD;;GAEG;AACoB,kCAAwB,GAAG,CAAC,CAAC;AAEpD;;;GAGG;AACoB,uBAAa,GAAG,CAAC,CAAC;AACzC;;;GAGG;AACoB,wCAA8B,GAAG,EAAE,CAAC;AAC3D;;GAEG;AACoB,mDAAyC,GAAG,EAAE,CAAC;AACtE;;GAEG;AACoB,oDAA0C,GAAG,EAAE,CAAC;AACvE;;GAEG;AACoB,yCAA+B,GAAG,EAAE,CAAC;AAC5D;;GAEG;AACoB,0CAAgC,GAAG,EAAE,CAAC;AAC7D;;GAEG;AACoB,qBAAW,GAAG,EAAE,CAAC;AACxC;;GAEG;AACoB,yBAAe,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACoB,+BAAqB,GAAG,CAAC,CAAC;AAEjD;;GAEG;AACH,gCAAgC;AACT,+BAAqB,GAAG,MAAM,CAAC;AACtD,0BAA0B;AACH,+BAAqB,GAAG,MAAM,CAAC;AACtD,0BAA0B;AACH,+BAAqB,GAAG,MAAM,CAAC;AACtD,+BAA+B;AACR,oCAA0B,GAAG,MAAM,CAAC;AAC3D,uCAAuC;AAChB,4CAAkC,GAAG,MAAM,CAAC;AAEnE,gCAAgC;AACT,+BAAqB,GAAG,MAAM,CAAC;AACtD,0CAA0C;AACnB,+CAAqC,GAAG,MAAM,CAAC;AACtE,sCAAsC;AACf,qCAA2B,GAAG,MAAM,CAAC;AAC5D,gDAAgD;AACzB,+CAAqC,GAAG,MAAM,CAAC;AACtE,sCAAsC;AACf,qCAA2B,GAAG,MAAM,CAAC;AAC5D,gDAAgD;AACzB,+CAAqC,GAAG,MAAM,CAAC;AACtE,0CAA0C;AACnB,qCAA2B,GAAG,MAAM,CAAC;AAC5D,0CAA0C;AACnB,+CAAqC,GAAG,MAAM,CAAC;AACtE,gDAAgD;AACzB,+CAAqC,GAAG,MAAM,CAAC;AACtE,qCAAqC;AACd,0CAAgC,GAAG,MAAM,CAAC;AACjE,+CAA+C;AACxB,oDAA0C,GAAG,MAAM,CAAC;AAC3E,2CAA2C;AACpB,0CAAgC,GAAG,MAAM,CAAC;AACjE,qDAAqD;AAC9B,oDAA0C,GAAG,MAAM,CAAC;AAE3E,gFAAgF;AAClE,oBAAU,GAAG,+BAA+B,CAAC;AAE3D,0DAA0D;AACnC,4BAAkB,GAAG,IAAI,GAAG,EAAE,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n/** Defines the cross module used constants to avoid circular dependencies */\r\nexport class Constants {\r\n /** Defines that alpha blending is disabled */\r\n public static readonly ALPHA_DISABLE = 0;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + DEST */\r\n public static readonly ALPHA_ADD = 1;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\r\n public static readonly ALPHA_COMBINE = 2;\r\n /** Defines that alpha blending is DEST - SRC * DEST */\r\n public static readonly ALPHA_SUBTRACT = 3;\r\n /** Defines that alpha blending is SRC * DEST */\r\n public static readonly ALPHA_MULTIPLY = 4;\r\n /** Defines that alpha blending is SRC ALPHA * SRC + (1 - SRC) * DEST */\r\n public static readonly ALPHA_MAXIMIZED = 5;\r\n /** Defines that alpha blending is SRC + DEST */\r\n public static readonly ALPHA_ONEONE = 6;\r\n /** Defines that alpha blending is SRC + (1 - SRC ALPHA) * DEST */\r\n public static readonly ALPHA_PREMULTIPLIED = 7;\r\n /**\r\n * Defines that alpha blending is SRC + (1 - SRC ALPHA) * DEST\r\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n public static readonly ALPHA_PREMULTIPLIED_PORTERDUFF = 8;\r\n /** Defines that alpha blending is CST * SRC + (1 - CST) * DEST */\r\n public static readonly ALPHA_INTERPOLATE = 9;\r\n /**\r\n * Defines that alpha blending is SRC + (1 - SRC) * DEST\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\r\n */\r\n public static readonly ALPHA_SCREENMODE = 10;\r\n /**\r\n * Defines that alpha blending is SRC + DST\r\n * Alpha will be set to SRC ALPHA + DST ALPHA\r\n */\r\n public static readonly ALPHA_ONEONE_ONEONE = 11;\r\n /**\r\n * Defines that alpha blending is SRC * DST ALPHA + DST\r\n * Alpha will be set to 0\r\n */\r\n public static readonly ALPHA_ALPHATOCOLOR = 12;\r\n /**\r\n * Defines that alpha blending is SRC * (1 - DST) + DST * (1 - SRC)\r\n */\r\n public static readonly ALPHA_REVERSEONEMINUS = 13;\r\n /**\r\n * Defines that alpha blending is SRC + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + DST ALPHA * (1 - SRC ALPHA)\r\n */\r\n public static readonly ALPHA_SRC_DSTONEMINUSSRCALPHA = 14;\r\n /**\r\n * Defines that alpha blending is SRC + DST\r\n * Alpha will be set to SRC ALPHA\r\n */\r\n public static readonly ALPHA_ONEONE_ONEZERO = 15;\r\n /**\r\n * Defines that alpha blending is SRC * (1 - DST) + DST * (1 - SRC)\r\n * Alpha will be set to DST ALPHA\r\n */\r\n public static readonly ALPHA_EXCLUSION = 16;\r\n /**\r\n * Defines that alpha blending is SRC * SRC ALPHA + DST * (1 - SRC ALPHA)\r\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DST ALPHA\r\n */\r\n public static readonly ALPHA_LAYER_ACCUMULATE = 17;\r\n\r\n /** Defines that alpha blending equation a SUM */\r\n public static readonly ALPHA_EQUATION_ADD = 0;\r\n /** Defines that alpha blending equation a SUBSTRACTION */\r\n public static readonly ALPHA_EQUATION_SUBSTRACT = 1;\r\n /** Defines that alpha blending equation a REVERSE SUBSTRACTION */\r\n public static readonly ALPHA_EQUATION_REVERSE_SUBTRACT = 2;\r\n /** Defines that alpha blending equation a MAX operation */\r\n public static readonly ALPHA_EQUATION_MAX = 3;\r\n /** Defines that alpha blending equation a MIN operation */\r\n public static readonly ALPHA_EQUATION_MIN = 4;\r\n /**\r\n * Defines that alpha blending equation a DARKEN operation:\r\n * It takes the min of the src and sums the alpha channels.\r\n */\r\n public static readonly ALPHA_EQUATION_DARKEN = 5;\r\n\r\n /** Defines that the resource is not delayed*/\r\n public static readonly DELAYLOADSTATE_NONE = 0;\r\n /** Defines that the resource was successfully delay loaded */\r\n public static readonly DELAYLOADSTATE_LOADED = 1;\r\n /** Defines that the resource is currently delay loading */\r\n public static readonly DELAYLOADSTATE_LOADING = 2;\r\n /** Defines that the resource is delayed and has not started loading */\r\n public static readonly DELAYLOADSTATE_NOTLOADED = 4;\r\n\r\n // Depth or Stencil test Constants.\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\r\n public static readonly NEVER = 0x0200;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\r\n public static readonly ALWAYS = 0x0207;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\r\n public static readonly LESS = 0x0201;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\r\n public static readonly EQUAL = 0x0202;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\r\n public static readonly LEQUAL = 0x0203;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\r\n public static readonly GREATER = 0x0204;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\r\n public static readonly GEQUAL = 0x0206;\r\n /** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\r\n public static readonly NOTEQUAL = 0x0205;\r\n\r\n // Stencil Actions Constants.\r\n /** Passed to stencilOperation to specify that stencil value must be kept */\r\n public static readonly KEEP = 0x1e00;\r\n /** Passed to stencilOperation to specify that stencil value must be zero */\r\n public static readonly ZERO = 0x0000;\r\n /** Passed to stencilOperation to specify that stencil value must be replaced */\r\n public static readonly REPLACE = 0x1e01;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented */\r\n public static readonly INCR = 0x1e02;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented */\r\n public static readonly DECR = 0x1e03;\r\n /** Passed to stencilOperation to specify that stencil value must be inverted */\r\n public static readonly INVERT = 0x150a;\r\n /** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\r\n public static readonly INCR_WRAP = 0x8507;\r\n /** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\r\n public static readonly DECR_WRAP = 0x8508;\r\n\r\n /** Texture is not repeating outside of 0..1 UVs */\r\n public static readonly TEXTURE_CLAMP_ADDRESSMODE = 0;\r\n /** Texture is repeating outside of 0..1 UVs */\r\n public static readonly TEXTURE_WRAP_ADDRESSMODE = 1;\r\n /** Texture is repeating and mirrored */\r\n public static readonly TEXTURE_MIRROR_ADDRESSMODE = 2;\r\n\r\n /** Flag to create a storage texture */\r\n public static readonly TEXTURE_CREATIONFLAG_STORAGE = 1;\r\n\r\n /** ALPHA */\r\n public static readonly TEXTUREFORMAT_ALPHA = 0;\r\n /** LUMINANCE */\r\n public static readonly TEXTUREFORMAT_LUMINANCE = 1;\r\n /** LUMINANCE_ALPHA */\r\n public static readonly TEXTUREFORMAT_LUMINANCE_ALPHA = 2;\r\n /** RGB */\r\n public static readonly TEXTUREFORMAT_RGB = 4;\r\n /** RGBA */\r\n public static readonly TEXTUREFORMAT_RGBA = 5;\r\n /** RED */\r\n public static readonly TEXTUREFORMAT_RED = 6;\r\n /** RED (2nd reference) */\r\n public static readonly TEXTUREFORMAT_R = 6;\r\n /** RG */\r\n public static readonly TEXTUREFORMAT_RG = 7;\r\n /** RED_INTEGER */\r\n public static readonly TEXTUREFORMAT_RED_INTEGER = 8;\r\n /** RED_INTEGER (2nd reference) */\r\n public static readonly TEXTUREFORMAT_R_INTEGER = 8;\r\n /** RG_INTEGER */\r\n public static readonly TEXTUREFORMAT_RG_INTEGER = 9;\r\n /** RGB_INTEGER */\r\n public static readonly TEXTUREFORMAT_RGB_INTEGER = 10;\r\n /** RGBA_INTEGER */\r\n public static readonly TEXTUREFORMAT_RGBA_INTEGER = 11;\r\n /** BGRA */\r\n public static readonly TEXTUREFORMAT_BGRA = 12;\r\n\r\n /** Depth 24 bits + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24_STENCIL8 = 13;\r\n /** Depth 32 bits float */\r\n public static readonly TEXTUREFORMAT_DEPTH32_FLOAT = 14;\r\n /** Depth 16 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH16 = 15;\r\n /** Depth 24 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24 = 16;\r\n /** Depth 24 bits unorm + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 = 17;\r\n /** Depth 32 bits float + Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8 = 18;\r\n /** Stencil 8 bits */\r\n public static readonly TEXTUREFORMAT_STENCIL8 = 19;\r\n\r\n /** Compressed BC7 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM = 36492;\r\n /** Compressed BC7 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 36493;\r\n /** Compressed BC6 unsigned float */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 36495;\r\n /** Compressed BC6 signed float */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 36494;\r\n /** Compressed BC3 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5 = 33779;\r\n /** Compressed BC3 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919;\r\n /** Compressed BC2 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3 = 33778;\r\n /** Compressed BC2 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918;\r\n /** Compressed BC1 (RGBA) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1 = 33777;\r\n /** Compressed BC1 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1 = 33776;\r\n /** Compressed BC1 (SRGB+A) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917;\r\n /** Compressed BC1 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916;\r\n /** Compressed ASTC 4x4 */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4 = 37808;\r\n /** Compressed ASTC 4x4 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840;\r\n /** Compressed ETC1 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL = 36196;\r\n /** Compressed ETC2 (RGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB8_ETC2 = 37492;\r\n /** Compressed ETC2 (SRGB) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2 = 37493;\r\n /** Compressed ETC2 (RGB+A1) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494;\r\n /** Compressed ETC2 (SRGB+A1)*/\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495;\r\n /** Compressed ETC2 (RGB+A) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC = 37496;\r\n /** Compressed ETC2 (SRGB+1) */\r\n public static readonly TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497;\r\n\r\n /** UNSIGNED_BYTE */\r\n public static readonly TEXTURETYPE_UNSIGNED_BYTE = 0;\r\n /** UNSIGNED_BYTE (2nd reference) */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT = 0;\r\n /** FLOAT */\r\n public static readonly TEXTURETYPE_FLOAT = 1;\r\n /** HALF_FLOAT */\r\n public static readonly TEXTURETYPE_HALF_FLOAT = 2;\r\n /** BYTE */\r\n public static readonly TEXTURETYPE_BYTE = 3;\r\n /** SHORT */\r\n public static readonly TEXTURETYPE_SHORT = 4;\r\n /** UNSIGNED_SHORT */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT = 5;\r\n /** INT */\r\n public static readonly TEXTURETYPE_INT = 6;\r\n /** UNSIGNED_INT */\r\n public static readonly TEXTURETYPE_UNSIGNED_INTEGER = 7;\r\n /** UNSIGNED_SHORT_4_4_4_4 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = 8;\r\n /** UNSIGNED_SHORT_5_5_5_1 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = 9;\r\n /** UNSIGNED_SHORT_5_6_5 */\r\n public static readonly TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = 10;\r\n /** UNSIGNED_INT_2_10_10_10_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = 11;\r\n /** UNSIGNED_INT_24_8 */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_24_8 = 12;\r\n /** UNSIGNED_INT_10F_11F_11F_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = 13;\r\n /** UNSIGNED_INT_5_9_9_9_REV */\r\n public static readonly TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = 14;\r\n /** FLOAT_32_UNSIGNED_INT_24_8_REV */\r\n public static readonly TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = 15;\r\n /** UNDEFINED */\r\n public static readonly TEXTURETYPE_UNDEFINED = 16;\r\n\r\n /** 2D Texture target*/\r\n public static readonly TEXTURE_2D = 3553;\r\n /** 2D Array Texture target */\r\n public static readonly TEXTURE_2D_ARRAY = 35866;\r\n /** Cube Map Texture target */\r\n public static readonly TEXTURE_CUBE_MAP = 34067;\r\n /** Cube Map Array Texture target */\r\n public static readonly TEXTURE_CUBE_MAP_ARRAY = 0xdeadbeef;\r\n /** 3D Texture target */\r\n public static readonly TEXTURE_3D = 32879;\r\n\r\n /** nearest is mag = nearest and min = nearest and no mip */\r\n public static readonly TEXTURE_NEAREST_SAMPLINGMODE = 1;\r\n /** mag = nearest and min = nearest and mip = none */\r\n public static readonly TEXTURE_NEAREST_NEAREST = 1;\r\n\r\n /** Bilinear is mag = linear and min = linear and no mip */\r\n public static readonly TEXTURE_BILINEAR_SAMPLINGMODE = 2;\r\n /** mag = linear and min = linear and mip = none */\r\n public static readonly TEXTURE_LINEAR_LINEAR = 2;\r\n\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n public static readonly TEXTURE_TRILINEAR_SAMPLINGMODE = 3;\r\n /** Trilinear is mag = linear and min = linear and mip = linear */\r\n public static readonly TEXTURE_LINEAR_LINEAR_MIPLINEAR = 3;\r\n\r\n /** mag = nearest and min = nearest and mip = nearest */\r\n public static readonly TEXTURE_NEAREST_NEAREST_MIPNEAREST = 4;\r\n /** mag = nearest and min = linear and mip = nearest */\r\n public static readonly TEXTURE_NEAREST_LINEAR_MIPNEAREST = 5;\r\n /** mag = nearest and min = linear and mip = linear */\r\n public static readonly TEXTURE_NEAREST_LINEAR_MIPLINEAR = 6;\r\n /** mag = nearest and min = linear and mip = none */\r\n public static readonly TEXTURE_NEAREST_LINEAR = 7;\r\n /** nearest is mag = nearest and min = nearest and mip = linear */\r\n public static readonly TEXTURE_NEAREST_NEAREST_MIPLINEAR = 8;\r\n /** mag = linear and min = nearest and mip = nearest */\r\n public static readonly TEXTURE_LINEAR_NEAREST_MIPNEAREST = 9;\r\n /** mag = linear and min = nearest and mip = linear */\r\n public static readonly TEXTURE_LINEAR_NEAREST_MIPLINEAR = 10;\r\n /** Bilinear is mag = linear and min = linear and mip = nearest */\r\n public static readonly TEXTURE_LINEAR_LINEAR_MIPNEAREST = 11;\r\n /** mag = linear and min = nearest and mip = none */\r\n public static readonly TEXTURE_LINEAR_NEAREST = 12;\r\n\r\n /** Explicit coordinates mode */\r\n public static readonly TEXTURE_EXPLICIT_MODE = 0;\r\n /** Spherical coordinates mode */\r\n public static readonly TEXTURE_SPHERICAL_MODE = 1;\r\n /** Planar coordinates mode */\r\n public static readonly TEXTURE_PLANAR_MODE = 2;\r\n /** Cubic coordinates mode */\r\n public static readonly TEXTURE_CUBIC_MODE = 3;\r\n /** Projection coordinates mode */\r\n public static readonly TEXTURE_PROJECTION_MODE = 4;\r\n /** Skybox coordinates mode */\r\n public static readonly TEXTURE_SKYBOX_MODE = 5;\r\n /** Inverse Cubic coordinates mode */\r\n public static readonly TEXTURE_INVCUBIC_MODE = 6;\r\n /** Equirectangular coordinates mode */\r\n public static readonly TEXTURE_EQUIRECTANGULAR_MODE = 7;\r\n /** Equirectangular Fixed coordinates mode */\r\n public static readonly TEXTURE_FIXED_EQUIRECTANGULAR_MODE = 8;\r\n /** Equirectangular Fixed Mirrored coordinates mode */\r\n public static readonly TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = 9;\r\n\r\n /** Offline (baking) quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_OFFLINE = 4096;\r\n\r\n /** High quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_HIGH = 64;\r\n\r\n /** Medium quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_MEDIUM = 16;\r\n\r\n /** Low quality for texture filtering */\r\n public static readonly TEXTURE_FILTERING_QUALITY_LOW = 8;\r\n\r\n // Texture rescaling mode\r\n /** Defines that texture rescaling will use a floor to find the closer power of 2 size */\r\n public static readonly SCALEMODE_FLOOR = 1;\r\n /** Defines that texture rescaling will look for the nearest power of 2 size */\r\n public static readonly SCALEMODE_NEAREST = 2;\r\n /** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\r\n public static readonly SCALEMODE_CEILING = 3;\r\n\r\n /**\r\n * The dirty texture flag value\r\n */\r\n public static readonly MATERIAL_TextureDirtyFlag = 1;\r\n /**\r\n * The dirty light flag value\r\n */\r\n public static readonly MATERIAL_LightDirtyFlag = 2;\r\n /**\r\n * The dirty fresnel flag value\r\n */\r\n public static readonly MATERIAL_FresnelDirtyFlag = 4;\r\n /**\r\n * The dirty attribute flag value\r\n */\r\n public static readonly MATERIAL_AttributesDirtyFlag = 8;\r\n /**\r\n * The dirty misc flag value\r\n */\r\n public static readonly MATERIAL_MiscDirtyFlag = 16;\r\n /**\r\n * The dirty prepass flag value\r\n */\r\n public static readonly MATERIAL_PrePassDirtyFlag = 32;\r\n /**\r\n * The all dirty flag value\r\n */\r\n public static readonly MATERIAL_AllDirtyFlag = 63;\r\n\r\n /**\r\n * Returns the triangle fill mode\r\n */\r\n public static readonly MATERIAL_TriangleFillMode = 0;\r\n /**\r\n * Returns the wireframe mode\r\n */\r\n public static readonly MATERIAL_WireFrameFillMode = 1;\r\n /**\r\n * Returns the point fill mode\r\n */\r\n public static readonly MATERIAL_PointFillMode = 2;\r\n /**\r\n * Returns the point list draw mode\r\n */\r\n public static readonly MATERIAL_PointListDrawMode = 3;\r\n /**\r\n * Returns the line list draw mode\r\n */\r\n public static readonly MATERIAL_LineListDrawMode = 4;\r\n /**\r\n * Returns the line loop draw mode\r\n */\r\n public static readonly MATERIAL_LineLoopDrawMode = 5;\r\n /**\r\n * Returns the line strip draw mode\r\n */\r\n public static readonly MATERIAL_LineStripDrawMode = 6;\r\n\r\n /**\r\n * Returns the triangle strip draw mode\r\n */\r\n public static readonly MATERIAL_TriangleStripDrawMode = 7;\r\n /**\r\n * Returns the triangle fan draw mode\r\n */\r\n public static readonly MATERIAL_TriangleFanDrawMode = 8;\r\n\r\n /**\r\n * Stores the clock-wise side orientation\r\n */\r\n public static readonly MATERIAL_ClockWiseSideOrientation = 0;\r\n /**\r\n * Stores the counter clock-wise side orientation\r\n */\r\n public static readonly MATERIAL_CounterClockWiseSideOrientation = 1;\r\n\r\n /**\r\n * Nothing\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_NothingTrigger = 0;\r\n /**\r\n * On pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickTrigger = 1;\r\n /**\r\n * On left pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnLeftPickTrigger = 2;\r\n /**\r\n * On right pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnRightPickTrigger = 3;\r\n /**\r\n * On center pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnCenterPickTrigger = 4;\r\n /**\r\n * On pick down\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickDownTrigger = 5;\r\n /**\r\n * On double pick\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnDoublePickTrigger = 6;\r\n /**\r\n * On pick up\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickUpTrigger = 7;\r\n /**\r\n * On pick out.\r\n * This trigger will only be raised if you also declared a OnPickDown\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPickOutTrigger = 16;\r\n /**\r\n * On long press\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnLongPressTrigger = 8;\r\n /**\r\n * On pointer over\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPointerOverTrigger = 9;\r\n /**\r\n * On pointer out\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnPointerOutTrigger = 10;\r\n /**\r\n * On every frame\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnEveryFrameTrigger = 11;\r\n /**\r\n * On intersection enter\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnIntersectionEnterTrigger = 12;\r\n /**\r\n * On intersection exit\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnIntersectionExitTrigger = 13;\r\n /**\r\n * On key down\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnKeyDownTrigger = 14;\r\n /**\r\n * On key up\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#triggers\r\n */\r\n public static readonly ACTION_OnKeyUpTrigger = 15;\r\n\r\n /**\r\n * Billboard mode will only apply to Y axis\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_Y = 2;\r\n /**\r\n * Billboard mode will apply to all axes\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_ALL = 7;\r\n /**\r\n * Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_STRETCHED = 8;\r\n /**\r\n * Special billboard mode where the particle will be billboard to the camera but only around the axis of the direction of particle emission\r\n */\r\n public static readonly PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL = 9;\r\n\r\n /** Default culling strategy : this is an exclusion test and it's the more accurate.\r\n * Test order :\r\n * Is the bounding sphere outside the frustum ?\r\n * If not, are the bounding box vertices outside the frustum ?\r\n * It not, then the cullable object is in the frustum.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_STANDARD = 0;\r\n /** Culling strategy : Bounding Sphere Only.\r\n * This is an exclusion test. It's faster than the standard strategy because the bounding box is not tested.\r\n * It's also less accurate than the standard because some not visible objects can still be selected.\r\n * Test : is the bounding sphere outside the frustum ?\r\n * If not, then the cullable object is in the frustum.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;\r\n /** Culling strategy : Optimistic Inclusion.\r\n * This in an inclusion test first, then the standard exclusion test.\r\n * This can be faster when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the standard test when the tested object center is not the frustum but one of its bounding box vertex is still inside.\r\n * Anyway, it's as accurate as the standard strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the default culling strategy.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;\r\n /** Culling strategy : Optimistic Inclusion then Bounding Sphere Only.\r\n * This in an inclusion test first, then the bounding sphere only exclusion test.\r\n * This can be the fastest test when a cullable object is expected to be almost always in the camera frustum.\r\n * This could also be a little slower than the BoundingSphereOnly strategy when the tested object center is not in the frustum but its bounding sphere still intersects it.\r\n * It's less accurate than the standard strategy and as accurate as the BoundingSphereOnly strategy.\r\n * Test :\r\n * Is the cullable object bounding sphere center in the frustum ?\r\n * If not, apply the Bounding Sphere Only strategy. No Bounding Box is tested here.\r\n */\r\n public static readonly MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;\r\n\r\n /**\r\n * No logging while loading\r\n */\r\n public static readonly SCENELOADER_NO_LOGGING = 0;\r\n /**\r\n * Minimal logging while loading\r\n */\r\n public static readonly SCENELOADER_MINIMAL_LOGGING = 1;\r\n /**\r\n * Summary logging while loading\r\n */\r\n public static readonly SCENELOADER_SUMMARY_LOGGING = 2;\r\n /**\r\n * Detailed logging while loading\r\n */\r\n public static readonly SCENELOADER_DETAILED_LOGGING = 3;\r\n\r\n /**\r\n * Constant used to retrieve the irradiance texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_IRRADIANCE_TEXTURE_TYPE = 0;\r\n /**\r\n * Constant used to retrieve the position texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_POSITION_TEXTURE_INDEX)\r\n */\r\n public static readonly PREPASS_POSITION_TEXTURE_TYPE = 1;\r\n /**\r\n * Constant used to retrieve the velocity texture index in the textures array in the prepass\r\n * using getIndex(Constants.PREPASS_VELOCITY_TEXTURE_INDEX)\r\n */\r\n public static readonly PREPASS_VELOCITY_TEXTURE_TYPE = 2;\r\n /**\r\n * Constant used to retrieve the reflectivity texture index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_REFLECTIVITY_TEXTURE_TYPE = 3;\r\n /**\r\n * Constant used to retrieve the lit color texture index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_COLOR_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_COLOR_TEXTURE_TYPE = 4;\r\n /**\r\n * Constant used to retrieve depth index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_DEPTH_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_DEPTH_TEXTURE_TYPE = 5;\r\n /**\r\n * Constant used to retrieve normal index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_NORMAL_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_NORMAL_TEXTURE_TYPE = 6;\r\n /**\r\n * Constant used to retrieve albedo index in the textures array in the prepass\r\n * using the getIndex(Constants.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE)\r\n */\r\n public static readonly PREPASS_ALBEDO_SQRT_TEXTURE_TYPE = 7;\r\n\r\n /** Flag to create a readable buffer (the buffer can be the source of a copy) */\r\n public static readonly BUFFER_CREATIONFLAG_READ = 1;\r\n /** Flag to create a writable buffer (the buffer can be the destination of a copy) */\r\n public static readonly BUFFER_CREATIONFLAG_WRITE = 2;\r\n /** Flag to create a readable and writable buffer */\r\n public static readonly BUFFER_CREATIONFLAG_READWRITE = 3;\r\n /** Flag to create a buffer suitable to be used as a uniform buffer */\r\n public static readonly BUFFER_CREATIONFLAG_UNIFORM = 4;\r\n /** Flag to create a buffer suitable to be used as a vertex buffer */\r\n public static readonly BUFFER_CREATIONFLAG_VERTEX = 8;\r\n /** Flag to create a buffer suitable to be used as an index buffer */\r\n public static readonly BUFFER_CREATIONFLAG_INDEX = 16;\r\n /** Flag to create a buffer suitable to be used as a storage buffer */\r\n public static readonly BUFFER_CREATIONFLAG_STORAGE = 32;\r\n\r\n /**\r\n * Prefixes used by the engine for sub mesh draw wrappers\r\n */\r\n\r\n /** @internal */\r\n public static readonly RENDERPASS_MAIN = 0;\r\n\r\n /**\r\n * Constant used as key code for Alt key\r\n */\r\n public static readonly INPUT_ALT_KEY = 18;\r\n\r\n /**\r\n * Constant used as key code for Ctrl key\r\n */\r\n public static readonly INPUT_CTRL_KEY = 17;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Left Win, Left Cmd)\r\n */\r\n public static readonly INPUT_META_KEY1 = 91;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Right Win)\r\n */\r\n public static readonly INPUT_META_KEY2 = 92;\r\n\r\n /**\r\n * Constant used as key code for Meta key (Right Win, Right Cmd)\r\n */\r\n public static readonly INPUT_META_KEY3 = 93;\r\n\r\n /**\r\n * Constant used as key code for Shift key\r\n */\r\n public static readonly INPUT_SHIFT_KEY = 16;\r\n\r\n /** Standard snapshot rendering. In this mode, some form of dynamic behavior is possible (for eg, uniform buffers are still updated) */\r\n public static readonly SNAPSHOTRENDERING_STANDARD = 0;\r\n\r\n /** Fast snapshot rendering. In this mode, everything is static and only some limited form of dynamic behaviour is possible */\r\n public static readonly SNAPSHOTRENDERING_FAST = 1;\r\n\r\n /**\r\n * This is the default projection mode used by the cameras.\r\n * It helps recreating a feeling of perspective and better appreciate depth.\r\n * This is the best way to simulate real life cameras.\r\n */\r\n public static readonly PERSPECTIVE_CAMERA = 0;\r\n /**\r\n * This helps creating camera with an orthographic mode.\r\n * Orthographic is commonly used in engineering as a means to produce object specifications that communicate dimensions unambiguously, each line of 1 unit length (cm, meter..whatever) will appear to have the same length everywhere on the drawing. This allows the drafter to dimension only a subset of lines and let the reader know that other lines of that length on the drawing are also that length in reality. Every parallel line in the drawing is also parallel in the object.\r\n */\r\n public static readonly ORTHOGRAPHIC_CAMERA = 1;\r\n\r\n /**\r\n * This is the default FOV mode for perspective cameras.\r\n * This setting aligns the upper and lower bounds of the viewport to the upper and lower bounds of the camera frustum.\r\n */\r\n public static readonly FOVMODE_VERTICAL_FIXED = 0;\r\n /**\r\n * This setting aligns the left and right bounds of the viewport to the left and right bounds of the camera frustum.\r\n */\r\n public static readonly FOVMODE_HORIZONTAL_FIXED = 1;\r\n\r\n /**\r\n * This specifies there is no need for a camera rig.\r\n * Basically only one eye is rendered corresponding to the camera.\r\n */\r\n public static readonly RIG_MODE_NONE = 0;\r\n /**\r\n * Simulates a camera Rig with one blue eye and one red eye.\r\n * This can be use with 3d blue and red glasses.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_ANAGLYPH = 10;\r\n /**\r\n * Defines that both eyes of the camera will be rendered side by side with a parallel target.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL = 11;\r\n /**\r\n * Defines that both eyes of the camera will be rendered side by side with a none parallel target.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED = 12;\r\n /**\r\n * Defines that both eyes of the camera will be rendered over under each other.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_OVERUNDER = 13;\r\n /**\r\n * Defines that both eyes of the camera will be rendered on successive lines interlaced for passive 3d monitors.\r\n */\r\n public static readonly RIG_MODE_STEREOSCOPIC_INTERLACED = 14;\r\n /**\r\n * Defines that both eyes of the camera should be renderered in a VR mode (carbox).\r\n */\r\n public static readonly RIG_MODE_VR = 20;\r\n /**\r\n * Custom rig mode allowing rig cameras to be populated manually with any number of cameras\r\n */\r\n public static readonly RIG_MODE_CUSTOM = 22;\r\n\r\n /**\r\n * Maximum number of uv sets supported\r\n */\r\n public static readonly MAX_SUPPORTED_UV_SETS = 6;\r\n\r\n /**\r\n * GL constants\r\n */\r\n /** Alpha blend equation: ADD */\r\n public static readonly GL_ALPHA_EQUATION_ADD = 0x8006;\r\n /** Alpha equation: MIN */\r\n public static readonly GL_ALPHA_EQUATION_MIN = 0x8007;\r\n /** Alpha equation: MAX */\r\n public static readonly GL_ALPHA_EQUATION_MAX = 0x8008;\r\n /** Alpha equation: SUBTRACT */\r\n public static readonly GL_ALPHA_EQUATION_SUBTRACT = 0x800a;\r\n /** Alpha equation: REVERSE_SUBTRACT */\r\n public static readonly GL_ALPHA_EQUATION_REVERSE_SUBTRACT = 0x800b;\r\n\r\n /** Alpha blend function: SRC */\r\n public static readonly GL_ALPHA_FUNCTION_SRC = 0x0300;\r\n /** Alpha blend function: ONE_MINUS_SRC */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR = 0x0301;\r\n /** Alpha blend function: SRC_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_SRC_ALPHA = 0x0302;\r\n /** Alpha blend function: ONE_MINUS_SRC_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA = 0x0303;\r\n /** Alpha blend function: DST_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_DST_ALPHA = 0x0304;\r\n /** Alpha blend function: ONE_MINUS_DST_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA = 0x0305;\r\n /** Alpha blend function: ONE_MINUS_DST */\r\n public static readonly GL_ALPHA_FUNCTION_DST_COLOR = 0x0306;\r\n /** Alpha blend function: ONE_MINUS_DST */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR = 0x0307;\r\n /** Alpha blend function: SRC_ALPHA_SATURATED */\r\n public static readonly GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED = 0x0308;\r\n /** Alpha blend function: CONSTANT */\r\n public static readonly GL_ALPHA_FUNCTION_CONSTANT_COLOR = 0x8001;\r\n /** Alpha blend function: ONE_MINUS_CONSTANT */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR = 0x8002;\r\n /** Alpha blend function: CONSTANT_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_CONSTANT_ALPHA = 0x8003;\r\n /** Alpha blend function: ONE_MINUS_CONSTANT_ALPHA */\r\n public static readonly GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA = 0x8004;\r\n\r\n /** URL to the snippet server. Points to the public snippet server by default */\r\n public static SnippetUrl = \"https://snippet.babylonjs.com\";\r\n\r\n /** Standard time a frame should take at 60 fps (in ms) */\r\n public static readonly STANDARD_TIME_STEP = 1000 / 60;\r\n}\r\n"]}