Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
TripleMatchSetCorner Class Reference

#include <TripleMatchSetCorner.h>

Inheritance diagram for TripleMatchSetCorner:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { NoMatch = -1 }

Public Member Functions

 TripleMatchSetCorner ()
 TripleMatchSetCorner (HomgInterestPointSet const *corners1, HomgInterestPointSet const *corners2, HomgInterestPointSet const *corners3)
 Construct a TripleMatchSetCorner that is associated with the given HomgInterestPointSets.
 TripleMatchSetCorner (const TripleMatchSetCorner &that)
 Copy ctor.
TripleMatchSetCorneroperator= (const TripleMatchSetCorner &that)
 TripleMatchSetCorner (const PairMatchSetCorner &matches12, const PairMatchSetCorner &matches23)
 Copy triplet matches out of two pairwise match sets.
void extract_matches (vcl_vector< HomgPoint2D > &points1, vcl_vector< int > &corner_index_1, vcl_vector< HomgPoint2D > &points2, vcl_vector< int > &corner_index_2, vcl_vector< HomgPoint2D > &points3, vcl_vector< int > &corner_index_3) const
 Copy inliers to three arrays, and record the original indices.
void extract_matches (vcl_vector< HomgPoint2D > &points1, vcl_vector< HomgPoint2D > &points2, vcl_vector< HomgPoint2D > &points3) const
 Copy inliers to three arrays.
PairMatchSetCornerget_matches12 ()
PairMatchSetCornerget_matches23 ()
PairMatchSetCorner const * get_matches12 () const
PairMatchSetCorner const * get_matches23 () const
HomgInterestPointSet const * get_corners1 () const
HomgInterestPointSet const * get_corners2 () const
HomgInterestPointSet const * get_corners3 () const
void clear_matches ()
 Remove all tuples.
void clear_nontriplets ()
int count () const
 Return the number of triplets. O(n).
bool add_match (int i, int ii, int iii)
 Add triplet (i1, i2, i3) to the matchset.
bool delete_match (int i1, int i2, int i3)
bool contains (int i1, int i2, int i3)
bool get_1 (int i1, int *i1out, int *i2out, int *i3out) const
 Select(1 = c).
bool get_2 (int i2, int *i1out, int *i2out, int *i3out) const
 Select(2 = c).
bool get_3 (int i3, int *i1out, int *i2out, int *i3out) const
 Select(3 = c).
int get_match_12 (int i1) const
 Select(1 = i1).2, meaning take the 2nd component of the tuples in which the first component equals i1.
int get_match_23 (int i2) const
 Select(2 = i2).3 Complexity O(1).
int get_match_31 (int i3) const
 Select(3 = i3).1 Complexity O(n).
int get_match_21 (int i2) const
 Select(2 = i2).1 Complexity O(n).
int get_match_32 (int i3) const
 Select(3 = i3).2 Complexity O(n).
int get_match_13 (int i1) const
 Select(1 = i1).3.
int get_match_123 (int i1, int i2) const
 Select({1,2} = {i1, i2}).3.
void set (PairMatchSet *match12, PairMatchSet *match23)
 Destroy current PairMatchSets and adopt two new ones.
void set_from_pairwise_matches (const PairMatchSet &matches12, const PairMatchSet &matches23)
 Join two PairMatchSets on their 2nd and 1st columns respectively.
void write_ascii (vcl_ostream &s) const
 Write as three ascii columns.
bool read_ascii (vcl_istream &s)
 Read from ascii vcl_istream.
void update_feature_match_data ()
int size () const
bool get_match (int at, int *i1, int *i2, int *i3) const
iterator begin () const

Static Public Member Functions

static bool matchp (int i)
 Return true if i is not the "NoMatch" value.

Protected Attributes

PairMatchSetmatch12_
PairMatchSetmatch23_

Detailed Description

Definition at line 25 of file TripleMatchSetCorner.h.


Member Enumeration Documentation

anonymous enum [inherited]
Enumerator:
NoMatch 

Definition at line 29 of file MatchSet.h.


Constructor & Destructor Documentation

