53 #ifndef KJB_MODEL_EDGE_H_
54 #define KJB_MODEL_EDGE_H_
85 Model_edge(
double x1,
double y1,
double x2,
double y2,
bool isilhouette =
false,
bool isvisible =
false,
bool iflagged =
false);
95 if(istart.
size() < 2 || iend.
size() < 2)
101 if( (istart(0) == iend(0)) && (istart(1) == iend(1)) )
115 _silhouette = isilhouette;
116 _visible = isvisible;
125 Line_segment(src), _silhouette(src._silhouette), _degenerate(src._degenerate), _visible(src._visible), _flagged(src._flagged)
137 _silhouette = src._silhouette;
138 _visible = src._visible;
139 _degenerate = src._degenerate;
140 _flagged = src._flagged;
153 void read(std::istream& in);
156 void write(std::ostream& out)
const;
181 double collinear_distance_threshold,
212 std::vector<Line_segment> detected_segments;
Line_segment & operator=(const Line_segment &ls)
Assignment operator.
Definition: gr_line_segment.cpp:115
Definition: edge_segment.h:36
Definition: model_edge.h:73
size_type size() const
Alias to get_length(). Required to comply with stl Container concept.
Definition: m_vector.h:510
Model_edge & operator=(const Model_edge &src)
Definition: model_edge.h:134
y2
Definition: APPgetLargeConnectedEdges.m:125
void write(std::ostream &out) const
Writes this Model segment to an output stream.
Definition: model_edge.cpp:82
double get_detected_length()
Return the detected length of this model segment.
Definition: model_edge.cpp:389
Model_edge(double x1, double y1, double x2, double y2, bool isilhouette=false, bool isvisible=false, bool iflagged=false)
Constructs a model edge from the position of its edge points.
Definition: model_edge.cpp:25
void read(std::istream &in)
Reads this Model segment from an input stream.
Definition: model_edge.cpp:46
Model_edge(const kjb::Vector &istart, const kjb::Vector &iend, bool isilhouette=false, bool isvisible=false, bool iflagged=false)
Constructs a model edge from the position of its edge points.
Definition: model_edge.h:93
This class implements vectors, in the linear-algebra sense, with real-valued elements.
Definition: m_vector.h:87
bool is_flagged() const
Definition: model_edge.h:190
x1
Definition: APPgetLargeConnectedEdges.m:122
bool operator==(const Model_edge &model_edge) const
Definition: model_edge.h:144
void set_silhouette(bool isilhouette)
Sets whether this model edge is a silhouette edge or not.
Definition: model_edge.h:165
bool is_visible() const
Returns true if this model edge is an visible edge.
Definition: model_edge.h:162
void init_from_end_points(double x_1, double y_1, double x_2, double y_2)
Initialize a new Line_segment from position of its end points.
Definition: gr_line_segment.cpp:271
#define KJB_THROW_2(ex, msg)
Definition: l_exception.h:48
y1
Definition: APPgetLargeConnectedEdges.m:124
const kjb::Vector & get_end() const
Returns the rightmost point of the segment.
Definition: gr_line_segment.h:180
x2
Definition: APPgetLargeConnectedEdges.m:123
const kjb::Vector & get_start() const
Returns the leftmost point of the segment.
Definition: gr_line_segment.h:165
Model_edge(const Model_edge &src)
Copy constructor.
Definition: model_edge.h:124
Object thrown when an argument to a function is not acceptable.
Definition: l_exception.h:377
void set_flagged(bool iflagged)
Sets whether this model edge is flagged or not.
Definition: model_edge.h:168
void update_detected_segments(const Edge_segment &image_edge_segment, double collinear_distance_threshold, Vector &previous_center, bool &mapped, double noisy_length)
Update the detectd parts when projecting an image segment onto the model edge.
Definition: model_edge.cpp:97
void set_visible(bool isvisible)
Sets whether this model edge is a visible edge or not.
Definition: model_edge.h:171
Class to manipulate a line segment The class is parametrized in terms the position of the centre...
Definition: gr_line_segment.h:62
bool is_silhouette() const
Returns true if this model edge is a silhouette edge.
Definition: model_edge.h:159