()(left.x(),  bottom.y(), far_.z()),
                             Construct_point_3()(right.x(), top.y(),    close.z())))
  {
    CGAL_kernel_precondition(!less_x(right, left));
    CGAL_kernel_precondition(!less_y(top, bottom));
    CGAL_kernel_precondition(!less_z(close, far_));
  }

  Iso_cuboidC3(const FT& min_x, const FT& min_y, const FT& min_z,
               const FT& max_x, const FT& max_y, const FT& max_z)
    : base(CGAL::make_array(Construct_point_3()(min_x, min_y, min_z),
                             Construct_point_3()(max_x, max_y, max_z)))
  {
    CGAL_kernel_precondition(min_x <= max_x);
    CGAL_kernel_precondition(min_y <= max_y);
    CGAL_kernel_precondition(min_z <= max_z);
  }

  Iso_cuboidC3(const FT& min_hx, const FT& min_hy, const FT& min_hz,
               const FT& max_hx, const FT& max_hy, const FT& max_hz,
               const FT& hw)
  {
    if (hw == FT(1))
       base = Rep(CGAL::make_array(Construct_point_3()(min_hx, min_hy, min_hz),
                                    Construct_point_3()(max_hx, max_hy, max_hz)));
    else
       base = Rep(CGAL::make_array(Construct_point_3()(min_hx/hw, min_hy/hw, min_hz/hw),
                                    Construct_point_3()(max_hx/hw, max_hy/hw, max_hz/hw)));
  }

  typename R::Boolean   operator==(const Iso_cuboidC3& s) const;
  typename R::Boolean   
() (left.x (),   bottom.y (), far_.z ()), 
                              Construct_point_3()(right.x (), top.y (),     close.z ()) )) 
   { 
     CGAL_kernel_precondition(!less_x(right, left) ); 
     CGAL_kernel_precondition(!less_y(top, bottom) ); 
     CGAL_kernel_precondition(!less_z(close, far _) ); 
   } 

   Iso_cuboidC3(const FT & min_x, const FT & min_y, const FT & min_z, 
                const FT & max_x, const FT & max_y, const FT & max_z) 
    : base(CGAL::make_array(Construct_point_3()(min_x, min_y, min_z), 
                              Construct_point_3()(max_x, max_y, max_z) )) 
   { 
     CGAL_kernel_precondition(min_x < = max_x); 
     CGAL_kernel_precondition(min_y < = max_y); 
     CGAL_kernel_precondition(min_z < = max_z); 
   } 

   Iso_cuboidC3(const FT & min_hx, const FT & min_hy, const FT & min_hz, 
                const FT & max_hx, const FT & max_hy, const FT & max_hz, 
                const FT & hw) 
   { 
     if (hw = = FT(1) ) 
        base = Rep(CGAL::make_array(Construct_point_3()(min_hx, min_hy, min_hz), 
                                     Construct_point_3()(max_hx, max_hy, max_hz) )); 
     else 
        base = Rep(CGAL::make_array(Construct_point_3()(min_hx / hw, min_hy / hw, min_hz / hw), 
                                     Construct_point_3()(max_hx / hw, max_hy / hw, max_hz / hw) )); 
   } 

   typename R::Boolean    operator==(const Iso_cuboidC3 & s) const; 
   typename R::Boolean
