vim-format
Advanced tools
Comparing version 1.0.6-dev.226 to 1.0.6-dev.227
@@ -76,2 +76,4 @@ /** | ||
getArray(name: string): Promise<NumericArray | undefined>; | ||
getInt32Array(name: string): Promise<Int32Array | undefined>; | ||
getFloat32Array(name: string): Promise<Float32Array | undefined>; | ||
/** | ||
@@ -78,0 +80,0 @@ * Returns a single value from given buffer name |
@@ -260,2 +260,14 @@ "use strict"; | ||
} | ||
async getInt32Array(name) { | ||
const buffer = await this.getBuffer(name); | ||
if (!buffer) | ||
return; | ||
return new Int32Array(buffer); | ||
} | ||
async getFloat32Array(name) { | ||
const buffer = await this.getBuffer(name); | ||
if (!buffer) | ||
return; | ||
return new Float32Array(buffer); | ||
} | ||
/** | ||
@@ -262,0 +274,0 @@ * Returns a single value from given buffer name |
/** | ||
* @module vim-ts | ||
*/ | ||
import { AbstractG3d } from './abstractG3d'; | ||
import { BFast } from './bfast'; | ||
@@ -30,19 +29,15 @@ import { MeshSection } from './g3d'; | ||
meshIndex: number; | ||
rawG3d: AbstractG3d; | ||
meshOpaqueSubmeshCount: number; | ||
submeshIndexOffset: Int32Array; | ||
submeshVertexOffset: Int32Array; | ||
submeshMaterial: Int32Array; | ||
positions: Float32Array; | ||
indices: Uint32Array; | ||
static COLOR_SIZE: number; | ||
static POSITION_SIZE: number; | ||
readonly meshOpaqueSubmeshCount: number; | ||
readonly submeshIndexOffset: Int32Array; | ||
readonly submeshVertexOffset: Int32Array; | ||
readonly submeshMaterial: Int32Array; | ||
readonly positions: Float32Array; | ||
readonly indices: Uint32Array; | ||
static readonly COLOR_SIZE = 4; | ||
static readonly POSITION_SIZE = 3; | ||
/** | ||
* Opaque white | ||
*/ | ||
DEFAULT_COLOR: Float32Array; | ||
static readonly DEFAULT_COLOR: Float32Array; | ||
constructor(meshOpaqueSubmeshCount: number, submeshIndexOffsets: Int32Array, submeshVertexOffsets: Int32Array, submeshMaterials: Int32Array, indices: Int32Array | Uint32Array, positions: Float32Array); | ||
static createFromAbstract(g3d: AbstractG3d): G3dMesh; | ||
static createFromPath(path: string): Promise<G3dMesh>; | ||
static createFromBuffer(buffer: ArrayBuffer): Promise<G3dMesh>; | ||
static createFromBfast(bfast: BFast): Promise<G3dMesh>; | ||
@@ -49,0 +44,0 @@ getVertexStart(section?: MeshSection): number; |
@@ -7,4 +7,2 @@ "use strict"; | ||
exports.G3dMesh = exports.MeshAttributes = void 0; | ||
const abstractG3d_1 = require("./abstractG3d"); | ||
const bfast_1 = require("./bfast"); | ||
const g3d_1 = require("./g3d"); | ||
@@ -40,6 +38,2 @@ /** | ||
constructor(meshOpaqueSubmeshCount, submeshIndexOffsets, submeshVertexOffsets, submeshMaterials, indices, positions) { | ||
/** | ||
* Opaque white | ||
*/ | ||
this.DEFAULT_COLOR = new Float32Array([1, 1, 1, 1]); | ||
this.meshOpaqueSubmeshCount = meshOpaqueSubmeshCount; | ||
@@ -52,29 +46,12 @@ this.submeshIndexOffset = submeshIndexOffsets; | ||
} | ||
static createFromAbstract(g3d) { | ||
const meshOpaqueSubmeshCountArray = g3d.findAttribute(MeshAttributes.meshOpaqueSubmeshCount)?.data; | ||
const meshOpaqueSubmeshCount = meshOpaqueSubmeshCountArray[0]; | ||
const submeshIndexOffsets = g3d.findAttribute(MeshAttributes.submeshIndexOffsets)?.data; | ||
const submeshVertexOffsets = g3d.findAttribute(MeshAttributes.submeshVertexOffsets)?.data; | ||
const submeshMaterial = g3d.findAttribute(MeshAttributes.submeshMaterials) | ||
?.data; | ||
const indices = g3d.findAttribute(MeshAttributes.indices)?.data; | ||
const positions = g3d.findAttribute(MeshAttributes.positions) | ||
?.data; | ||
const result = new G3dMesh(meshOpaqueSubmeshCount, submeshIndexOffsets, submeshVertexOffsets, submeshMaterial, indices, positions); | ||
result.rawG3d = g3d; | ||
return result; | ||
} | ||
static async createFromPath(path) { | ||
const f = await fetch(path); | ||
const buffer = await f.arrayBuffer(); | ||
var g3d = this.createFromBuffer(buffer); | ||
return g3d; | ||
} | ||
static async createFromBuffer(buffer) { | ||
const bfast = new bfast_1.BFast(buffer); | ||
return this.createFromBfast(bfast); | ||
} | ||
static async createFromBfast(bfast) { | ||
const g3d = await abstractG3d_1.AbstractG3d.createFromBfast(bfast, MeshAttributes.all); | ||
return G3dMesh.createFromAbstract(g3d); | ||
const [opaqueCount, submeshIndexOffsets, submeshVertexOffsets, submeshMaterial, indices, positions] = await Promise.all([ | ||
bfast.getValue(MeshAttributes.meshOpaqueSubmeshCount, 0), | ||
bfast.getInt32Array(MeshAttributes.submeshIndexOffsets), | ||
bfast.getInt32Array(MeshAttributes.submeshVertexOffsets), | ||
bfast.getInt32Array(MeshAttributes.submeshMaterials), | ||
bfast.getInt32Array(MeshAttributes.indices), | ||
bfast.getFloat32Array(MeshAttributes.positions) | ||
]); | ||
return new G3dMesh(opaqueCount, submeshIndexOffsets, submeshVertexOffsets, submeshMaterial, indices, positions); | ||
} | ||
@@ -155,1 +132,5 @@ // ------------- Mesh ----------------- | ||
G3dMesh.POSITION_SIZE = 3; | ||
/** | ||
* Opaque white | ||
*/ | ||
G3dMesh.DEFAULT_COLOR = new Float32Array([1, 1, 1, 1]); |
@@ -76,2 +76,4 @@ /** | ||
getArray(name: string): Promise<NumericArray | undefined>; | ||
getInt32Array(name: string): Promise<Int32Array | undefined>; | ||
getFloat32Array(name: string): Promise<Float32Array | undefined>; | ||
/** | ||
@@ -78,0 +80,0 @@ * Returns a single value from given buffer name |
/** | ||
* @module vim-ts | ||
*/ | ||
import { AbstractG3d } from './abstractG3d'; | ||
import { BFast } from './bfast'; | ||
@@ -30,19 +29,15 @@ import { MeshSection } from './g3d'; | ||
meshIndex: number; | ||
rawG3d: AbstractG3d; | ||
meshOpaqueSubmeshCount: number; | ||
submeshIndexOffset: Int32Array; | ||
submeshVertexOffset: Int32Array; | ||
submeshMaterial: Int32Array; | ||
positions: Float32Array; | ||
indices: Uint32Array; | ||
static COLOR_SIZE: number; | ||
static POSITION_SIZE: number; | ||
readonly meshOpaqueSubmeshCount: number; | ||
readonly submeshIndexOffset: Int32Array; | ||
readonly submeshVertexOffset: Int32Array; | ||
readonly submeshMaterial: Int32Array; | ||
readonly positions: Float32Array; | ||
readonly indices: Uint32Array; | ||
static readonly COLOR_SIZE = 4; | ||
static readonly POSITION_SIZE = 3; | ||
/** | ||
* Opaque white | ||
*/ | ||
DEFAULT_COLOR: Float32Array; | ||
static readonly DEFAULT_COLOR: Float32Array; | ||
constructor(meshOpaqueSubmeshCount: number, submeshIndexOffsets: Int32Array, submeshVertexOffsets: Int32Array, submeshMaterials: Int32Array, indices: Int32Array | Uint32Array, positions: Float32Array); | ||
static createFromAbstract(g3d: AbstractG3d): G3dMesh; | ||
static createFromPath(path: string): Promise<G3dMesh>; | ||
static createFromBuffer(buffer: ArrayBuffer): Promise<G3dMesh>; | ||
static createFromBfast(bfast: BFast): Promise<G3dMesh>; | ||
@@ -49,0 +44,0 @@ getVertexStart(section?: MeshSection): number; |
{ | ||
"name": "vim-format", | ||
"version": "1.0.6-dev.226", | ||
"version": "1.0.6-dev.227", | ||
"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": { |
4
817898
18662