X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_FaceDriver.cxx;h=4e4e9315f93832f90eac32886ed8f6a31b35692a;hb=e5b3888b6f3a2f4ebb51689f166e1450660c7691;hp=708f8f4506d7d4418fca533ec7fec876c3034481;hpb=465e84c52edb243fa36d581abc659b1c97156c64;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_FaceDriver.cxx b/src/GEOMImpl/GEOMImpl_FaceDriver.cxx index 708f8f450..4e4e9315f 100755 --- a/src/GEOMImpl/GEOMImpl_FaceDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_FaceDriver.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // 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. +// 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 @@ -15,6 +15,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include @@ -122,45 +123,48 @@ Standard_Integer GEOMImpl_FaceDriver::Execute(TFunction_Logbook& log) const return 1; } +//================================================================================ +/*! + * \brief Returns a name of creation operation and names and values of creation parameters + */ +//================================================================================ -//======================================================================= -//function : GEOMImpl_FaceDriver_Type_ -//purpose : -//======================================================================= -Standard_EXPORT Handle_Standard_Type& GEOMImpl_FaceDriver_Type_() +bool GEOMImpl_FaceDriver:: +GetCreationInformation(std::string& theOperationName, + std::vector& theParams) { + if (Label().IsNull()) return 0; + Handle(GEOM_Function) function = GEOM_Function::GetFunction(Label()); - 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_FaceDriver", - sizeof(GEOMImpl_FaceDriver), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); + GEOMImpl_IFace aCI( function ); + Standard_Integer aType = function->GetType(); - return _aType; -} + theOperationName = "RECTANGLE"; -//======================================================================= -//function : DownCast -//purpose : -//======================================================================= -const Handle(GEOMImpl_FaceDriver) Handle(GEOMImpl_FaceDriver)::DownCast(const Handle(Standard_Transient)& AnObject) -{ - Handle(GEOMImpl_FaceDriver) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_FaceDriver))) { - _anOtherObject = Handle(GEOMImpl_FaceDriver)((Handle(GEOMImpl_FaceDriver)&)AnObject); - } + switch ( aType ) { + case FACE_OBJ_H_W: + { + Handle(GEOM_Function) aRefFunct = aCI.GetRef1(); + TopoDS_Shape aRefShape = aRefFunct->GetValue(); + if (aRefShape.ShapeType() == TopAbs_EDGE) + AddParam( theParams, "Edge", aRefFunct ); + else + AddParam( theParams, "Face", aRefFunct ); + AddParam( theParams, "Height", aCI.GetH() ); + AddParam( theParams, "Width", aCI.GetW() ); + break; } - - return _anOtherObject ; + case FACE_H_W: + AddParam( theParams, "Height", aCI.GetH() ); + AddParam( theParams, "Width", aCI.GetW() ); + AddParam( theParams, "Orientation", aCI.GetOrientation() ); + break; + default: + return false; + } + + return true; } + +IMPLEMENT_STANDARD_HANDLE (GEOMImpl_FaceDriver,GEOM_BaseDriver); +IMPLEMENT_STANDARD_RTTIEXT (GEOMImpl_FaceDriver,GEOM_BaseDriver);