Cesium 获取 3dtileset的包围盒各顶点坐标
export function getTilesetBoudingBoxPoints ( tileset, options = { } ) { const { center, halfAxes } = tileset. _root. _boundingVolume. _orientedBoundingBox; const pointsVec3 = [ ] ; const x = new Cartesian3 ( ) ; const y = new Cartesian3 ( ) ; const z = new Cartesian3 ( ) ; Matrix3. getColumn ( halfAxes, 0 , x) ; Matrix3. getColumn ( halfAxes, 1 , y) ; Matrix3. getColumn ( halfAxes, 2 , z) ; const halfXNegative = new Cartesian3 ( ) ; const halfXPositive = new Cartesian3 ( ) ; Cartesian3. subtract ( center, x, halfXNegative) Cartesian3. add ( center, x, halfXPositive) Cartesian3. subtract ( halfXNegative, z, halfXNegative) Cartesian3. subtract ( halfXPositive, z, halfXPositive) pointsVec3. push ( Cartesian3. add ( halfXNegative, y, new Cartesian3 ( ) ) ) pointsVec3. push ( Cartesian3. subtract ( halfXNegative, y, new Cartesian3 ( ) ) ) pointsVec3. push ( Cartesian3. subtract ( halfXPositive, y, new Cartesian3 ( ) ) ) pointsVec3. push ( Cartesian3. add ( halfXPositive, y, new Cartesian3 ( ) ) ) const pointsLL = [ ] ; pointsVec3. forEach ( item => { const ll = Cartographic. fromCartesian ( item) ; pointsLL. push ( Math. toDegrees ( ll. longitude) , Math. toDegrees ( ll. latitude) , ) } ) return pointsLL;
}