| 1 | /*
 | 
|---|
| 2 |  * Project: MoleCuilder
 | 
|---|
| 3 |  * Description: creates and alters molecular systems
 | 
|---|
| 4 |  * Copyright (C)  2010 University of Bonn. All rights reserved.
 | 
|---|
| 5 |  * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
 | 
|---|
| 6 |  */
 | 
|---|
| 7 | 
 | 
|---|
| 8 | /**
 | 
|---|
| 9 |  * \file shapes.dox
 | 
|---|
| 10 |  *
 | 
|---|
| 11 |  * Created on: Oct 28, 2011
 | 
|---|
| 12 |  *    Author: heber
 | 
|---|
| 13 |  */
 | 
|---|
| 14 | 
 | 
|---|
| 15 | /** \page shapes Shapes
 | 
|---|
| 16 |  *
 | 
|---|
| 17 |  * Shapes are present for denoting a specific region of the simulation domain.
 | 
|---|
| 18 |  * There are four primitive types present:
 | 
|---|
| 19 |  *  - Sphere
 | 
|---|
| 20 |  *  - Ellipsoid
 | 
|---|
| 21 |  *  - Cuboid
 | 
|---|
| 22 |  *  - Cylinder
 | 
|---|
| 23 |  *
 | 
|---|
| 24 |  * Note that all may be modified (shrink/grow, rotate, morph) via an arbitrary
 | 
|---|
| 25 |  * matrix.
 | 
|---|
| 26 |  *
 | 
|---|
| 27 |  * The shapes are for the moment only used within \ref descriptors to specify
 | 
|---|
| 28 |  * a specific subset of atoms, here that reside in a certain region of the
 | 
|---|
| 29 |  * simulation domain.
 | 
|---|
| 30 |  *
 | 
|---|
| 31 |  * \todo There is a certain relation between Tesselation and Shape. Hence, later
 | 
|---|
| 32 |  * Tesselation shall itself be a Shape, i.e. that describes a certain region in
 | 
|---|
| 33 |  * space, here via a tesselated mesh.
 | 
|---|
| 34 |  *
 | 
|---|
| 35 |  * \section shapes-constructive-geometry Constructive Geometry
 | 
|---|
| 36 |  *
 | 
|---|
| 37 |  * Again, Shapes can be joined via boolean operators:
 | 
|---|
| 38 |  * - add
 | 
|---|
| 39 |  * - or
 | 
|---|
| 40 |  * - not
 | 
|---|
| 41 |  *
 | 
|---|
| 42 |  * And thus are a very powerful concept called constructive geometry.
 | 
|---|
| 43 |  *
 | 
|---|
| 44 |  * E.g. a shape can be used like this
 | 
|---|
| 45 |  * \code
 | 
|---|
| 46 |  * Cuboid(Vector(0,0,0), Vector(2,2,2)) && !Sphere(Vector(1,1,1), 1.)
 | 
|---|
| 47 |  * \endcode
 | 
|---|
| 48 |  * which would match any object within the cuboid from (0,0,0) to (2,2,2)
 | 
|---|
| 49 |  * that is not in the unit sphere at (1,1,1).
 | 
|---|
| 50 |  *
 | 
|---|
| 51 |  *
 | 
|---|
| 52 |  * \date 2014-03-10
 | 
|---|
| 53 |  *
 | 
|---|
| 54 |  */
 | 
|---|