Flowline Points: internal representation changed to point vector (QPolygonF). Bug Number: n/a Release notes (y/n): no For Release Nums: 6.7 The internal representation of Flow Line vertex coordinates has been recoded as a Poly-Line (point vector). The current flow line graphics item AND user interface implementation doesn't yet support having more than two points for each Flow Line. But Output Canvases created with this new implementation will be upward compatible with future versions which do support true multiple-point (>2) flow lines. NOTE that no automatic conversion was implemented. Flow lines in existing test/demo models WILL NEED TO BE FIXED or RECREATED. This commit represents completion of task (3A) in this project planning document: Output Canvas / Flow Lines Development Plan / February 2015 http://cadswes2.colorado.edu/~philw/2015/OutputCanvas/FlowLines/FlowLinesDevPlan-Feb2015.html Task 3: Flow Lines as "Poly-Lines" (two or more vertices) ... ... (3A) Change internal representation of Flow Line vertices The initial provisional implementation of flow lines was explicitly limited to two-point line segments, encoded in four integer rwSettings: rwIntSetting* _end1PosX; // FLOWLINE_END1_POSX rwIntSetting* _end1PosY; // FLOWLINE_END1_POSY rwIntSetting* _end2PosX; // FLOWLINE_END2_POSX rwIntSetting* _end2PosY; // FLOWLINE_END2_POSY Also removed were provisional "SNAP" rwSettings which were never actually developed. (This was premature. We haven't actually figured out how we are going to attach flow lines vertices). rwTextSetting* _end1Snap; // FLOWLINE_END1_SNAP rwTextSetting* _end2Snap; // FLOWLINE_END2_SNAP These have been removed, and replaced with a non-rwSetting QPolygonF field: QPolygonF _polyLine; (QPolygonF is a subclass of QVector). An implicit change is that these coordinates are represented with floating point (double) values instead of integers. Previously, integers were used only because flow line vertex coordinates were represented as rwIntSettings. This resulted in one-off value loss because of certain numeric computations -- you could sometimes actually see the line jump by one pixel. (This still occurs with teacups and canvas text items). Even though floating point values are now used internally, the serialization does seem to produce integer values. Here is an example: ... ... ... Some preparation work was done to generalize OcanFlAnchorPntItem (flow line anchor point graphics objects) to be associated with any FlowLine vertex, rather than just one of two end-vertices. See struct FlowLinePnt in QtUtils/OcanFlAnchorPntItem. ---