X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelHighAPI%2FModelHighAPI_Services.cpp;h=db14a4601929044d5ca650fa5af690784a91ef5f;hb=2054879244f3323c305222c79c57d2db6a487538;hp=09be73726729380ce997b7d211ac4383deba5a6c;hpb=f98f887290d4e2b4bd6618389911e82b6b9674f3;p=modules%2Fshaper.git diff --git a/src/ModelHighAPI/ModelHighAPI_Services.cpp b/src/ModelHighAPI/ModelHighAPI_Services.cpp index 09be73726..db14a4601 100644 --- a/src/ModelHighAPI/ModelHighAPI_Services.cpp +++ b/src/ModelHighAPI/ModelHighAPI_Services.cpp @@ -1,5 +1,6 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D // Name : ModelHighAPI_Services.cpp -// Purpose: +// Purpose: // // History: // 17/06/16 - Sergey POKHODENKO - Creation of the file @@ -10,6 +11,11 @@ #include #include #include +#include +#include +#include + +#include //-------------------------------------------------------------------------------------- std::shared_ptr moduleDocument() @@ -42,14 +48,52 @@ std::shared_ptr defaultPlane( const std::string& theName ) return std::shared_ptr(new GeomAPI_Ax3(o, x, n)); } +std::string defaultPlane(const std::shared_ptr& theOrigin, + const std::shared_ptr& theNormal, + const std::shared_ptr& theDirX) +{ + static const double aTol = 1.e-10; + + if (fabs(theOrigin->x()) > aTol || fabs(theOrigin->y()) > aTol || fabs(theOrigin->z()) > aTol) + return std::string(); + + // XOY or XOZ + if (fabs(theNormal->x()) < aTol && + fabs(theDirX->x() - 1.0) < aTol && fabs(theDirX->y()) < aTol && fabs(theDirX->z()) < aTol) { + // XOY + if (fabs(theNormal->y()) < aTol && fabs(theNormal->z() - 1.0) < aTol) + return std::string("XOY"); + else if (fabs(theNormal->y() + 1.0) < aTol && fabs(theNormal->z()) < aTol) + return std::string("XOZ"); + } + // YOZ + else if (fabs(theNormal->x() - 1.0) < aTol && + fabs(theNormal->y()) < aTol && fabs(theNormal->z()) < aTol && + fabs(theDirX->x()) < aTol && fabs(theDirX->y() - 1.0) < aTol && + fabs(theDirX->z()) < aTol) + return std::string("YOZ"); + + return std::string(); +} + +std::shared_ptr standardPlane(const std::string & theName){ + DocumentPtr aPartSet = ModelAPI_Session::get()->moduleDocument(); + // searching for the construction element + return std::dynamic_pointer_cast( + aPartSet->objectByName(ModelAPI_ResultConstruction::group(), theName)); +} + //-------------------------------------------------------------------------------------- void begin() { ModelAPI_Session::get()->startOperation(); } + void end() { ModelAPI_Session::get()->finishOperation(); + // to update data tree in the end of dumped script execution + ModelAPI_EventCreator::get()->sendReordered(FeaturePtr()); } void apply() {