@oneisland/tessellation

A simple library for triangle face tessellation

Usage no npm install needed!

<script type="module">
  import oneislandTessellation from 'https://cdn.skypack.dev/@oneisland/tessellation';
</script>

README


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