int Position (int bnr, const INDEX_2 & ind) const { for (int i = 1; i <= hash.EntrySize (bnr); i++) if (hash.Get(bnr, i) == ind) return i; return 0; }
int Position (int bnr, const INDEX_3 & ind) const { const INDEX_3 * pi = &hash.Get(bnr, 1); int n = hash.EntrySize(bnr); for (int i = 1; i <= n; ++i, ++pi) { if (*pi == ind) return i; } return 0; }
int GetOCPT(int tn, int vi) const {return outerchartspertrig.Get(tn,vi);};
int GetEdgePP(int pn, int vi) { if (edgesperpoint.Size() == 0) {BuildEdgesPerPoint();} return edgesperpoint.Get(pn,vi); };
void GetData (int bnr, int colnr, INDEX_2 & ahash, T & acont) const { ahash = hash.Get(bnr, colnr); acont = cont.Get(bnr, colnr); }
const T & Get (const INDEX_2 & ahash) const { int bnr = HashValue (ahash); int pos = Position (bnr, ahash); return cont.Get (bnr, pos); }
int NeighbourTrig(int trig, int nr) const { return neighbourtrigs.Get(trig,nr); }
int TopEdgePerPoint (int pn, int ei) const { return topedgesperpoint.Get(pn, ei); }
int TrigPerPoint(int pn, int i) { return trigsperpoint.Get(pn, i); }