Extract a contour on a simplicial complex
npm install simplicial-complex-contoursimplicial-complex-contour
==========================
Finds a piecewise-linear isocontour on a simplicial complex using the marching simplex method.
``javascript
var extractContour = require('simplicial-complex-contour')
var bunny = require('bunny')
//Solve for the curve z=0 on the surface of the bunny
var zvalues = bunny.positions.map(function(p) {
return p[2]
})
var curve = extractContour(bunny.cells, zvalues, 0.0)
//Unpack edges and positions of curve
var curveEdges = curve.cells
var curvePositions = curve.vertexWeights.map(function(w,i) {
var a = bunny.positions[curve.vertexIds[i][0]]
var b = bunny.positions[curve.vertexIds[i][1]]
return [
w a[0] + (1 - w) b[0],
w a[1] + (1 - w) b[1],
w a[2] + (1 - w) b[2]
]
})
//Render the curve
console.log({
cells: curveEdges,
positions: curvePositions
})
`
``
npm install simplicial-complex-contour
#### require('simplicial-complex-contour')(cells, values[, level])values=levels
Computes a piecewise linear solution to the solution
* cells is an array of simplices represented by tuples of vertex indicesvalues
* is an array of values defined at each vertex of the cell complexlevel
* is the level at which the surface is extracted (Default 0)
Returns An object with 3 properties
* cells which are the cells of the extracted isosurfacevertexIds
* which is an array of pairs of vertex ids encoding the crossing edgesvertexWeights` which are linear weights applied to each vertex
*