Modeling Techniques: Assigments


Basic

1 - Compile and install the libraries.

2 - 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))

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

4 - 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

5 - Implement a new CSG Node, CSG_TRANSFORM.

6 - 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).

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

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

9 - Implement the generative model for EXTRUSION.

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

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