1 line
16 KiB
Plaintext
1 line
16 KiB
Plaintext
{"version":3,"file":"createFrustumOutlineGeometry.js","sources":["../../../../Source/Core/FrustumOutlineGeometry.js","../../../../Source/WorkersES6/createFrustumOutlineGeometry.js"],"sourcesContent":["import BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Check from \"./Check.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport FrustumGeometry from \"./FrustumGeometry.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport OrthographicFrustum from \"./OrthographicFrustum.js\";\nimport PerspectiveFrustum from \"./PerspectiveFrustum.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport Quaternion from \"./Quaternion.js\";\n\nconst PERSPECTIVE = 0;\nconst ORTHOGRAPHIC = 1;\n\n/**\n * A description of the outline of a frustum with the given the origin and orientation.\n *\n * @alias FrustumOutlineGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {PerspectiveFrustum|OrthographicFrustum} options.frustum The frustum.\n * @param {Cartesian3} options.origin The origin of the frustum.\n * @param {Quaternion} options.orientation The orientation of the frustum.\n */\nfunction FrustumOutlineGeometry(options) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"options\", options);\n Check.typeOf.object(\"options.frustum\", options.frustum);\n Check.typeOf.object(\"options.origin\", options.origin);\n Check.typeOf.object(\"options.orientation\", options.orientation);\n //>>includeEnd('debug');\n\n const frustum = options.frustum;\n const orientation = options.orientation;\n const origin = options.origin;\n\n // This is private because it is used by DebugCameraPrimitive to draw a multi-frustum by\n // creating multiple FrustumOutlineGeometrys. This way the near plane of one frustum doesn't overlap\n // the far plane of another.\n const drawNearPlane = defaultValue(options._drawNearPlane, true);\n\n let frustumType;\n let frustumPackedLength;\n if (frustum instanceof PerspectiveFrustum) {\n frustumType = PERSPECTIVE;\n frustumPackedLength = PerspectiveFrustum.packedLength;\n } else if (frustum instanceof OrthographicFrustum) {\n frustumType = ORTHOGRAPHIC;\n frustumPackedLength = OrthographicFrustum.packedLength;\n }\n\n this._frustumType = frustumType;\n this._frustum = frustum.clone();\n this._origin = Cartesian3.clone(origin);\n this._orientation = Quaternion.clone(orientation);\n this._drawNearPlane = drawNearPlane;\n this._workerName = \"createFrustumOutlineGeometry\";\n\n /**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\n this.packedLength =\n 2 + frustumPackedLength + Cartesian3.packedLength + Quaternion.packedLength;\n}\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {FrustumOutlineGeometry} value The value to pack.\n * @param {Number[]} array The array to pack into.\n * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.\n *\n * @returns {Number[]} The array that was packed into\n */\nFrustumOutlineGeometry.pack = function (value, array, startingIndex) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"value\", value);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n const frustumType = value._frustumType;\n const frustum = value._frustum;\n\n array[startingIndex++] = frustumType;\n\n if (frustumType === PERSPECTIVE) {\n PerspectiveFrustum.pack(frustum, array, startingIndex);\n startingIndex += PerspectiveFrustum.packedLength;\n } else {\n OrthographicFrustum.pack(frustum, array, startingIndex);\n startingIndex += OrthographicFrustum.packedLength;\n }\n\n Cartesian3.pack(value._origin, array, startingIndex);\n startingIndex += Cartesian3.packedLength;\n Quaternion.pack(value._orientation, array, startingIndex);\n startingIndex += Quaternion.packedLength;\n array[startingIndex] = value._drawNearPlane ? 1.0 : 0.0;\n\n return array;\n};\n\nconst scratchPackPerspective = new PerspectiveFrustum();\nconst scratchPackOrthographic = new OrthographicFrustum();\nconst scratchPackQuaternion = new Quaternion();\nconst scratchPackorigin = new Cartesian3();\n\n/**\n * Retrieves an instance from a packed array.\n *\n * @param {Number[]} array The packed array.\n * @param {Number} [startingIndex=0] The starting index of the element to be unpacked.\n * @param {FrustumOutlineGeometry} [result] The object into which to store the result.\n */\nFrustumOutlineGeometry.unpack = function (array, startingIndex, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n const frustumType = array[startingIndex++];\n\n let frustum;\n if (frustumType === PERSPECTIVE) {\n frustum = PerspectiveFrustum.unpack(\n array,\n startingIndex,\n scratchPackPerspective\n );\n startingIndex += PerspectiveFrustum.packedLength;\n } else {\n frustum = OrthographicFrustum.unpack(\n array,\n startingIndex,\n scratchPackOrthographic\n );\n startingIndex += OrthographicFrustum.packedLength;\n }\n\n const origin = Cartesian3.unpack(array, startingIndex, scratchPackorigin);\n startingIndex += Cartesian3.packedLength;\n const orientation = Quaternion.unpack(\n array,\n startingIndex,\n scratchPackQuaternion\n );\n startingIndex += Quaternion.packedLength;\n const drawNearPlane = array[startingIndex] === 1.0;\n\n if (!defined(result)) {\n return new FrustumOutlineGeometry({\n frustum: frustum,\n origin: origin,\n orientation: orientation,\n _drawNearPlane: drawNearPlane,\n });\n }\n\n const frustumResult =\n frustumType === result._frustumType ? result._frustum : undefined;\n result._frustum = frustum.clone(frustumResult);\n\n result._frustumType = frustumType;\n result._origin = Cartesian3.clone(origin, result._origin);\n result._orientation = Quaternion.clone(orientation, result._orientation);\n result._drawNearPlane = drawNearPlane;\n\n return result;\n};\n\n/**\n * Computes the geometric representation of a frustum outline, including its vertices, indices, and a bounding sphere.\n *\n * @param {FrustumOutlineGeometry} frustumGeometry A description of the frustum.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nFrustumOutlineGeometry.createGeometry = function (frustumGeometry) {\n const frustumType = frustumGeometry._frustumType;\n const frustum = frustumGeometry._frustum;\n const origin = frustumGeometry._origin;\n const orientation = frustumGeometry._orientation;\n const drawNearPlane = frustumGeometry._drawNearPlane;\n\n const positions = new Float64Array(3 * 4 * 2);\n FrustumGeometry._computeNearFarPlanes(\n origin,\n orientation,\n frustumType,\n frustum,\n positions\n );\n\n const attributes = new GeometryAttributes({\n position: new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: positions,\n }),\n });\n\n let offset;\n let index;\n\n const numberOfPlanes = drawNearPlane ? 2 : 1;\n const indices = new Uint16Array(8 * (numberOfPlanes + 1));\n\n // Build the near/far planes\n let i = drawNearPlane ? 0 : 1;\n for (; i < 2; ++i) {\n offset = drawNearPlane ? i * 8 : 0;\n index = i * 4;\n\n indices[offset] = index;\n indices[offset + 1] = index + 1;\n indices[offset + 2] = index + 1;\n indices[offset + 3] = index + 2;\n indices[offset + 4] = index + 2;\n indices[offset + 5] = index + 3;\n indices[offset + 6] = index + 3;\n indices[offset + 7] = index;\n }\n\n // Build the sides of the frustums\n for (i = 0; i < 2; ++i) {\n offset = (numberOfPlanes + i) * 8;\n index = i * 4;\n\n indices[offset] = index;\n indices[offset + 1] = index + 4;\n indices[offset + 2] = index + 1;\n indices[offset + 3] = index + 5;\n indices[offset + 4] = index + 2;\n indices[offset + 5] = index + 6;\n indices[offset + 6] = index + 3;\n indices[offset + 7] = index + 7;\n }\n\n return new Geometry({\n attributes: attributes,\n indices: indices,\n primitiveType: PrimitiveType.LINES,\n boundingSphere: BoundingSphere.fromVertices(positions),\n });\n};\nexport default FrustumOutlineGeometry;\n","import defined from \"../Core/defined.js\";\nimport FrustumOutlineGeometry from \"../Core/FrustumOutlineGeometry.js\";\n\nfunction createFrustumOutlineGeometry(frustumGeometry, offset) {\n if (defined(offset)) {\n frustumGeometry = FrustumOutlineGeometry.unpack(frustumGeometry, offset);\n }\n return FrustumOutlineGeometry.createGeometry(frustumGeometry);\n}\nexport default createFrustumOutlineGeometry;\n"],"names":["Check","defaultValue","PerspectiveFrustum","OrthographicFrustum","Cartesian3","Quaternion","defined","FrustumGeometry","GeometryAttributes","GeometryAttribute","ComponentDatatype","Geometry","PrimitiveType","BoundingSphere"],"mappings":"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"} |