The PM programming interface assembles the application's graphics output in a process that can use up to five coordinate spaces, known collectively as the viewing pipeline. Clipping can occur at each stage in the viewing pipeline. Objects in world coordinate, model, page, or device space can be clipped. When an application defines clipping areas in several coordinate spaces, the final result is similar to combining all the areas into a single clipping area. This single area is defined by the intersection of the areas in each coordinate space.

Clipping in different coordinate spaces, however, is a means of conceptualizing the process to aid in its understanding. Clipping, like transformations, actually happens in one operation, with all the different types of clipping being performed on all primitives in the device space at once.

The following table describes the different types of clipping areas associated with the different coordinate spaces.

Clipping Areas and Coordinate Space Summary

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Clipping Area   ³Coordinate Space³Description                 ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Clip path       ³World space     ³Always inclusive/inclusive  ³
³                ³                ³                            ³
³                ³                ³Clipping area can have      ³
³                ³                ³curved edges                ³
³                ³                ³                            ³
³                ³                ³Clipping area can be        ³
³                ³                ³rotated.                    ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Viewing limit   ³Model space     ³Always a rectangular        ³
³                ³                ³clipping boundary           ³
³                ³                ³                            ³
³                ³                ³Always inclusive/inclusive  ³
³                ³                ³                            ³
³                ³                ³Rotating clipping area      ³
³                ³                ³results in larger rectangle.³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Graphics field  ³Page space      ³Always a rectangular        ³
³                ³                ³clipping boundary           ³
³                ³                ³                            ³
³                ³                ³Always inclusive/inclusive  ³
³                ³                ³                            ³
³                ³                ³Rotating clipping area      ³
³                ³                ³impossible. Cannot specify a³
³                ³                ³device transform with       ³
³                ³                ³rotation.                   ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³Clip region     ³Device space    ³Can be a single rectangle or³
³                ³                ³multiple rectangles that    ³
³                ³                ³overlap or remain separate  ³
³                ³                ³                            ³
³                ³                ³Always inclusive/exclusive  ³
³                ³                ³                            ³
³                ³                ³Rotating the clipping area  ³
³                ³                ³is impossible.              ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Note: Inclusive/inclusive means that the operating system includes the bottom and leftmost edges of the rectangle in the clipping area as well as the top and rightmost edges. Inclusive/exclusive means that the operating system includes the bottom and leftmost edges but excludes the top and rightmost edges.

The following figure illustrates the differences between inclusive-inclusive and inclusive-exclusive clipping.

Inclusive/Inclusive and Inclusive/Exclusive Clipping


[Back] [Next]