[ILNumerics Visualization Engine]
ILNumerics.DrawingNode
ILNumerics.DrawingGroup
ILNumerics.DrawingCamera
ILNumerics.DrawingTripod
Namespace: ILNumerics.Drawing
Assembly: ILNumerics.Drawing (in ILNumerics.Drawing.dll) Version: ILNumerics Ultimate VS 4
The Tripod type exposes the following members.
Name | Description | |
---|---|---|
Tripod(Tripod) | Initializes a new instance of the Tripod class | |
Tripod(Object, TripodStyle, CameraQuadrant, Single) |
Create a new tripod to be added to a camera
[ILNumerics Visualization Engine] |
Name | Description | |
---|---|---|
AllowPan |
Enable or disable the ability to move the camera content with right mouse dragging. Default: true (enabled)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
AllowRotation |
Enable or disable the ability to rotate the camera content. Default: true (enabled)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
AllowZoom |
Enable or disable the ability to zoom the camera content. Default: true (enabled)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Alpha |
Alpha value, range [0...1], if set, this value modifies the alpha values for ALL nodes of this subtree. Use for blend effects only!
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Animations | (Inherited from Group.) | |
AspectRatioMode |
Determines, if objects keep their shape, regardless from the windows aspect ratio or rotation context. Default: maintain ratios.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Children |
Collection of child for this group
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Clipping |
Gets all 6 available clipping planes for the group or sets it. Null: derive clipping from parent node (default)
(Inherited from Group.)[ILNumerics Visualization Engine] | |
ColorOverride |
If set, this color will override all individual colors in this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
FieldOfView |
Determines the field of view for perspective projection. Small: more fish eye effect, large: more overview. Default: 10
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
ID |
Unique ID for the node within the scene
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Is2DView |
True, when looking from top on the un-rotated scene (common for 2D plots)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
IsGlobal |
Determine if this camera is acting on the global scene. Changes made to one driver will affect all instances of the same camera/scene for all drivers.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
IsSynchedNode | (Inherited from Node.) | |
LookAt |
Point, the camera is aiming at (world coords)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Markable |
Determines, if this node can be marked by the user
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Marked |
Marked state for the node
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Parent |
Get the parent of this node or null, if this node is a root node
(Inherited from Node.)[ILNumerics Visualization Engine] | |
PickingID |
If set to a valid shape ID, that shape will be marked in picking operations insted of this shape.
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Polar |
Spherical coordinates relative to the look at point
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Position |
Get/set camera position, absolute cartesian coordinates
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
PositionTransform |
Get position transform matrix (readonly)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Projection |
Get the type of projection (orthographic/ perspective) or sets it
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
ProjectionTransform |
Get projection transform matrix (readonly)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
RotationCenter |
The 3D coordinate of the current center for (interactive) rotation operations.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
ScreenRect |
Screen rectangle identifying the area this object is using inside its container (0..1/0..1, get/set)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
SynchedVersion |
The version of the sync source from the last synchronization.
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Tag |
Object tag used to identify the node within the scene
(Inherited from Node.)[ILNumerics Visualization Engine] | |
Target |
If set, determines the target for rendering: world (3D) or screen (2D) on top. Default: not set (derive from parent)
(Inherited from Group.)[ILNumerics Visualization Engine] | |
TimeoutAware |
Sets if this group and all children are sensible for timeouts during rendering or gets that flag. Default: null -> derive from parent
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Top |
Orientation of the camera, normalized, readonly
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Transform |
[4x4] matrix with the affine transforms which this node applies to all children
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Version |
Modification version of this node, gets incremented at every change
(Inherited from Node.)[ILNumerics Visualization Engine] | |
ViewTransform |
Gets the view transformation matrix mapping the rendering area for this camera (ScreenRect) to clip coordinates (readonly).
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Visible |
Determines, if this node is visible or sets the visible state
(Inherited from Node.)[ILNumerics Visualization Engine] | |
XArrow |
Gets the group implementing the content which is specific for the X axis
[ILNumerics Visualization Engine] | |
YArrow |
Gets the group implementing the content which is specific for the Y axis
[ILNumerics Visualization Engine] | |
ZArrow |
Gets the group implementing the content which is specific for the Z axis
[ILNumerics Visualization Engine] | |
ZFar |
Far clipping limit (Z axis)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
ZNear |
Near clipping limit (Z axis)
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
ZoomFactor |
Gets the zoom factor for this camera or sets it
(Inherited from Camera.)[ILNumerics Visualization Engine] |
Name | Description | |
---|---|---|
Add(Node) |
Add a node to the end of this groups child collection
(Inherited from Group.)[ILNumerics Visualization Engine] | |
AddT(T, Object, Boolean) |
Add a node to the end of this groups child collection
(Inherited from Group.)[ILNumerics Visualization Engine] | |
BeginVisit | (Overrides CameraBeginVisit(RenderParameter).) | |
Configure |
Configure the subtree after changes to any buffer
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Copy |
Create a shallow copy of this object
(Overrides CameraCopy.)[ILNumerics Visualization Engine] | |
CopyFrom | (Inherited from Camera.) | |
CreateSynchedCopy | (Overrides CameraCreateSynchedCopy(Node).) | |
Detach |
Detach all shapes from this subtree for individual configurations
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Dispose |
Dispose the complete subtree (this is rarely needed)
(Inherited from Group.)[ILNumerics Visualization Engine] | |
EndVisit |
In a derived class allows to implement custom logic for reacting on the end of visiting this node.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Find(Object, NullablePrimitives) |
Searches the subtree for nodes with matching tag and (optional) primitive type
(Inherited from Group.)[ILNumerics Visualization Engine] | |
FindT(Object, PredicateT) |
Searches the subtree for all nodes with matching criteria
(Inherited from Group.)[ILNumerics Visualization Engine] | |
FindByIdT |
Finds a typed node in this subtree, filter by ID
(Inherited from Group.)[ILNumerics Visualization Engine] | |
FirstT |
Gets first node with matching criteria from subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
FirstUpT |
Finds a group node on the path up to root
(Inherited from Group.)[ILNumerics Visualization Engine] | |
GetEnumerator | (Inherited from Group.) | |
GetLimits |
Compute the 3D limits (extent) of this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
getLimitsInternal | (Inherited from Group.) | |
InsertT |
Insert a node into the child collection at predefined index
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Move |
Move the camera position according to a distance given in clip coordinates
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
OnDisposing | (Inherited from Node.) | |
OnMouseClick | (Inherited from Node.) | |
OnMouseDoubleClick | (Inherited from Camera.) | |
OnMouseDown | (Inherited from Camera.) | |
OnMouseEnter | (Inherited from Node.) | |
OnMouseLeave | (Inherited from Node.) | |
OnMouseMove | (Overrides CameraOnMouseMove(MouseEventArgs).) | |
OnMouseUp | (Inherited from Node.) | |
OnMouseWheel | (Overrides CameraOnMouseWheel(MouseEventArgs).) | |
OnPropertyChanged |
Fires a Changed event
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
RaiseMouseClick | (Inherited from Node.) | |
RaiseMouseDoubleClick | (Inherited from Node.) | |
RaiseMouseDown | (Inherited from Node.) | |
RaiseMouseEnter | (Inherited from Node.) | |
RaiseMouseLeave | (Inherited from Node.) | |
RaiseMouseMove | (Inherited from Node.) | |
RaiseMouseUp | (Inherited from Node.) | |
RaiseMouseWheel | (Inherited from Node.) | |
Remove |
Remove a node from this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Reset |
Resets Camera.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Rotate(Quaternion) |
Rotate the camera position based on the rotation stored in a quarternion
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Rotate(Vector3, Double) |
Rotate this subtree by rotation axis and angle
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Rotate(Double, Double, Double, Double) |
Rotate this subtree by rotation axis and angle
(Inherited from Group.)[ILNumerics Visualization Engine] | |
RotateX |
Move the camera position forward around the look at point, keep the same distance.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
RotateY |
Rotate the camera position to the left / rigth around the look at point, keep the same distance.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
RotateZ |
Rotate the camera around the vector connecting the camera position with the center of rotation.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Scale(Vector3) |
Scales this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Scale(Double, Double, Double) |
Scales this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Synchronize |
Synchronizes Camera.
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
SynchronizeChildren | (Inherited from Group.) | |
ToString |
Convert all camera parameter to string
(Inherited from Camera.)[ILNumerics Visualization Engine] | |
Translate(Vector3) |
Translates this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
Translate(Double, Double, Double) |
Translates this subtree
(Inherited from Group.)[ILNumerics Visualization Engine] | |
VisitInternal | (Inherited from Group.) |
Name | Description | |
---|---|---|
Disposing |
Fires, before the node is getting disposed
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseClick |
Fires when the object is clicked
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseDoubleClick |
Fires when the object was double clicked
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseDown |
Fires when a mouse button was pressed over the object
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseEnter |
Fires when the mouse enters the object region
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseLeave |
Fires when the mouse leaves the object region
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseMove |
Fires when the mouse was moved over the object
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseUp |
Fires when a mouse button was released over the object
(Inherited from Node.)[ILNumerics Visualization Engine] | |
MouseWheel |
Fires when the mouse wheel was moved over the object
(Inherited from Node.)[ILNumerics Visualization Engine] | |
PropertyChanged |
Fires on any property state changes
(Inherited from Node.)[ILNumerics Visualization Engine] |
Name | Description | |
---|---|---|
DefaultTag |
The tag used to identify the tripod within a scene.
| |
m_allowPan |
Boolean variable that is true, if panning is allowed, defautl: true.
(Inherited from Camera.) | |
m_allowRotation |
Boolean variable that is true, if rotating is allowed, default: true:
(Inherited from Camera.) | |
m_allowZoom |
Boolean variable that is true, if zooming is allowed, default: true.
(Inherited from Camera.) | |
m_animations | (Inherited from Group.) | |
m_aspectRatioMode |
The current aspect ratio mode.
(Inherited from Camera.) | |
m_children | (Inherited from Group.) | |
m_isGlobal |
Flag identifying the visibility scope of this camera.
(Inherited from Camera.) | |
m_mouseStartF |
The coordinates where the mouse started a dragging operation.
(Inherited from Camera.) | |
m_timeoutAware | (Inherited from Group.) | |
m_zoomFactor |
Zoom factor, default: 1.
(Inherited from Camera.) | |
XArrowDefaultTag |
The tag used to identify the X axis specific content of the tripod.
| |
YArrowDefaultTag |
The tag used to identify the Y axis specific content of the tripod.
| |
ZArrowDefaultTag |
The tag used to identify the Z axis specific content of the tripod.
|
The tripod is attached to a main camera by adding the Tripod class as a child to that camera. From now on the tripod will follow its rotation. Note that the tripod does not need to be a direct child of the camera. The tripod will recognize the rotation of the first camera which it finds on the path up to the root of the scene.
Tripod allows the full configuration flexibility of regular cameras: ScreenRect is used to define the screen rectangle the tripod is occupying. AspectRatio, Projection and even arbitrary Transforms can be configured as well.
Tripod provides some interactive capabilities: It allows to zoom in / out with the mouse wheel when the mouse is over the tripod. When the user drags the mouse with the left mouse button, the corresponding scene is rotated. If the dragging starts on one of the three axis identifier (the X-, Y- or Z-arrow with the Arrow3D style or the X-,Y- or Z label for the simple style) the rotation will become restricted to that specific axis only. When the Shift key is down, all interactions are greatly slowed down by a factor of 10. The interaction can be disabled for the end user by setting the AllowZoom and AllowRotation properties of the base class to false.
One can use Tripod as starting point for own custom tripod implementation. The constructor parameter Tripod(Object, TripodStyle, CameraQuadrant, Single) 'style' is used to define the style of the tripod. Set this to Empty in order to get an empty tripod group, keeping its functionality: It will rotate its (arbitrary) content according to the parent camera transformation. The example below demonstrates how this could be used to get an interactive thumbnail of a scene or parts of it. Another example is found in the Tripod_Configuration example.
[ILNumerics Visualization Engine]
private void ilPanel1_Load(object sender, EventArgs e) { // some simple scene ilPanel1.Scene.Camera.Add(new Sphere()); // add a tripod to the scene, following the main scenes rotation ilPanel1.Scene.Camera.Add(new Tripod()); }
private void ilPanel1_Load(object sender, EventArgs e) { // Create and add some scene content. We wrap it into a group just to // have the scene available for easier copying later. var group = ilPanel1.Scene.Camera.Add(new Group() { Shapes.Sphere2, Shapes.Gear25, Shapes.Gear25Wireframe }); // Create and add a tripod right to the main camera. It could be added to any other camera as well. // Set the tripod style empty in order to prevent the standard (Arrow3D based) tripod to show up. ilPanel1.Scene.Camera.Add(new Tripod(style: TripodStyle.TripodEmpty) { // place the tripod to upper left corner ScreenRect = new RectangleF(0.05f, 0.05f, 0.1f, 0.1f), // the tripod could be configured independently //AspectRatioMode = ILNumerics.Drawing.AspectRatioMode.StretchToFill, // Add custom content to the tripod: a scaled copy of the above scene Children = { new Group(scale: new Vector3(.5,0.5,0.5)) { group } } }); }