X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelHighAPI%2FModelHighAPI_FeatureStore.cpp;h=97f65b4777012ade15dbb4499fd0e116e2667b39;hb=e675b9eb8df755fff9763560ddf36d5bfeb6fe35;hp=99f992f49712a81d700b23f259128ac981521f13;hpb=423c10234142d14d0d5de89383f2f96a4ec5930f;p=modules%2Fshaper.git diff --git a/src/ModelHighAPI/ModelHighAPI_FeatureStore.cpp b/src/ModelHighAPI/ModelHighAPI_FeatureStore.cpp index 99f992f49..97f65b477 100644 --- a/src/ModelHighAPI/ModelHighAPI_FeatureStore.cpp +++ b/src/ModelHighAPI/ModelHighAPI_FeatureStore.cpp @@ -1,8 +1,22 @@ -// Copyright (C) 2016-20xx CEA/DEN, EDF R&D --> - -// File: ModelHighAPI_FeatureStore.cpp -// Created: 12 August 2016 -// Author: Mikhail PONIKAROV +// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// +// 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. +// +// 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 +// #include @@ -21,7 +35,9 @@ #include #include #include +#include #include +#include #include #include @@ -185,6 +201,10 @@ std::string ModelHighAPI_FeatureStore::dumpAttr(const AttributePtr& theAttr) { aResult<value(); } else if (aType == ModelAPI_AttributeString::typeId()) { AttributeStringPtr anAttr = std::dynamic_pointer_cast(theAttr); + // do not dump solver DOF for sketch as it may be changed unexpectedly + if(anAttr->id() == "SolverDOF") { + return ""; + } aResult<value(); } else if (aType == ModelAPI_AttributeReference::typeId()) { AttributeReferencePtr anAttr = @@ -266,6 +286,35 @@ std::string ModelHighAPI_FeatureStore::dumpAttr(const AttributePtr& theAttr) { std::dynamic_pointer_cast(theAttr); for(int a = 0; a < anAttr->size(); a++) aResult<value(a)<<" "; + } else if (aType == ModelAPI_AttributeStringArray::typeId()) { + AttributeStringArrayPtr anAttr = + std::dynamic_pointer_cast(theAttr); + for(int a = 0; a < anAttr->size(); a++) + aResult<<"'"<value(a)<<"'"<<" "; + } else if (aType == ModelAPI_AttributeTables::typeId()) { + AttributeTablesPtr anAttr = + std::dynamic_pointer_cast(theAttr); + aResult<tables()<<"x"<rows()<<"x"<columns()<<" "; + for(int aTab = 0; aTab < anAttr->tables(); aTab++) { + for(int aRow = 0; aRow < anAttr->rows(); aRow++) { + for( int aCol = 0; aCol < anAttr->columns(); aCol++) { + switch(anAttr->type()) { + case ModelAPI_AttributeTables::BOOLEAN: + aResult<value(aRow, aCol, aTab).myBool<<" "; + break; + case ModelAPI_AttributeTables::INTEGER: + aResult<value(aRow, aCol, aTab).myInt<<" "; + break; + case ModelAPI_AttributeTables::DOUBLE: + aResult<value(aRow, aCol, aTab).myDouble<<" "; + break; + case ModelAPI_AttributeTables::STRING: + aResult<<"'"<value(aRow, aCol, aTab).myStr.c_str()<<"' "; + break; + } + } + } + } } else if (aType == GeomDataAPI_Point::typeId()) { AttributePointPtr anAttr = std::dynamic_pointer_cast(theAttr); double aValues[3] = {anAttr->x(), anAttr->y(), anAttr->z()}; @@ -310,7 +359,7 @@ std::string ModelHighAPI_FeatureStore::dumpShape(std::shared_ptr& std::shared_ptr aCenter = GeomAlgoAPI_ShapeTools::centreOfMass(theShape); aResult<<"Center of mass: "; double aCenterVals[3] = {aCenter->x(), aCenter->y(), aCenter->z()}; - dumpArray(aResult, aCenterVals, 3); + dumpArray(aResult, aCenterVals, 3, 5); aResult<