An NDoc Documented Class Library

OpenGlDevice Members

OpenGlDevice overview

Public Instance Constructors

OpenGlDevice Constructor Initializes a new instance of the OpenGlDevice class.

Public Instance Fields

ColorEnabled (inherited from MNDevice) 
DrawEnabled (inherited from MNDevice) If DrawEnabled = false then the drawmethods don't works. In combination with HitEnabled you can trick:
Draw an invisible, but catchenabled object, so you have an invisible hotspot.
GenerateNames (inherited from MNComponent) If GenerateNames is true then a MNName willbe generated if the parent is set to a component with has no name. With GenerateNames is guarantized, the every member of a tree ( except the root ) has a unique name and there is a fullpath, with that the element can be identified.
RenderingContext 
UpDateCount (inherited from MNComponent) 

Public Instance Properties

BackColor (inherited from MNDevice) Retrieves and sets the color of the background
Bitmap (inherited from MNDevice) 
CatchDistance (inherited from MNDevice) With this value the magnetism is controlled.
Objects, who are nearer as Catchdistance will be added to the HitItemlist.
It is the distance in screen coordinate. By default the value is 5 pixels.
CatchDistanceF (inherited from MNDevice) Converts the value CatchDistance in world distance.
ClickedPosCount (inherited from MNDevice) 
Count (inherited from MNComponent) Returns the count of children
CurrentHit (inherited from MNDevice) If a hit happens then CurrentHit holds the first element if HitItemlist
Currentxyz (inherited from MNDevice) Returns the 3-point, which is allocated by the mousepointer and magnetism to some objects
DesignMode (inherited from MNDevice) 
EventServer (inherited from MNDevice) 
Eye (inherited from MNDevice) Returns the point of view.
EyeDistance (inherited from MNDevice) This is the distance from the Eye to the projectionplane. In case of orthogonal projection we have a fix EyeDistance of 30, else the distance is given by WorldWidth/(2*Tan(FieldOfView));
FarClipping (inherited from MNDevice) Sets or gets the farrclipping distance. She is relative to the Eye. By default she is 50. This means an ob ject, which is farer from the eye than 50 logical unit wil be clipped.
FieldOfView (inherited from MNDevice) Sets the angle of the FieldOfView in degree.
An angle of zero indicates that we have a orthogonal projection
An angle different to zero indicates that we have a perspective projection. A good angle for that is ~ 20°
FontName (inherited from MNDevice) Sets or gets the name of the current font. A call to drawText uses this font.
FontSize (inherited from MNDevice) Determes the size of the font in logical units.
See also drawText
Graphics (inherited from MNDevice) 
HitEnabled (inherited from MNDevice) If HitEnabled = true then the selectmechanism works, else it is turned off. Default it is true. See also HitItemlist
HitItemlist (inherited from MNDevice) HitItemlist contains Hititems, which belong to selected drawing elements. This are elements, who lay in the near of the Point p, for which the method Select was called. See also HitItemList
Item (inherited from MNComponent) The default indexer retieves and sets MNComponents
Lighting (inherited from MNDevice) Controls, whether the lighting is on or not.
Lights (inherited from MNDevice) Contains the lights, who are used from the device
Material (inherited from MNDevice) Sets and gets the Material.
MNName (inherited from MNComponent) Name of the component.
ModelMatrix (inherited from MNDevice) The ModelMatrix plays an important rule. If scene data are going to the device the they wold be transformed first by the modelmatrix and then by the ProjectionMatrix. After this two transformations the data are laying in a cube, which is bounded by (-1, -1, -1) and (1, 1, 1). In the last step the points are posiionned in the screen by expand into the viewport. You see, that the modelmatrix is a very powerful property.
Surface S = new Sphere(4);
Device.DrawSurface(S);
// save the modelmatrix
Device.PushMatrix()
Device.ModelMatrix = Device.ModelMatrix * Translation(new (5, 0, 0);
// this Sphere has the center at (5 /0 /0 ).
Device.DrawSurface(S);
Device.ModelMatrix = Device.ModelMatrix * Translation(new (5, 0, 0);
// this Sphere has the center at (5 /0 /0 ).
Device.DrawSurface(S);
// reset the Modelmatrix
Device.PopMatrix()

Name (inherited from MNDevice) 
Navigate (inherited from MNDevice) If Navigate is true then you can navigate in the scene by pressed mousemoves.
NearClipping (inherited from MNDevice) Sets or gets the nearclipping distance. She is relative to the Eye. By default she is 1. This means an object, which is nearer to the Eye as 1 logical unit will be clipped.
Parent (inherited from MNComponent) Sets or gets the parent of the component and looks for the correct and unique name.
See also GenerateNames, setParent
PenColor (inherited from MNDevice) With this color the lines of an object will be drawn. See also PolygonMode
PenStyle (inherited from MNDevice) 
PenWidth (inherited from MNDevice) 
PixelsPerUnit (inherited from MNDevice) Set and gets the number of pixels per logical unit. Default is 30. A larger value makes a scene bigger.
PolygonMode (inherited from MNDevice) The PolygonMode indicates wether the scene is drawn: as line model or as full rendered model. See PolygonMode
ProjectionBase (inherited from MNDevice) Gets or sets the projectionbase in which the scene will be projected. You can also transform the
...
// rotate the projectionbase around her x-axis
Base P = Device.ProjectionBase;
P = P.mul(Math.Matrix.Rotation(P.Basex, Math.PI/6)); 
Device.ProjectionBase = P

...

ProjectionMatrix (inherited from MNDevice) Contains the information about the projection of 3D-Data to the screen The matrix will be influenced by setting the FieldOfView. But you can set this directly for example:
// initialize ProjectionMatrix by a frustum 
ProjectionMatrix = Math.Matrix.Frustum(-10, 10, -10, 10, 2, 50);
// or 
ProjectionMatrix = Matrix.Orthogonal(left,right,bottom,top,-20,20);

ProjectionPoint (inherited from MNDevice) 
RenderMode (inherited from MNDevice) This property holds the RenderMode. He indicates the kind of drawing. If RenderMode = Nothing the the device is not in a paintstate. The RenderMode = Select is used to calculate the selection. See Select The RenderMode = MaxBox is used to calculate an environmentbox for an object. The RenderMode = MaxRect is used to calculate an Rectangle for an object.
Root (inherited from MNDevice) If you set tis property to a Entity, the the Entity will be drawn with all its children. Apart of this the ActriveCtrl Work will be drawn by the device.
Tag (inherited from MNComponent) 
texture (inherited from MNDevice) Sets and gets a Texture, who will be drawn.
TextureMatrix (inherited from MNDevice) Get and sets a transformation for a texture.
ViewMatrix (inherited from MNDevice) 
ViewPort (inherited from MNDevice) 
WinControl (inherited from MNDevice) 
Work (inherited from MNDevice) This is an ActiveCtrl which is created by the Device. It is used as Parent for ActiveCtrl Apart of this the Root will be drawn if it is not null.
WorldHeight (inherited from MNDevice) Get the height of the window in logical units
WorldLeftUp (inherited from MNDevice) 
WorldRightDown (inherited from MNDevice) 
WorldWidth (inherited from MNDevice) Returns the width of the windows in logical untits.
Zoomfactor (inherited from MNDevice) Sets or gets the zoomfactor of the scene. By default it is 1. If you want to play the scene with 200% the set Zoofactor to 2;

Public Instance Methods

addChild (inherited from MNComponent) Adds an elment in the list.
addLight (inherited from MNDevice) With this method, you can add a Light.
BeginPaint 
ChildByName (inherited from MNComponent) Retrieves the index of child by a name.
ChildByPathName (inherited from MNComponent) You can get a MNComponent by setting a fullpath relative to the given MNComponent. Separated are the names by "/".
MNComponent root = new MNComponent();
MNComponent a = new MNComponent();
MNComponent b = new MNComponent();
MNComponent c = new MNComponent();
a.MNName = "Frank";
b.MNName = "Joe";
c.MNName = "Sam";
c.Parent = b;
b.Parent = a;
a.Parent = root;
MNComponent d = root.ChildByPathName("Frank/Joe/Sam");
// d is then the component c

ClearScreen Overrides the ClearScreen-method by calling OpenGl-methods.
ClickedPos (inherited from MNDevice) 
Close 
DisplayListFree 
DisplayListPlay 
Dispose (inherited from MNComponent) 
drawCurve (inherited from MNDevice) Draw a Curve
drawImage 
drawLine (inherited from MNDevice) Draw a Line From A to B.
drawPoint (inherited from MNDevice)Overloaded. Draws a point. The kind of drawing is describben in p. MNDevice.PointData
drawPolyCurve (inherited from MNDevice) Draws an array of curve.
drawPolyLine (inherited from MNDevice) Draws a Polyline. if PolygonMode = Fill, then a filled area bounded by lines is drawn, but shold they have not crosspoints
drawPolyPolyCurve (inherited from MNDevice) This primitive drawmethod draws a Loca. In case of PolygonMode = line, simple curves are drawn. If PolygonMode = Fill, then a filled area bounded by curves is drawn. The Loca must have the property, thats the entries are coherently curvearrays and additionally there are no crosspoints. if this is done then curvearrays, which lays in an other filled curvearray is "drawn as hole". If in lays in a hole then the curvearray is filled drawn.
drawPolyPolyLine (inherited from MNDevice) This primitive drawmethod draws a PolyPolyline. In case of PolygonMode = line, simple lines are drawn. If PolygonMode = Fill, then a filled area bounded by lines is drawn. The Loxyz must have the property, thats the entries are coherently xyzarrays and additionally there are no crosspoints. If this is done, then xyzarrays, which lays in an other filled xyzarray are "drawn as hole". If it lays in a hole then the xyzarray is filled drawn.
drawSurface (inherited from MNDevice)Overloaded. This call draw a Surface. Further you can set the resolutions of the u and v parameters.
drawText Overrides the method drawText and draw the text at a specified position with a given extrusion.
drawTriangle Overrides the drawTriangle-method and implements them in terms of OpenGL
Equals (inherited from Object) 
FromScr (inherited from MNDevice)Overloaded. Calculates a LineType in worldcoordinates, which is prjected to the screenpoint p. ToScr
fullPath (inherited from MNComponent) Gives the full path of the component over all ancestors until a null-parent occurs. This parent often called the root. The separator of the names is "/".
getDisplayList 
GetEnumerator (inherited from MNComponent) Returns the Enumerator of an intern ArrayList
GetHashCode (inherited from Object) 
getPath (inherited from MNComponent) 
getRoot (inherited from MNComponent) 
GetService (inherited from MNDevice) 
GetSmoothBase (inherited from MNDevice) Retrieves a Base, who lies on the catched object. The direction of the x-axes is given by the direction of a catched Direction, the z-axis is the normal of a catched Normal. The BaseOrigin is puted to the nearestpoint of the catch object. If you draw this base, she smooths aound the objet, who layes under the cursor.
GetTextExtent (inherited from MNDevice) 
GetType (inherited from Object) 
InsertChild (inherited from MNComponent) 
MoveTO (inherited from MNComponent) 
MulMatrix 
Paint (inherited from MNDevice) Paint calls the tree method BeginPaint, DoPaint and EndPaint. The Method is allways called, when the WinControl should be painted.
PopMatrix 
popTag (inherited from MNDevice) Pops a tag, which was pushed with pushTag
PushMatrix 
pushTag (inherited from MNDevice) Pushes a Tag to a Tag-stack. If the mouse hits a drawelement the last tag is set into the HitItem. You can get it from the HitItemlist
Refresh (inherited from MNDevice) Refreshes the device
RemoveChild (inherited from MNComponent) 
removeLight (inherited from MNDevice) Removes a Light from the list Lights. Its the same as Lights.Remove(Light);
Select (inherited from MNDevice) Clears the HitItemlist and searches those draw elements, who lay in the near to the point p. Near means, that the distance to p is less then CatchDistance The method calls the Paintmethod of the device with RenderMode = RenderMode.Select.
SetCurrentCursor (inherited from MNDevice) 
SetDefaultCursor (inherited from MNDevice) 
SimulateMouseDown (inherited from MNDevice) 
SimulateMouseMove (inherited from MNDevice) 
SwapBuffers 
ToScr (inherited from MNDevice)Overloaded. Calulates the screencoordinates of a 3d-Point p.
ToString (inherited from Object) 
UpDate (inherited from MNComponent) This protected method is called, if some changes are made. Some times on should inform other components about this changes to obtain a consisting system.
UpDated (inherited from MNDevice) If you make some changing in the component you should call first
UpDating()
..Change some things
UpDated()
In this case the method Refresh will be called only one time. Internal a counter will be incremented for UpDating and decremented by UpDated. If he is 0 then Refresh is called. See UpDating
UpDating (inherited from MNDevice) If you make some changing in the component you should call first
UpDating()
..Change some things
UpDated()
In this case the method Refresh will be called only one time. Internal a counter will be incremented for UpDating and decremented by UpDated. If he is 0 then Refresh is called. See UpDated

Public Instance Events

OnKeyDown (inherited from MNDevice) 
OnKeyPress (inherited from MNDevice) 
OnKeyUp (inherited from MNDevice) 
OnMouseDown (inherited from MNDevice) The event will be call by the MouseDown-method
OnMouseMove (inherited from MNDevice) The event will be call by the MouseMove-method
OnMouseUp (inherited from MNDevice) The event will be call by the MouseUp-method
OnPaint (inherited from MNDevice) The Event OnPaint is called from DoPaint.
OnUpdate (inherited from MNComponent) 
OnUpdating (inherited from MNComponent) 

Protected Instance Methods

CheckViewPort Overrides this method and moves the new Viewport to the OpenGl-engine
DoPaint (inherited from MNDevice) DoPaint calls at first the paintmetod of the Root, the the paintmethod of the Work and finally the OnPaint-event.
EndPaint (inherited from MNDevice) The last call in the Paint-method is EndPaint. It fire the SwapBuffers-method
Finalize (inherited from MNDevice) The Destructor sets the WinControl null.
GetDC (inherited from MNDevice) 
GetGraphics (inherited from MNDevice) 
getModelMatrix (inherited from MNDevice) protected getMethod for the ModelMatrix-property.
getProjectionBase (inherited from MNDevice) protected getmethod of the ProjectionBase-property.
getProjectionMatrix (inherited from MNDevice) GetMethod of the ProjectionMatrix.
GetTextureMatrix (inherited from MNDevice) Virtual getmethod of the property TextureMatrix
getWorldHeight (inherited from MNDevice) Getmethod of the WorldHeight-property
getWorldWidth (inherited from MNDevice) GetMethod of the property WorldWidth
IsReady Overrides the IsReady-method and checks, wheter the OglContext is current or not.
KeyDown (inherited from MNDevice) 
KeyPress (inherited from MNDevice) 
KeyUp (inherited from MNDevice) 
LineStrip Overrides the LineStrip-method and implements them in terms of OpenGL
MemberwiseClone (inherited from Object) 
MouseDown (inherited from MNDevice) The device gets the MouseDown - event from the WinControl.
MouseMove (inherited from MNDevice) The device gets the MouseMove - event from the WinControl.
MouseUp (inherited from MNDevice) The device gets the MouseUp - event from the WinControl.
newLight Overrides the newLight-method and returns a OglLight.
ReleaseDC (inherited from MNDevice) 
Resize 
SetBitmap (inherited from MNDevice) 
setFontName Overrides the setFontName-method. If no font with that name is loaded, the displaylists will be generated for all characters. This ensures that a drawText-method, can play the text as displaylists.
SetGraphics (inherited from MNDevice) 
SetLighting Overrides the SetLighting-method by calling OpenGL-methods
setModelMatrix Overrides the setModelMatrix-method and implements this with Opengl-calls.
setParent (inherited from MNComponent) Virtual set-Method of the property Parent.
setPenStyle 
SetPenWidth 
setProjectionBase (inherited from MNDevice) protected setmethod of the ProjectionBase-property.
setProjectionMatrix Overrides the setProjectionMatrix-method and implements this with Opengl-calls.
setTexture Overrides the setTexture-method to implement OpenGlCalls.
SetTextureMatrix Overrides the SetTextureMatrix-method and implements this with Opengl-calls.
SetViewPort (inherited from MNDevice) 
SetWinControl 
setZoomFactor (inherited from MNDevice) Setmethod of the property Zoomfactor
SizeChanged (inherited from MNDevice) If the size of the WinControl was changed then this method is called.
SolidConvex Overrides the SolidConvex-method and draws it in terms from OpenGl.
UpDateMaterial Overrides the UpDateMaterial-method and moves the materialproperties to the OpenGL-engine
ValidHandleCreated Overrides ValidHandleCreated and initialize some properties for the usage of OpenGl
ValidHandleDestroyed (inherited from MNDevice) If the Handle of the WinControl is destructed or WinControl is set to null the ValidHandleDestructed will be called. This is a good moment to reset some created things.

See Also

OpenGlDevice Class | Minais.Drawing3d.Devices Namespace