vim-format
Advanced tools
Comparing version 1.0.6-dev.138 to 1.0.6-dev.200
@@ -64,4 +64,3 @@ /** | ||
getBfast(name: string): Promise<BFast>; | ||
getLocalBfast(name: string, unzip?: boolean): Promise<BFast | undefined>; | ||
getLocalBfastRaw(name: string, unzip?: boolean): Promise<BFast | undefined>; | ||
getLocalBfast(name: string, inflate?: boolean): Promise<BFast | undefined>; | ||
/** | ||
@@ -68,0 +67,0 @@ * Returns the raw buffer associated with a name |
@@ -220,16 +220,7 @@ "use strict"; | ||
} | ||
async getLocalBfast(name, unzip = false) { | ||
async getLocalBfast(name, inflate = false) { | ||
let buffer = await this.getBuffer(name); | ||
if (!buffer) | ||
return undefined; | ||
if (unzip) { | ||
buffer = pako.inflate(buffer).buffer; | ||
} | ||
return new BFast(buffer, 0, name); | ||
} | ||
async getLocalBfastRaw(name, unzip = false) { | ||
let buffer = await this.getBuffer(name); | ||
if (!buffer) | ||
return undefined; | ||
if (unzip) { | ||
if (inflate) { | ||
buffer = pako.inflateRaw(buffer).buffer; | ||
@@ -236,0 +227,0 @@ } |
@@ -12,4 +12,5 @@ /** | ||
export declare class SceneAttributes { | ||
static instanceFiles: string; | ||
static instanceIndices: string; | ||
static chunkCount: string; | ||
static instanceMesh: string; | ||
static instanceTransform: string; | ||
static instanceNodes: string; | ||
@@ -21,2 +22,3 @@ static instanceGroups: string; | ||
static instanceMaxs: string; | ||
static meshChunk: string; | ||
static meshInstanceCounts: string; | ||
@@ -36,4 +38,5 @@ static meshIndexCounts: string; | ||
rawG3d: AbstractG3d; | ||
chunksCount: number; | ||
instanceMeshes: Int32Array; | ||
instanceIndices: Int32Array; | ||
instanceTransforms: Int32Array; | ||
instanceNodes: Int32Array; | ||
@@ -45,2 +48,3 @@ instanceGroups: Int32Array; | ||
instanceMaxs: Float32Array; | ||
meshChunks: Int32Array; | ||
meshInstanceCounts: Int32Array; | ||
@@ -53,3 +57,3 @@ meshIndexCounts: Int32Array; | ||
private meshSceneInstances; | ||
constructor(rawG3d: AbstractG3d, instanceFiles: Int32Array, instanceIndices: Int32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
constructor(rawG3d: AbstractG3d, chunksCount: Int32Array, instanceMeshes: Int32Array, instanceTransform: Int32Array, instanceNodes: Int32Array, instanceGroups: Int32Array, instanceTags: BigInt64Array, instanceFlags: Uint16Array, instanceMins: Float32Array, instanceMaxs: Float32Array, meshChunks: Int32Array, meshInstanceCounts: Int32Array, meshIndexCounts: Int32Array, meshVertexCounts: Int32Array, meshOpaqueIndexCounts: Int32Array, meshOpaqueVertexCounts: Int32Array); | ||
private createMap; | ||
@@ -56,0 +60,0 @@ static createFromAbstract(g3d: AbstractG3d): G3dScene; |
@@ -16,4 +16,5 @@ "use strict"; | ||
exports.SceneAttributes = SceneAttributes; | ||
SceneAttributes.instanceFiles = 'g3d:instance:file:0:int32:1'; | ||
SceneAttributes.instanceIndices = 'g3d:instance:index:0:int32:1'; | ||
SceneAttributes.chunkCount = 'g3d:chunk:count:0:int32:1'; | ||
SceneAttributes.instanceMesh = 'g3d:instance:mesh:0:int32:1'; | ||
SceneAttributes.instanceTransform = 'g3d:instance:transform:0:int32:1'; | ||
SceneAttributes.instanceNodes = 'g3d:instance:node:0:int32:1'; | ||
@@ -25,2 +26,3 @@ SceneAttributes.instanceGroups = 'g3d:instance:group:0:int32:1'; | ||
SceneAttributes.instanceMaxs = 'g3d:instance:max:0:float32:3'; | ||
SceneAttributes.meshChunk = 'g3d:mesh:chunk:0:int32:1'; | ||
SceneAttributes.meshInstanceCounts = 'g3d:mesh:instancecount:0:int32:1'; | ||
@@ -32,4 +34,5 @@ SceneAttributes.meshIndexCounts = 'g3d:mesh:indexcount:0:int32:1'; | ||
SceneAttributes.all = [ | ||
SceneAttributes.instanceFiles, | ||
SceneAttributes.instanceIndices, | ||
SceneAttributes.chunkCount, | ||
SceneAttributes.instanceMesh, | ||
SceneAttributes.instanceTransform, | ||
SceneAttributes.instanceNodes, | ||
@@ -41,2 +44,3 @@ SceneAttributes.instanceGroups, | ||
SceneAttributes.instanceMaxs, | ||
SceneAttributes.meshChunk, | ||
SceneAttributes.meshInstanceCounts, | ||
@@ -54,6 +58,7 @@ SceneAttributes.meshIndexCounts, | ||
class G3dScene { | ||
constructor(rawG3d, instanceFiles, instanceIndices, instanceNodes, instanceGroups, instanceTags, instanceFlags, instanceMins, instanceMaxs, meshInstanceCounts, meshIndexCounts, meshVertexCounts, meshOpaqueIndexCounts, meshOpaqueVertexCounts) { | ||
constructor(rawG3d, chunksCount, instanceMeshes, instanceTransform, instanceNodes, instanceGroups, instanceTags, instanceFlags, instanceMins, instanceMaxs, meshChunks, meshInstanceCounts, meshIndexCounts, meshVertexCounts, meshOpaqueIndexCounts, meshOpaqueVertexCounts) { | ||
this.rawG3d = rawG3d; | ||
this.instanceMeshes = instanceFiles; | ||
this.instanceIndices = instanceIndices; | ||
this.chunksCount = chunksCount[0]; | ||
this.instanceMeshes = instanceMeshes; | ||
this.instanceTransforms = instanceTransform; | ||
this.instanceNodes = instanceNodes; | ||
@@ -65,2 +70,3 @@ this.instanceGroups = instanceGroups; | ||
this.instanceMaxs = instanceMaxs; | ||
this.meshChunks = meshChunks; | ||
this.meshInstanceCounts = meshInstanceCounts; | ||
@@ -84,3 +90,3 @@ this.meshIndexCounts = meshIndexCounts; | ||
const mesh = this.instanceMeshes[i]; | ||
const index = this.instanceIndices[i]; | ||
const index = this.instanceTransforms[i]; | ||
const indices = map.get(mesh) ?? new Map(); | ||
@@ -96,3 +102,3 @@ indices.set(index, i); | ||
} | ||
return new G3dScene(g3d, getArray(SceneAttributes.instanceFiles), getArray(SceneAttributes.instanceIndices), getArray(SceneAttributes.instanceNodes), getArray(SceneAttributes.instanceGroups), getArray(SceneAttributes.instanceTags), getArray(SceneAttributes.instanceFlags), getArray(SceneAttributes.instanceMins), getArray(SceneAttributes.instanceMaxs), getArray(SceneAttributes.meshInstanceCounts), getArray(SceneAttributes.meshIndexCounts), getArray(SceneAttributes.meshVertexCounts), getArray(SceneAttributes.meshOpaqueIndexCount), getArray(SceneAttributes.meshOpaqueVertexCount)); | ||
return new G3dScene(g3d, getArray(SceneAttributes.instanceMesh), getArray(SceneAttributes.instanceMesh), getArray(SceneAttributes.instanceTransform), getArray(SceneAttributes.instanceNodes), getArray(SceneAttributes.instanceGroups), getArray(SceneAttributes.instanceTags), getArray(SceneAttributes.instanceFlags), getArray(SceneAttributes.instanceMins), getArray(SceneAttributes.instanceMaxs), getArray(SceneAttributes.meshChunk), getArray(SceneAttributes.meshInstanceCounts), getArray(SceneAttributes.meshIndexCounts), getArray(SceneAttributes.meshVertexCounts), getArray(SceneAttributes.meshOpaqueIndexCount), getArray(SceneAttributes.meshOpaqueVertexCount)); | ||
} | ||
@@ -134,3 +140,3 @@ static async createFromPath(path) { | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
if (!instance) { | ||
return undefined; | ||
@@ -142,3 +148,3 @@ } | ||
const instance = this.nodeToInstance.get(node); | ||
if (!node) { | ||
if (!instance) { | ||
return undefined; | ||
@@ -145,0 +151,0 @@ } |
export * from './bfast'; | ||
export * from './abstractG3d'; | ||
export * from './g3d'; | ||
@@ -3,0 +4,0 @@ export * from './remoteVimx'; |
@@ -32,2 +32,3 @@ "use strict"; | ||
__exportStar(require("./bfast"), exports); | ||
__exportStar(require("./abstractG3d"), exports); | ||
__exportStar(require("./g3d"), exports); | ||
@@ -34,0 +35,0 @@ __exportStar(require("./remoteVimx"), exports); |
@@ -24,3 +24,3 @@ "use strict"; | ||
abort() { | ||
this.xhr.abort(); | ||
this.xhr?.abort(); | ||
} | ||
@@ -27,0 +27,0 @@ send() { |
@@ -9,3 +9,2 @@ import { BFast } from "./bfast"; | ||
scene: RemoteValue<G3dScene>; | ||
sceneRaw: RemoteValue<G3dScene>; | ||
constructor(bfast: BFast); | ||
@@ -21,9 +20,7 @@ static fromPath(path: string): Promise<RemoteVimx>; | ||
download(): Promise<void>; | ||
private requestScene; | ||
/** | ||
* Fetches and returns the vimx G3dMeshIndex | ||
*/ | ||
private requestIndex; | ||
private requestIndexRaw; | ||
getIndex(): Promise<G3dScene>; | ||
getIndexRaw(): Promise<G3dScene>; | ||
* Fetches and returns the vimx G3dScene | ||
*/ | ||
getScene(): Promise<G3dScene>; | ||
/** | ||
@@ -36,11 +33,3 @@ * Fetches and returns the vimx G3dMaterials | ||
*/ | ||
getMesh(mesh: number): Promise<G3dMesh>; | ||
/** | ||
* Fetches and returns the vimx G3dMaterials | ||
*/ | ||
getMaterialsRaw(): Promise<G3dMaterials>; | ||
/** | ||
* Fetches and returns the vimx G3dMesh with given index | ||
*/ | ||
getMeshRaw(mesh: number): Promise<G3dMesh>; | ||
getChunk(chunk: number): Promise<G3dMesh[]>; | ||
} |
@@ -13,4 +13,3 @@ "use strict"; | ||
this.bfast = bfast; | ||
this.scene = new remoteValue_1.RemoteValue(() => this.requestIndex()); | ||
this.sceneRaw = new remoteValue_1.RemoteValue(() => this.requestIndexRaw()); | ||
this.scene = new remoteValue_1.RemoteValue(() => this.requestScene()); | ||
} | ||
@@ -34,19 +33,12 @@ static async fromPath(path) { | ||
} | ||
/** | ||
* Fetches and returns the vimx G3dMeshIndex | ||
*/ | ||
async requestIndex() { | ||
async requestScene() { | ||
const index = await this.bfast.getLocalBfast('scene', true); | ||
return g3dScene_1.G3dScene.createFromBfast(index); | ||
} | ||
async requestIndexRaw() { | ||
const index = await this.bfast.getLocalBfastRaw('scene', true); | ||
return g3dScene_1.G3dScene.createFromBfast(index); | ||
} | ||
async getIndex() { | ||
/** | ||
* Fetches and returns the vimx G3dScene | ||
*/ | ||
async getScene() { | ||
return this.scene.get(); | ||
} | ||
async getIndexRaw() { | ||
return this.sceneRaw.get(); | ||
} | ||
/** | ||
@@ -62,29 +54,11 @@ * Fetches and returns the vimx G3dMaterials | ||
*/ | ||
async getMesh(mesh) { | ||
const m = await this.bfast.getLocalBfast(`mesh_${mesh}`, true); | ||
const result = await g3dMesh_1.G3dMesh.createFromBfast(m); | ||
const scene = await this.scene.get(); | ||
result.scene = scene; | ||
result.meshIndex = mesh; | ||
return result; | ||
async getChunk(chunk) { | ||
const chunkBFast = await this.bfast.getLocalBfast(`chunk_${chunk}`, true); | ||
var ranges = await chunkBFast.getRanges(); | ||
const keys = [...ranges.keys()]; | ||
var bfasts = await Promise.all(keys.map(k => chunkBFast.getBfast(k))); | ||
var meshes = await Promise.all(bfasts.map(b => g3dMesh_1.G3dMesh.createFromBfast(b))); | ||
return meshes; | ||
} | ||
/** | ||
* Fetches and returns the vimx G3dMaterials | ||
*/ | ||
async getMaterialsRaw() { | ||
const mat = await this.bfast.getLocalBfastRaw('materials', true); | ||
return g3dMaterials_1.G3dMaterial.createFromBfast(mat); | ||
} | ||
/** | ||
* Fetches and returns the vimx G3dMesh with given index | ||
*/ | ||
async getMeshRaw(mesh) { | ||
const m = await this.bfast.getLocalBfastRaw(`mesh_${mesh}`, true); | ||
const result = await g3dMesh_1.G3dMesh.createFromBfast(m); | ||
const scene = await this.sceneRaw.get(); | ||
result.scene = scene; | ||
result.meshIndex = mesh; | ||
return result; | ||
} | ||
} | ||
exports.RemoteVimx = RemoteVimx; |
{ | ||
"name": "vim-format", | ||
"version": "1.0.6-dev.138", | ||
"version": "1.0.6-dev.200", | ||
"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": { |
818346
18658