gl-simplicial-complex
Draws a simplicial complex in WebGL
Last updated 6 years ago by mikolalysenko .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install gl-simplicial-complex 
SYNC missed versions from official npm registry.

gl-simplicial-complex

Basic module for drawing a simplicial complex. This code can be used to get something on the screen quickly. It is useful for debugging and prototyping, though in a real 3d engine you would probably want to write your own shaders and vertex formats.

Example

var shell = require("gl-now")()
var camera = require("game-shell-orbit-camera")(shell)
var mat4 = require("gl-matrix").mat4
var bunny = require("bunny")
var createSimplicialComplex = require("gl-simplicial-complex")

var mesh

shell.on("gl-init", function() {
  var gl = shell.gl
  gl.enable(gl.DEPTH_TEST)
  bunnyMesh = createSimplicialComplex(gl, bunny)
})

shell.on("gl-render", function() {
  bunnyMesh.draw({
    view: camera.view(),
    projection: mat4.perspective(mat4.create(),
          Math.PI/4.0,
          shell.width/shell.height,
          0.1,
          1000.0)
  })
})

Try out the example in your browser

Install

npm instal gl-simplicial-complex

API

var createSimplicialComplex = require("gl-simplicial-complex")

var mesh = createSimplicialComplex(gl, params)

Creates a simplicial complex that can be drawn directly in a WebGL context.

  • gl - is a handle to a WebGL context

  • params is an object that has the following properties:

    • cells (Required) An indexed list of vertices, edges and/or faces.
    • positions (Required) An array of positions for the mesh, encoded as arrays
    • vertexColors A list of per vertex color attributes encoded as length 3 rgb arrays
    • vertexUVs
    • cellUVs
    • vertexIntensity
    • cellIntensity
    • cellColors A list of per cell color attributes
    • meshColor A constant color for the entire mesh
    • vertexNormals An array of per vertex normals
    • cellNormals An array of per cell normals
    • useFacetNormals A flag which if set to true forces cellNormals to be computed
    • pointSizes An array of point sizes
    • pointSize A single point size float
    • ambientLight
    • diffuseLight
    • specularLight
    • lightPosition
    • roughness
    • fresnel

Returns A renderable mesh object

mesh.draw(params)

Draws the mesh to the current buffer using a Phong material.

  • params is an object that has the following properties
    • model The model matrix for the object
    • view The view matrix for the camera
    • projection The projection matrix for the display

mesh.update(params)

Updates the contents of the simplicial complex in place.

  • params is a list of parameters which are in the same format as createSimplicialComplex

mesh.drawPick(params)

Draws the mesh for the purposes of point picking and selection.

mesh.pick(pickData)

Using the output from gl-select finds the point on the mesh closest to the given pick data.

Returns An object with the following properties:

  • positions the position of the picked point on the mesh
  • cellId the index of the closest cell
  • cell the cell of the closest point
  • index the index of the closest vertex

mesh.dispose()

Destroys the mesh object and releases all resources assigned to it.

Credits

(c) 2013 Mikola Lysenko. MIT License

Current Tags

  • 3.0.4                                ...           latest (6 years ago)

15 Versions

  • 3.0.4                                ...           6 years ago
  • 3.0.3                                ...           6 years ago
  • 3.0.2                                ...           6 years ago
  • 3.0.1                                ...           6 years ago
  • 3.0.0                                ...           6 years ago
  • 2.0.0                                ...           6 years ago
  • 1.2.2                                ...           6 years ago
  • 1.2.1                                ...           6 years ago
  • 1.2.0                                ...           6 years ago
  • 1.1.2                                ...           6 years ago
  • 1.1.1                                ...           6 years ago
  • 1.1.0                                ...           6 years ago
  • 1.0.0                                ...           7 years ago
  • 0.0.1                                ...           7 years ago
  • 0.0.0                                ...           7 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 16
Last Day 0
Last Week 16
Last Month 2
Dependencies (12)
Dev Dependencies (11)

Copyright 2014 - 2016 © taobao.org |