TripleMatchSetCorner::TripleMatchSetCorner ( )

Definition at line 21 of file TripleMatchSetCorner.cxx.

TripleMatchSetCorner::TripleMatchSetCorner ( HomgInterestPointSet const *  corners1,
HomgInterestPointSet const *  corners2,
HomgInterestPointSet const *  corners3 
)

Construct a TripleMatchSetCorner that is associated with the given HomgInterestPointSets.

Definition at line 27 of file TripleMatchSetCorner.cxx.

TripleMatchSetCorner::TripleMatchSetCorner ( const TripleMatchSetCorner that)

Copy ctor.

Definition at line 46 of file TripleMatchSetCorner.cxx.

TripleMatchSetCorner::TripleMatchSetCorner ( const PairMatchSetCorner matches12,
const PairMatchSetCorner matches23 
)

Copy triplet matches out of two pairwise match sets.

Construct a TripleMatchSetCorner from two pairwise match sets.

Definition at line 36 of file TripleMatchSetCorner.cxx.


Member Function Documentation

bool TripleMatchSet::add_match ( int  i1,
int  i2,
int  i3 
) [inherited]

Add triplet (i1, i2, i3) to the matchset.

Any existing matches of the form (i1, *, *) are removed. O(1).

Definition at line 127 of file TripleMatchSet.cxx.

iterator TripleMatchSet::begin ( ) const [inline, inherited]

Definition at line 102 of file TripleMatchSet.h.

void TripleMatchSet::clear_matches ( ) [inherited]

Remove all tuples.

Definition at line 156 of file TripleMatchSet.cxx.

void TripleMatchSet::clear_nontriplets ( ) [inherited]

Definition at line 245 of file TripleMatchSet.cxx.

bool TripleMatchSet::contains ( int  i1,
int  i2,
int  i3 
) [inherited]
int TripleMatchSet::count ( ) const [inherited]

Return the number of triplets. O(n).

Definition at line 147 of file TripleMatchSet.cxx.

bool TripleMatchSet::delete_match ( int  i1,
int  i2,
int  i3 
) [inherited]

Definition at line 281 of file TripleMatchSet.cxx.

void TripleMatchSetCorner::extract_matches ( vcl_vector< HomgPoint2D > &  points1,
vcl_vector< int > &  corner_index_1,
vcl_vector< HomgPoint2D > &  points2,
vcl_vector< int > &  corner_index_2,
vcl_vector< HomgPoint2D > &  points3,
vcl_vector< int > &  corner_index_3 
) const

Copy inliers to three arrays, and record the original indices.

Copy the inliers from the TripleMatchSetCorner into the given arrays of corners and corner indices.

Definition at line 55 of file TripleMatchSetCorner.cxx.

void TripleMatchSetCorner::extract_matches ( vcl_vector< HomgPoint2D > &  points1,
vcl_vector< HomgPoint2D > &  points2,
vcl_vector< HomgPoint2D > &  points3 
) const

Copy inliers to three arrays.

Copy the inliers from the TripleMatchSetCorner into the given arrays.

Definition at line 84 of file TripleMatchSetCorner.cxx.

bool TripleMatchSet::get_1 ( int  c,
int *  i1,
int *  i2,
int *  i3 
) const [inherited]

Select(1 = c).

{1,2,3}. Complexity O(1). Returns true iff a match was found.

Definition at line 214 of file TripleMatchSet.cxx.

bool TripleMatchSet::get_2 ( int  c,
int *  i1,
int *  i2,
int *  i3 
) const [inherited]

Select(2 = c).

{1,2,3} Complexity O(n).

Definition at line 227 of file TripleMatchSet.cxx.

bool TripleMatchSet::get_3 ( int  c,
int *  i1,
int *  i2,
int *  i3 
) const [inherited]

Select(3 = c).

{1,2,3} Complexity O(n).

Definition at line 233 of file TripleMatchSet.cxx.

HomgInterestPointSet const* TripleMatchSetCorner::get_corners1 ( ) const [inline]

Definition at line 58 of file TripleMatchSetCorner.h.

