# ndarray-extract-contour

> Generic contour extraction library for surface nets/dual contouring

Latest version **1.0.1** (published 2014-05-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install ndarray-extract-contour
pnpm add ndarray-extract-contour
yarn add ndarray-extract-contour
bun add ndarray-extract-contour
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2014-05-05 |
| First published | 2014-04-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7 |
| Author | Mikola Lysenko |
| Maintainers | mikolalysenko |
| Keywords | ndarray, contour, extraction |

## Links

- npm: https://www.npmjs.com/package/ndarray-extract-contour
- Repository: https://github.com/mikolalysenko/ndarray-extract-contour
- Issues: https://github.com/mikolalysenko/ndarray-extract-contour/issues
- npm.io page: https://npm.io/package/ndarray-extract-contour

## Dependencies (1)

- [typedarray-pool](https://npm.io/package/typedarray-pool.md) ^1.0.0

## Recent versions

- 1.0.1 (latest) — 2014-05-05
- 1.0.0 — 2014-04-10

## README

ndarray-extract-contour
=======================
General purpose contour extraction routine generator.  This library has a really horrible interface, but it is pretty flexible.  It is mostly useful as an internal component, and should not be used generally unless you know what you are doing.

As an example of a nicer interface built using this module, take a look at [surface-nets](https://github.com/mikolalysenko/surface-nets).

# Example/documentation

```javascript
var generateContour = require("ndarray-extract-contour")

var getContour = generateContour({
  order: [1,0],         //Order of array iteration
  arrayArguments: 2,    //Take two arrays as input
  scalarArguments: 1,   //Take one extra scalar argument

  //Function to determine phase of a grid cell
  phase: function(a, b, s) { 

    //a = first array argument
    //b = second array argument
    //s = scalar argument

    return a
  },

  //Callback for adding vertex to array
  vertex: function(x,y, a00,a01,a10,a11,  b00,b01,b10,b11,  p00,p01,p10,p11, s) {

    //Geometry:
    //
    //   a11 ---- a10
    //    |        |
    //    |        |
    //    |        |
    //   a01 ---- a00
    //

    //Arguments:

    // x,y,...  = coordinates of vertex in grid index
    // a00,a01,...  = components of first array
    // b00,b01,...  = components of second array
    // p00,p01,...  = phase of all nearby cells
    // s,... = optional scalar arguments
    //
  },

  //Callback for adding cell
  cell: function(v0,v1,  a0,a1,  b0,b1,  p0,p1,  s) {

    // Geometry:
    //
    //       v0
    //       |
    //  p0   |    p1
    //       |
    //       v1


    //Arguments:
    //  v0,v1,...  = coordinates of vertices of cuboid cell
    //  a0,a1  = first array values on front/back cell
    //  b0,b1  = second array values on front/back cell
    //  p0,p1  = phase values for front/back cell
    //  s,... = optional scalar arguments
  }
})


//How to use it:
testContour(A, B, S)
```

# Install

```
npm install ndarray-extract-contour
```

# Credits
(c) 2014 Mikola Lysenko. MIT License

---
_Source: https://npm.io/package/ndarray-extract-contour · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
