Back to index

salome-geom  6.5.0
GEOM_ICurvesOperations_i.hh
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 #ifndef _GEOM_ICurvesOperations_i_HeaderFile
00024 #define _GEOM_ICurvesOperations_i_HeaderFile
00025 
00026 #include "GEOMImpl_Gen.hxx"
00027 
00028 #include <SALOMEconfig.h>
00029 
00030 #include CORBA_SERVER_HEADER(GEOM_Gen)
00031 #include "GEOM_IOperations_i.hh"
00032 #include "GEOM_Object_i.hh"
00033 
00034 #include "GEOMImpl_ICurvesOperations.hxx"
00035 
00036 class GEOM_I_EXPORT GEOM_ICurvesOperations_i : 
00037     public virtual POA_GEOM::GEOM_ICurvesOperations,
00038     public virtual GEOM_IOperations_i
00039 {
00040  public:
00041   GEOM_ICurvesOperations_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
00042                          ::GEOMImpl_ICurvesOperations* theImpl);
00043   ~GEOM_ICurvesOperations_i();
00044 
00045   GEOM::GEOM_Object_ptr MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
00046                                       GEOM::GEOM_Object_ptr theVector,
00047                                       double theR);
00048 
00049   GEOM::GEOM_Object_ptr MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
00050                                        GEOM::GEOM_Object_ptr thePnt2,
00051                                        GEOM::GEOM_Object_ptr thePnt3);
00052 
00053   GEOM::GEOM_Object_ptr MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
00054                                          GEOM::GEOM_Object_ptr thePnt2,
00055                                          GEOM::GEOM_Object_ptr thePnt3);
00056 
00057   GEOM::GEOM_Object_ptr MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
00058                                  GEOM::GEOM_Object_ptr theVector,
00059                                  double theRMajor, double theRMinor);
00060 
00061   GEOM::GEOM_Object_ptr MakeEllipseVec (GEOM::GEOM_Object_ptr theCenter,
00062                                    GEOM::GEOM_Object_ptr theVector,
00063                                    double theRMajor, double theRMinor,
00064                                    GEOM::GEOM_Object_ptr theVectorMajor);
00065 
00066   GEOM::GEOM_Object_ptr MakeArc (GEOM::GEOM_Object_ptr thePnt1,
00067                              GEOM::GEOM_Object_ptr thePnt2,
00068                              GEOM::GEOM_Object_ptr thePnt3);
00069   
00070   GEOM::GEOM_Object_ptr MakeArcCenter (GEOM::GEOM_Object_ptr thePnt1,
00071                                        GEOM::GEOM_Object_ptr thePnt2,
00072                                        GEOM::GEOM_Object_ptr thePnt3,
00073                                        bool theSense);
00074 
00075   GEOM::GEOM_Object_ptr MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1,
00076                                      GEOM::GEOM_Object_ptr thePnt2,
00077                                      GEOM::GEOM_Object_ptr thePnt3);
00078   
00079   GEOM::GEOM_Object_ptr MakePolyline (const GEOM::ListOfGO& thePoints,
00080                                       CORBA::Boolean        theIsClosed);
00081 
00082   GEOM::GEOM_Object_ptr MakeSplineBezier (const GEOM::ListOfGO& thePoints,
00083                                           CORBA::Boolean        theIsClosed);
00084 
00085   GEOM::GEOM_Object_ptr MakeSplineInterpolation (const GEOM::ListOfGO& thePoints,
00086                                                  CORBA::Boolean        theIsClosed,
00087                                                  CORBA::Boolean        theDoReordering);
00088 
00089   GEOM::GEOM_Object_ptr MakeCurveParametric(const char* thexExpr, const char* theyExpr, const char* thezExpr, 
00090                                        double theParamMin, double theParamMax, double theParamStep, 
00091                                        GEOM::curve_type theCurveType);
00092   
00093   GEOM::GEOM_Object_ptr MakeCurveParametricNew(const char* thexExpr, const char* theyExpr, const char* thezExpr, 
00094                         double theParamMin, double theParamMax, CORBA::Long theParamNbStep, 
00095                         GEOM::curve_type theCurveType);
00096 
00097   GEOM::GEOM_Object_ptr MakeSketcher (const char* theCommand, const GEOM::ListOfDouble& theWorkingPlane);
00098   
00099   GEOM::GEOM_Object_ptr Make3DSketcher (const GEOM::ListOfDouble& theCoordinates);
00100 
00101   GEOM::GEOM_Object_ptr MakeSketcherOnPlane (const char* theCommand, GEOM::GEOM_Object_ptr theWorkingPlane);
00102 
00103   ::GEOMImpl_ICurvesOperations* GetOperations()
00104   { return (::GEOMImpl_ICurvesOperations*)GetImpl(); }
00105 };
00106 
00107 #endif