dbf-udg
annotate libs/metasurf/README @ 15:2d1a9b5111f9
added visual studio project
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 20 Feb 2013 06:03:31 +0200 |
parents | |
children |
rev | line source |
---|---|
nuclear@12 | 1 metasurf - a library for implicit surface polygonization |
nuclear@12 | 2 |
nuclear@12 | 3 1. Overview |
nuclear@12 | 4 ----------- |
nuclear@12 | 5 |
nuclear@12 | 6 Metasurf is a library for implict surface polygonization. You only need to |
nuclear@12 | 7 set a callback that returns the scalar field value at any given point in |
nuclear@12 | 8 3-space, and another callback to accept isosurface vertices. Then at any point |
nuclear@12 | 9 just call msurf_polygonize, and the library handles everything else for you. |
nuclear@12 | 10 |
nuclear@12 | 11 2. Usage |
nuclear@12 | 12 -------- |
nuclear@12 | 13 The following snippet is sufficient to draw the surface of an implicit unit |
nuclear@12 | 14 sphere, centered around the origin. |
nuclear@12 | 15 |
nuclear@12 | 16 struct metasurface *ms; |
nuclear@12 | 17 |
nuclear@12 | 18 /* initialization */ |
nuclear@12 | 19 ms = msurf_create(); |
nuclear@12 | 20 msurf_eval_func(ms, eval); |
nuclear@12 | 21 msurf_vertex_func(ms, glVertex3f); |
nuclear@12 | 22 |
nuclear@12 | 23 /* drawing */ |
nuclear@12 | 24 glBegin(GL_TRIANGLES); |
nuclear@12 | 25 msurf_polygonize(ms); |
nuclear@12 | 26 glEnd(); |
nuclear@12 | 27 |
nuclear@12 | 28 /* evaluator */ |
nuclear@12 | 29 float eval(float x, float y, float z) |
nuclear@12 | 30 { |
nuclear@12 | 31 return (x * x + y * y + z * z) - 1.0; |
nuclear@12 | 32 } |
nuclear@12 | 33 |
nuclear@12 | 34 See the examples subdirectory for more examples. |
nuclear@12 | 35 |
nuclear@12 | 36 3. License |
nuclear@12 | 37 ---------- |
nuclear@12 | 38 Copyright: John Tsiombikas <nuclear@member.fsf.org> |
nuclear@12 | 39 |
nuclear@12 | 40 Metasurf is free software, you may use, modify, and redistribute it freely under |
nuclear@12 | 41 the terms of the GNU Lesser General Public License (LGPL) v3 (or at your option, |
nuclear@12 | 42 any later version published by the Free Software Foundation). See COPYING and |
nuclear@12 | 43 COPYING.LESSER for more details. |
nuclear@12 | 44 |
nuclear@12 | 45 |
nuclear@12 | 46 4. Contributions |
nuclear@12 | 47 ---------------- |
nuclear@12 | 48 If you'd like to fix the marching tetrahedra implementation or have any other |
nuclear@12 | 49 ideas for improving this library drop me an email at: nuclear@member.fsf.org. |
nuclear@12 | 50 Also feel free to submit patches for bugfixes. |