# GfsSurface

(Difference between revisions)
 Revision as of 06:59, 23 April 2007Popinet (Talk | contribs)← Previous diff Revision as of 08:32, 24 April 2007Popinet (Talk | contribs) Next diff → Line 20: Line 20: tx = 0.1 ty = -0.2 tz = 0.4 tx = 0.1 ty = -0.2 tz = 0.4 sx = 2. sy = 1.5 sz = -1 sx = 2. sy = 1.5 sz = -1 - rx = 0.5 ry = -0.1 rz = -0.3 + rx = -45 ry = -5.5 rz = 25 - angle = -45 + scale = 3. flip = 1 flip = 1 twod = 1 twod = 1 } } - where (tx,ty,tz) is a translation vector and (sx,sy,sz) is a scaling vector. The vector (rx,ry,rz) defines a rotation axis and angle the associated rotation angle (in degrees). Note that the translation is always performed after rotation and scaling. + where (tx,ty,tz) is a translation vector, (sx,sy,sz) is a scaling vector and (rx,ry,rz) is a rotation vector (angles in degrees around each principal direction). Note that the translation is always performed after rotation and scaling. + + If the scale parameter is specified, uniform scaling is applied along the three axis. The flip parameter can be used to flip the surface orientation. The flip parameter can be used to flip the surface orientation.

## Revision as of 08:32, 24 April 2007

A GfsSurface is an oriented surface (in 3D) or an oriented curve (in 2D).

The surface can be defined implicitly using for example:

```(x*x + y*y + z*z - 0.1*0.1)
```

which defines the surface as the set of points of coordinates `(x,y,z)` such that `x*x + y*y + z*z - 0.1*0.1 = 0` (i.e. a sphere of radius 0.1 centered on the origin).

The sign of the implicit function defines the surface orientation.

Surfaces can also be defined explicitly using GTS files. For example:

```sphere.gts
```

When using GTS surfaces in two dimensions, the oriented curve is defined as the intersection of the GTS surface with the `z = 0` plane.

The surface definition can be followed by an optional parameter block with the following syntax:

```{
tx = 0.1 ty = -0.2 tz = 0.4
sx = 2.  sy = 1.5  sz = -1
rx = -45 ry = -5.5 rz = 25
scale = 3.
flip = 1
twod = 1
}
```

where `(tx,ty,tz)` is a translation vector, `(sx,sy,sz)` is a scaling vector and `(rx,ry,rz)` is a rotation vector (angles in degrees around each principal direction). Note that the translation is always performed after rotation and scaling.

If the `scale` parameter is specified, uniform scaling is applied along the three axis.

The `flip` parameter can be used to flip the surface orientation.

If set to one the `twod` parameter "flattens" the surface on the `z = 0` plane (this is used in 3D by the GfsRefineSurface object).

Several simple implicit surfaces are pre-defined:

`ellipse(x,y,a,b)`
an ellipse centered on `(x,y)` and with semimajor axis `a` and semiminor axis `b`.
`sphere(x,y,z,r)`
a sphere centered on `(x,y,z)` and of radius `r`.