/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 - 2 0 2 2 ĠCh air Ġof ĠGe oin form atics , ĠTechnical ĠUniversity Ġof ĠM un ich Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . r tron . math . geometry . e uclidean . th reed Ċ Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . curve . Abstract Curve 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . point . Vector 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . solid . Abstract Solid 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . solid . Cy linder 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . solid . Parame tric Sweep 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . surface . Abstract Surface 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . surface . Circle 3 D Ċ import Ġio . r tron . math . geometry . e uclidean . th reed . surface . Parame tric Bounded Surface 3 D Ċ Ċ /** Ċ Ġ* ĠVisitor Ġinterface Ġfor Ġ 3 D Ġge ometries . ĠVisitor Ġpattern Ġis Ġapplied Ġto Ġseparate Ġgeometry Ġtransformation Ġalgorithms Ċ Ġ* Ġfrom Ġthe Ġactual Ġobject Ġstructure Ġof Ġthe Ġ 3 D Ġgeometry . Ċ Ġ*/ Ċ interface ĠGeometry 3 D Visitor Ġ{ ĊĊĠĠĠ Ġ// Ġpoint ĊĠĠĠ Ġfun Ġvisit ( vector 3 D : ĠVector 3 D ) ĊĠĠĠ Ġ// Ġcurve ĊĠĠĠ Ġfun Ġvisit ( abstract Curve 3 D : ĠAbstract Curve 3 D ) ĊĠĠĠ Ġ// Ġsurface ĊĠĠĠ Ġfun Ġvisit ( abstract Surface 3 D : ĠAbstract Surface 3 D ) ĊĠĠĠ Ġfun Ġvisit ( circle 3 D : ĠCircle 3 D ) ĊĠĠĠ Ġfun Ġvisit ( parame tric Bounded Surface 3 D : ĠPar ame tric Bounded Surface 3 D ) ĊĊĠĠĠ Ġ// Ġsolid ĊĠĠĠ Ġfun Ġvisit ( abstract Solid 3 D : ĠAbstract Solid 3 D ) ĊĠĠĠ Ġfun Ġvisit ( cy linder 3 D : ĠCy linder 3 D ) ĊĠĠĠ Ġfun Ġvisit ( parame tric Sweep 3 D : ĠPar ame tric Sweep 3 D ) ĊĊĠĠĠ Ġ// Ġabstract Ġgeometry ĊĠĠĠ Ġfun Ġvisit ( abstract Geometry 3 D : ĠAbstract Geometry 3 D ) Ċ } Ċ