Socket
Book a DemoInstallSign in
Socket

refine-mesh

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

refine-mesh

Iterative mesh refinement

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

refine-mesh

Iterative mesh refinement based on the technique in

  • M. Botsch, L. Kobbelt. 2004 "A Remeshing Approach to Multiresolution Modeling" EUROGRAPHICS 2004

Give this some garbage mesh as input and it will automagically give you a nice uniformly subdivided mesh.

Example

var refine = require('refine-mesh')
var bunny = require('bunny')

var normals = require('normals').vertexNormals(bunny.cells, bunny.positions)

//Refine the bunny from a base mesh to one with a uniform edge length of 0.1
var refined = refine(
  bunny.cells,
  bunny.positions,
  normals,
  {
    edgeLength: 0.1
  })

So, a coarse bunny mesh like this:

Becomes a fine mesh like this:

Install

npm i refine-mesh

API

var mesh = require('refine-mesh')(cells, positions, normals[,options])

Applies iterative mesh refinement to a cell complex

  • cells is an array of triples representing the faces of the mesh
  • positions is an array of [x,y,z] triples representing the vertices
  • normals is an array of [nx,ny,nz] triples representing the normals
  • options is an object with the following properties:
    • edgeLength is the desired edge length (default is median edge length)
    • maxIters is the maximum number of iterations (default 5)
    • splitIters maximum number of edge split iterations (default 10)
    • collapseIters maximum number of edge collapse iterations (default 10)
    • flipIters maximum number of edge flip iterations (default 10)
    • smoothIters maximum number of smoothing iterations (default 20)
    • smoothRate constant controlling rate of smoothing (default 0.95)
    • minSplit minimum number of splits per iteration (default 0)
    • minCollapse minimum number of collapse operations (default 0)
    • minFlip minimum number of flip operations (default 0)
    • minSmooth minimum smoothing improvement (default 0.01*edgeLength)

Returns An object with the following properties

  • cells the faces of the resulting mesh
  • positions vertex positions of result
  • normals vertex normals of result

License

(c) 2015 Mikola Lysenko. MIT License

Keywords

mesh

FAQs

Package last updated on 20 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts