- // 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;
+ struct CreationMethod {
+ _AString myMethod; // method of algo or mesh creating a hyp
+ // myArgNb(i)-th arg of myArgMethods(i) of hyp becomes an i-th arg of myAlgoMethod
+ std::vector<_AString> myArgMethods;
+ std::vector<int> myArgNb; // arg nb countered from 1
+ std::vector<_AString> myArgs; // creation arguments
+ };
+ void setCreationArg( const int argNb, const _AString& arg );
+ // a hypothesis can be created by different algos by different methods
+ typedef std::map<_AString, CreationMethod > TType2CrMethod;
+ TType2CrMethod myAlgoType2CreationMethod;
+ CreationMethod* myCurCrMethod; // used for adding to myAlgoType2CreationMethod
+ std::list<Handle(_pyCommand)> myArgCommands;
+ std::list<Handle(_pyCommand)> myUnusedCommands;
+ std::list<Handle(_pyObject) > myReferredObjs;
+ // maps used to clear commands setting parameters if result of setting is
+ // discared (e.g. by mesh.Clear())
+ std::map<_AString, std::list<Handle(_pyCommand)> > myMeth2Commands;
+ std::map< _pyCommand::TAddr, std::list<Handle(_pyCommand) > > myComputeAddr2Cmds;
+ std::list<Handle(_pyCommand) > myComputeCmds;
+ void rememberCmdOfParameter( const Handle(_pyCommand) & cmd );
+ bool isCmdUsedForCompute( const Handle(_pyCommand) & cmd,
+ _pyCommand::TAddr avoidComputeAddr=NULL ) const;