X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_MirrorDriver.cxx;h=99a7cc377186c77abfa349ab61928147f9c4838a;hb=d45ec2f5db4d4772f11fa94593f9ee7a84851fbc;hp=69a8c599d83d6ee956fc98402752edb068044635;hpb=392885c1a8d50369708bbe5e6b44033ed8b8ba51;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx b/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx index 69a8c599d..99a7cc377 100644 --- a/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #include #include @@ -29,6 +30,9 @@ #include #include +#include +#include +#include #include #include @@ -117,8 +121,8 @@ Standard_Integer GEOMImpl_MirrorDriver::Execute(TFunction_Logbook& log) const const gp_Dir dir = pos.Direction(); /* Main direction of the plane (Z axis) */ gp_Ax2 aPln (loc, dir); aTrsf.SetMirror(aPln); - - } else if (aType == MIRROR_AXIS || aType == MIRROR_AXIS_COPY) { + } + else if (aType == MIRROR_AXIS || aType == MIRROR_AXIS_COPY) { Handle(GEOM_Function) anAxis = TI.GetAxis(); if (anAxis.IsNull()) return 0; TopoDS_Shape anAxisShape = anAxis->GetValue(); @@ -130,8 +134,8 @@ Standard_Integer GEOMImpl_MirrorDriver::Execute(TFunction_Logbook& log) const gp_Vec aV (aP1, aP2); gp_Ax1 anAx1 (aP1, aV); aTrsf.SetMirror(anAx1); - - } else if (aType == MIRROR_POINT || aType == MIRROR_POINT_COPY) { + } + else if (aType == MIRROR_POINT || aType == MIRROR_POINT_COPY) { Handle(GEOM_Function) aPoint = TI.GetPoint(); if (aPoint.IsNull()) return 0; TopoDS_Shape aVertexShape = aPoint->GetValue(); @@ -140,7 +144,8 @@ Standard_Integer GEOMImpl_MirrorDriver::Execute(TFunction_Logbook& log) const gp_Pnt aP = BRep_Tool::Pnt(aVertex); aTrsf.SetMirror(aP); - } else { + } + else { return 0; } @@ -156,48 +161,46 @@ Standard_Integer GEOMImpl_MirrorDriver::Execute(TFunction_Logbook& log) const return 1; } +//================================================================================ +/*! + * \brief Returns a name of creation operation and names and values of creation parameters + */ +//================================================================================ -//======================================================================= -//function : GEOMImpl_MirrorDriver_Type_ -//purpose : -//======================================================================= -Standard_EXPORT Handle_Standard_Type& GEOMImpl_MirrorDriver_Type_() -{ - - static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver); - if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver); - static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); - static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); - if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - - - static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_MirrorDriver", - sizeof(GEOMImpl_MirrorDriver), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); - - return _aType; -} - -//======================================================================= -//function : DownCast -//purpose : -//======================================================================= - -const Handle(GEOMImpl_MirrorDriver) Handle(GEOMImpl_MirrorDriver)::DownCast(const Handle(Standard_Transient)& AnObject) +bool GEOMImpl_MirrorDriver:: +GetCreationInformation(std::string& theOperationName, + std::vector& theParams) { - Handle(GEOMImpl_MirrorDriver) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_MirrorDriver))) { - _anOtherObject = Handle(GEOMImpl_MirrorDriver)((Handle(GEOMImpl_MirrorDriver)&)AnObject); - } + if (Label().IsNull()) return 0; + Handle(GEOM_Function) function = GEOM_Function::GetFunction(Label()); + + GEOMImpl_IMirror aCI( function ); + Standard_Integer aType = function->GetType(); + + theOperationName = "MIRROR"; + + switch ( aType ) { + case MIRROR_PLANE: + case MIRROR_PLANE_COPY: + AddParam( theParams, "Object", aCI.GetOriginal() ); + AddParam( theParams, "Plane Mirror", aCI.GetPlane() ); + break; + case MIRROR_AXIS: + case MIRROR_AXIS_COPY: + AddParam( theParams, "Object", aCI.GetOriginal() ); + AddParam( theParams, "Axis Mirror", aCI.GetAxis() ); + break; + case MIRROR_POINT: + case MIRROR_POINT_COPY: + AddParam( theParams, "Object", aCI.GetOriginal() ); + AddParam( theParams, "Point Mirror", aCI.GetPoint() ); + break; + default: + return false; } - - return _anOtherObject ; + + return true; } - +IMPLEMENT_STANDARD_HANDLE (GEOMImpl_MirrorDriver,GEOM_BaseDriver); +IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_MirrorDriver,GEOM_BaseDriver);