X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM%2FGEOM_Function.hxx;h=a9633386d89d7c2c241612930f2e295def030dc4;hb=08a90cb03f6d2befe6f0b923bd690182ded48378;hp=f5b21c02df394902f2c0550908196280bf551be2;hpb=732211808796539fcf1de34e06038e7fb015ece9;p=modules%2Fgeom.git diff --git a/src/GEOM/GEOM_Function.hxx b/src/GEOM/GEOM_Function.hxx index f5b21c02d..a9633386d 100644 --- a/src/GEOM/GEOM_Function.hxx +++ b/src/GEOM/GEOM_Function.hxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2012 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 +// +// 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 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 +// #ifndef _GEOM_Function_HeaderFile #define _GEOM_Function_HeaderFile @@ -13,10 +34,10 @@ #endif #ifndef _Handle_MMgt_TShared_HeaderFile #include -#endif +#endif #ifndef _MMgt_TShared_HeaderFile #include -#endif +#endif #ifndef _Standard_GUID_HeaderFile #include #endif @@ -44,31 +65,31 @@ class Handle(MMgt_TShared); class GEOM_Function; #include - +#include Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_Function); class Handle(GEOM_Function) : public Handle(MMgt_TShared) { public: - inline void* operator new(size_t,void* anAddress) + inline void* operator new(size_t,void* anAddress) { return anAddress; } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); + inline void* operator new(size_t size) + { + return Standard::Allocate(size); } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); } - Handle(GEOM_Function)():Handle(MMgt_TShared)() {} - Handle(GEOM_Function)(const Handle(GEOM_Function)& aHandle) : Handle(MMgt_TShared)(aHandle) + Handle(GEOM_Function)():Handle(MMgt_TShared)() {} + Handle(GEOM_Function)(const Handle(GEOM_Function)& aHandle) : Handle(MMgt_TShared)(aHandle) { } - Handle(GEOM_Function)(const GEOM_Function* anItem) : Handle(MMgt_TShared)((MMgt_TShared *)anItem) + Handle(GEOM_Function)(const GEOM_Function* anItem) : Handle(MMgt_TShared)((MMgt_TShared *)anItem) { } @@ -84,18 +105,18 @@ class Handle(GEOM_Function) : public Handle(MMgt_TShared) { return *this; } - GEOM_Function* operator->() + GEOM_Function* operator->() { return (GEOM_Function *)ControlAccess(); } - GEOM_Function* operator->() const + GEOM_Function* operator->() const { return (GEOM_Function *)ControlAccess(); } Standard_EXPORT ~Handle(GEOM_Function)() {}; - + Standard_EXPORT static const Handle(GEOM_Function) DownCast(const Handle(Standard_Transient)& AnObject); }; @@ -104,24 +125,26 @@ class GEOM_Function : public MMgt_TShared public: - inline void* operator new(size_t,void* anAddress) + inline void* operator new(size_t,void* anAddress) { return anAddress; } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); + inline void* operator new(size_t size) + { + return Standard::Allocate(size); } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); } // Type management // Standard_EXPORT friend Handle_Standard_Type& GEOM_Function_Type_(); - Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOM_Function) ; } - Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOM_Function) == AType || MMgt_TShared::IsKind(AType)); } + Standard_EXPORT const Handle(Standard_Type)& DynamicType() const + { return STANDARD_TYPE(GEOM_Function) ; } + Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const + { return (STANDARD_TYPE(GEOM_Function) == AType || MMgt_TShared::IsKind(AType)); } private: @@ -129,123 +152,134 @@ private: public: - //Returns a GUID for a function tree - static const Standard_GUID& GetFunctionTreeID(); + //Returns a GUID for a function tree + Standard_EXPORT static const Standard_GUID& GetFunctionTreeID(); - //Returns the ID which is associated with a reference to another function - static const Standard_GUID& GetDependencyID(); + //Returns the ID which is associated with a reference to another function + Standard_EXPORT static const Standard_GUID& GetDependencyID(); //Finds and returns a function located on a label theEntry - static Handle(GEOM_Function) GetFunction(const TDF_Label& theEntry); + Standard_EXPORT static Handle(GEOM_Function) GetFunction(const TDF_Label& theEntry); - GEOM_Function(const TDF_Label& theEntry, const Standard_GUID& theGUID, int theType); - ~GEOM_Function() {;} + Standard_EXPORT GEOM_Function(const TDF_Label& theEntry, const Standard_GUID& theGUID, int theType); + Standard_EXPORT ~GEOM_Function() {;} - TDF_Label GetOwnerEntry(); + Standard_EXPORT TDF_Label GetOwnerEntry(); - //Access to properties + //Access to properties //Returns a result of the function built by the function Driver - TopoDS_Shape GetValue(); + Standard_EXPORT TopoDS_Shape GetValue(); //Sets the function result - void SetValue(TopoDS_Shape& theShape); + Standard_EXPORT void SetValue(TopoDS_Shape& theShape); //Returns a function entry in the OCAF document - TDF_Label& GetEntry() { return _label; } + Standard_EXPORT TDF_Label& GetEntry() { return _label; } //Returns the type of the function - int GetType(); + Standard_EXPORT int GetType(); //Returns a function Driver GUID - Standard_GUID GetDriverGUID(); + Standard_EXPORT Standard_GUID GetDriverGUID(); //Returns aPython description of the function - TCollection_AsciiString GetDescription(); + Standard_EXPORT TCollection_AsciiString GetDescription(); - //Sets aPython description of the function - void SetDescription(const TCollection_AsciiString& theDescription); + //Sets aPython description of the function + Standard_EXPORT void SetDescription(const TCollection_AsciiString& theDescription); //Access to arguments //Sets a real argument at position thePosition - void SetReal(int thePosition, double theValue); + Standard_EXPORT void SetReal(int thePosition, double theValue); //Returns a real argument at position thePosition - double GetReal(int thePosition); + Standard_EXPORT double GetReal(int thePosition); //Sets a real array argument at position thePosition - void SetRealArray(int thePosition, const Handle(TColStd_HArray1OfReal)& theArray); + Standard_EXPORT void SetRealArray(int thePosition, const Handle(TColStd_HArray1OfReal)& theArray); //Returns a real array argument at position thePosition - Handle(TColStd_HArray1OfReal) GetRealArray(int thePosition); + Standard_EXPORT Handle(TColStd_HArray1OfReal) GetRealArray(int thePosition); //Sets an integer argument at position thePosition - void SetInteger(int thePosition, int theValue); + Standard_EXPORT void SetInteger(int thePosition, int theValue); //Returns an integer argument at position thePosition - int GetInteger(int thePosition); - + Standard_EXPORT int GetInteger(int thePosition); + //Sets an integer array argument at position thePosition - void SetIntegerArray(int thePosition, const Handle(TColStd_HArray1OfInteger)& theArray); + Standard_EXPORT void SetIntegerArray(int thePosition, const Handle(TColStd_HArray1OfInteger)& theArray); //Returns an integer array argument at position thePosition - Handle(TColStd_HArray1OfInteger) GetIntegerArray(int thePosition); + Standard_EXPORT Handle(TColStd_HArray1OfInteger) GetIntegerArray(int thePosition); //Sets a reference to other function argument at position thePosition - void SetReference(int thePosition, Handle(GEOM_Function) theReference); + Standard_EXPORT void SetReference(int thePosition, Handle(GEOM_Function) theReference); //Sets a string argument at position thePosition - void SetString(int thePosition, const TCollection_AsciiString& theValue); + Standard_EXPORT void SetString(int thePosition, const TCollection_AsciiString& theValue); //Returns a string argument at position thePosition - TCollection_AsciiString GetString(int thePosition); - + Standard_EXPORT TCollection_AsciiString GetString(int thePosition); + //Returns a reference to other function argument at position thePosition - Handle(GEOM_Function) GetReference(int thePosition); + Standard_EXPORT Handle(GEOM_Function) GetReference(int thePosition); //Set an array of ExtendedString - void SetStringArray(int thePosition, const Handle(TColStd_HArray1OfExtendedString)& theArray); - + Standard_EXPORT void SetStringArray(int thePosition, const Handle(TColStd_HArray1OfExtendedString)& theArray); + //Returns the array of ExtendedString - Handle(TColStd_HArray1OfExtendedString) GetStringArray(int thePosition); + Standard_EXPORT Handle(TColStd_HArray1OfExtendedString) GetStringArray(int thePosition); - //Returns a GUID for a references tree - static const Standard_GUID& GetReferencesTreeID(); + //Returns a GUID for a references tree + Standard_EXPORT static const Standard_GUID& GetReferencesTreeID(); //Sets a list of references to other function arguments at position thePosition - void SetReferenceList (int thePosition, + Standard_EXPORT void SetReferenceList (int thePosition, const Handle(TColStd_HSequenceOfTransient)& theRefList); //Returns a list of references to other function arguments at position thePosition - Handle(TColStd_HSequenceOfTransient) GetReferenceList (int thePosition); + Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetReferenceList (int thePosition); //Sets a TopoDS_Shape argument at position thePosition //void SetShape(int thePosition, const TopoDS_Shape& theShape); - + //Returns a TopoDS_Shape argument at position thePosition - //TopoDS_Shape GetShape(int thePosition); - - //Returns true if the last method succided - bool IsDone() { return _isDone; } + //TopoDS_Shape GetShape(int thePosition); + + //Returns true if the last method succided + Standard_EXPORT bool IsDone() { return _isDone; } + + //Retuns true if this function is the last one in the study + Standard_EXPORT bool IsLastFuntion(); //Returns a sequence of the external dependencies of this function - void GetDependency(TDF_LabelSequence& theSeq); + Standard_EXPORT void GetDependency(TDF_LabelSequence& theSeq); + + // Add/Remove/Check/Get subshape references + Standard_EXPORT void AddSubShapeReference (Handle(GEOM_Function) theSubShape); + Standard_EXPORT void RemoveSubShapeReference(Handle(GEOM_Function) theSubShape); + Standard_EXPORT bool HasSubShapeReferences(); + Standard_EXPORT const TDataStd_ListOfExtendedString& GetSubShapeReferences(); //Returns top label of this function's history tree - TDF_Label GetHistoryEntry (const Standard_Boolean create = Standard_True); + Standard_EXPORT TDF_Label GetHistoryEntry (const Standard_Boolean create = Standard_True); //Returns history label, corresponding to the label, //on which a reference on argument is stored - TDF_Label GetArgumentHistoryEntry (const TDF_Label& theArgumentRefEntry, - const Standard_Boolean create = Standard_True); + Standard_EXPORT TDF_Label GetArgumentHistoryEntry (const TDF_Label& theArgumentRefEntry, + const Standard_Boolean create = Standard_True); + + //Returns top label of this function's naming tree + Standard_EXPORT TDF_Label GetNamingEntry (const Standard_Boolean create = Standard_True); private: - - TDF_Label _label; - bool _isDone; + TDF_Label _label; + bool _isDone; }; #endif