1.0.2 • Published 2 years ago

@anderpang/obj2json v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

obj2json.js

Installation

$ npm i @anderpang/obj2json.js

Usage

 import obj2json from "anderpang/obj2json.js";

or

<script src="./obj2json.js"></script>
import obj2json from "@anderpang/obj2json";

var json=obj2json(`
    # Blender v2.78 (sub 0) OBJ File: ''
    # www.blender.org
    mtllib box.mtl
    o Cube_Cube.001
    v -1.000000 -1.000000 1.000000
    v -1.000000 1.000000 1.000000
    v -1.000000 -1.000000 -1.000000
    v -1.000000 1.000000 -1.000000
    v 1.000000 -1.000000 1.000000
    v 1.000000 1.000000 1.000000
    v 1.000000 -1.000000 -1.000000
    v 1.000000 1.000000 -1.000000
    vn -1.0000 0.0000 0.0000
    vn 0.0000 0.0000 -1.0000
    vn 1.0000 0.0000 0.0000
    vn 0.0000 0.0000 1.0000
    vn 0.0000 -1.0000 0.0000
    vn 0.0000 1.0000 0.0000
    usemtl None
    s off
    f 1//1 2//1 4//1 3//1
    f 3//2 4//2 8//2 7//2
    f 7//3 8//3 6//3 5//3
    f 5//4 6//4 2//4 1//4
    f 3//5 7//5 5//5 1//5
    f 8//6 4//6 2//6 6//6

`);

console.log(json);
// result
/*
{
  vertices: Array(108) [-1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, …]
  normals: Array(108) [-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, …]
  colors: Array(144) [0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, …]
  indices: Array(36) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
}
*/
import obj2json from "@anderpang/obj2json";

var json=obj2json({
    files:{
        "box.obj":`
            # Blender v2.78 (sub 0) OBJ File: ''
            # www.blender.org
            mtllib box.mtl
            o Cube_Cube.001
            v -1.000000 -1.000000 1.000000
            v -1.000000 1.000000 1.000000
            v -1.000000 -1.000000 -1.000000
            v -1.000000 1.000000 -1.000000
            v 1.000000 -1.000000 1.000000
            v 1.000000 1.000000 1.000000
            v 1.000000 -1.000000 -1.000000
            v 1.000000 1.000000 -1.000000
            vn -1.0000 0.0000 0.0000
            vn 0.0000 0.0000 -1.0000
            vn 1.0000 0.0000 0.0000
            vn 0.0000 0.0000 1.0000
            vn 0.0000 -1.0000 0.0000
            vn 0.0000 1.0000 0.0000
            usemtl None
            s off
            f 1//1 2//1 4//1 3//1
            f 3//2 4//2 8//2 7//2
            f 7//3 8//3 6//3 5//3
            f 5//4 6//4 2//4 1//4
            f 3//5 7//5 5//5 1//5
            f 8//6 4//6 2//6 6//6
        `,
        "box.mtl":`
            # Blender MTL File: 'None'
            # Material Count: 1

            newmtl None
            Ns 0
            Ka 0.000000 0.000000 0.000000
            Kd 0.8 0.8 0.8
            Ks 0.8 0.8 0.8
            d 1
            illum 2
        `,
        "other.mtl":`
        `
    },
    scale:0.5,
    reverse:false,
    percision:2

  });

console.log(json);
/*
vertices: Array(108) [-0.5, -0.5, 0.5, -0.5, 0.5, 0.5, -0.5, …]
normals: Array(108) [-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, …]
colors: Array(144) [0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, …]
indices: Array(36) [0, 1, 2, 3, 4, 5,...]
*/
  • reverse (normals direction)
  • percision (normals and vertices percision) default -1. if 0 then Interger, if 1 then 0.1, if 2 then 0.02...
1.0.2

2 years ago

1.0.0

2 years ago