/*******************************************************************************
*
* McStas, neutron ray-tracing package
*         Copyright (C) 1997-2008, All rights reserved
*         Risoe National Laboratory, Roskilde, Denmark
*         Institut Laue Langevin, Grenoble, France
*
* Component: Annulus
*
* %I
* Written by: E. Farhi
* Date: June 23rd 2009
* Origin: ILL
* Modified by: E. Farhi, based on Incoherent
*
* A geometric shape without effect on neutron, for instrument display purpose.
*
* %D
* An inactive geometrical shape, for drawing purposes only.
* It does not propagate neutron, nor interact.
* <b>Shape:</b>
* Geometric shape may be a cylinder, a sphere, a box or any other shape
*   box/plate:       xwidth x yheight x zdepth (thickness=0)
*   hollow box/plate:xwidth x yheight x zdepth and thickness>0
*   cylinder:        radius x yheight (thickness=0)
*   hollow cylinder: radius x yheight and thickness>0
*   sphere:          radius (yheight=0 thickness=0)
*   hollow sphere:   radius and thickness>0 (yheight=0)
*   any shape:       geometry=OFF file
*
*   The complex geometry option handles any closed non-convex polyhedra.
*   It computes the intersection points of the neutron ray with the object
*   transparently, so that it can be used like a regular sample object.
*   It supports the OFF and NOFF file format but not COFF (colored faces).
*   Such files may be generated from XYZ data using qhull/powercrust, and
*   viewed with geomview
*   The default size of the object depends of the OFF file data, but its
*   bounding box may be resized using xwidth,yheight and zdepth.
*
* Example: Shape(radius=0.05, yheight=0.1)
*          Shape(geometry="socket.off")
*
* %P
* INPUT PARAMETERS:
* radius: [m]      Outer radius of sample in (x,z) plane
* xwidth: [m]      Horiz. dimension of sample (bounding box if off file), as a width
* yheight: [m]     Vert.  dimension of sample (bounding box if off file), as a height. A sphere shape is used when 0 and radius is set
* zdepth: [m]      Depth of sample (bounding box if off file)
*
* %L
* Geomview and Object File Format (OFF) <http|://www.geomview.org>
* %L
* Powercrust/qhull <http://www.cs.utexas.edu/users/amenta/powercrust>
*
* %E
*******************************************************************************/

DEFINE COMPONENT Annulus

SETTING PARAMETERS (outer_radius=0,inner_radius=0,radius=0, xwidth=0, yheight=0, zdepth=0)

/* Neutron parameters: (x,y,z,vx,vy,vz,t,sx,sy,sz,p) */

SHARE
%{
%}

DECLARE
%{
%}

INITIALIZE
%{
  /* */
%}


TRACE %{
  /* component Annulus does nothing */
%}

MCDISPLAY
%{
    mcdis_annulus(0,0,0,outer_radius, inner_radius, 0,1,0);
%}

END
