Modeling Techniques: Assigments


Required

1 - Get the library libcsg.a . Save the file csg.tgz , decompress it with gunzip and use tar to create the directory "./i3d/base/csg" . Compile and install the library.

2 - Get the library libgener.a . Save the file gener.tgz , decompress it with gunzip and use tar to create the directory "./i3d/base/gener" . Compile and install the library.

3 - Using libcsg, write a program to create CSG models. The program should accept definitions of geometric primitives in the format (UPPERCASE_DIGIT = primitive_definition), and csg expressions in the infix format.
Example:

A = s {1, 1, 1, 4};
B = s {3, 2, 1, 10};

(A | (B & A))

4 - Implement the operation "csg_classify" to test the containment of points with respect to a CSG object.

5 - Using libgener, write a program to create a surface of rotation. The program should read a 2D curve, and have as parameters, the axis of rotation, the total angle of rotation, and the discretization of the mesh.


Optional

6 - Implement a new CSG Node, CSG_TRANSFORM.

7 - Using libgp and libcsg, write an interactive program to create CSG objects using primitive, groups, transformations (translation, rotation, scaling), and point set ops (union, difference, complement).

8 - Write a program to compute the approximate volume of a csg model.

9 - Using libgp and libgener, write a program to input a 2D curve interactively and create a surface of rotation.

10 - Implement the generative model for EXTRUSION.

11 - Write two programs to creata a cylinder: a) one using a surface of rotation model, and b) the other using an extrusion model.

12 - Implement the generative models (TAPER, TWIST and BEND), and write a program to create surfaces using it.