# Booleanos geométricos

*Intersect*, *Trim* e *SelectTrim* são principalmente usados na geometria bidimensional menor como Pontos, Curvas e Superfícies. A geometria sólida, por outro lado, tem um conjunto adicional de métodos para modificar a forma após sua construção, subtraindo o material de uma forma similar a *Trim* e combinando elementos para formar um todo maior.

### Union

O método *Union* usa dois objetos sólidos e cria um único objeto sólido fora do espaço coberto por ambos os objetos. O espaço sobreposto entre os objetos é combinado na forma final. Este exemplo combina uma esfera e um cuboide em uma única forma sólida de cubo de esfera:

```js
s1 = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin, 6);

s2 = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin.Translate(4, 0,
    0), 6);

combined = s1.Union(s2);
```

### Difference

O método *Difference*, como *Trim*, subtrai o conteúdo do sólido da ferramenta de entrada do sólido base. Neste exemplo, nós colocamos um pequeno recuo fora de uma esfera:

```js
s = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin, 6);

tool = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin.Translate(10, 0,
    0), 6);

result = s.Difference(tool);
```

### Intersect

O método *Intersect* retorna o sólido sobreposto entre duas entradas de sólidos. No exemplo a seguir, o método *Difference* foi alterado para *Intersect*, e o sólido resultante é o vazio ausente inicialmente entalhado:

```js
s = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin, 6);

tool = Sphere.ByCenterPointRadius(
    CoordinateSystem.Identity().Origin.Translate(10, 0,
    0), 6);

result = s.Intersect(tool);
```
