Have ideas to improve npm?Join in the discussion! »

    @oneisland/tessellation

    0.0.2 • Public • Published


    A simple library for triangle face tessellation

    Installation

    Tessellation is available through the npm registry:

    $ npm install @oneisland/tessellation

    Usage

    After installing Tessellation you can use the package like so:

    simple-usage.js
    // Import the tessellation package
    import { Tessellation } from '@oneisland/tessellation';
     
    // Create a new tesselation and extract the vertices and faces as a result
    const { vertices, faces } = new Tessellation({
     
      // Add the vertices
      vertices: [
        [-0.5, -0.5,  0.5],
        [ 0.5, -0.5,  0.5],
        [ 0.5, -0.5, -0.5],
        [-0.5, -0.5, -0.5],
      ],
     
      // Add the faces
      faces: [
        [2, 3, 0],
        [2, 1, 0],
      ],
     
      // Subdivide the faces one time
      divisions: 1
    });
     
    // Log the output of the vertices
    console.log('Vertices:', JSON.stringify(vertices, null, 2));
     
    // Log the output of the faces
    console.log('Faces:', JSON.stringify(faces, null, 2));

    Running the following code with Node:

    $ node simple-example.js

    Export the output of the code

    Vertices: [
      [
        -0.5,
        -0.5,
        0.5
      ],
      [
        0.5,
        -0.5,
        0.5
      ],
      [
        0.5,
        -0.5,
        -0.5
      ],
      [
        -0.5,
        -0.5,
        -0.5
      ],
      [
        -0.5,
        0.5,
        0.5
      ],
      [
        0.5,
        0.5,
        0.5
      ],
      [
        0.5,
        0.5,
        -0.5
      ],
      [
        -0.5,
        0.5,
        -0.5
      ],
      [
        0,
        -0.5,
        -0.5
      ],
      [
        0,
        -0.5,
        0
      ],
      [
        -0.5,
        -0.5,
        0
      ],
      [
        0.5,
        -0.5,
        0
      ],
      [
        0,
        -0.5,
        0.5
      ]
    ]
    Faces: [
      [
        2,
        8,
        9
      ],
      [
        8,
        3,
        10
      ],
      [
        8,
        10,
        9
      ],
      [
        9,
        10,
        0
      ],
      [
        2,
        11,
        9
      ],
      [
        11,
        1,
        12
      ],
      [
        11,
        12,
        9
      ],
      [
        9,
        12,
        0
      ]
    ]
    

    Please read the documentation below for more details on how to configure Mesh Exporter.

    You can check out the tests or the source code of our Structure library for more complex usage.

    Documentation

    Tessellator

    class Tessellator {
     
      constructor({ vertices, faces, divisions = 1 }) {
     
        return { vertices, faces }
      }
    }

    constructor

    The constructor function is called to perfrom a subdivision.

    The constructor function returns an Array of vertices and faces after subdivision.

    vertices

    The vertices argument should be an Array of Vertex values.

    faces

    The faces argument should be an Array of Face values (representing indices of vertices).

    divisions

    The divisions argument should be a Number which defines how many times the faces should be recursively subdivided.

    License

    MIT

    Copyright (c) 2019-present, OneIsland Limited

    Install

    npm i @oneisland/tessellation

    DownloadsWeekly Downloads

    8

    Version

    0.0.2

    License

    MIT

    Unpacked Size

    15.3 kB

    Total Files

    12

    Last publish

    Collaborators

    • avatar