#746 Delete original geometry data after merging
This commit is contained in:
@@ -19,7 +19,7 @@ const sandbox = new Sandbox(viewer)
|
||||
sandbox.makeGenericUI()
|
||||
sandbox.makeSceneUI()
|
||||
// Load demo object
|
||||
sandbox.loadUrl('https://latest.speckle.dev/streams/3ed8357f29/commits/b21fb0dcf7?c=%5B76.08416,-35.25872,38.49991,56.56326,-4.19138,5.61052,0,1%5D')
|
||||
sandbox.loadUrl('https://latest.speckle.dev/streams/921741b30b/commits/c5acd4ff91?c=%5B147162.48107,6396783.94314,18.1266,147140.22466,6396758.05514,9.41576,0,1%5D')
|
||||
|
||||
viewer.on('load-progress', (a: { progress: number; id: string; url: string }) => {
|
||||
if (a.progress >= 1) {
|
||||
|
||||
@@ -669,9 +669,6 @@ export default class Coverter {
|
||||
for (let i = 0; i < obj.segments.length; i++) {
|
||||
let element = obj.segments[i]
|
||||
let conv
|
||||
if (this.getSpeckleType(element) == 'Arc') {
|
||||
console.log('arc')
|
||||
}
|
||||
if (this.directConverterExists(element))
|
||||
conv = await this.convertToGeometryData(element, scale)
|
||||
else if ((element = this.getDisplayValue(element)) !== undefined)
|
||||
|
||||
@@ -98,15 +98,10 @@ export class Geometry {
|
||||
}
|
||||
|
||||
static makeLineGeometry_TRIANGLE(geometryData: GeometryData) {
|
||||
try {
|
||||
const geometry = new LineGeometry()
|
||||
geometry.setPositions(geometryData.attributes.POSITION)
|
||||
if (geometryData.attributes.COLOR)
|
||||
geometry.setColors(geometryData.attributes.COLOR)
|
||||
return geometry
|
||||
} catch (e) {
|
||||
console.log('plm')
|
||||
}
|
||||
const geometry = new LineGeometry()
|
||||
geometry.setPositions(geometryData.attributes.POSITION)
|
||||
if (geometryData.attributes.COLOR) geometry.setColors(geometryData.attributes.COLOR)
|
||||
return geometry
|
||||
}
|
||||
|
||||
static mergeGeometryAttribute(
|
||||
@@ -179,30 +174,31 @@ export class Geometry {
|
||||
}
|
||||
}
|
||||
|
||||
geometries.forEach((geometry) => {
|
||||
for (let k in geometry.attributes) {
|
||||
delete geometry.attributes[k]
|
||||
}
|
||||
})
|
||||
|
||||
return mergedGeometry
|
||||
}
|
||||
|
||||
public static transformGeometryData(geometryData: GeometryData, m: Matrix4) {
|
||||
try {
|
||||
if (!geometryData.attributes.POSITION) return
|
||||
if (!geometryData.attributes.POSITION) return
|
||||
|
||||
const e = m.elements
|
||||
const e = m.elements
|
||||
|
||||
for (var k = 0; k < geometryData.attributes.POSITION.length; k += 3) {
|
||||
const x = geometryData.attributes.POSITION[k],
|
||||
y = geometryData.attributes.POSITION[k + 1],
|
||||
z = geometryData.attributes.POSITION[k + 2]
|
||||
const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15])
|
||||
for (var k = 0; k < geometryData.attributes.POSITION.length; k += 3) {
|
||||
const x = geometryData.attributes.POSITION[k],
|
||||
y = geometryData.attributes.POSITION[k + 1],
|
||||
z = geometryData.attributes.POSITION[k + 2]
|
||||
const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15])
|
||||
|
||||
geometryData.attributes.POSITION[k] =
|
||||
(e[0] * x + e[4] * y + e[8] * z + e[12]) * w
|
||||
geometryData.attributes.POSITION[k + 1] =
|
||||
(e[1] * x + e[5] * y + e[9] * z + e[13]) * w
|
||||
geometryData.attributes.POSITION[k + 2] =
|
||||
(e[2] * x + e[6] * y + e[10] * z + e[14]) * w
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('plm')
|
||||
geometryData.attributes.POSITION[k] = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w
|
||||
geometryData.attributes.POSITION[k + 1] =
|
||||
(e[1] * x + e[5] * y + e[9] * z + e[13]) * w
|
||||
geometryData.attributes.POSITION[k + 2] =
|
||||
(e[2] * x + e[6] * y + e[10] * z + e[14]) * w
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user