# Axl.jl

The package allows to vizualise geometric objects with Axl. It depends on the package `SemiAlgebraictypes.jl`

, which provides the geometric objects.

## Geometric objects

The package handles the following types:

- point, line, sphere, cylinder, cone, ellipsoid, torus
- mesh with normals, fields
- bspline curve, surface, volume

## Installation

To use this package, `julia`

needs first to be installed (see here).

The package can then be installed from `Julia`

as follows:

```
using Pkg
Pkg.add(PackageSpec(url="https://gitlab.inria.fr/AlgebraicGeometricModeling/Axl.jl.git"))
Pkg.build("Axl")
```

This installation checks that `axl`

is installed. If not, a warning message with instructions to install it is printed. See here more details on how to install `axl`

.

## Using `Axl.jl`

Here is an example with a cylinder, a cone and a mesh:

```
using Axl
@axl start
@axl A = point(0.,0.5,0.)
@axl B = point(0.,1.5,0.)
C = point(0.,3.5,0.)
c0 = cylinder(A,B,0.2, color=Color(255,0,0))
c1 = cone(C,B,0.7, color=Color(0,255,0))
@axl c0, c1
@axl m = mesh([[cos(i*pi/5), sin(i*pi/5), 0.0] for i in 1:10], Edge[], [[1,i,i+1] for i in 1:9], field = DirField(1.,0.,0.))
@axl view
```

Here is an example of the visualization of a bspline surface:

```
using Axl
B1 = BSplineBasis(LinRange(0., 2., 4), 3)
B2 = BSplineBasis(LinRange(0., 1., 3), 3)
C = fill(0.0,3,5,4)
for i in 1:5, j in 1:4
C[:,i,j] = [i-1,j-1,5*rand()-2.5]
end
s = BSplineSurface(C, B1,B2, color=Color(150,200,255))
@axlview s
```