Definition of the canonicalND
Type  Visibility  Attributes  Name  Initial  

real(kind=rk),  private  ::  origin(3)  origin of the canonical shape 

real(kind=rk),  private  ::  vec(3,3)  vector along the edge A (also defines size) 1st dimension defines x,y, z coord 2nd dimension vec number 

integer,  private  ::  segments(3)  how many discrete points the canonicalND is divided into 

character(len=labellen),  private  ::  distribution  spatial distribution of the points 

character(len=labellen),  private  ::  kind  kind of canonicalND (line, plane, point, box) 

logical,  private  ::  active(3)  identify which vectors are active (not equal 0) 

integer,  private  ::  nDim  dimension of canonical object nDim=0  point nDim=1  line nDim=2  plane nDim=3  box 

logical,  private  ::  only_surface  =  .false.  To choose what to do with intersection of box if only_surface = true than the only the surface of the object is intersected if only_surface = false then the whole object is intersected default is set to false 

type(tem_point_type),  private  ::  point  canonical point 

type(tem_line_type),  private  ::  line  
type(tem_plane_type),  private  ::  plane  
type(tem_box_type),  private  ::  box 