Apparatus and method for cropping an image in a zooming graphical user interface
First Claim
1. A zooming engine for cropping and rendering a zooming object having a bounding box in local coordinates, the zooming object contained within a view object, comprising:
- an event handler object in communicative relation to the zooming object and responsive to a selection device, said event handler object operable to attribute crop region local coordinates to the zooming object;
a transform stack in communicative relation to the zooming object and the view object, said transform stack operable to provide a screen transform, wherein said screen transform converts local coordinates to screen coordinates;
a renderer responsive to said transform stack and to the zooming object, said renderer operable to apply said screen transform to said crop region local coordinates and to said zooming object bounding box local coordinates; and
, a clip stack in communicative relation with said renderer for receiving said crop region screen coordinates from said renderer and for providing said crop region screen coordinates when the zooming object is painted, wherein said renderer paints said zooming object at an overlap of said crop region screen coordinates and said bounding box screen coordinates.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention provides a method and system for image cropping in a zooming environment. In a zooming engine, a clip stack and transform stack are provided for all images in a view. When a crop region is selected for an image, the image maintains its crop region in local coordinates. Prior to rendering, the image'"'"'s local crop region coordinates are pushed on to the clip stack and the image'"'"'s transform and view'"'"'s transform are pushed onto a transform stack. A new screen transform is determined from the image transform and the view transform. The screen transform is applied to the image'"'"'s clip region to provide clip region screen coordinates. These coordinates are pushed on the clip stack. The same transformation is applied to the image'"'"'s uncropped bounding box coordinates. When the cropped image sends a draw call, the clip region is set and the image is rendered within the clip region and the transformed bounding box.
99 Citations
19 Claims
-
1. A zooming engine for cropping and rendering a zooming object having a bounding box in local coordinates, the zooming object contained within a view object, comprising:
-
an event handler object in communicative relation to the zooming object and responsive to a selection device, said event handler object operable to attribute crop region local coordinates to the zooming object;
a transform stack in communicative relation to the zooming object and the view object, said transform stack operable to provide a screen transform, wherein said screen transform converts local coordinates to screen coordinates;
a renderer responsive to said transform stack and to the zooming object, said renderer operable to apply said screen transform to said crop region local coordinates and to said zooming object bounding box local coordinates; and
,a clip stack in communicative relation with said renderer for receiving said crop region screen coordinates from said renderer and for providing said crop region screen coordinates when the zooming object is painted, wherein said renderer paints said zooming object at an overlap of said crop region screen coordinates and said bounding box screen coordinates. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for rendering a cropped image for a zooming object having a bounding box, the zooming object contained in a view object, the bounding box having local coordinates, the steps comprising:
-
providing a crop region attribute in local coordinates for the zooming object;
determining a screen transform from a view object transform and a zooming object transform;
applying said screen transform to said crop region local coordinates and to the bounding box local coordinates, wherein said application step provides bounding box screen coordinates and crop region screen coordinates; and
,rendering said zooming object where said bounding box screen coordinates and said crop region screen coordinates overlap. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
selecting a crop region on said zooming object; and
,communicating said crop region to said zooming object.
-
-
12. The method of claim 10 wherein the view object comprises a view bounding box defining an outer periphery of the view object, the view object defining a portion of a surface visible on a display device.
-
13. The method of claim 12 wherein the zooming object has an associated zooming object transform defining a conversion between zooming object local coordinates and zooming object global coordinates and the view object has an associated view transform defining a conversion between view object local coordinates and view object global coordinates, said view transform ensuring that said portion of said surface is centered in said view bounding box, said determining step including the steps of combining said view object transform and said zooming object transform and providing said screen transform therefrom.
-
14. The method of claim 10 wherein said applying step comprises the further steps of:
-
determining said crop region screen coordinates;
storing said crop region screen coordinates on a stack;
determining said bounding box screen coordinates; and
,defining an overlap of said crop region screen coordinates and said bounding box screen coordinates.
-
-
15. The method of claim 10 wherein said rendering step paints said crop region on a display device.
-
16. The method of claim 10 wherein said crop region is associated with a plurality of objects, said applying step including the step of determining recursively the screen coordinates of said associated objects.
-
17. The method of claim 16 wherein said plurality of objects is selected from the group comprising zooming objects, view objects and object groups.
-
18. The method of claim 17 including the further step of selecting a predetermined zoom level, wherein said zoom level is associated with a view object.
-
19. The method of claim 18 wherein said rendering step paints said plurality of objects when said plurality of objects are contained in said selected view object.
Specification