51 #ifndef ___C_FIB_BRANCH_H__
52 #define ___C_FIB_BRANCH_H__
91 #ifdef FEATURE_FAST_UPDATE
99 #endif //FEATURE_FAST_UPDATE
101 #ifdef FEATURE_SIMPLE_CONSTRUCTOR
110 cFibBranch( list<cFibElement*> liFibUnderObjects = list<cFibElement*>(),
113 #else //FEATURE_SIMPLE_CONSTRUCTOR
129 list<cFibElement*> liFibUnderObjects = list<cFibElement*>() );
131 #endif //FEATURE_SIMPLE_CONSTRUCTOR
156 virtual bool isValidFibElement()
const;
159 #ifdef FEATURE_FAST_UPDATE
178 virtual cFibElement *getNextFibElement(
char cType );
191 bool bAbsolute=
false )
const;
206 bool bAbsolute=
false )
const;
222 virtual bool isUsedVariable(
const cFibVariable *variable ,
255 virtual bool replaceVariable(
cFibVariable *variableOld,
258 #ifdef FEATURE_FAST_UPDATE
273 virtual unsignedIntFib getNumberOfElement(
bool bOfType=
false )
const;
284 #endif //FEATURE_FAST_UPDATE
297 virtual unsignedIntFib getNumberOfElements(
char cType=
'u' )
const;
331 uiObjectPoint,
bool bAbsolute=
false )
const;
355 virtual bool insertElement(
cFibElement * pFibElement,
const char cType=
'u',
357 bool bCheckVariables=
true );
381 virtual bool insertObjectInElement(
cFibElement *fibObject,
const char cType=
'u',
383 bool bAbsolute=
false );
406 virtual bool overwriteObjectWithObject(
cFibElement *fibObject,
const char cType=
'u',
408 bool bAbsolute=
false );
425 bool bDeleteOld=
true,
bool bAbsolute=
false );
434 virtual bool hasUnderAllObjects( )
const;
455 virtual bool isRemovableElement(
const char cType=
'u',
const unsignedIntFib
456 elementPoint=0,
bool bAbsolute=
false,
bool bCheckVariables=
true )
const;
478 elementPoint=0,
bool bAbsolute=
false,
bool bCheckVariables=
true );
480 #ifdef FEATURE_FAST_UPDATE
486 virtual void deleteObject();
487 #endif //FEATURE_FAST_UPDATE
516 elementPoint=0,
const intFib iHowfar=1,
bool bAbsolute=
false );
519 #ifndef FEATURE_EQUAL_FIB_OBJECT
532 virtual bool equal(
const cFibElement & fibObject )
const;
534 #endif //FEATURE_EQUAL_FIB_OBJECT
540 bool isBranch()
const;
543 #ifdef FEATURE_FAST_UPDATE
572 void updateAllCounters(
579 void updateAllCounters();
596 const char cType )
const;
674 char cType,
longFib lNumber )
const;
676 #endif //FEATURE_FAST_UPDATE
678 #ifndef FEATURE_NO_REGISTER_NEW_FIB_
692 virtual bool registerNewFibElement(
cFibElement *newFibElement,
711 virtual bool registerNewFibObject(
cFibElement *newFibObject,
714 #endif //FEATURE_NO_REGISTER_NEW_FIB_
717 #ifdef FEATURE_FAST_UPDATE
725 virtual void cutConnectionsTo(
const cFibElement * pFibElement );
758 virtual list<unsignedIntFib> elementPointToObjectPointsUp(
762 #else //FEATURE_FAST_UPDATE
826 virtual list<unsignedIntFib> elementPointToObjectPoints(
830 #endif //FEATURE_FAST_UPDATE
861 virtual list<cFibElement*> getAllFibElementsFromPosition(
char cType,
879 virtual bool isDefinedVariableInternal(
const cFibVariable * pVariable,
881 const cFibElement * pCallingFibElement = NULL )
const;
899 virtual list< cFibVariable* > getDefinedVariablesInternal(
903 #ifdef FEATURE_EQUAL_FIB_OBJECT
933 virtual bool equalInternal(
const cFibElement & fibObject,
934 map< const cRoot *, const cRoot * > & mapEqualRootObjects,
935 map< const cFibElement *, const cFibElement * > & mapEqualDefinedVariables,
936 const bool bCheckExternalObjects )
const;
938 #endif //FEATURE_EQUAL_FIB_OBJECT