vim-format
Advanced tools
Comparing version 1.0.6-dev.225 to 1.0.6-dev.226
@@ -48,8 +48,2 @@ /** | ||
static createFromBfast(bfast: BFast): Promise<G3dMesh>; | ||
getBimInstance(meshInstance: number): number; | ||
getInstanceMax(meshInstance: number): Float32Array; | ||
getInstanceMin(meshInstance: number): Float32Array; | ||
getInstanceGroup(meshInstance: number): number; | ||
getInstanceTag(meshInstance: number): bigint; | ||
getInstanceHasFlag(meshInstance: number, flag: number): boolean; | ||
getVertexStart(section?: MeshSection): number; | ||
@@ -56,0 +50,0 @@ getVertexEnd(section?: MeshSection): number; |
@@ -78,27 +78,2 @@ "use strict"; | ||
} | ||
// -----------Instances--------------- | ||
getBimInstance(meshInstance) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return this.scene.instanceNodes[sceneInstance]; | ||
} | ||
getInstanceMax(meshInstance) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return this.scene.instanceMaxs.subarray(sceneInstance * 3, (sceneInstance + 1) * 3); | ||
} | ||
getInstanceMin(meshInstance) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return this.scene.instanceMins.subarray(sceneInstance * 3, (sceneInstance + 1) * 3); | ||
} | ||
getInstanceGroup(meshInstance) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return this.scene.instanceGroups[sceneInstance]; | ||
} | ||
getInstanceTag(meshInstance) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return this.scene.instanceTags[sceneInstance]; | ||
} | ||
getInstanceHasFlag(meshInstance, flag) { | ||
const sceneInstance = this.scene.getMeshSceneInstance(this.meshIndex, meshInstance); | ||
return (this.scene.instanceFlags[sceneInstance] & flag) > 0; | ||
} | ||
// ------------- Mesh ----------------- | ||
@@ -105,0 +80,0 @@ getVertexStart(section = 'all') { |
@@ -14,3 +14,2 @@ /** | ||
static instanceMesh: string; | ||
static instanceTransform: string; | ||
static instanceMatrix: string; | ||
@@ -41,3 +40,2 @@ static instanceNodes: string; | ||
instanceMeshes: Int32Array; | ||
instanceTransforms: Int32Array; | ||
instanceMatrices: Float32Array; | ||
@@ -58,9 +56,6 @@ instanceNodes: Int32Array; | ||
private nodeToInstance; | ||
private meshSceneInstances; | ||
constructor(rawG3d: AbstractG3d, chunkCount: Int32Array, instanceMeshes: Int32Array, instanceTransform: Int32Array, instanceMatrices: Float32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshChunks: Int32Array, meshChunkIndices: Int32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
private createMap; | ||
constructor(rawG3d: AbstractG3d, chunkCount: Int32Array, instanceMeshes: Int32Array, instanceMatrices: Float32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshChunks: Int32Array, meshChunkIndices: Int32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
static createFromAbstract(g3d: AbstractG3d): G3dScene; | ||
static createFromPath(path: string): Promise<G3dScene>; | ||
static createFromBfast(bfast: BFast): Promise<G3dScene>; | ||
getMeshSceneInstance(mesh: number, meshIndex: number): number; | ||
getMeshCount(): number; | ||
@@ -70,4 +65,2 @@ getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
getNodeMin(node: number): Float32Array; | ||
getNodeMax(node: number): Float32Array; | ||
getInstanceMin(instance: number): Float32Array; | ||
@@ -74,0 +67,0 @@ getInstanceMax(instance: number): Float32Array; |
@@ -18,3 +18,2 @@ "use strict"; | ||
SceneAttributes.instanceMesh = 'g3d:instance:mesh:0:int32:1'; | ||
SceneAttributes.instanceTransform = 'g3d:instance:transform:0:int32:1'; | ||
SceneAttributes.instanceMatrix = 'g3d:instance:transform:0:float32:16'; | ||
@@ -37,3 +36,2 @@ SceneAttributes.instanceNodes = 'g3d:instance:node:0:int32:1'; | ||
SceneAttributes.instanceMesh, | ||
SceneAttributes.instanceTransform, | ||
SceneAttributes.instanceMatrix, | ||
@@ -60,7 +58,6 @@ SceneAttributes.instanceNodes, | ||
class G3dScene { | ||
constructor(rawG3d, chunkCount, instanceMeshes, instanceTransform, instanceMatrices, instanceNodes, instanceGroups, instanceTags, instanceFlags, instanceMins, instanceMaxs, meshChunks, meshChunkIndices, meshInstanceCounts, meshIndexCounts, meshVertexCounts, meshOpaqueIndexCounts, meshOpaqueVertexCounts) { | ||
constructor(rawG3d, chunkCount, instanceMeshes, instanceMatrices, instanceNodes, instanceGroups, instanceTags, instanceFlags, instanceMins, instanceMaxs, meshChunks, meshChunkIndices, meshInstanceCounts, meshIndexCounts, meshVertexCounts, meshOpaqueIndexCounts, meshOpaqueVertexCounts) { | ||
this.rawG3d = rawG3d; | ||
this.chunkCount = chunkCount[0]; | ||
this.instanceMeshes = instanceMeshes; | ||
this.instanceTransforms = instanceTransform; | ||
this.instanceMatrices = instanceMatrices; | ||
@@ -85,17 +82,3 @@ this.instanceNodes = instanceNodes; | ||
} | ||
this.meshSceneInstances = this.createMap(); | ||
} | ||
createMap() { | ||
// From : (mesh, scene-index) -> mesh-index | ||
// To: (mesh, mesh-index) -> scene-index | ||
const map = new Map(); | ||
for (let i = 0; i < this.instanceMeshes.length; i++) { | ||
const mesh = this.instanceMeshes[i]; | ||
const index = this.instanceTransforms[i]; | ||
const indices = map.get(mesh) ?? new Map(); | ||
indices.set(index, i); | ||
map.set(mesh, indices); | ||
} | ||
return map; | ||
} | ||
static createFromAbstract(g3d) { | ||
@@ -105,3 +88,3 @@ function getArray(attribute) { | ||
} | ||
return new G3dScene(g3d, getArray(SceneAttributes.chunkCount), getArray(SceneAttributes.instanceMesh), getArray(SceneAttributes.instanceTransform), getArray(SceneAttributes.instanceMatrix), getArray(SceneAttributes.instanceNodes), getArray(SceneAttributes.instanceGroups), getArray(SceneAttributes.instanceTags), getArray(SceneAttributes.instanceFlags), getArray(SceneAttributes.instanceMins), getArray(SceneAttributes.instanceMaxs), getArray(SceneAttributes.meshChunk), getArray(SceneAttributes.meshChunkIndices), getArray(SceneAttributes.meshInstanceCounts), getArray(SceneAttributes.meshIndexCounts), getArray(SceneAttributes.meshVertexCounts), getArray(SceneAttributes.meshOpaqueIndexCount), getArray(SceneAttributes.meshOpaqueVertexCount)); | ||
return new G3dScene(g3d, getArray(SceneAttributes.chunkCount), getArray(SceneAttributes.instanceMesh), getArray(SceneAttributes.instanceMatrix), getArray(SceneAttributes.instanceNodes), getArray(SceneAttributes.instanceGroups), getArray(SceneAttributes.instanceTags), getArray(SceneAttributes.instanceFlags), getArray(SceneAttributes.instanceMins), getArray(SceneAttributes.instanceMaxs), getArray(SceneAttributes.meshChunk), getArray(SceneAttributes.meshChunkIndices), getArray(SceneAttributes.meshInstanceCounts), getArray(SceneAttributes.meshIndexCounts), getArray(SceneAttributes.meshVertexCounts), getArray(SceneAttributes.meshOpaqueIndexCount), getArray(SceneAttributes.meshOpaqueVertexCount)); | ||
} | ||
@@ -118,5 +101,2 @@ static async createFromPath(path) { | ||
} | ||
getMeshSceneInstance(mesh, meshIndex) { | ||
return this.meshSceneInstances.get(mesh)?.get(meshIndex); | ||
} | ||
getMeshCount() { | ||
@@ -142,16 +122,19 @@ return this.meshInstanceCounts.length; | ||
} | ||
getNodeMin(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!instance) { | ||
return undefined; | ||
} | ||
return this.getInstanceMin(instance); | ||
/* | ||
getNodeMin(node: number){ | ||
const instance = this.nodeToInstance.get(node) | ||
if(!instance){ | ||
return undefined | ||
} | ||
return this.getInstanceMin(instance) | ||
} | ||
getNodeMax(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!instance) { | ||
return undefined; | ||
} | ||
return this.getInstanceMax(instance); | ||
getNodeMax(node: number){ | ||
const instance = this.nodeToInstance.get(node) | ||
if(!instance){ | ||
return undefined | ||
} | ||
return this.getInstanceMax(instance) | ||
} | ||
*/ | ||
getInstanceMin(instance) { | ||
@@ -158,0 +141,0 @@ return this.instanceMins.subarray(instance * g3d_1.G3d.POSITION_SIZE); |
@@ -48,8 +48,2 @@ /** | ||
static createFromBfast(bfast: BFast): Promise<G3dMesh>; | ||
getBimInstance(meshInstance: number): number; | ||
getInstanceMax(meshInstance: number): Float32Array; | ||
getInstanceMin(meshInstance: number): Float32Array; | ||
getInstanceGroup(meshInstance: number): number; | ||
getInstanceTag(meshInstance: number): bigint; | ||
getInstanceHasFlag(meshInstance: number, flag: number): boolean; | ||
getVertexStart(section?: MeshSection): number; | ||
@@ -56,0 +50,0 @@ getVertexEnd(section?: MeshSection): number; |
@@ -14,3 +14,2 @@ /** | ||
static instanceMesh: string; | ||
static instanceTransform: string; | ||
static instanceMatrix: string; | ||
@@ -41,3 +40,2 @@ static instanceNodes: string; | ||
instanceMeshes: Int32Array; | ||
instanceTransforms: Int32Array; | ||
instanceMatrices: Float32Array; | ||
@@ -58,9 +56,6 @@ instanceNodes: Int32Array; | ||
private nodeToInstance; | ||
private meshSceneInstances; | ||
constructor(rawG3d: AbstractG3d, chunkCount: Int32Array, instanceMeshes: Int32Array, instanceTransform: Int32Array, instanceMatrices: Float32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshChunks: Int32Array, meshChunkIndices: Int32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
private createMap; | ||
constructor(rawG3d: AbstractG3d, chunkCount: Int32Array, instanceMeshes: Int32Array, instanceMatrices: Float32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshChunks: Int32Array, meshChunkIndices: Int32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
static createFromAbstract(g3d: AbstractG3d): G3dScene; | ||
static createFromPath(path: string): Promise<G3dScene>; | ||
static createFromBfast(bfast: BFast): Promise<G3dScene>; | ||
getMeshSceneInstance(mesh: number, meshIndex: number): number; | ||
getMeshCount(): number; | ||
@@ -70,4 +65,2 @@ getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
getNodeMin(node: number): Float32Array; | ||
getNodeMax(node: number): Float32Array; | ||
getInstanceMin(instance: number): Float32Array; | ||
@@ -74,0 +67,0 @@ getInstanceMax(instance: number): Float32Array; |
{ | ||
"name": "vim-format", | ||
"version": "1.0.6-dev.225", | ||
"version": "1.0.6-dev.226", | ||
"description": "The VIM format is a modern and efficient open 3D data interchange format designed for BIM and manufacturing data optimized for efficient loading and rendering on low-power devices.", | ||
@@ -5,0 +5,0 @@ "directories": { |
818466
18675