Links
Background Information
M-Rep stands for medial representation. It is a 3D structure made up of a quad-mesh of
medial atoms. (There are other medial representations, but this is the one I will
focus on.) Each atom stores information about the implied 2D surface
boundry as well as the figural direction of the object. Since the boundary of the object is
actually implied from the 3D structure, operations related to the boundary surface
like intersection computation could be difficult. The boundary surface is a grid of points
obtained from the medial atoms connected with B-Spline patches.
This M-Rep structure was created by the MIDAG group at UNC. They have a program called
Pablo they use to construct and view M-Rep models. Some work has been done in Pablo to
allow protrusions, objects with other objects attached to it. Also, for protrusions
blending has been accomplished using a distance function, which performs slower then
MIDAG would like.
Goals
My first goal is to implement the CSG (Constructive Solid Geometry) needed by the MIDAG
group. This includes protrusion (Union) which has already been implemented by Shawn Liu,
and indentation (subtraction) where there are constraints on the negative object. These
constraints could include things like the medial atom mesh of the negative object must start
on the boundry of the positive object and go in and stop before effecting the opposite
boundry.
My second goal is to implement blending for protrustion and indentation by changing the
B-Spline patches near the intersection of the objects.
My third goal is to implement the rest of the CSG operations like intersection and to not have
any restrictions on subtraction, with blending, of course. This goal isn't necessary for
MIDAG and will only be done if I have enough time. Also, if everything above turns out to
be really easy there are addition problems to work on related to CSG using continuous M-Reps,
where instead of a mesh of medial atoms you have a 2D manifold.
I believe that the first goal will take the longest, because finding the intersection of the
two surfaces will be used by both the CSG operations and the blending.
The Time-Line for these goals follows in the order listed above:
Related Work and Novel Aspects
A bunch of work has been done on finding the intersections of two mesh surfaces, I have not
yet looked for this material but am sure it exists. I don't believe any work has been done
on this using M-Reps though. I am hoping that I can find a way to make finding the intersections
more effecient for M-Reps by taking advantage of the 3D structure. For M-Reps the current
way to blend two objects (protrusion only) together involves using a distance function. I
hope that my way of editing the B-Spline patches is more effecient. I am not sure if this
last part is novel to the industry, but it is novel to M-Reps and to myself.
References