Annotations:Implement more annotation support: labels, notes, and dimensions| Project Report
The project was divided into two parts:
- Fixing bugs in the annotation primitive.
- Extending the current annotation to have more features.
Fixing bugs in the annotation primitive
- Annotation leader line bug: the annotation leader line was invisible because of uninitialized variable.
- Short annotations bug: using numbers for label results in no label "short annotation is not drawn":
the cause of this bug is that all the annotation points are in display space and we should consider just the point that exists in the model space.
- new bounding box function:
the existed bounding box function was dealing in a wrong way with the long annotations because it's vlist is constructed from more than one memory chunk so the display mode was not memorized by the old function.
- Position adjustment of the annotations:
the old implementation of the annotation considered just the top right (TR) relative position of the text with respect to the reference point. this patch implements the nine possible relative positions