IDraw Interface
- Begin
- End
- Vertex
- Normal
- Color
- LineWidth
- PointSize
- PushAttrib
- PopAttrib
- PushMatrix
- PopMatrix
- Translate
- Rotate
- LoadIdentity
IDraw interface gives direct access to the underlying rendering engine. It allows drawing
of some elements in the DG Kernel view directly, without having a correspondent object as part of the current model. This method is useful for drawing some auxiliary objects or annotations, which are volatile and should not be stored with the
model..
IDraw
interface can be obtained via path: Control->GetModel
-> IModel ->IDraw.
Methods of IDraw must be called as part of handler for ClientDraw
DG Kernel control event.
IDraw interface is designed to follow closely functionality of OpenGL library
interface. Methods of IDraw can be mapped to The OpenGL API by prefixing the
methods name with "gl" prefix. For example Begin() method is
mapped to glBegin OpenGL function. This allows using more extensive
documentation available for OpenGL.
See also
Cannon sample,
Interface List
HRESULT Begin(EDrawPrimitive mode)
Parameters
mode- [in] Element of EDrawPrimitive
enumeration.
- Remarks:
- Call to this method means that all consequent calls to the Vertex()
method before the next End call are related to the current primitive of type mode.
Every call to Begin() method should have a correspondent End()
call.
Example:
Sequence: iDraw.Begin( EDrawPrimitive.eTriangles );
iDraw.Vertex(0.0, 0.0, 0.0);
iDraw.Vertex(1.0, 0.0, 0.0);
iDraw.Vertex(0.0, 1.0, 0.0);
iDraw.End();
will draw a triangle of size 1 in plane x and y of the 3d space.
HRESULT End()
- Remarks:
-
- Ends sequence of Vertex() calls related to the primitive, which was started
with the last Begin call.
HRESULT Vertex(double x, double y, double z)
Parameters
x,y,z - [in] coordinates of the
vertex.
Remarks:
This method supplies coordinates of the next vertex for the current primitive
drawn between Begin() and End() calls. Coordinates are assumed to be relative to
the current drawing frame (See remarks for the Translate
method)
HRESULT Normal(double nx, double ny, double nz)
Parameters
nx,ny,nz - [in] coordinates of the
normal vector of the current two-dimensional primitive (triangle, quad, etc)
Remarks:
Call to Normal method sets the current normal position for the next vertex
drawn with a call to Vertex() method of whole primitive, if called once.
Coordinates are assumed to be relative to the current drawing frame (See
remarks for the Translate method)
HRESULT Color(double red, double green, double blue, double alpha)
Parameters
red, green, blue, alpha [in] - components of the
current color, which will be applied to the next vertex of whole primitive if
called once. alpha is the transparency component. alpha
= 1.0 means the primitive will be opaque. alpha = 0.0
means the primitive will be totally transparent.
HRESULT LineWidth(float width)
Parameters
width - [in] new width in screen
pixels that will be used for drawing lines.
HRESULT PointSize(float size)
Parameters
size - [in]
new width in screen pixels which will be used for drawing lines.
HRESULT PushAttrib()
Remarks:
Stores current settings of colour, line width and point size on a stack. Use PopAttrib() to
restore settings stored with this method call.
HRESULT PopAttrib()
Remarks:
Restores colour, line width and point which where current at the last call
to PushAttrib() method.
HRESULT PushMatrix()
Remarks:
Stores position and orientation of the current drawing frame before
performing any transformations using Translate
or Rotate methods.
HRESULT PopMatrix()
Remarks:
Restores position and orientation of the current drawing frame which was current at the last call
to PushMatrix() method.
HRESULT Translate(double vx, double vy, double vz)
Parameters
vx,vy,vy - [in] coordinates of the translation vector
Remarks:
Modifies position of the local Drawing Frame. All Vertex() calls refer to
coordinates in the local drawing frame, so that result of drawing command depends
on the position and orientation of the frame. At the first call to OnClientDraw() DG Kernel
event handler position of the current frame coincides with the global axes. As the result of this method position of the current frame will be changed by the translation vector above.
HRESULT Rotate(double angle, double vx, double vy, double vz)
Parameters
angle - angle in degrees to rotate by.
vx,vy,vy - [in] coordinates of the axis of rotation.
Remarks:
Modifies orientation of the local drawing frame (See remarks for the Translate
method) As the result of this method position of the current frame will be
rotated by angle around the above axis.
HRESULT LoadIdentity()
Remarks:
Resets orientation and position of the local drawing frame (See remarks for the Translate
method) As the result of this method the current frame will coincide with the
global 3D frame
|