80 | | ''Old Solution'' ''New Solution'' |
81 | | OPEN_TEXT OPEN_TEXT |
82 | | OPEN_PART OPEN_PART |
83 | | OPEN_LINE OPEN_LINE |
84 | | OPEN_SEGMENT SEGMENT |
85 | | ATOM SEGMENT |
86 | | CLOSE_SEGMENT CLOSE_LINE |
87 | | OPEN_SEGMENT CLOSE_PART |
88 | | ATOM CLOSE_TEXT |
89 | | CLOSE_SEGMENT |
90 | | CLOSE_LINE |
91 | | CLOSE_PART |
92 | | CLOSE_TEXT |
93 | | * (drawback) EdgeKind.SEGMENT has to be more complex to handle the following cases (in the old solution the responsibilities were spread between OPEN_SEGMENT, CLOSE_SEGMENT and ATOM EdgeKinds): |
94 | | * |
| 80 | ''Old Solution'' ''New Solution''[[BR]] |
| 81 | OPEN_TEXT OPEN_TEXT[[BR]] |
| 82 | OPEN_PART OPEN_PART[[BR]] |
| 83 | OPEN_LINE OPEN_LINE[[BR]] |
| 84 | OPEN_SEGMENT SEGMENT[[BR]] |
| 85 | ATOM SEGMENT[[BR]] |
| 86 | CLOSE_SEGMENT CLOSE_LINE[[BR]] |
| 87 | OPEN_SEGMENT CLOSE_PART[[BR]] |
| 88 | ATOM CLOSE_TEXT[[BR]] |
| 89 | CLOSE_SEGMENT[[BR]] |
| 90 | CLOSE_LINE[[BR]] |
| 91 | CLOSE_PART[[BR]] |
| 92 | CLOSE_TEXT[[BR]] |
| 93 | * (drawback) EdgeKind.SEGMENT has to be more complex to handle the following cases, some of which make more sense to a segment as a whole (in the old solution the responsibilities were spread between OPEN_SEGMENT, CLOSE_SEGMENT and ATOM EdgeKinds): |
| 94 | * Badness calculation |
| 95 | * Breaks - part, line and segment break |
| 96 | * Ascent |
| 97 | * Descent |
| 98 | * Gap |
| 99 | * White space |
| 100 | * Tracking |
| 101 | * Drawing |
| 102 | * Estimation of badness by importance: |
| 103 | * Characters left (not laid out in the area) |
| 104 | * Space occupied by the text in the area. Concrete badness factors related to this are: |
| 105 | * Spacing |
| 106 | * White extra |
| 107 | * Ascent |
| 108 | * Descent |
| 109 | * Broken word |
| 110 | * Shrunk tracking |
| 111 | * Shrunk spacing |
| 112 | * Calculation of Text Parts for the text chaining |
| 113 | * Add the following: |
| 114 | * Method HotTextLayout.canFitInShape and (static method) LayoutBuilder.canFit to check if a text can be flowed into an area |
| 115 | * Method HotTextLayout.getTextParts and (static method) LayoutBuilder.getTextParts to return the separation of a text into parts that can be flowed into a sequence of areas |