class _pySubMesh;
class _pyHypothesis;
class _pyAlgorithm;
-class _pyFilterManager;
DEFINE_STANDARD_HANDLE (_pyCommand ,Standard_Transient);
DEFINE_STANDARD_HANDLE (_pyObject ,Standard_Transient);
DEFINE_STANDARD_HANDLE (_pySubMesh ,_pyObject);
DEFINE_STANDARD_HANDLE (_pyMeshEditor,_pyObject);
DEFINE_STANDARD_HANDLE (_pyHypothesis,_pyObject);
-DEFINE_STANDARD_HANDLE (_pyFilterManager,_pyObject);
DEFINE_STANDARD_HANDLE (_pyAlgorithm ,_pyHypothesis);
typedef TCollection_AsciiString _pyID;
{
Handle(_pyCommand) myCreationCmd;
int myNbCalls;
+ bool myIsRemoved, myIsProtected;
+ std::list< Handle(_pyCommand) > myProcessedCmds;
public:
- _pyObject(const Handle(_pyCommand)& theCreationCmd)
- : myCreationCmd(theCreationCmd), myNbCalls(0) {}
+ _pyObject(const Handle(_pyCommand)& theCreationCmd);
const _pyID& GetID() { return myCreationCmd->GetResultValue(); }
static _pyID FatherID(const _pyID & childID);
const Handle(_pyCommand)& GetCreationCmd() { return myCreationCmd; }
int GetNbCalls() const { return myNbCalls; }
+ bool IsRemovedFromStudy() const { return myIsRemoved; }
void SetCreationCmd( Handle(_pyCommand) cmd ) { myCreationCmd = cmd; }
int GetCommandNb() { return myCreationCmd->GetOrderNb(); }
+ void AddProcessedCmd( const Handle(_pyCommand) & cmd )
+ { if ( !cmd.IsNull() ) myProcessedCmds.push_back( cmd ); }
virtual void Process(const Handle(_pyCommand) & theCommand) { myNbCalls++; }
virtual void Flush() = 0;
virtual const char* AccessorMethod() const;
public:
_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
Resource_DataMapOfAsciiStringAsciiString& theObjectNames);
- //~_pyGen();
Handle(_pyCommand) AddCommand( const TCollection_AsciiString& theCommand );
void Process( const Handle(_pyCommand)& theCommand );
void Flush();
bool AddAlgoAccessorMethod( Handle(_pyCommand) theCmd ) const;
const char* AccessorMethod() const;
_pyID GenerateNewID( const _pyID& theID );
+ void AddObject( Handle(_pyObject)& theObj );
+ Handle(_pyObject) FindObject( const _pyID& theObjID ) const;
+ bool IsDead(const _pyID& theObjID) const;
private:
void setNeighbourCommand( Handle(_pyCommand)& theCmd,
private:
std::map< _pyID, Handle(_pyMesh) > myMeshes;
- //std::map< _pyID, Handle(_pySubMesh) > mySubMeshes;
std::map< _pyID, Handle(_pyMeshEditor) > myMeshEditors;
std::map< _pyID, Handle(_pyObject) > myObjects;
std::list< Handle(_pyHypothesis) > myHypos;
Resource_DataMapOfAsciiStringAsciiString& myID2AccessorMethod;
Resource_DataMapOfAsciiStringAsciiString& myObjectNames;
Handle(_pyCommand) myLastCommand;
+ int myNbFilters;
DEFINE_STANDARD_RTTI (_pyGen)
};
class _pyMesh: public _pyObject
{
std::list< Handle(_pyHypothesis) > myHypos;
- std::list< Handle(_pyCommand) > myAddHypCmds;
- std::list< Handle(_pySubMesh) > mySubmeshes;
- bool myHasEditor;
+ std::list< Handle(_pyCommand) > myAddHypCmds;
+ std::list< Handle(_pySubMesh) > mySubmeshes;
+ bool myHasEditor;
public:
_pyMesh(const Handle(_pyCommand) creationCmd);
_pyMesh(const Handle(_pyCommand) theCreationCmd, const TCollection_AsciiString & id);
static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
{ theCommand->SetObject( theCommand->GetObject() + "." _pyMesh_ACCESS_METHOD ); }
- //friend class _pyMeshEditor;
DEFINE_STANDARD_RTTI (_pyMesh)
};
#undef _pyMesh_ACCESS_METHOD
_pyID myGeom, myMesh;
// a hypothesis can be used and created by different algos by different methods
std::map<TCollection_AsciiString, TCollection_AsciiString > myType2CreationMethod;
- //TCollection_AsciiString myCreationMethod, myType;
TColStd_SequenceOfAsciiString myArgs; // creation arguments
TColStd_SequenceOfAsciiString myArgMethods; // hypo methods setting myArgs
TColStd_SequenceOfInteger myNbArgsByMethod; // nb args set by each method
- std::list<Handle(_pyCommand)> myArgCommands;
- std::list<Handle(_pyCommand)> myUnknownCommands;
+ std::list<Handle(_pyCommand)> myArgCommands;
+ std::list<Handle(_pyCommand)> myUnknownCommands;
public:
_pyHypothesis(const Handle(_pyCommand)& theCreationCmd);
void SetConvMethodAndType(const char* creationMethod, const char* type)
{ return myType2CreationMethod.find( algoType ) != myType2CreationMethod.end(); }
const TCollection_AsciiString& GetCreationMethod(const TCollection_AsciiString& algoType) const
{ return myType2CreationMethod.find( algoType )->second; }
- virtual bool IsWrappable(const _pyID& theMesh) { return !myIsWrapped && myMesh == theMesh; }
+ virtual bool IsWrappable(const _pyID& theMesh) const;
virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
const _pyID& theMesh);
static Handle(_pyHypothesis) NewHypothesis( const Handle(_pyCommand)& theCreationCmd);
private:
Handle(_pyObject) myCreator;
};
+// -------------------------------------------------------------------------------------
+/*!
+ * \brief To convert creation of a group by filter
+ */
+// -------------------------------------------------------------------------------------
+class _pyGroup: public _pyObject
+{
+public:
+ _pyGroup(const Handle(_pyCommand)& theCreationCmd):_pyObject(theCreationCmd) {}
+ void Process( const Handle(_pyCommand)& theCommand);
+ virtual void Flush() {}
+
+ DEFINE_STANDARD_RTTI (_pyGroup)
+};
+DEFINE_STANDARD_HANDLE (_pyGroup, _pyObject);
+
+// -------------------------------------------------------------------------------------
+/*!
+ * \brief A filter sets a human readable name to self
+ */
+// -------------------------------------------------------------------------------------
+class _pyFilter: public _pyObject
+{
+ _pyID myNewID;
+public:
+ _pyFilter(const Handle(_pyCommand)& theCreationCmd, const _pyID& newID="");
+ void Process( const Handle(_pyCommand)& theCommand);
+ virtual void Flush();
+ const _pyID& GetNewID() const { return myNewID; }
+
+ DEFINE_STANDARD_RTTI (_pyFilter)
+};
+DEFINE_STANDARD_HANDLE (_pyFilter, _pyObject);
#endif