|void||Set_Window (double left, double right, double bottom, double top)|
|Limits the amount of the screen (or the containing Window) to be used by the referenced segment upon display. More...|
|Removes all settings established by a previous call to Set_Window(). More...|
Limits the amount of the screen (or the containing Window) to be used by the referenced segment upon display.
left - Minimum limit, along the horizontal axis of the screen. The leftmost edge is at -1. right - Maximum limit, along the horizontal axis of the screen. The rightmost edge is at +1. bottom - Minimum limit, along the vertical axis of the screen. The lowest possible position is at -1. top - Maximum limit, along the vertical axis of the screen. The highest possible position is at +1.
Windows are used to allocate chunks of the screen to different scenes or information. The portion of the user data space specified by the Camera positioning, or camera volume, is symmetrically scaled to fit into the requested area.
Functions such as Set_Camera_By_Volume() select how much of the data space should be directed to the screen; Set_Window() defines where on the screen that picture should land. The loose ends of the picture which may extend out beyond the edge of the Window after all the transforming is done are clipped off.
Windows are cumulative—the window highest in your segment tree is allocated from the entire screen. Each segment, going down the segment tree, which specifies a Window, takes its with respect to the containing segment's Window.
Windows are normally opaque and cover up the scene underneath, but transparent windows are available via a "clear" window pattern. See Set_Window_Pattern() .
Bring_To_Front() is called automatically for any newly-windowed segment. If there are any conflicts between sibling windows (windows side-by-side in the segment tree), the most recently-created windows are forced to be uppermost on the screen. Further calls to Bring_To_Front() might be necessary to get the ordering you want. Note that a subwindow, as opposed to a sibling window, is always "in front of" its containing window. Also, if sibling windows do not actually overlap their ordering doesn't matter.
If HOOPS is actually running within another windowing system (such as X or UIS), then the top-level window controls the size of the master window that HOOPS requests from the containing windowing system, subject to any "subscreen" Driver Option.
Important Restriction: If a segment down in the segment tree doesn't have a window, that segment's subsegments and included segments might not have windows either. Failure to organize segments in this way can result in windows being updated improperly, and the system will try to issue a warning message. Note: Most programs are structured with windows directly inside of windows, so the problem doesn't come up. This restriction will be removed in a future release.
It is permissible for a Window's coordinates to appear to exceed the boundaries of its parent window. i.e., it is legal to provide window coordinates outside the range -1 to +1. The scene and the subwindows are fitted into the oversize window as if it really were the specified size. However, the oversize window will be clipped off at the edge of the parent window. It is not really possible to exceed the parent—there are numerous code optimizations that depend on this. "Oversize" windows sometimes make window calculations simpler.
Windowed segments inside of nonwindowed segments might not be updated correctly when structurally-distant sibling windows are changed. The problem can be worked around by always putting windowed segments directly beneath the parent windowed segment.
If a window is set directly on the "?picture" segment, then selection-testing and window-manager resizing become confused. HOOPS window behavior is technically undefined if a window is set at a driver level segment such as "?picture". Applications should rely on the default window (-1.0, 1.0, -1.0, 1.0) already present at the driver level or use the "subscreen" driver option to manipulate this default window.