vim-format
Advanced tools
Comparing version 1.0.6-dev.129 to 1.0.6-dev.130
@@ -6,4 +6,2 @@ /** | ||
import { BFast } from './bfast'; | ||
import { FilterMode } from './g3dMeshIndex'; | ||
import { G3dSubset2, G3dSubsetOG } from './g3dSubset'; | ||
export declare type MeshSection = 'opaque' | 'transparent' | 'all'; | ||
@@ -181,7 +179,2 @@ /** | ||
validate(): void; | ||
filter(mode: FilterMode, filter: number[]): G3dSubsetOG; | ||
toSubset(): G3dSubset2; | ||
filter2(mode: FilterMode, filter: number[]): G3dSubsetOG | G3dSubset2; | ||
private getInstancesFromMeshes; | ||
private getMeshesFromInstances; | ||
} |
@@ -9,3 +9,2 @@ "use strict"; | ||
const bfast_1 = require("./bfast"); | ||
const g3dSubset_1 = require("./g3dSubset"); | ||
/** | ||
@@ -607,72 +606,2 @@ * See https://github.com/vimaec/vim#vim-geometry-attributes | ||
} | ||
filter(mode, filter) { | ||
if (filter === undefined || mode === undefined) { | ||
return new g3dSubset_1.G3dSubsetOG(this, undefined, undefined, undefined); | ||
} | ||
if (mode === 'instance') { | ||
return this.getMeshesFromInstances(filter); | ||
} | ||
if (mode === 'mesh') { | ||
const instances = this.getInstancesFromMeshes(filter); | ||
return new g3dSubset_1.G3dSubsetOG(this, instances, filter, undefined); | ||
} | ||
if (mode === 'tag' || mode === 'group') { | ||
throw new Error("Filter Mode Not implemented"); | ||
} | ||
} | ||
toSubset() { | ||
return new g3dSubset_1.G3dSubset2(this, undefined); | ||
} | ||
filter2(mode, filter) { | ||
if (filter === undefined || mode === undefined) { | ||
return new g3dSubset_1.G3dSubset2(this, undefined); | ||
} | ||
if (mode === 'instance') { | ||
return this.getMeshesFromInstances(filter); | ||
} | ||
if (mode === 'mesh') { | ||
const instances = this.getInstancesFromMeshes(filter); | ||
return new g3dSubset_1.G3dSubsetOG(this, instances, filter, undefined); | ||
} | ||
if (mode === 'tag' || mode === 'group') { | ||
throw new Error("Filter Mode Not implemented"); | ||
} | ||
} | ||
getInstancesFromMeshes(filter) { | ||
const instances = new Array(); | ||
for (let i = 0; i < filter.length; i++) | ||
this.meshInstances[filter[i]].forEach(instance => instances.push(instance)); | ||
return instances; | ||
} | ||
getMeshesFromInstances(filter) { | ||
// Compute the list of unique meshes to include | ||
const meshSet = new Set(); | ||
const meshes = new Array(); | ||
filter.forEach((instance, i) => { | ||
const mesh = this.instanceMeshes[instance]; | ||
if (!meshSet.has(mesh) && mesh >= 0) { | ||
meshes.push(mesh); | ||
meshSet.add(mesh); | ||
} | ||
}); | ||
// Compute the mesh-based instances indices for each mesh | ||
const instanceSet = new Set(filter); | ||
const meshInstances = new Array(meshes.length); | ||
meshes.forEach((mesh, i) => { | ||
const indices = new Array(); | ||
this.meshInstances[mesh].forEach((instance, j) => { | ||
if (instanceSet.has(instance)) { | ||
indices.push(j); | ||
} | ||
meshInstances[i] = indices; | ||
}); | ||
}); | ||
const instances = new Array(); | ||
for (let i = 0; i < this.instanceNodes.length; i++) { | ||
if (instanceSet.has(this.instanceNodes[i])) { | ||
instances.push(i); | ||
} | ||
} | ||
return new g3dSubset_1.G3dSubsetOG(this, instances, meshes, meshInstances); | ||
} | ||
} | ||
@@ -679,0 +608,0 @@ exports.G3d = G3d; |
@@ -7,3 +7,2 @@ /** | ||
import { MeshSection } from './g3d'; | ||
import { G3dSubset2 } from './g3dSubset'; | ||
export declare type FilterMode = undefined | 'mesh' | 'instance' | 'group' | 'tag'; | ||
@@ -53,2 +52,6 @@ /** | ||
static createFromBfast(bfast: BFast): Promise<G3dMeshIndex>; | ||
getMeshCount(): number; | ||
getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshVertexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
getNodeMin(node: number): Float32Array; | ||
@@ -58,10 +61,2 @@ getNodeMax(node: number): Float32Array; | ||
getInstanceMax(instance: number): Float32Array; | ||
getMeshCount(): number; | ||
getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshVertexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
toSubset(): G3dSubset2; | ||
filter2(mode: FilterMode, filter: number[]): G3dSubset2; | ||
private filterOnArray; | ||
private getInstancesFromMeshes; | ||
} |
@@ -10,3 +10,2 @@ "use strict"; | ||
const g3d_1 = require("./g3d"); | ||
const g3dSubset_1 = require("./g3dSubset"); | ||
/** | ||
@@ -91,22 +90,2 @@ * See https://github.com/vimaec/vim#vim-geometry-attributes | ||
} | ||
getNodeMin(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
return undefined; | ||
} | ||
return this.getInstanceMin(instance); | ||
} | ||
getNodeMax(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
return undefined; | ||
} | ||
return this.getInstanceMax(instance); | ||
} | ||
getInstanceMin(instance) { | ||
return this.instanceMins.subarray(instance * g3d_1.G3d.POSITION_SIZE); | ||
} | ||
getInstanceMax(instance) { | ||
return this.instanceMaxs.subarray(instance * g3d_1.G3d.POSITION_SIZE); | ||
} | ||
getMeshCount() { | ||
@@ -132,43 +111,23 @@ return this.meshInstanceCounts.length; | ||
} | ||
toSubset() { | ||
return new g3dSubset_1.G3dSubset2(this, undefined); | ||
getNodeMin(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
return undefined; | ||
} | ||
return this.getInstanceMin(instance); | ||
} | ||
filter2(mode, filter) { | ||
const sub = new g3dSubset_1.G3dSubset2(this, undefined); | ||
if (filter === undefined || mode === undefined) { | ||
return new g3dSubset_1.G3dSubset2(this, undefined); | ||
getNodeMax(node) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
return undefined; | ||
} | ||
if (mode === 'instance') { | ||
const instances = this.filterOnArray(filter, this.instanceNodes); | ||
return new g3dSubset_1.G3dSubset2(this, instances); | ||
} | ||
if (mode === 'mesh') { | ||
const instances = this.filterOnArray(filter, this.instanceMeshes); | ||
return new g3dSubset_1.G3dSubset2(this, instances); | ||
} | ||
if (mode === 'tag' || mode === 'group') { | ||
throw new Error("Filter Mode Not implemented"); | ||
} | ||
return this.getInstanceMax(instance); | ||
} | ||
filterOnArray(filter, array) { | ||
const set = new Set(filter); | ||
const result = new Array(); | ||
array.forEach((mesh, i) => { | ||
if (set.has(mesh)) { | ||
result.push(i); | ||
} | ||
}); | ||
return result; | ||
getInstanceMin(instance) { | ||
return this.instanceMins.subarray(instance * g3d_1.G3d.POSITION_SIZE); | ||
} | ||
getInstancesFromMeshes(meshes) { | ||
const instances = new Array(); | ||
const set = new Set(meshes); | ||
for (let i = 0; i < this.instanceMeshes.length; i++) { | ||
if (set.has(this.instanceMeshes[i])) { | ||
instances.push(i); | ||
} | ||
} | ||
return instances; | ||
getInstanceMax(instance) { | ||
return this.instanceMaxs.subarray(instance * g3d_1.G3d.POSITION_SIZE); | ||
} | ||
} | ||
exports.G3dMeshIndex = G3dMeshIndex; |
@@ -7,4 +7,2 @@ export * from './bfast'; | ||
export * from './g3dMeshIndex'; | ||
export * from './g3dSubset'; | ||
export * from './g3dMeshOffsets'; | ||
export * from './remoteG3d'; | ||
@@ -11,0 +9,0 @@ export * from './remoteBuffer'; |
@@ -37,4 +37,2 @@ "use strict"; | ||
__exportStar(require("./g3dMeshIndex"), exports); | ||
__exportStar(require("./g3dSubset"), exports); | ||
__exportStar(require("./g3dMeshOffsets"), exports); | ||
__exportStar(require("./remoteG3d"), exports); | ||
@@ -41,0 +39,0 @@ __exportStar(require("./remoteBuffer"), exports); |
@@ -6,4 +6,2 @@ /** | ||
import { BFast } from './bfast'; | ||
import { FilterMode } from './g3dMeshIndex'; | ||
import { G3dSubset2, G3dSubsetOG } from './g3dSubset'; | ||
export declare type MeshSection = 'opaque' | 'transparent' | 'all'; | ||
@@ -181,7 +179,2 @@ /** | ||
validate(): void; | ||
filter(mode: FilterMode, filter: number[]): G3dSubsetOG; | ||
toSubset(): G3dSubset2; | ||
filter2(mode: FilterMode, filter: number[]): G3dSubsetOG | G3dSubset2; | ||
private getInstancesFromMeshes; | ||
private getMeshesFromInstances; | ||
} |
@@ -7,3 +7,2 @@ /** | ||
import { MeshSection } from './g3d'; | ||
import { G3dSubset2 } from './g3dSubset'; | ||
export declare type FilterMode = undefined | 'mesh' | 'instance' | 'group' | 'tag'; | ||
@@ -53,2 +52,6 @@ /** | ||
static createFromBfast(bfast: BFast): Promise<G3dMeshIndex>; | ||
getMeshCount(): number; | ||
getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshVertexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
getNodeMin(node: number): Float32Array; | ||
@@ -58,10 +61,2 @@ getNodeMax(node: number): Float32Array; | ||
getInstanceMax(instance: number): Float32Array; | ||
getMeshCount(): number; | ||
getMeshIndexCount(mesh: number, section: MeshSection): number; | ||
getMeshVertexCount(mesh: number, section: MeshSection): number; | ||
getMeshInstanceCount(mesh: number): number; | ||
toSubset(): G3dSubset2; | ||
filter2(mode: FilterMode, filter: number[]): G3dSubset2; | ||
private filterOnArray; | ||
private getInstancesFromMeshes; | ||
} |
@@ -7,4 +7,2 @@ export * from './bfast'; | ||
export * from './g3dMeshIndex'; | ||
export * from './g3dSubset'; | ||
export * from './g3dMeshOffsets'; | ||
export * from './remoteG3d'; | ||
@@ -11,0 +9,0 @@ export * from './remoteBuffer'; |
{ | ||
"name": "vim-format", | ||
"version": "1.0.6-dev.129", | ||
"version": "1.0.6-dev.130", | ||
"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": { |
799365
18158