| Rev | Line | |
|---|
| [349] | 1 | // This file is a part of Framsticks SDK. http://www.framsticks.com/ |
|---|
| [869] | 2 | // Copyright (C) 1999-2019 Maciej Komosinski and Szymon Ulatowski. |
|---|
| [349] | 3 | // See LICENSE.txt for details. |
|---|
| 4 | |
|---|
| 5 | #ifndef SIMILMATCHING_H |
|---|
| 6 | #define SIMILMATCHING_H |
|---|
| 7 | |
|---|
| 8 | #include <vector> |
|---|
| 9 | |
|---|
| [869] | 10 | /** This class describes a mutually single-valued function between two sets of elements |
|---|
| 11 | (these sets are called objects). These sets may have different sizes, so this function |
|---|
| 12 | is mutually single-valued only for some subset of the bigger set. |
|---|
| 13 | This class is used while building a matching function between Parts of two Framsticks' |
|---|
| 14 | organisms (similarity measure computation). |
|---|
| [349] | 15 | */ |
|---|
| 16 | class SimilMatching |
|---|
| 17 | { |
|---|
| 18 | protected: |
|---|
| [869] | 19 | /** Array of pointers to two vectors. Each one stores indices of matched elements of |
|---|
| 20 | the other object. Value <0 means that an element is not matched yet. Sizes of these |
|---|
| 21 | vectors are sizes of objects themselves. |
|---|
| 22 | */ |
|---|
| 23 | std::vector<int> *m_apvMatched[2]; |
|---|
| [349] | 24 | public: |
|---|
| [869] | 25 | SimilMatching(int Obj0Size, int Obj1Size); |
|---|
| 26 | SimilMatching(const SimilMatching &Source); |
|---|
| 27 | ~SimilMatching(); |
|---|
| 28 | int GetObjectSize(int Obj); |
|---|
| 29 | void Match(int Obj0, int Index0, int Obj1, int Index1); |
|---|
| 30 | bool IsMatched(int Obj, int Index); |
|---|
| 31 | int GetMatchedIndex(int Obj, int index); |
|---|
| 32 | bool IsFull(); |
|---|
| 33 | bool IsEmpty(); |
|---|
| 34 | void Empty(); |
|---|
| 35 | void PrintMatching(); |
|---|
| [349] | 36 | }; |
|---|
| 37 | |
|---|
| [869] | 38 | #endif |
|---|
Note: See
TracBrowser
for help on using the repository browser.