HomgInterestPointSet const* TripleMatchSetCorner::get_corners2 ( ) const [inline]

Definition at line 59 of file TripleMatchSetCorner.h.

HomgInterestPointSet const* TripleMatchSetCorner::get_corners3 ( ) const [inline]

Definition at line 60 of file TripleMatchSetCorner.h.

bool TripleMatchSet::get_match ( int  at,
int *  i1,
int *  i2,
int *  i3 
) const [inline, inherited]

Definition at line 74 of file TripleMatchSet.h.

int TripleMatchSet::get_match_12 ( int  i1) const [inherited]

Select(1 = i1).2, meaning take the 2nd component of the tuples in which the first component equals i1.

Complexity O(1).

Definition at line 165 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_123 ( int  i1,
int  i2 
) const [inherited]

Select({1,2} = {i1, i2}).3.

Complexity O(1).

Definition at line 203 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_13 ( int  i1) const [inherited]

Select(1 = i1).3.

Complexity O(1)

Definition at line 172 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_21 ( int  i2) const [inherited]

Select(2 = i2).1 Complexity O(n).

Definition at line 184 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_23 ( int  i2) const [inherited]

Select(2 = i2).3 Complexity O(1).

Definition at line 178 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_31 ( int  i3) const [inherited]

Select(3 = i3).1 Complexity O(n).

Definition at line 190 of file TripleMatchSet.cxx.

int TripleMatchSet::get_match_32 ( int  i3) const [inherited]

Select(3 = i3).2 Complexity O(n).

Definition at line 196 of file TripleMatchSet.cxx.

PairMatchSetCorner* TripleMatchSetCorner::get_matches12 ( ) [inline]

Definition at line 50 of file TripleMatchSetCorner.h.

PairMatchSetCorner const* TripleMatchSetCorner::get_matches12 ( ) const [inline]

Definition at line 52 of file TripleMatchSetCorner.h.

PairMatchSetCorner* TripleMatchSetCorner::get_matches23 ( ) [inline]

Definition at line 51 of file TripleMatchSetCorner.h.

PairMatchSetCorner const* TripleMatchSetCorner::get_matches23 ( ) const [inline]

Definition at line 53 of file TripleMatchSetCorner.h.

static bool MatchSet::matchp ( int  i) [inline, static, inherited]

Return true if i is not the "NoMatch" value.

Definition at line 32 of file MatchSet.h.

TripleMatchSetCorner& TripleMatchSetCorner::operator= ( const TripleMatchSetCorner that)
bool TripleMatchSet::read_ascii ( vcl_istream &  s) [inherited]

Read from ascii vcl_istream.

Definition at line 77 of file TripleMatchSet.cxx.

void TripleMatchSet::set ( PairMatchSet match12,
PairMatchSet match23 
) [inherited]

Destroy current PairMatchSets and adopt two new ones.

Definition at line 41 of file TripleMatchSet.cxx.

void TripleMatchSet::set_from_pairwise_matches ( const PairMatchSet matches12,
const PairMatchSet matches23 
) [inherited]

Join two PairMatchSets on their 2nd and 1st columns respectively.

I.e. make the TripleMatchSet which contains (i1,i2,i3) iff

matches12.contains(i1, i2) and matches23.contains(i2, i3)

Definition at line 54 of file TripleMatchSet.cxx.

int TripleMatchSet::size ( ) const [inherited]

Definition at line 300 of file TripleMatchSet.cxx.

void TripleMatchSet::update_feature_match_data ( ) [inherited]

Definition at line 306 of file TripleMatchSet.cxx.

void TripleMatchSet::write_ascii ( vcl_ostream &  s) const [inherited]

Write as three ascii columns.

Definition at line 67 of file TripleMatchSet.cxx.


Member Data Documentation

PairMatchSet* TripleMatchSet::match12_ [protected, inherited]

Definition at line 107 of file TripleMatchSet.h.

PairMatchSet* TripleMatchSet::match23_ [protected, inherited]

Definition at line 108 of file TripleMatchSet.h.


The documentation for this class was generated from the following files: