University of Bologna - Department of Mathemati s
Piazza di Porta S.Donato, 5 - 40127 - Bologna

x bool:the ob je t

omposer

User's Guide - Version 1.0

G. Cas iola

G. De Mar o

Department of Mathemati s
University of Bologna

Bologna 2000

Abstra t
This report des ribes the x bool system. This program performs boolean
operations on s ulptured solids. The boundary of a solid is represented
using trimmed NURBS (Non Uniform Rational B-Splines) surfa es.

G. Cas iola

G. De Mar o

Department of Mathemati s, University of Bologna, P.zza di Porta S.Donato 5,
Bologna, Italy. E-mail:as ioladm.unibo.it.

x bool User's Guide . . .

Contents
Contentsi

1 What is x bool ?

1

2 How to work with x bool

3

3 Boolean operations

7

4 Parametri domain visualization

11

5 Solid obje t rendering

13

6 Other buttons

17

7 Data le formats

19

2.1 Quit button . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 New button . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Open button . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1
3.2
3.3
3.4
3.5
3.6
3.7

3
4
5

Operate button . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Make button . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Make All button . . . . . . . . . . . . . . . . . . . . . . . . . 9
Prefs button . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
XCSSI button . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Can el button . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Compute button . . . . . . . . . . . . . . . . . . . . . . . . . 10

5.1 Preferen es window . . . . . . . . . . . . . . . . . . . . . . . . 13

6.1
6.2
6.3
6.4
6.5

Save button . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Load button . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Export button . . . . . . . . . . . . . . . . . . . . . . . . . .
Delete button . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remake button . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
17
17
18

7.1 Interse tion le . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.2 Temporary result for a omposed obje t . . . . . . . . . . . . 20

ii

LIST OF FIGURES

7.3
7.4
7.5
7.6

Trimmed NURBS surfa e (.tree format) . . . . . . . . . . . .
Trimmed NURBS surfa e (.dbe format) . . . . . . . . . . . .
B-rep Composed obje t . . . . . . . . . . . . . . . . . . . . .
CSG representation for obje ts . . . . . . . . . . . . . . . . .

22
23
24
24

List of Figures

27

Bibliography29

x bool User's Guide . . .

Chapter 1

What is x bool ?
x bool is the obje t omposer of the x model system [XCMODEL00℄. Thispa kage makes use of two separate programs, that are independently exeutable: x ssi to ompute NURBS surfa e/surfa e interse tion and x dbe toonvert a trimmed surfa e format (see Data le formats se tion). x bool also
makes use of the trim library for real time rendering of solid obje ts. Thesepa kages and the library are distributed booth in the exe utable version
x boolusr.tar.gz and in development version x booldev.tar.gz and are
des ribed in this do ument and in [TRIM99℄. Download and installation
instru tions are in [XCMODEL00℄.
The eld of solid modeling deals with the design and representation of physial obje ts. The two major representation s hemes used in solid modeling are
onstru tive solid geometry (CSG) and boundary representations (B-rep).
Both these representations have di erent inherent strengths and weaknesses
and for most appli ations both are required [Hof89℄. While CSG impli itly
represents a solid as an algebrai expression, B-rep expli itly de nes an obje t as a set of surfa es.
Currently, most solid modelers are able to support solids omposed of polyhedral models and quadri surfa es (like spheres, ylinders et .) and their
Boolean ombinations. At the same time, the eld of surfa e modeling has
been developed to model lasses of pie ewise surfa es based on parti ular
onditions of shape and smoothness. Su h models are also referred to ass ulptured models. Over the years, there has been onsiderable e ort put
into integrating surfa e and solid modeling. In parti ular, there is onsiderable interest in building omplete solid representations from spline/NURBS
surfa es and their Boolean ombinations.
However, the major bottlene ks are in performing robust, eÆ ient and a urate Boolean operations on the s ulptured models. The main diÆ ulty is inevaluating and representing the interse tion of parametri surfa e pat hes
and this has hindered the development of solid modelers in orporating parametri surfa e models.

2

What is x bool ?

As a result, most of the urrent solid modelers use polyhedral approximations to these surfa es and apply existing algorithms to design and manipulate these polyhedral obje ts. Not only does this approa h lead to dataproliferation, but the resulting algorithms are ineÆ ient and ina urate.
x bool is a system designed to ompose s ulptured solids using boundary
representation through Boolean operations. Starting from primitive solids,
the system allows the user to obtain omposed solids following the CSG treeof Boolean operations. A primitive obje t is de ned by a single untrimmed
NURBS surfa e. The nal and partial obje ts in the CSG proje t are de ned
as a list of trimmed NURBS surfa es. The trimming urves for a surfa e are
omputed starting from all the interse tion urves between this surfa e andthe others; these are performed by x ssi pa kage where a surfa e/surfa einterse tion algorithm (SSI) spe ialized for NURBS surfa es has been implemented [CasMor95℄.

x bool User's Guide . . .

Chapter 2

How to work with x bool
When x bool is set, it opens the window shown in g.2.1. Note that the GUIof x bool is made with xtools [XTOOLS99℄. The work area is subdivided
into the following se tions that we all:
 Tools top left;
 New operation under the previous, from whi h it is possible to set

a Boolean operation;

 Obje t list under the previous, from whi h it is possible to sele tprimitive or already omposed obje ts as operands for a next Boolean
operation;

 Buttons two rows of buttons at the bottom, whi h ontrol a lot of

operations that we will see in detail; View the large square area on the right, where the obje ts (theirboundary surfa es) and/or the surfa e domain are visualized;

 View Sele tor bottom enter, to sele t what to visualize; Curve Sele tor right of the previous, to sele t viewing of the trim-

ming domain urves;

 COP position right of the previous, to sele t the amera position;

As soon as this window appears, you will immediately see whi h a tions are
possible. The buttons, ursors, textboxes, bars, et . are a ompanied by alabel; onventionally, if the label is drawn in bla k, the related fun tion is'able', whereas white means 'unable'. Look now at the able buttons only:

2.1 Quit button
This button allows the user to quit x bool.

4

New button

Figure 2.1: x bool main window

2.2 New button
This button opens a le request to reate a dire tory for the new proje t.
On e a dire tory has been made, a dummy . sg le, with the same dire tory

How to work with x bool

5

name, will be reated; this le will be used to ontain our proje t obje ts.
The Load button will now be abled (see Other buttons se tion) and we will
be able to load primitive (.db les) and/or temporary (.dbt les) obje ts as
operands for new Boolean operations.

2.3 Open button
This button opens a le request window to load a . sg le, whi h stores a
proje t previously started and saved. On e the . sg le has been loaded, theusable obje ts to ontinue the proje t are shown in the obje t list. There
are three possible obje t types:
 primitive represented by untrimmed and losed NURBS surfa es (.dble);

 temporary obtained from primitive and/or temporary obje ts, usablefor ompositions, but not as a nal format and therefore not viewable(.dbt le);

omposed boundary representation of a nal obje t obtaining fromprimitive and/or temporary obje ts (.obj le).

The boundary of a omposed solid is represented by trimmed NURBS
surfa es, that is, surfa es de ned on spe ial regions of the parametri domains that are, in their turn, de ned by trimming urves. In the parametri
domains of the NURBS surfa es, losed trimming urves are determinedthat ould de ne either an a tive region (also known as an island ) or a non
a tive region (also known as a lake ). An alternative organization of the "island" and "lake" urves in ludes the use of a parti ular 2D CSG tree known
as a trimming urve tree . The able regions represent, on the parametri
domain, the portions of the entire NURBS surfa e that form the boundaryof the nal solid, while the unable regions represent parts that must be exluded. For every omposed solid, together with the le .obj, the trimmed
surfa es representing its boundary are saved (.tree format) as well as therelated .dbt le, in order to use this obje t as an operand for a following
boolean operation.

x bool User's Guide . . .

Chapter 3

Boolean operations
To set up a Boolean omposition between two obje ts, you have to sele t the
rst operand from the obje t list, then hoose the operator (Union, Interse tion or Di eren e) from the Operation box and then sele t the se ond
operand. Only when an operation has been set up, the button Operate forthe omposition of the two solids will be abled, in su h a way that we an
ompute the interse tion of ea h surfa e with the others (Make or Make
All buttons in Boolean Operation window). On e all the interse tions havebeen omputed, use the Compute button to obtain the omposed solid.

3.1 Operate button
This opens a window to manage surfa e/surfa e interse tions (see g. 3.1),
in whi h the pairs of surfa es to be interse ted are presented. Ea h interse tion is asso iated with a he kbox, indi ating whether it has already been
al ulated or not, and the Interse tion parameters box shows the suggested
toleran e parameters ( elds labeled Default ) and those used ( elds labeled
Used ). Before pro eeding with the al ulation of the interse tion it is possible to set suitable toleran e parameters by modifying those in Used. The
following shows what these parameters are used for:
 Sear h Re nement Toleran e (SRT): de nes the quality of the adaptive

subdivision of a surfa e ontrolling the initial level of linear approximation, and thus in uen ing the resear h of the starting points on theinterse tion urves. The SRT must therefore be su h as to guarantee
at least one starting point for ea h urve segment of interse tion;

 Curve Re nement Toleran e (CRT): if two points belonging to an in-terse tion urve are at a distan e of less than CRT, the segment joining
them is taken as an approximation of the part of the urve separating them; the CRT in uen es the number of points obtained for ea hsegment urve;

8

Operate button

For the rst and the se ond surfa e, SRT toleran e is indi ated with respe t
to SRT1 and SRT2. At the present time there is no method for al ulatinga priori the exa t ombination of these parameters that an respond at thesame time to the request of eÆ ien y, robustness and a ura y, neither there
is a way of estimating them in order to guarantee to nd all the solutions.

Figure 3.1: Boolean Operation window

Boolean operations

9

3.2 Make button
This button runs the x ssi interse tion program produ ing a le .int ontaining interse tion urves for the ouple of surfa es sele ted in the Interse tion
list. For this interse tion the parameters spe i ed in the textbox Used areused. To do this, x bool relies on x ssi, that is loaded as a separate pro ess.
The he kbox Tune ssi params allows the use of x ssi in a semi-intera tive
way, in order to be able to follow the interse tion phases step by step andto re ne the initial parameters.
On e the interse tion urves have been identi ed, they are superimposedon the drawing of the two surfa es, and visualized in the right se tion of thewindow. Here it is possible to observe the two surfa es with their related
3D interse tion urves either together or separately, using the Hide/Show
surf buttons. The he kpoints in the View box allow the user to hoose
the type of visualization:
 Domain 1 shows the interse tion urves in the parametri domain of

the rst surfa e; Domain 2 shows the interse tion urves in the parametri domain of

the se ond surfa e;

 Surfa es shows the interse tion urves in the 3D spa e together withthe surfa es;

 All shows, at the same time, all the three previous visualizations;

3.3 Make All button
This button allows the user to reate the remaining interse tion les (.intles). In this ase the interse tion routine uses the default Interse tion
parameters.

3.4 Prefs button
This button allows the user to set some parameters regarding the visualization of the two surfa es to interse t (see. g. 3.2). The he kpoints
Uniform and Adaptive allow the user to hoose a uniform or adaptive
grid for the surfa e representation. In the uniform ase the user must set
the dimension in the U and V of the grid. In the adaptive ase, an SRT
planar approximation toleran e must be given. The same parameters areapplied to both surfa es.
The Apply button allows the user to apply the parameters immediately
so as to see a preview. The Ok button de nitively applies the hosen parameter values and updates the view. The Default button resets the initial10

Compute button

parameter values. The Can el button an els the Prefs window, resetting
the previous parameter values.

Figure 3.2: View Preferen es window

3.5 XCSSI button
XCSSI is the Surfa e/Surfa e Interse tion program. This button allows theuser to exe ute this program in an intera tive and edu ational way. (not yet
available).

3.6 Can el button
This button stops the Boolean operation pro edure and loses the related
window; the ontrol returns to the Main window of x bool.

3.7 Compute button
On e all the interse tions have been al ulated, the Compute button isabled, allowing for the a tual omposition of the two solids and losing
the Operation window. What is obtained is a new omposed solid that isinserted at the end of the obje t list. A symboli name is given to this new
obje t, whi h it is always possible to hange, by modifying the name in the
textbox Obje t, situated immediately below the Obje t list.

x bool User's Guide . . .

Chapter 4

Parametri domain
visualization
After sele ting a surfa e of a omposed solid, using the Domain button in
the main window (see g.2.1), we an view the trimming tree asso iatedwith it. If abled, the he kbox Single urves allows you to view the urves
one by one; in this ase use the Next button to go on to the next. The
textboxes Level and Curve show the level rea hed in the tree and thenumber of urves at that level. On e all the urves have been viewed, theareas in grey represent the a tive regions of the trimmed surfa e on theparametri domain.

Figure 4.1: Tessellation Parameters window
By sele ting Trimmed dom he kpoint in the Main window on theother hand, it is possible to view the tessellation operated on the trimmed
NURBS domain and required for its representation. The parameters ontrolling this tessellation are set through the window of g. 4.1, whi h is

12Parametridomain visualization

opened by li king the Params button. It is possible to hoose the type ofgrid (uniform or adaptive) to be used for the surfa e domain. The relatedparameters determine the quality of the approximation of the surfa e. The
Curve CRT toleran e de nes the number of points on the trimming urve
to be used for tessellation. Even the untrimmed surfa es, that is, those of
the primitive solid or of temporary solids, an be viewed, and so their parameters an also be set for the approximation of the surfa e; in this ase
the Curve CRT toleran e is not onsidered.
The Apply button allows the user to apply the parameters immediately
so as to see a preview. The Ok button de nitively applies the hosen parameter values and updates the view. The Default button resets the initial
parameter values. The Can el button an els the Prefs window, resetting
the previous parameter values.

x bool User's Guide . . .

Chapter 5

Solid obje t rendering
Using the Hide/Show button in the Main window, it is possible to de ide
whi h obje t has to be visualized by the View button. It is also possible toable and unable the single surfa es making up an obje t. In the ase thatseveral obje ts are able, these are then visualized together, as if they werea single obje t, so that it is possible to observe their position and to predi t
the result of the omposition in advan e.
With the he kpoint All it is possible to obtain both a 3D view and aview of a parametri domain previously abled through the Domain button(see g. 5.1).

5.1 Preferen es window
The Preferen es window (see. g. 5.2) allows the user to hoose therendering method and to set some parameters regarding the obje t attributes
for the shading method.
 Revolution steps de nes the number of steps in whi h the amera om-

pletes a 180 degree rotation to view the surfa es;

 Drawing mode allows the user to hoose the rendering method. x boolprovides wire frame, depth ueing, hidden line and shading ; Shading model allows the user to hoose between the Gouraud andPhong shading models; if the Phong model has been hosen, the user
must set the Exp parameter for highlighting.

 Light position allows the user to set the light sour e position or dire -tion in spheri al oordinates; Relative means respe t to the viewer; Ambient ref., Di use Ref., Spe ular Ref. parameters allow the user tode ne the obje t attributes; these are able for the Phong model only.

14

Preferen es window

Figure 5.1: Composed obje t visualization
Fig. 5.3 shows a trimmed surfa e rendered using the Phong shading model.
The Apply button allows the user to apply the parameters immediately
so as to see a preview. The Ok button de nitively applies the hosen pa-

Solid obje t rendering

15

Figure 5.2: Preferen es window
rameter values and updates the view. The Default button resets the initial
parameter values. The Can el button an els the Preferen es window,
resetting the previous parameter values.

Figure 5.3: Shading Visualization

x bool User's Guide . . .

Chapter 6

Other buttons
6.1 Save button
This button allows the user to save the proje t by updating the . sg le.

6.2 Load button
This button allows the user to load primitive solids (untrimmed NURBS surfa es) or omposed solids (previous results) as operands for a next Boolean
operation.

6.3 Export button
In order to use a omposed obje t for the onstru tion of a s ene model, we
rst need to save the trimmed NURBS surfa es representing the boundary
in a spe i format. The possible formats are .tree (TREE format ) (seese tion Data le formats), that is used internally by x bool, and the format.dbe (DBE format ) (see se tion Data le formats) obtained by onversion of
the internal format.
Through the window in g. 6.1, whi h is opened by the Export button,
you an spe ify the name and the dire tory in whi h to save the obje t andthe format to be used, .dbe or .tree. In order to onvert from the TREE
format to the DBE format, the system uses the program x dbe, that an
also be run from the main window of x bool through the button XCBDE(in this version this button is unabled).

6.4 Delete button
This option deletes the sele ted primitive or obje t from the Obje t list. It is
not possible to delete a primitive that is still being used for another obje t.

18

Remake button

Figure 6.1: Obje t Export window
This is used in order to remake the obje t. Instead, it is always possible todelete a omposed obje t, even if it used for another obje t, be ause it an
be remade from its primitives using the information stored in the . sg le.

6.5 Remake button
The operations that have led to the onstru tion of a omposed solid an
be repeated using the Remake button. This requires all the omposition
operations that have been used to onstru t the solid to be re al ulatedusing the information ontained in the CSG tree, saved in the . sg proje tle. Starting from the leaves of the CSG tree and going up to its root
all the Boolean operations are arried out, one by one, re omputing theinterse tions relating to the operation with the original toleran e. Before
pro eeding with the omputation of an operation, on rmation is requested,in order to allow the whole pro edure to be interrupted.

x bool User's Guide . . .

Chapter 7

Data le formats
In this se tion the syntax of ea h le format used by x bool is given andexplained. The data les reated or used by x bool are stored in the dire tory
x model/obje ts as default. The # hara ter in the following introdu es
a omment on the data in the le.

7.1 Interse tion le
The following example le is:
x model/obje ts/ ube sphere/ ube sphere.int
ube sphere is the dire tory proje t, ube sphere.int is the interse tionle. The extension .int identi es these les. The format is self-explanatory.

Surfa e Names:
ube.dbsphere.db
Interse tion Params SRT1=0.120000 SRT2=0.120000 CRT=0.010000
Number of Curves
6
Number Points for Curve 1
666
Break on Surfa e Domain 1
84
582
Break on Surfa e Domain 2
665
Domain Points of Curve 1
8.749998e-01 7.060278e-01 0.000000e+00 2.310833e-01...
8.749998e-01 7.060278e-01 0.000000e+00 2.310833e-01

20

Temporary result for a

omposed obje t

Number Points for Curve 2
666
Break on Surfa e Domain 1
665
Break on Surfa e Domain 2
84
582
Domain Points of Curve 2
1.000000e+00 2.078697e-01 1.250000e-01 7.689167e-01...
1.000000e+00 2.078697e-01 1.250000e-01 7.689167e-01...

7.2 Temporary result for a omposed obje t
The following example le is:
x model/obje ts/ ube sphere/ ubeDsphere.dbt
ube sphere is the dire tory proje t, ubeDsphere.dbt is the omposed
obje t le. The extension .dbt identi es these les.
L
3
# number of surfa es plus 10# 0 means diff. boolean operator (1 inters., 2 union)
FILENAME:sphere.db# follows the first operand; db file
DEGREE_U_V
2
2
N.C.P._U_V
5
9KNOTS_U_V
8
12
COORD.C.P.(X,Y,Z,W)
0.00000e+00 0.00000e+00 1.00000e+00 1.00000e+00...
0.00000e+00 0.00000e+00-1.00000e+00 1.00000e+00
KNOTS_U
0.00000e+00...
1.00000e+00
KNOTS_V
0.00000e+00...
1.00000e+00

Data file formats

21

Curve:7# number of trimming urves
Holes:1# 1 means that the trimming regions are lakes
FILENAME:out# follows the first trimming urve as NURBS
DEGREE
1
N.C.P.
669
N.KNOTS0
COORD.C.P.(X,Y,W)
0.000000e+00 7.689167e-01 1.000000e+00...
0.000000e+00 7.689167e-01 1.000000e+00
KNOTS
FILENAME:out# follows the se ond trimming urve as NURBS...
FILENAME: ube.db# follows the se ond operand; db file
DEGREE_U_V
1
1
N.C.P._U_V
4
5
KNOTS_U_V
6
7
COORD.C.P.(X,Y,Z,W)
0.00000e+00 0.00000e+00-7.50000e-01 1.00000e+00...
0.00000e+00 0.00000e+00 7.50000e-01 1.00000e+00
KNOTS_U
0.00000e+00...
1.00000e+00
KNOTS_V
0.00000e+00...
1.00000e+00
Curve:6# number of trimming urves
Holes:1# 1 means that the trimming regionr are lakes
FILENAME:out# follows the first trimming urve as NURBS
DEGREE
1
N.C.P.
669
N.KNOTS0

22

Trimmed NURBS surfa e (.tree format)

COORD.C.P.(X,Y,W)
1.000000e+00 7.921304e-01 1.000000e+00...
1.000000e+00 7.921304e-01 1.000000e+00
KNOTS
FILENAME:out# follows the se ond trimming urve as NURBS...
3#3 means no boolean operation

7.3 Trimmed NURBS surfa e (.tree format)
The following example le is:
x model/obje ts/ ube sphere/ ubeDsphere sphere.tree
ube sphere is the dire tory proje t, ubeDsphere sphere.tree is the trimmed

NURBS sphere le.

FILENAME:sphere.db#follows the sphere .db file
DEGREE_U_V
2
2
N.C.P._U_V
5
9KNOTS_U_V
8
12
COORD.C.P.(X,Y,Z,W)
0.00000e+00 0.00000e+00 1.00000e+00 1.00000e+00...
0.00000e+00 0.00000e+00-1.00000e+00 1.00000e+00
KNOTS_U
0.00000e+00...
1.00000e+00
KNOTS_V
0.00000e+00...
1.00000e+00
1#lake or island flag at the tree root1
#number of root hildren
6#number of urrent urve hildren
558#number of points for the urrent urve
0.000000 0.768917#follows the domain oordinate points...
0.000000 0.768917

Data file formats

23

0
554
0.634467 0.496372...
0.634467 0.496372...

#number of urrent urve hildren#number of points for the urrent urve#follows the domain oordinate points

7.4 Trimmed NURBS surfa e (.dbe format)
The following example le is:
x model/obje ts/ ube sphere/ ubeDsphere sphere.dbe
ube sphere is the dire tory proje t, ubeDsphere sphere.dbe is the trimmed

NURBS sphere le.

FILENAME: ubeDsphere_sphere.dbe#follows the sphere .db file
DEGREE_U_V
2
2
N.C.P._U_V
5
9KNOTS_U_V
8
12
COORD.C.P.(X,Y,Z,W)
0.00000e+00 0.00000e+00 1.00000e+00 1.00000e+00...
0.00000e+00 0.00000e+00-1.00000e+00 1.00000e+00
KNOTS_U
0.00000e+00...
1.00000e+00
KNOTS_V
0.00000e+00...
1.00000e+00
1#1 follows other information, 0 does not follow anything
0 #surfa e normal:0 uses omputed normal, 1 inverse dire tion
0#lake or island flag at the tree root8
#number of root hildren
0#number of urrent urve hildren
554#number of points for the urrent urve
0.634467 0.496372#follows the domain oordinate points...
0.634467 0.496372

24

CSG representation for obje ts

0554
0.384467 0.496372...
0.384467 0.496372...

#number of urrent urve hildren#number of points for the urrent urve#follows the domain oordinate points

7.5 B-rep Composed obje t
The following example le is:
x model/obje ts/ ube sphere/ ubeDsphere.obj
ube sphere is the dire tory proje t,

NURBS sphere le.

FILENAME: ubeDsphere.obj
2ubeDsphere.tree
ubeDsphere.tree

ubeDsphere.obj is the trimmed#obje t file name#number of trimmed surfa es involved#follow the trimmed surfa e names

7.6 CSG representation for obje ts
The following example le is:
x model/obje ts/ ube sphere/ ube sphere. sg
ube sphere is the dire tory proje t, ube sphere. sg is the history proje tle.

FILENAME: ube_sphere. sg#proje t file name
N.NODES: 6#number of obje ts
NODE N. 0#first obje t
TYPE: 0#0 means primitive
LABEL: A0#identifi ative name
NAME: ube.db#file nameNODE N. 1#se ond obje t
TYPE: 0LABEL: A1
NAME: sphere.db
NODE N. 3#third obje t
TYPE: 2
#final omposed obje t; TYPE 1 means temporary
LABEL: A3
NAME: sphereD ube.obj#obje t file name
OPERATION:#boolean operation omputed

Data file formats

25

3 1 0
#3 means Differen e between NODE 1 and NODE 0
N.INTERSECTIONS: 1#number of surfa e interse tions
PARAMETERS:#SRT1, SRT2 and CRT parameters used
1.200000e-01 1.200000e-01 1.000000e-02
NODE N. 4#fourth obje t
TYPE: 2
#final omposed obje t
LABEL: A4
NAME: ubeDsphere.obj
OPERATION:
3 0 1#3 means Differen e between NODE 0 and NODE 1
N.INTERSECTIONS: 1
PARAMETERS:
1.200000e-01 1.200000e-01 1.000000e-02
NODE N. 5
TYPE: 2LABEL: A5
NAME: sphereI ube.obj
OPERATION:
1 1 0#1 means Interse tion between NODE 1 and NODE 0
N.INTERSECTIONS: 1
PARAMETERS:
1.200000e-01 1.200000e-01 1.000000e-02
NODE N. 6
TYPE: 2LABEL: A6
NAME: sphereU ube.obj
OPERATION:
2 1 0#2 means Union between NODE 1 and NODE 0
N.INTERSECTIONS: 1
PARAMETERS:
1.200000e-01 1.200000e-01 1.000000e-02

x bool User's Guide . . .

List of Figures
2.1 x bool main window . . . . . . . . . . . . . . . . . . . . . . .

4

3.1 Boolean Operation window . . . . . . . . . . . . . . . . . . . 8
3.2 View Preferen es window . . . . . . . . . . . . . . . . . . . . 10
4.1 Tessellation Parameters window . . . . . . . . . . . . . . . . . 11
5.1 Composed obje t visualization . . . . . . . . . . . . . . . . . 14
5.2 Preferen es window . . . . . . . . . . . . . . . . . . . . . . . . 15
5.3 Shading Visualization . . . . . . . . . . . . . . . . . . . . . . 16
6.1 Obje t Export window . . . . . . . . . . . . . . . . . . . . . . 18

x bool User's Guide . . .

Bibliography[CasMor95℄ G. Cas iola, S. Morigi, Il problema SSI nella modellazione solida
on super i NURBS, Atti dell'A ademia delle S ienze dell'Istituto di
Bologna, serie V, n.6, (1995).
[Hof89℄ C.M. Ho mannn, Geometri and Solid Modeling. An Introdu tion,
Morgan Kaufmann Publishers (1989).
[XCMODEL00℄ G. Cas iola, x model: a system to model and render
NURBS urves and surfa es, User's Guide - Version 1.0, Progetto
MURST: "Analisi Numeri a: Metodi e Software Matemati o", Ferrara(2000),
http://www.dm.unibo.it/ as iola/html/x model.html[XTOOLS99℄ S.Bonetti, G.Cas iola, xtools library: Programming Guide Version 1.0, (1999)
http://www.dm.unibo.it/ as iola/html/x model.html[TRIM99℄ G.Cas iola, G. De Mar o, trim library: Programming Guide Version 1.0, (1999)
http://www.dm.unibo.it/ as iola/html/x model.html