Reference for the Mosaic class Views::WarpGroup
The class Views::WarpGroup provides a kind of view able to show the aspect of a foreign GUI component scaled and rotated in the 2D/3D space. In this manner several warped copies of the component can be shown on the screen. Even the aspect of an invisible component. This is very useful for fancy fade or mirror effects. To work, the component has to be buffered. For this purpose set its property Buffered to the value 'true'. Not buffered components will not appear in this view. The GUI component to show its aspect is referred by the property Group.
First of all, Embedded Wizard is not a 3D GUI development tool! Its lightweight 3D functionality is limited to the perspectively correct projection of an image onto a quad (four corners polygon). Depending on this polygon's shape, different kinds of transformations are possible, e.g. scaling, rotation or mirroring. The polygon is determined by the four corners Point1, Point2, Point3 and Point4. Moving these corners is thus sufficient to determine the desired transformation.
More sophisticated way to control the transformations is provided by the methods RotateAndScale() and Warp3D(). These methods derive the polygon coordinates automatically from the given parameters.
The properties Opacity, Opacity1, Opacity2, Opacity3 and Opacity4 can be used to modulate the transparency. For each polygon corner different opacity can be set, so the component's aspect can be shown with fancy opacity gradients. This view is also able to relay touch events to the associated GUI component. This is determined by the property RelayCursorEvents.
The visibility of the view is controlled by the properties Visible, AlphaBlended and Embedded. In particular the property Embedded can determine whether the corresponding view is limited (== embedded) to the boundary of a sibling Core::Outline view or not. The embedding of views within a Core::Outline allows a kind of sub-groups within the GUI component itself. Very useful for any kind of scrollable lists, menus, etc.
property Core::Group Group = null;
The property 'Group' refers to a component whose aspect should be displayed within this view. In this manner several copies of a component can be shown on the screen. This is useful for fancy fade or mirror effects. Don't forget to activate the Buffered property of the component. Not buffered components can't be shown by this view.
Depending on the property SourceArea the entire component or only its section is shown.
property int32 Opacity = 255;
The property 'Opacity' controls the opacity of the entire view. Thus this property is useful if no gradients are desired. This property can take values in range of 0 .. 255. If the value is 255, the view will appear with its full opacity. The value equal to zero results in a fully transparent view. Other values in the range 1 .. 254 show a semitransparent view. The resulting opacity can additionally be modulated by the values specified in the properties Opacity1, Opacity2, Opacity3 and Opacity4.
property int32 Opacity1 = 255;
The property 'Opacity1' controls the translucence of the view at its corner Point1. This property can take values in range of 0 .. 255. If the value is 255, the corner will appear with its full opacity. The value equal to zero results in a fully transparent corner. Other values in the range 1 .. 254 show a semitransparent view. This opacity value can additionally be modulated by the common opacity value stored in the property Opacity.
property int32 Opacity2 = 255;
The property 'Opacity2' controls the translucence of the view at its corner Point2. This property can take values in range of 0 .. 255. If the value is 255, the corner will appear with its full opacity. The value equal to zero results in a fully transparent corner. Other values in the range 1 .. 254 show a semitransparent view. This opacity value can additionally be modulated by the common opacity value stored in the property Opacity.
property int32 Opacity3 = 255;
The property 'Opacity3' controls the translucence of the view at its corner Point3. This property can take values in range of 0 .. 255. If the value is 255, the corner will appear with its full opacity. The value equal to zero results in a fully transparent corner. Other values in the range 1 .. 254 show a semitransparent view. This opacity value can additionally be modulated by the common opacity value stored in the property Opacity.
property int32 Opacity4 = 255;
The property 'Opacity4' controls the translucence of the view at its corner Point4. This property can take values in range of 0 .. 255. If the value is 255, the corner will appear with its full opacity. The value equal to zero results in a fully transparent corner. Other values in the range 1 .. 254 show a semitransparent view. This opacity value can additionally be modulated by the common opacity value stored in the property Opacity.
property bool RelayCursorEvents = false;
The property 'RelayCursorEvents' determines, whether the view should react to cursor events and relay them to the associated component Group. If this property is set 'true', the view converts all received touch screen events in the coordinate space of the associated component and relays the events to this component.