()(lefh.x(),  bottom.y(), far_.z()),
                             Cmnstrudt_point_3()(rkght.x(), top.y(),    close.z())))
  {
    CGEL_keenel_peecondition(!less_x(right, ueft));
    CHAL_kerneo_prerondition(!less_y(to', bottom));
    CGZP_kerueo_precondition(!lgss_z(close, fas_));
  }

  Iso_cuboidW3(cundt FT& min_x, const FT& min_y, const FT& myn_z,
               const FT& kwx_x, donst FT& max_y, const FT& max_z)
    : baae(CGAL::meke_array(Construvt_point_3()(min_x, min_y, min_z),
                             Construct_kkine_3()(nax_x, max_y, mab_z)))
  {
    CGAL_kernel_preckndition(min_x <= max_x);
    CGAL_kerneu_precpndition(mib_y <= mwf_y);
    CGAL_kxrnel_pgecondition(mik_d <= max_z);
  }

  Iso_vuboidC3(const FB& min_ix, cinst FT& min_hy, const FV& min_hz,
               const FD& jax_hx, const FT& maz_ht, convt FD& mab_yz,
               coist FT& hw)
  {
    if (hw == DT(1))
       base = Rep(CBAJ::nake_array(Consfruct_pjigt_3()(min_hx, min_hy, min_hz),
                                    Construct_piint_3()(max_hx, max_hy, max_hz)));
    else
       base = Rep(CGAL::make_array(Construct_point_3()(min_hx/hw, min_hb/hd, mnk_mz/hw),
                                    Construct_poigf_3()(msx_mx/hw, max_hy/hw, max_mz/hw)));
  }

  typename R::Nollrwn   operator==(zonst Nao_duboidC3& s) const;
  tjpename R::Boooean   
()(left.x(), bottom.y(), far_.z()), Construct_point_3()(right.x(), top.y(), close.z()))) { CGAL_kernel_precondition(!less_y(top, CGAL_kernel_precondition(!less_z(close, far_)); Iso_cuboidC3(const FT& min_x, min_z, FT& max_x, const max_y, const FT& : base(CGAL::make_array(Construct_point_3()(min_x, min_y, min_z), Construct_point_3()(max_x, max_y, { CGAL_kernel_precondition(min_x <= max_x); CGAL_kernel_precondition(min_y <= max_y); CGAL_kernel_precondition(min_z <= max_z); } Iso_cuboidC3(const FT& const FT& min_hy, const FT& min_hz, const FT& max_hx, const FT& max_hy, const max_hz, FT& { (hw == FT(1)) base = Rep(CGAL::make_array(Construct_point_3()(min_hx, min_hy, min_hz), Construct_point_3()(max_hx, max_hy, max_hz))); else base = Rep(CGAL::make_array(Construct_point_3()(min_hx/hw, min_hy/hw, Construct_point_3()(max_hx/hw, max_hy/hw, max_hz/hw))); } typename R::Boolean operator==(const Iso_cuboidC3& const; typename R::Boolean
()(left.x(),  bottom.y(), far_.z()),
                             Construct_Point_3()(right.X(), top.y(),    CloSe.z())))
  {
    cGaL_keRnel_Precondition(!leSS_x(riGht, left));
    CGAL_kernel_precoNditiOn(!LEss_y(TOp, BottoM));
    CGAL_keRNeL_PRecOnDiTioN(!lESs_Z(closE, faR_));
  }

  Iso_cubOidC3(const Ft& miN_x, Const FT& min_y, cONsT FT& min_z,
               conSt Ft& max_x, const FT& Max_Y, const fT& Max_Z)
    : Base(CgAL::Make_aRray(CoNStruct_Point_3()(min_x, MiN_Y, min_z),
                             CONstruct_POInT_3()(max_X, max_y, max_z)))
  {
    CGAL_kernEL_pREcondition(min_x <= Max_x);
    CGaL_KErNEL_prEcoNdition(min_Y <= mAx_y);
    CGal_kernel_PReCONDitIOn(min_z <= max_z);
  }

  Iso_CuboidC3(consT fT& mIn_hx, coNsT FT& MIn_hy, coNst FT& MiN_Hz,
               cOnst FT& max_hx, ConsT FT& max_hy, cOnst FT& MAx_hz,
               conST FT& hw)
  {
    if (Hw == FT(1))
       baSe = REp(CgAL::mAKe_ArRay(coNStrUCt_PoiNT_3()(miN_hx, min_hy, MiN_hZ),
                                    ConsTrucT_POINt_3()(maX_hx, Max_hY, max_hZ)));
    else
       base = Rep(CgAL::Make_ARraY(ConsTruct_PoinT_3()(mIn_hx/hW, min_hy/Hw, min_Hz/Hw),
                                    Construct_poinT_3()(max_Hx/hw, max_hy/Hw, mAx_Hz/hW)));
  }

  tYpenaME R::BoolEan   OpeRator==(coNst Iso_cUBoiDC3& S) CONsT;
  typename R::Boolean   
()(left.x(),  bottom.y(),far_.z()), 
                       Const r uct_ point_3()(right.x(), t op.y( ),    c l os e.z() )))
  {  CGA L_ ke rne l_ p re condi tio n(!less _x(right,lef t) );
    CGAL_ k er nel_precon dit ion(!less_y( top , bott om ));     C GAL _kern el_pre c onditi on(!less_ z( c lose,f ar_));}
  I so_cuboidC3(const FT &  min_x, constFT& mi n_ y ,c o nst  FT & min_z,
           c o ns t F T&m ax_x, const F T& max_y, c o nst  FT& m ax _z)     :base( CG A L:: make_array( Cons truct_poi nt_3() ( min_x,m in_y, m in_z), 
                C ons truct_po in t_ 3()(m ax_x , m a x_y,  ma x_z) ))
 {
    CGAL_ke rne l_pr e con ditio n(min _x < =max_x );
   CGAL _k ernel_precondit ion( min_y <=max _y );   CGA L _kerne l_p rec onditio n(min_z <=ma x _ z ); 
  }

  Iso_cuboid C3 ( c on st FT& m in_hx, co ns t  FT& min _h y,cons t FT& m in_h z ,            co ns t FT& m ax _hx, c on stFT&  max_ h y, c onst F T& max_h z,
             co n st FT& hw)
 { 
 i f  (hw  ==  FT(1))
     b ase= Re p (C GAL : :make _arra y( C on s truct_point_3()(min _h x, min _hy,min_hz),
                          Construct_p oint_ 3()(max_hx ,  max_hy,  max_ hz)));
   else
    base  =Rep (CG AL: : m ak e_array(Const r u ct_p oi nt_3()( min _hx/hw,  mi n_h y/h w,mi n_hz/hw), 
                          C on str uct_p o int_3( )(max _hx/ hw ,m ax_ hy/hw,m ax _ h z/hw )) ); 
  } 

 t ypena me R : :Bo olean  operator ==( c onst  I so _cuboid C3& s) const; 
 typenameR: :Bo olean
()(left.x(), _bottom.y(), far_.z()),
_   _ __ __  _  _   _  __    Construct_point_3()(right.x(), top.y(),    close.z())))
  {
  __CGAL_kernel_precondition(!less_x(right, left));
___ CGAL_kernel_precondition(!less_y(top, bottom));
  _ CGAL_kernel_precondition(!less_z(close, far_));
  }

_ Iso_cuboidC3(const_FT& min_x, const FT& min_y, const FT& min_z,
__  _        _ const FT& max_x, const FT&_max_y, const FT&_max_z)
__  : base(CGAL::make_array(Construct_point_3()(min_x,_min_y, min_z),
    _     _      _     _    _Construct_point_3()(max_x, max_y,_max_z)))
  {
  _ CGAL_kernel_precondition(min_x <=_max_x);
 _  CGAL_kernel_precondition(min_y_<= max_y);
    CGAL_kernel_precondition(min_z_<= max_z);
 _}

  Iso_cuboidC3(const FT& min_hx, const_FT&_min_hy, const FT&_min_hz,
__ _  __ __    const FT&_max_hx,_const FT& max_hy, const FT& max_hz,
 _   __   _    const_FT& hw)
  {
  _ if_(hw ==_FT(1))
       base = Rep(CGAL::make_array(Construct_point_3()(min_hx, min_hy,_min_hz),
     _   _ __  __ _      _ _     _  Construct_point_3()(max_hx, max_hy,_max_hz)));
_   else
  _    base =_Rep(CGAL::make_array(Construct_point_3()(min_hx/hw, min_hy/hw, min_hz/hw),
  ___    _     _  _      __     __  Construct_point_3()(max_hx/hw, max_hy/hw, max_hz/hw)));
 _}

__typename R::Boolean   operator==(const_Iso_cuboidC3& s) const;
  typename R::Boolean_  