Leadtools.Annotations.Core Namespace > IAnnObjectRenderer Interface : Render Method |
void Render( AnnContainerMapper mapper, AnnObject annObject )
Sub Render( _ ByVal mapper As AnnContainerMapper, _ ByVal annObject As AnnObject _ )
void Render( AnnContainerMapper mapper, AnnObject annObject )
void render( AnnContainerMapper mapper, AnnObject annObject )
This method is called by the framework to render an object. The IAnnObjectRenderer class is a base class and does not have any information on how to render an annObject. Thus the Render method is an abstract method. Derived classes such as the rectangle renderer class or the polyline renderer class implements the Render method to do the actual rendering of the object.
For example, the rectangle renderer class will implements this method as follows:
Casts an annObject to AnnRectangleObject, (and will fail if the object is not of the correct type).
Gets the points of the object stored in the annObject.Points property of the annObject. Since this is a rectangle object, an array of 4 points is retrieved.
These points are in container coordinates, therefore, mapper.PointsFromContainerCoordinates is called to convert these points to physical coordinates.
The AnnRenderingEngine.Context property contains the destination context to render to. The renderer creates a closed path on this context for the rectangle shape. Note that the rectangle object can be rotated and hence the points returned in step 2 above are the 4 edges of the rectangle in its current transformation (top left, top right, right bottom and left bottom). This is why the renderer draws a path instead of a rectangle.
Finally, the path is optionally stroked using the AnnObject.Stroke method and filled using the AnnObject.Fill method.
Note that if a state rendering engine is used (such as SVG or XAML rendering engine), then the engine will first call AddObject when the object is added before any Render calls. The engine will call RemoveObject when the object is removed.