NCL Home > Documentation > Graphics > Resources

Transform (tf) Resources

tfDoNDCOverlay
Ordinarily, the data space of a transform added as an overlay is transformed into the data space of the base plot. If tfDoNDCOverlay is set True, however, this transformation does not take place. Instead, the transform is aligned in NDC space with the base plot. Its viewport is sized and positioned to coincide with the base plot's viewport. As with normal overlays, the base plot still assumes responsibility for drawing the transform and managing its annotations.

Originally, tfDoNDCOverlay was of type NhlTBoolean. However, this did not provide enough flexiblity to handle an overlay on a mapplot when mpShapeMode was set to FixedAspectNoFitBB. In this case, the overlay needs to extend only over the data extent, but the data extent does not in general occupy the full extent of the viewport. Therefore, the type of tfDoNDCOverlay has been changed to NhlTOverlayMode, allowing three options, as follows:

DataTransform (False, 0)
Transform overlay into the data space of the base plot. Settting the resource to False is equivalent to specifying this option.
NDCViewport (True, 1)
Render the overlay so as to occupy the full viewport of the base plot, without transformation into the base plot's data space. Settting the resource to True is equivalent to specifying this option.
NDCDataExtent (2)
Render the overlay so as to occupy only the extent of the viewport occupied by the data extent of the base plot, but without transformation into the base plot's data space.

Default: False

tfPlotManagerOn
This boolean resource specifies whether a transform should instantiate a PlotManager composite class member. It is a create-only resource; if a plotmanager is not instantiated when the transform is created, it cannot be instantiated later. If a plotmanager is activated, the transform becomes a plot object, allowing it to act as a base plot for annotations and overlays. Otherwise, it is called a simple transform. The primary reason to create a simple transform would be to conserve memory and improve performance.

Default: True

tfPolyDrawList
This array resource specifies a list of Primitive objects that are to be drawn along with the transform's specialized plot elements when the Draw method is called. You add Primitive objects to tfPolyDrawList by calling the support function NhlAddPrimitive and remove them by by calling NhlRemovePrimitive. Alternatively, you may create (or recreate) the list as a whole using the SetValues method. Each list element must be the id of an existing Primitive object.

When the transform's Draw method is executed the Primitive objects are rendered in the order of their appearance in the tfPolyDrawList. The rendering may occur during any of the transform's draw phases, depending on the value of the tfPolyDrawOrder resource. The list ordering also determines which graphicstyle to apply when a primitive's prGraphicStyle resource is set to NullObjId (0). During the primitive drawing sequence a notion of the "current" graphicstyle is maintained. Initially, the Workstation default graphicstyle, as specified by wkDefGraphicStyleId, is current. Subsequently, whenever a primitive that explicitly specifies a graphicstyle is encountered in the tfPolyDrawList, its graphicstyle becomes current. Any primitive whose prGraphicStyle resource evaluates to NullObjId is rendered using the current graphicstyle.

Default: NULL

tfPolyDrawOrder

Default: PostDraw This resource of type NhlTDrawOrder determines when the Primitive objects specified in the tfPolyDrawList will be drawn relative to other elements of the transform. There are three choices:

PreDraw
Draw Primitive objects listed in the tfPolyDrawList prior to the standard draw phase, before any PreDraw phase plot elements belonging to the transform.
Draw
Draw Primitive objects listed in the tfPolyDrawList during the standard draw phase, before any Draw phase plot elements belonging to the transform.
PostDraw
Draw Primitive objects listed in the tfPolyDrawList after the standard draw phase, before any PostDraw phase plot elements belonging to the transform.