The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
|
#include <cFibMatrix.h>
Public Member Functions | |
cFibMatrix (unsignedIntFib iuNumberOfDimensions, const unsignedIntFib iuNumberOfVectorElements, cFibElement *pInSubobject=NULL, cFibElement *pInSuperiorElement=NULL) | |
cFibMatrix (const cFibMatrix &matrixElement) | |
virtual | ~cFibMatrix () |
virtual char | getType () const |
virtual bool | isValidFibElement () const |
virtual bool | evalueObject (iEvaluePosition &evaluePosition, const unsignedIntFib objectPoint, list< cVectorProperty > &liVecProperties) const |
virtual bool | evalueObject (iEvalueFibElement &evalueFibElement, const unsignedIntFib objectPoint, list< cVectorProperty > &liVecProperties, const list< char > &liCFibElementTyps) |
virtual unsignedLongFib | getTimeNeed (unsignedLongFib lMaxTime=0) const |
virtual unsignedLongFib | getCompressedSize () const |
virtual bool | isUsedVariable (const cFibVariable *variable, edDirection direction=ED_POSITION) const |
virtual set< cFibVariable * > | getUsedVariables (edDirection direction=ED_POSITION) |
virtual bool | replaceVariable (cFibVariable *pVariableOld, cFibVariable *pVariableNew) |
virtual cFibElement * | copyElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false) const |
virtual bool | storeXml (ostream &stream) const |
unsignedIntFib | getNumberOfMatrixDimensions () const |
unsignedIntFib | getNumberOfVectorElements () const |
cFibVariable * | getDefinedVariable (const unsignedLongFib uiPosition) |
unsignedIntFib | getDomainNr () const |
void | setDomainNr (const unsignedLongFib uiInDomainNumber) |
cVectorArea * | getArea (const unsignedIntFib uiDimension=1) |
unsignedLongFib | getNumberOfVectors () const |
const vector< cVectorFibMatrix > | getVectors () |
bool | setVectors (const vector< cVectorFibMatrix > &vecMatrixVectors) |
cVectorFibMatrix * | getVector (const unsignedLongFib uiPosition) |
bool | setVector (const cVectorFibMatrix &vecMatrixVector, const unsignedLongFib uiPosition) |
bool | addVector (const cVectorFibMatrix &vecMatrixVector, const unsignedLongFib uiPosition=0) |
bool | deleteVector (const unsignedLongFib uiPosition) |
Public Member Functions inherited from fib::cFibLimb | |
virtual | ~cFibLimb () |
virtual unsignedIntFib | getNumberOfElements (char cType='u') const |
virtual unsignedIntFib | getNumberOfMovePoints () const |
virtual unsignedIntFib | getNumberOfObjectPoints () const |
virtual unsignedIntFib | objectPointToElementPoint (const unsignedIntFib uiObjectPoint, bool bAbsolute=false) const |
virtual bool | insertElement (cFibElement *fibElement, const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
virtual bool | insertObjectInElement (cFibElement *fibObject, const char cType='u', const unsignedIntFib elementPoint=0, bool first=true, bool bAbsolute=false) |
virtual bool | overwriteObjectWithObject (cFibElement *fibObject, const char cType='u', const unsignedIntFib elementPoint=0, bool bDeleteOld=true, bool bAbsolute=false) |
virtual bool | removeObject (const unsignedIntFib objectPoint, bool bDeleteOld=true, bool bAbsolute=false) |
virtual bool | hasUnderAllObjects () const |
virtual cFibElement * | cutElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
virtual bool | isMovable () const |
virtual intFib | moveLimbElement (const char cType='u', const unsignedIntFib elementPoint=0, const intFib iHowfar=1, bool bAbsolute=false) |
virtual bool | equal (const cFibElement &fibObject) const |
virtual bool | isLimb () const |
Public Member Functions inherited from fib::cFibElement | |
virtual | ~cFibElement () |
virtual cFibElement * | getSuperiorFibElement () |
virtual cFibElement * | getNextFibElement () |
virtual cFibElement * | getNextFibElement (char cType) |
virtual cFibElement * | getConstFibElement (longFib lNumber, bool bAbsolute=false) const |
virtual cFibElement * | getConstFibElement (char cType, longFib lNumber, bool bAbsolute=false) const |
cFibElement * | getFibElement (longFib lNumber, bool bAbsolute=false) |
cFibElement * | getFibElement (char cType, longFib lNumber, bool bAbsolute=false) |
list< cFibElement * > | getAllFibElements (char cTypeBasis='u', longFib lNumber=1, char cType='u', edDirection direction=ED_ALL, unsignedLongFib lNumberOfMaxReturnedElements=0, bool bAbsolute=false) |
bool | evalueObjectSimple (iEvaluePosition &evaluePosition, const unsignedIntFib objectPoint=0) const |
bool | evalueObjectSimple (iEvalueFibElement &evalueFibElement, const unsignedIntFib objectPoint=0, const list< char > liCFibElementTyps=list< char >()) |
virtual bool | isDefinedVariable (const cFibVariable *variable, edDirection direction=ED_POSITION) const |
virtual list< cFibVariable * > | getDefinedVariables (edDirection direction=ED_HIGHER) |
bool | variablesAreDefined (const set< cFibVariable * > &setVariable, edDirection direction=ED_HIGHER) const |
virtual unsignedIntFib | getNumberOfElement (bool bOfType=false) const |
virtual unsignedIntFib | getNumberOfMovePoint () const |
virtual unsignedIntFib | getNumberOfObjectPoint () const |
virtual unsignedIntFib | typeElementPointToElementPoint (const char cType, const unsignedIntFib elementPoint, bool bAbsolute=false) const |
virtual list< unsignedIntFib > | elementPointToObjectPoints (const char cType, const unsignedIntFib elementPoint, bool bAbsolute=false) const |
virtual list< unsignedIntFib > | getObjectPointsForElement (const cFibElement *pFibElement, bool bAbsolute=false) const |
virtual bool | isRemovableElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) const |
virtual bool | removeElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
virtual cFibElement * | clone () const |
virtual cFibElement * | copy (const unsignedIntFib iObjectPoint=0) const |
virtual bool | equalElement (const cFibElement &fibElement) const =0 |
virtual bool | equalValuesSet (const cFibVariable *variableOwn, const cFibElement &fibElement, const cFibVariable *variable) const |
virtual bool | store (ostream &stream) const |
virtual cRoot * | getSuperiorRootElement () |
virtual const cRoot * | getSuperiorRootElement () const |
virtual list< longFib > | getAllRootObjectIdentifiers () const |
virtual list< longFib > | getAllDatabaseObjectIdentifiers () const |
virtual cRoot * | getRootObject (longFib lIdentifier) |
virtual list< longFib > | getAllAccessibleRootObjectIdentifiers () const |
virtual cRoot * | getAccessibleRootObject (longFib lIdentifier) |
virtual cDomains | getValidDomains () const |
virtual cDomains | getValidValueDomains () const |
virtual unsignedIntFib | getNumberOfDimensions () const |
virtual unsignedIntFib | getDimensionMapping (unsignedIntFib iDimensionNumber) const |
virtual bool | isBranch () const |
virtual bool | isLeaf () const |
Protected Member Functions | |
cFibMatrix (const TiXmlElement *pXmlElement, intFib &outStatus, list< cFibVariable * > &liDefinedVariables) | |
cFibMatrix (cReadBits &iBitStream, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, const cDomains &validDomains, cRoot *pNextRoot) | |
virtual bool | storeBit (ostream &stream, char &cRestBits, unsigned char &uiRestBitPosition) const |
virtual unsignedIntFib | enumerateVariablesForStoring (unsignedIntFib uiLastVariableNumber=0) |
virtual cFibElement * | copyInternal (const unsignedIntFib iObjectPoint=0) const |
virtual bool | isDefinedVariableInternal (const cFibVariable *pVariable, edDirection direction=ED_POSITION, const cFibElement *pCallingFibElement=NULL) const |
virtual list< cFibVariable * > | getDefinedVariablesInternal (edDirection direction=ED_HIGHER, const cFibElement *pCallingFibElement=NULL) |
virtual bool | equalInternal (const cFibElement &fibObject, map< const cRoot *, const cRoot * > &mapEqualRootObjects, map< const cFibElement *, const cFibElement * > &mapEqualDefinedVariables, const bool bCheckExternalObjects) const |
virtual bool | equalElementInternal (const cFibElement &fibElement, map< const cRoot *, const cRoot * > &matrixEqualRootObjects, map< const cFibElement *, const cFibElement * > &mapEqualDefinedVariables, const bool bCheckExternalObjects) const |
virtual bool | equalValuesSetInternal (const cFibVariable *pVariableOwn, const cFibElement &fibElement, const cFibVariable *pVariable, map< const cRoot *, const cRoot * > &matrixEqualRootObjects, map< const cFibElement *, const cFibElement * > &mapEqualDefinedVariables, const bool bCheckExternalObjects) const |
Protected Member Functions inherited from fib::cFibLimb | |
cFibLimb (cFibElement *pInSuperiorElement=NULL, cFibElement *pInPreviousFibElement=NULL, cFibElement *pInUnderobject=NULL) | |
cFibLimb (const cFibLimb &fibLimbElement) | |
virtual bool | registerNewFibElement (cFibElement *newFibElement, unsignedIntFib uINumberOfFibElement, bool bDirectionUp) |
virtual bool | registerNewFibObject (cFibElement *newFibObject, unsignedIntFib uILowerNumberOfFibElements, unsignedIntFib uIUpperNumberOfFibElements, bool bDirectionUp) |
virtual void | cutConnections (edDirection direction=ED_ALL) |
virtual cFibElement * | updateValues (cFibElement *previosFibElement=NULL, cFibElement *pNextArm=NULL) |
virtual list< cFibElement * > | getAllFibElementsFromPosition (char cType, edDirection direction, unsignedLongFib lNumberOfMaxReturnedElements) |
Protected Member Functions inherited from fib::cFibElement | |
cFibElement (cFibElement *pInSuperiorElement=NULL, cFibElement *pInPreviousFibElement=NULL, cFibElement *pInNextFibElement=NULL) | |
cFibElement (const cFibElement &fibElement) | |
virtual bool | updateAllValues () |
virtual unsignedIntFib | getNumberOfObjectPoint (unsignedIntFib uINumberOfStartFibElement) const |
virtual list< unsignedIntFib > | elementPointToObjectPoints (const cFibElement *referencefibObject, const unsignedIntFib uiLastObjectPoint) const |
intFib | moveLimbElementUp (const char cType= 'u', const unsignedIntFib elementPoint=0, const unsignedIntFib uiHowfar=1, bool bAbsolute=false) |
cFibElement * | getMasterRoot () |
cFibElement * | getMasterRoot () const |
Private Attributes | |
vector< cFibVariable * > | vecVariablesDefined |
vector< cVectorArea * > | vecMatrixDimensionAreas |
list< cVectorFibMatrix > | liFibMatrix |
unsignedIntFib | uiDomainNr |
Friends | |
class | cFibElement |
Additional Inherited Members | |
Protected Attributes inherited from fib::cFibLimb | |
cFibElement * | pUnderObject |
Protected Attributes inherited from fib::cFibElement | |
cFibElement * | pSuperiorElement |
cFibElement * | pPreviousFibElement |
cFibElement * | pNextFibElement |
cRoot * | pNextRootElement |
unsignedIntFib | uINumberOfFibElement |
Definition at line 74 of file cFibMatrix.h.
fib::cFibMatrix::cFibMatrix | ( | unsignedIntFib | iuNumberOfDimensions, |
const unsignedIntFib | iuNumberOfVectorElements, | ||
cFibElement * | pInSubobject = NULL , |
||
cFibElement * | pInSuperiorElement = NULL |
||
) |
parameter constructor
iuNumberOfDimensions | the number of dimension (variables) (minimum is 1) |
iuNumberOfVectorElements | the number of elements in the vectors of the elements of the matrix of this matrix element should have |
pInSubobject | the Fib element which is the subobject of this Fib element (it also stands next in the order of Fib elements) |
pInSuperiorElement | the Fib element in which this matrix element is a subobject |
fib::cFibMatrix::cFibMatrix | ( | const cFibMatrix & | matrixElement | ) |
copyconstructor This copyconstructor constructs a copy of the given matrix element. It dosn't copy other Fib elements than the given, even if ther are in the matrix element.
matrixElement | the matrix element to copy |
|
protected |
The constructor for restoring a matrix object from an TinyXml element.
pXmlNode | a pointer to the TinyXml node wher the Fib object is stored in |
outStatus | An reference to an integervalue where the errorvalue can be stored to. possible errorvalues are:
|
liDefinedVariables | a list with the defined variables for the to restore Fib element, every variable should have it's number (the number under which it is stored) as it's value |
|
protected |
This constructor restores a matrix object from the stream where it is stored in the compressed Fib format. This method is for internal use only.
iBitStream | the stream wher the matrix object is stored in, because this stream is an cReadBits, any number of bits can be readed from it |
outStatus | An reference to an integer value where the error value can be stored to. If the pointer is NULL no error value will be given back. possible error values are:
|
liDefinedVariables | a list with the defined variables for the to restore Fib element, every variable should have it's number (the number under which it is stored) as it's value |
validDomains | the domains valid for restoring the Fib elements |
pNextRoot | the next higher root-element for the to restore Fib elements, or the last restored root-element |
|
virtual |
destructor
bool fib::cFibMatrix::addVector | ( | const cVectorFibMatrix & | vecMatrixVector, |
const unsignedLongFib | uiPosition = 0 |
||
) |
This method adds the given vector to the existing vectors.
vecMatrixVector | a reference to the to add vector |
uiPosition | the position wher the vecMatrix should be added (counting begins with 1); if 0 the vecMatrix or greater than the number of vectors the vector will be added to the end of the vector list |
|
virtual |
This method copies the Fib element on the specified position. Variables which are not defined in the Fib element but used don't change ther reference.
cType | the type of the Fib element to copy |
elementPoint | the number of the Fib element, in the order of Fib elements of the given type cType, to copy |
bAbsolute | if the lNumber is an absolute value for the wool Fib object |
Implements fib::cFibElement.
|
protectedvirtual |
This method copies the connected object with the given number in the order of connected objects. For this every Fib element, beginning from this Fib element, that is part of the connected object will be copied. Variables which are not defined in the connected object but used don't change ther reference. It is an help method for the copy method. It dosn't update the structural information of the created Fib object.
iObjectPoint | the number of the connected object to copy; the standartvalue is 0 for coping the complet actual object |
Implements fib::cFibElement.
bool fib::cFibMatrix::deleteVector | ( | const unsignedLongFib | uiPosition | ) |
This method deletes the uiPosition'th vector from the existing vectors.
uiPosition | the position, wher the vector should be deleted from (counting begins with 1) |
|
protectedvirtual |
This method sets the each variable, which is defined above a leaf, to an uniqe integer number greater than the given number uiLastVariableNumber. While storing this number can be stored to identify the variable.
uiLastVariableNumber | the number which was last use, this means also is the greatest used, in this limb. |
Reimplemented from fib::cFibLimb.
|
protectedvirtual |
This method checks if the given Fib element is equal to this Fib element. The subobjects are not compared, not even ther count is compared. Used variables can be others.
fibElement | the Fib element to which this Fib element should be equal |
mapEqualRootObjects | the root objects of this object that wher already checked as equal map entries: key: the root-element of this Fib object that was checked value: the to the key correspondending root-element of the fibObject that was checked and which is equal to the key root-element (it is empty if bCheckExternalObjects == false) |
mapEqualDefinedVariables | the Fib elements that defines variables and are equal; map entries: key: the Fib element of this Fib object that was checked value: the to the key correspondending Fib element of the fibObject that was checked and which sets its defined variables to the same values as the key Fib element |
bCheckExternalObjects | if true the external objects of cExtObject will be compared |
|
protectedvirtual |
This method checks if the given Fib object is equal to this Fib object. Variables can be others, but must be defined and used in equivalent Fib elements.
fibObject | the Fib object to which this Fib object should be equal |
mapEqualRootObjects | the root objects of this object that wher already checked as equal map entries: key: the root-element of this Fib object that was checked value: the to the key correspondending root-element of the fibObject that was checked and which is equal to the key root-element (it is empty if bCheckExternalObjects == false) |
mapEqualDefinedVariables | the Fib elements that defines variables and are equal; map entries: key: the Fib element of this Fib object that was checked value: the to the key correspondending Fib element of the fibObject that was checked and which sets its defined variables to the same values as the key Fib element |
bCheckExternalObjects | if true the external objects of cExtObject will be compared |
|
protectedvirtual |
This method checks if the given Fib element sets the variable to the same values as this Fib element.
pVariableOwn | a pointer to a defined variable in this Fib element, it is compared to the equivalent variable pVariable in the given Fib element fibElement |
fibElement | the Fib element, to which this Fib element should be compared |
pVariable | a pointer to a defined variable in the other Fib element fibElement |
mapEqualRootObjects | the root objects of this object that wher already checked as equal map entries: key: the root-element of this Fib object that was checked value: the to the key correspondending root-element of the fibObject that was checked and which is equal to the key root-element (it is empty if bCheckExternalObjects == false) |
mapEqualDefinedVariables | the Fib elements that defines variables and are equal; map entries: key: the Fib element of this Fib object that was checked value: the to the key correspondending Fib element of the fibObject that was checked and which sets its defined variables to the same values as the key Fib element |
bCheckExternalObjects | if true the external objects of cExtObject will be compared |
|
virtual |
This method evaluades the Fib object.
evaluePosition | a reference to the object with the evaluePosition() method to evalue /store the positions and ther properties; everytime a point (to evalue) is reached in the evaluation, this method is called with the position and the properties of the point; |
objectPoint | the object point in the order of true part objects to evalue |
liVecProperties | a list with the property vectors which should be global for the evalued object |
Implements fib::cFibElement.
|
virtual |
This method evaluades the Fib object. Evertime a Fib elements, with a type of the given type chars in liCFibElementTyps, is reached while evaluation, it is given back with the properties which it has. Ever point element is given back. The type chars for point elements don't need to be in the list liCFibElementTyps.
evalueFibElement | a reference to the object with the evalueElement() method to evalue /store the Fib elements and ther properties; everytime a Fib element (with one of the type given in liCFibElementTyps) is reached in the evaluation, the method evalueElement() of this objects is called with the Fib element and the properties of the Fib element; |
objectPoint | the object point in the order of true part objects to evalue |
liVecProperties | a list with the property vectors which should be global for the evalued object |
liCFibElementTyps | a list with the type chars ( |
Implements fib::cFibElement.
cVectorArea* fib::cFibMatrix::getArea | ( | const unsignedIntFib | uiDimension = 1 | ) |
This method returns the area for the uiDimension'th dimension.
uiDimension | the dimension for which the area is to be returned (counting begins with 1) |
|
virtual |
This method evaluades the size of the Fib object in bits in the compressed file form.
Implements fib::cFibElement.
cFibVariable* fib::cFibMatrix::getDefinedVariable | ( | const unsignedLongFib | uiPosition | ) |
This method returns a pointer to the uiPosition'th from this matrix element defined variable.
uiPosition | the number of the from this matrix element defined variable to return (counting begins with 1) |
|
protectedvirtual |
This method returns all variables defined in the given direction from this Fib element. This is for intern use to get the correct data from getDefinedVariables() without pCallingFibElement.
direction | the direction from this Fib element, in which the variable should be used; default value is ED_POSITION so yust this Fib element will be checked |
pCallingFibElement | the Fib element which called this method |
Reimplemented from fib::cFibLimb.
unsignedIntFib fib::cFibMatrix::getDomainNr | ( | ) | const |
unsignedIntFib fib::cFibMatrix::getNumberOfMatrixDimensions | ( | ) | const |
unsignedIntFib fib::cFibMatrix::getNumberOfVectorElements | ( | ) | const |
unsignedLongFib fib::cFibMatrix::getNumberOfVectors | ( | ) | const |
|
virtual |
This method evaluades a value for the time needed to evalue the object. This value should not exceed lMaxTime, if the value for the time is greater than lMaxTime the evaluation will be stopt and lMaxTime returned. If lMaxTime is 0 (for infinity) the evaluation won't be stoped, this is the standard case.
lMaxTime | the maximum time for the evaluation, the returned value will not be greater than this value; the value 0 stands for infinity, so the evaluation won't be stoped |
Implements fib::cFibElement.
|
virtual |
Implements fib::cFibElement.
|
virtual |
This method returns all variables used in the given direction from this Fib element.
direction | the direction from this Fib element, in which the variable should be used; default value is ED_POSITION so yust this Fib element will be checked |
Reimplemented from fib::cFibLimb.
cVectorFibMatrix* fib::cFibMatrix::getVector | ( | const unsignedLongFib | uiPosition | ) |
This method returns a pointer to the uiPosition'th vector of this matrix element.
uiPosition | the number of the vector to return (counting begins with 1) |
const vector< cVectorFibMatrix > fib::cFibMatrix::getVectors | ( | ) |
|
protectedvirtual |
This method checks if the given variable is defined in the given direction from this Fib element. This is for intern use to get the correct data from isDefinedVariable() without pCallingFibElement.
pVariable | the variable to check if it is defined |
direction | the direction from this Fib element, in which the variable should be defined; default value is ED_POSITION so yust this Fib element will be checked |
pCallingFibElement | the Fib element which called this method |
Reimplemented from fib::cFibLimb.
|
virtual |
This method checks if the given variable is used in the given direction from this Fib element.
variable | the variable to check if it is used |
direction | the direction from this Fib element, in which the variable should be used; default value is ED_POSITION so yust this Fib element will be checked |
Reimplemented from fib::cFibLimb.
|
virtual |
This method checks, if this Fib-element is an valid Fib-element.
Reimplemented from fib::cFibLimb.
|
virtual |
This method replace the variable pVariableOld with the variable pVariableNew in the object.
pVariableOld | the variable to replace |
pVariableNew | the variable with which the variable pVariableOld is to be replace |
Reimplemented from fib::cFibLimb.
void fib::cFibMatrix::setDomainNr | ( | const unsignedLongFib | uiInDomainNumber | ) |
This method sets the number of the matrix element domain for this matrix element.
uiInDomainNumber | the number of the matrix element domain for this matrix element |
bool fib::cFibMatrix::setVector | ( | const cVectorFibMatrix & | vecMatrixVector, |
const unsignedLongFib | uiPosition | ||
) |
This method sets the uiPosition'th vector of this matrix element to the given vector.
vecMatrixVector | the vector to set |
uiPosition | the position wher the to matrix vector should stand in this matrix element (counting begins with 1) |
bool fib::cFibMatrix::setVectors | ( | const vector< cVectorFibMatrix > & | vecMatrixVectors | ) |
This method sets all vectors / sets of values of this matrix element to the given vectors.
vecMatrixVectors | a vector with all vectors / sets of values this matrix element should contain |
|
protectedvirtual |
This method stores this Fib object in the compressed Fib-format into the given stream. It is needed because the stream can yust store byts but the size of Fib elements can be any number of bits. Because of that ther have to be a possibility to exchange the missing bits betwean the Fib elements.
stream | the stream where this Fib object should be stored to |
cRestBits | the not yet writen bits which should be stored |
uiRestBitPosition | the number of bits in the cRestBits which should be writen respectively containing valid information |
Implements fib::cFibElement.
|
virtual |
This method stores this Fib object in the XML format into the given stream.
stream | the stream where this Fib object should be stored to |
Implements fib::cFibElement.
|
friend |
Definition at line 76 of file cFibMatrix.h.
|
private |
The list with the vectors of the matrix element.
Definition at line 94 of file cFibMatrix.h.
|
private |
The number of the matrix element domain for this matrix element.
Definition at line 99 of file cFibMatrix.h.
|
private |
The vector with the area vectors for the dimensions of the matrix. The vector element i is for dimension i .
Definition at line 89 of file cFibMatrix.h.
|
private |
The variables, which this matrix element defines.
Definition at line 83 of file cFibMatrix.h.