X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM%2FGEOM_Engine.hxx;h=52830ac6c79f6ea34403cba4693a659b1a56a692;hb=d617faae6bc5aeb91b63796618a20c7c13037b6c;hp=a9951b26c7eac4099225e375910985838e7be435;hpb=392885c1a8d50369708bbe5e6b44033ed8b8ba51;p=modules%2Fgeom.git diff --git a/src/GEOM/GEOM_Engine.hxx b/src/GEOM/GEOM_Engine.hxx index a9951b26c..52830ac6c 100644 --- a/src/GEOM/GEOM_Engine.hxx +++ b/src/GEOM/GEOM_Engine.hxx @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2023 CEA, EDF, 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 // + #ifndef _GEOM_Engine_HXX_ #define _GEOM_Engine_HXX_ @@ -26,15 +27,32 @@ #include "GEOM_Object.hxx" #include "GEOM_DataMapOfAsciiStringTransient.hxx" -#include +#include + #include #include #include +#include #include +#include #include #include +#include #include +#include + +/*! + * \brief Data of GEOM_Object + */ +struct TObjectData +{ + TCollection_AsciiString _entry; + TCollection_AsciiString _studyEntry; + TCollection_AsciiString _name; + TCollection_AsciiString _pyName; + bool _unpublished; +}; struct TVariable{ TCollection_AsciiString myVariable; @@ -51,13 +69,13 @@ typedef std::vector TAllStates; class ObjectStates { public: - ObjectStates(); + Standard_EXPORT ObjectStates(); ~ObjectStates(); TAllStates GetAllStates() const { return _states; } TState GetCurrectState() const; - void AddState(const TState &theState); + Standard_EXPORT void AddState(const TState &theState); void IncrementState(); private: @@ -67,79 +85,99 @@ private: typedef std::map TVariablesList; +typedef std::map > TFreeLabelsList; + class GEOM_Engine { - public: +public: Standard_EXPORT GEOM_Engine(); Standard_EXPORT virtual ~GEOM_Engine(); - //Retuns the engine + //Returns the engine Standard_EXPORT static GEOM_Engine* GetEngine(); //Returns the OCAF document by its ID, if document doesn't exists it will be created - Standard_EXPORT Handle(TDocStd_Document) GetDocument(int theDocID); - - //Returns the ID of the given OCAF document - Standard_EXPORT int GetDocID(Handle(TDocStd_Document) theDocument); + Standard_EXPORT Handle(TDocStd_Document) GetDocument(bool force=true); - //Returns the OCAF appliaction + //Returns the OCAF application Standard_EXPORT Handle(TDocStd_Application) GetApplication() { return _OCAFApp; } - //Returns a pointer to GEOM_Object defined by a document and the entry - Standard_EXPORT Handle(GEOM_Object) GetObject(int theDocID, char* theEntry); - + //Returns a pointer to GEOM_BaseObject defined by a document and the entry + Standard_EXPORT Handle(GEOM_BaseObject) GetObject(const char* theEntry, + bool force=true); + //Adds a new object of the type theType in the OCAF document - Standard_EXPORT Handle(GEOM_Object) AddObject(int theDocID, int theType); + Standard_EXPORT Handle(GEOM_BaseObject) AddBaseObject(int theType); + + //Adds a new object of the type theType in the OCAF document + Standard_EXPORT Handle(GEOM_Object) AddObject(int theType); //Removes the object from the OCAF document - Standard_EXPORT bool RemoveObject(Handle(GEOM_Object) theObject); + Standard_EXPORT bool RemoveObject(Handle(GEOM_BaseObject)& theObject); - //Saves the OCAF document with ID = theDocID with file with name theFileName - Standard_EXPORT bool Save(int theDocID, char* theFileName); + //Saves the OCAF document with file with name theFileName + Standard_EXPORT bool Save(const char* theFileName); - //Loads the OCAF document into the application and assigns to it an ID = theDocID - Standard_EXPORT bool Load(int theDocID, char* theFileName); + //Loads the OCAF document into the application + Standard_EXPORT bool Load(const char* theFileName); - //Closes the document with ID = theDocID - Standard_EXPORT void Close(int theDocID); + //Closes the document + Standard_EXPORT void Close(); //Sets the number of Undos (default value = 10) Standard_EXPORT void SetUndoLimit(int theLimit) { _UndoLimit = theLimit; } - //Applies an Undo to document with ID = theDocID - Standard_EXPORT void Undo(int theDocID); + //Applies an Undo to document + Standard_EXPORT void Undo(); - //Applies an Redo to document with ID = theDocID - Standard_EXPORT void Redo(int theDocID); + //Applies an Redo to document + Standard_EXPORT void Redo(); - //Adds a new sub shape object of the MainShape object + //Adds a new sub-shape object of the MainShape object Standard_EXPORT Handle(GEOM_Object) AddSubShape(Handle(GEOM_Object) theMainShape, - Handle(TColStd_HArray1OfInteger) theIndices, - bool isStandaloneOperation = false); + Handle(TColStd_HArray1OfInteger) theIndices, + bool isStandaloneOperation = false); - Standard_EXPORT TCollection_AsciiString DumpPython(int theDocID, - Resource_DataMapOfAsciiStringAsciiString& theObjectNames, - TVariablesList theVariables, - bool isPublished, - bool& aValidScript); + Standard_EXPORT TCollection_AsciiString DumpPython(std::vector& theObjectData, + TVariablesList theVariables, + bool isPublished, + bool isMultiFile, + bool& aValidScript); Standard_EXPORT const char* GetDumpName (const char* theStudyEntry) const; Standard_EXPORT Handle(TColStd_HSequenceOfAsciiString) GetAllDumpNames() const; - protected: + Standard_EXPORT int addTexture(int theWidth, int theHeight, + const Handle(TColStd_HArray1OfByte)& theTexture, + const TCollection_AsciiString& theFileName = ""); + + Standard_EXPORT Handle(TColStd_HArray1OfByte) getTexture(int theTextureID, + int& theWidth, int& theHeight, + TCollection_AsciiString& theFileName); + + Standard_EXPORT std::list getAllTextures(); + + static const Standard_GUID& GetTextureGUID(); + + Standard_EXPORT void healPyName( TCollection_AsciiString& pyName, + const TCollection_AsciiString& anEntry, + Resource_DataMapOfAsciiStringAsciiString& aNameToEntry); + +protected: Standard_EXPORT static void SetEngine(GEOM_Engine* theEngine); - private: +private: Handle(GEOM_Application) _OCAFApp; - Interface_DataMapOfIntegerTransient _mapIDDocument; + Handle(TDocStd_Document) _document; + int _UndoLimit; GEOM_DataMapOfAsciiStringTransient _objects; Resource_DataMapOfAsciiStringAsciiString _studyEntry2NameMap; - TDF_Label _lastCleared; + std::list _freeLabels; }; #endif