Parameter | Type | Description |
---|---|---|
mapper | AnnContainerMapper | The mapper object to use for converting coordinates. Must not be null. |
annObject | AnnObject | The object to render. Must not be null. |
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 might 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.