#746 Delete original geometry data after merging

This commit is contained in:
AlexandruPopovici
2022-05-13 11:37:37 +03:00
parent 27a5814d52
commit b0a138fa6e
3 changed files with 23 additions and 30 deletions
+1 -1
View File
@@ -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
}
}