SharpGL.SceneGraph
The IHasMaterial interface can be implemented by any scene object
to allow a material to be associated with the object.
Gets or sets the material.
The material.
IDeepCloneable objects can create a deep clone of themselves.
Creates a deep clones of this instance.
A deep clone of this instance.
This aids the design of the OpenGLCtrl
Initializes a new instance of the class.
Remove Control properties that are not supported by the control.
The VertexConverter class allows you to edit vertices in the propties window.
This converts the Material Collection into something more functional.
The texture editor makes Textures in the properties window much better,
giving them a little thumbnail.
This converts the Quadric Collection into something more functional, and
allows you to add many types of quadrics.
This converts the Camera collection into something more usable (design time wise)
by allowing all the types of camera to be added.
This converts the evaluator collection into something more usable (design time wise)
by allowing all the types of evaluator to be added.
This class has all the settings you can edit for fog.
The OpenGLAttributeGroup is the base for groups of opengl attributes.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Pushes the attributes onto the specified OpenGL attribute stack.
The OpenGL instance.
Pops the attributes off the specified OpenGL attribute stack.
The OpenGL instance.
The attribute flags for the group.
Gets the attribute flags.
todo use get only, xmlignore and don't store them - return them on the fly.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable alpha test.
The enable alpha test.
Gets or sets the alpha test function.
The alpha test function.
Gets or sets the alpha test reference value.
The alpha test reference value.
Gets or sets the enable blend.
The enable blend.
Gets or sets the blending source factor.
The blending source factor.
Gets or sets the blending destination factor.
The blending destination factor.
Gets or sets the enable dither.
The enable dither.
Gets or sets the draw buffer mode.
The draw buffer mode.
Gets or sets the enable logic op.
The enable logic op.
Gets or sets the logic op.
The logic op.
Gets or sets the color of the color mode clear.
The color of the color mode clear.
Gets or sets the color of the index mode clear.
The color of the index mode clear.
Gets or sets the color mode write mask.
The color mode write mask.
Gets or sets the index mode write mask.
The index mode write mask.
This class has all the settings you can edit for current.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the color of the current.
The color of the current.
Gets or sets the index of the current color.
The index of the current color.
Gets or sets the current normal vector.
The current normal vector.
Gets or sets the current texture coordiate.
The current texture coordiate.
Gets or sets the current raster position.
The current raster position.
Gets or sets the color of the current raster.
The color of the current raster.
Gets or sets the index of the current raster color.
The index of the current raster color.
Gets or sets the current raster texture coordiate.
The current raster texture coordiate.
Gets or sets the current edge flag.
The current edge flag.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable depth writemask.
The enable depth writemask.
Gets or sets the depth clear value.
The depth clear value.
Gets or sets the depth function.
The depth function.
Gets or sets the enable depth test.
The enable depth test.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable alpha test.
The enable alpha test.
Gets or sets the enable auto normal.
The enable auto normal.
Gets or sets the enable blend.
The enable blend.
Gets or sets the enable cull face.
The enable cull face.
Gets or sets the enable depth test.
The enable depth test.
Gets or sets the enable dither.
The enable dither.
Gets or sets the enable fog.
The enable fog.
Gets or sets the enable lighting.
The enable lighting.
Gets or sets the enable line smooth.
The enable line smooth.
Gets or sets the enable line stipple.
The enable line stipple.
Gets or sets the enable color logic op.
The enable color logic op.
Gets or sets the enable index logic op.
The enable index logic op.
Gets or sets the enable normalize.
The enable normalize.
Gets or sets the enable point smooth.
The enable point smooth.
Gets or sets the enable polygon offset line.
The enable polygon offset line.
Gets or sets the enable polygon offset fill.
The enable polygon offset fill.
Gets or sets the enable polygon offset point.
The enable polygon offset point.
Gets or sets the enable polygon smooth.
The enable polygon smooth.
Gets or sets the enable polygon stipple.
The enable polygon stipple.
Gets or sets the enable scissor test.
The enable scissor test.
Gets or sets the enable stencil test.
The enable stencil test.
Gets or sets the enable texture1 D.
The enable texture1 D.
Gets or sets the enable texture2 D.
The enable texture2 D.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
This class has all the settings you can edit for hints.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the perspective correction hint.
The perspective correction hint.
Gets or sets the point smooth hint.
The point smooth hint.
Gets or sets the line smooth hint.
The line smooth hint.
Gets or sets the polygon smooth hint.
The polygon smooth hint.
Gets or sets the fog hint.
The fog hint.
This class has the light settings.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
The line attributes.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the width.
The width.
Gets or sets the smooth.
The smooth.
This class has all the settings you can edit for lists.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
The list base.
Gets or sets the list base.
The list base.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the color of the map.
The color of the map.
Gets or sets the map stencil.
The map stencil.
Gets or sets the index shift.
The index shift.
Gets or sets the index offset.
The index offset.
Gets or sets the red scale.
The red scale.
Gets or sets the green scale.
The green scale.
Gets or sets the blue scale.
The blue scale.
Gets or sets the alpha scale.
The alpha scale.
Gets or sets the depth scale.
The depth scale.
Gets or sets the red bias.
The red bias.
Gets or sets the green bias.
The green bias.
Gets or sets the blue bias.
The blue bias.
Gets or sets the alpha bias.
The alpha bias.
Gets or sets the depth bias.
The depth bias.
The point settings.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
The size.
The smooth flag.
Gets or sets the size.
The size.
Gets or sets the smooth.
The smooth.
The polygon settings.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable cull face.
The enable cull face.
Gets or sets the enable smooth.
The enable smooth.
Gets or sets the cull faces.
The cull faces.
Gets or sets the front faces.
The front faces.
Gets or sets the polygon draw mode.
The polygon draw mode.
Gets or sets the offset factor.
The offset factor.
Gets or sets the offset bias.
The offset bias.
Gets or sets the enable offset point.
The enable offset point.
Gets or sets the enable offset line.
The enable offset line.
Gets or sets the enable offset fill.
The enable offset fill.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the polygon stipple.
The polygon stipple.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable scissor test.
The enable scissor test.
Gets or sets the scissor X.
The scissor X.
Gets or sets the scissor Y.
The scissor Y.
Gets or sets the width of the scissor.
The width of the scissor.
Gets or sets the height of the scissor.
The height of the scissor.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable stencil test.
The enable stencil test.
Gets or sets the stencil function.
The stencil function.
Gets or sets the stencil reference.
The stencil reference.
Gets or sets the stencil mask.
The stencil mask.
Gets or sets the index of the stencil clear.
The index of the stencil clear.
Gets or sets the stencil write mask.
The stencil write mask.
Gets or sets the operation fail.
The operation fail.
Gets or sets the operation depth pass.
The operation depth pass.
Gets or sets the operation depth pass.
The operation depth pass.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the enable normalize.
The enable normalize.
Gets or sets the matrix mode.
The matrix mode.
This class has all the settings you can edit for fog.
Initializes a new instance of the class.
Sets the attributes.
The OpenGL instance.
Returns true if any attributes are set.
True if any attributes are set
Gets or sets the viewport X.
The viewport X.
Gets or sets the viewport Y.
The viewport Y.
Gets or sets the width of the viewport.
The width of the viewport.
Gets or sets the height of the viewport.
The height of the viewport.
Gets or sets the depth range near.
The depth range near.
Gets or sets the depth range far.
The depth range far.
The OpenGLEventArgs class.
Initializes a new instance of the class.
The gl.
The OpenGL instance.
Gets or sets the open GL.
The open GL.
The OpenGL Event Handler delegate.
Extensions to the OpenGL class for use with the Scene Graph types (allowing
vertices, GLColors etc to be used).
Set the current color.
The OpenGL instance.
The color.
This is a SharpGL helper version, that projects the vertex passed, using the
current matrixes.
The gl.
The object coordinates.
The screen coords.
Gets the model view matrix.
The gl.
Gets the projection matrix.
The gl.
Gets the texture matrix.
The gl.
Vertexes the pointer.
The gl.
The size.
The type.
The stride.
The pointer.
This is the main particle class, if you want specialised particles derive from it.
This function should initialise the particle so that it's ready to tick.
The random number generator.
This function moves the particle on a stage.
The random nunber generator.
This function draws the particle.
A basic particle.
Initializes a new instance of the class.
This function initialises the basic particle.
This function 'ticks' the particle, i.e moves it on a stage.
A random object.
This is the vertex's current position in space.
This is the velocity, do not modify!
This is the direction of the particle.
This shows the potential magnitude of the random effects of the direction.
This is the gravity affecting the particle.
Particles colour.
How much the particles colour can change by each tick.
The life left of the particle.
The lifespan of the particle.
Does the particle only exist once?
A Sphere particle.
Initializes a new instance of the class.
Draws the specified gl.
The gl.
A particle system is, you guessed it, just a collection of particles.
The base class for all elements in a scene. Anything in
the scene tree is a Scene Element. Scene elements can
have children but are very lacking in functionality -
implement
Initializes a new instance of the class.
Adds a child.
The child scene element.
Removes the child scene element.
The child scene element.
Adds an effect.
The effect.
Removes the effect.
The effect.
Returns a that represents this instance.
A that represents this instance.
The children of the element.
The effects.
Traverses this instance. Traversing simply returns
the children and all descendents in the correct order.
Traverses this instance. Traversing simply returns
the children and all descendents in the correct order.
This traversal allows for a predicate to be used.
The predicate for traversal.
Traverses this instance. Traversing simply returns
the children and all descendents of type T in the correct order.
The type of object to traverse for.
The full set of T objects in the scene.
Traverses this instance. Traversing simply returns
the children and all descendents of type T in the correct order.
The type of object to traverse for.
The predicate for traversal.
The full set of T objects in the scene.
Traverses to root element.
Gets the children.
Gets the effects.
Gets the parent.
Gets or sets the name.
The name.
Gets or sets a value indicating whether this instance is enabled.
true if this instance is enabled; otherwise, false.
A Scene Element can implement this interface to enable rendering
functionality. Note that many scene elements (materials etc) are
not actually drawn.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Initializes a new instance of the class.
This function should create and initialise 'count' particles of the correct
type. This is done automatically by default, only override if you want
to change the standard behaviour.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
This function ticks the particle system.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
The IHasObjectSpace helper.
Gets the transformation that pushes us into object space.
An Asset is something which is used in the scene, but is not in the scene
tree. An example of an asset is a material, which there may be one instance
of which is shared between many objects.
Returns a that represents this instance.
A that represents this instance.
Gets or sets the id.
The id.
Gets or sets the name.
The name.
A material object is defined in mathematical terms, i.e it's not exclusivly
for OpenGL. This means later on, DirectX or custom library functions could
be added.
An object that is Bindable is able to set itself into
the current OpenGL instance. This can be lights, materials,
attributes and so on.
Bindable objects must be able to be used without interfering
with later rendering, so as well as simply being bound directly,
they must be able to be pushed and popped.
Pushes this object into the provided OpenGL instance.
This will generally push elements of the attribute stack
and then set current values.
The OpenGL instance.
Pops this object from the provided OpenGL instance.
This will generally pop elements of the attribute stack,
restoring previous attribute values.
The OpenGL instance.
Bind to the specified OpenGL instance.
Remember, this will not push or pop the attribute
stack so will affect ALL subsequent rendering.
The OpenGL instance.
Initializes a new instance of the class.
Calculates the lighting.
The light.
The angle.
Pushes this object into the provided OpenGL instance.
This will generally push elements of the attribute stack
and then set current values.
The OpenGL instance.
Pops this object from the provided OpenGL instance.
This will generally pop elements of the attribute stack,
restoring previous attribute values.
The OpenGL instance.
Bind to the specified OpenGL instance.
The OpenGL instance.
Ambient color.
Diffuse color.
Specular color.
Emission.
Shininess.
The texture.
Gets or sets the ambient.
The ambient.
Gets or sets the diffuse.
The diffuse.
Gets or sets the specular.
The specular.
Gets or sets the emission.
The emission.
Gets or sets the shininess.
The shininess.
Gets or sets the texture.
The texture.
A Texture object is simply an array of bytes. It has OpenGL functions, but is
not limited to OpenGL, so DirectX or custom library functions could be later added.
Initializes a new instance of the class.
Pushes this object into the provided OpenGL instance.
This will generally push elements of the attribute stack
and then set current values.
The OpenGL instance.
Pops this object from the provided OpenGL instance.
This will generally pop elements of the attribute stack,
restoring previous attribute values.
The OpenGL instance.
Bind to the specified OpenGL instance.
The OpenGL instance.
This function creates the underlying OpenGL object.
This function creates the texture from an image.
The OpenGL object.
The image.
True if the texture was successfully loaded.
This function creates the texture from an image file.
The OpenGL object.
The path to the image file.
True if the texture was successfully loaded.
This function destroys the OpenGL object that is a representation of this texture.
This function (attempts) to make a bitmap from the raw data. The fact that
the byte array is a managed type makes it slightly more complicated.
The texture object as a Bitmap.
This is an array of bytes (r, g, b, a) that represent the pixels in this
texture object.
The width of the texture image.
The height of the texture image.
This is for OpenGL textures, it is the unique ID for the OpenGL texture.
Gets the name of the texture.
The name of the texture.
The ArcBall camera supports arcball projection, making it ideal for use with a mouse.
This camera contains the data needed to perform a Perspective transformation
to the projection matrix.
The camera class is a base for a set of derived classes for manipulating the
projection matrix.
Initializes a new instance of the class.
This function projects through the camera, to OpenGL, ie. it
creates a projection matrix.
This function is for when you simply want to call only the functions that
would transform the projection matrix. Warning, it won't load the identity
first, and it won't set the current matrix to projection, it's really for
people who need to use it for their own projection functions (e.g Picking
uses it to create a composite 'Pick' projection).
The camera position.
Every time a camera is used to project, the projection matrix calculated
and stored here.
The screen aspect ratio.
Gets or sets the position.
The position.
Gets or sets the aspect.
The aspect.
Initializes a new instance of the class.
This is the class' main function, to override this function and perform a
perspective transformation.
The field of view.
The near clip.
The far flip.
Gets or sets the field of view.
The field of view.
Gets or sets the near.
The near.
Gets or sets the far.
The far.
Initializes a new instance of the class.
This is the class' main function, to override this function and perform a
perspective transformation.
The arcball used for rotating.
Gets the arc ball.
This camera contains the data needed to perform a Frustum transformation
to the projection matrix.
Initializes a new instance of the class.
This is the main function of the camera, perform a Frustrum (in this case)
transformation.
The left pos.
The right pos.
The top pos.
The bottom pos.
The near pos.
The far pos.
Gets or sets the left.
The left.
Gets or sets the right.
The right.
Gets or sets the top.
The top.
Gets or sets the bottom.
The bottom.
Gets or sets the near.
The near.
Gets or sets the far.
The far.
The LookAt camera is a camera that does a 'look at' transformation.
Initializes a new instance of the class.
This is the class' main function, to override this function and perform a
perspective transformation.
This is the point in the scene that the camera is pointed at.
This is a vector that describes the 'up' direction (normally 0, 0, 1).
Use this to tilt the camera.
Gets or sets the target.
The target.
Gets or sets up vector.
Up vector.
This camera contains the data needed to perform an orthographic transformation
to the projection matrix.
Initializes a new instance of the class.
This is the main function of the class, to perform a specialised projection
in this case, an orthographic one.
The left pos.
The right pos.
The top pos.
The bottom pos.
The near pos.
The far pos.
Gets or sets the left.
The left.
Gets or sets the right.
The right.
Gets or sets the top.
The top.
Gets or sets the bottom.
The bottom.
Gets or sets the near.
The near.
Gets or sets the far.
The far.
The ArcBall camera supports arcball projection, making it ideal for use with a mouse.
Initializes a new instance of the class.
This is the class' main function, to override this function and perform a
perspective transformation.
Initializes a new instance of the class.
Creates the volume from vertices.
The vertices.
Creates the volume from a spherical volume.
The centre.
The radius.
Creates the volume from a cylindrical volume.
The baseline.
The height.
The base radius.
The top radius.
Pads the bounding volume.
The padding.
Gets the bound dimensions.
The x size.
The y size.
The z size.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
A Face is a set of indices to vertices.
Initializes a new instance of the class.
Returns the plane equation (ax + by + cz + d = 0) of the face.
The parent polygon.
An array of four coefficients a,b,c,d.
Gets the surface normal.
The parent.
This function reverses the order of the indices, i.e changes which direction
this face faces in.
The parent polygon.
This function generates normals for every vertex.
The parent polygon.
Returns a that represents this instance.
A that represents this instance.
The indices.
The neighbor indices.
Gets the count.
Gets or sets the indices.
The indices.
Gets or sets the neighbour indicies.
The neighbour indicies.
Gets or sets the material.
The material.
Scene Elements can be marked as Freezeable. If scene objects
are freezable, they can be frozen, meaning that they are locked.
Generally this means compiling the object's geometry into
a display list.
Freezes this instance using the provided OpenGL instance.
The OpenGL instance.
Unfreezes this instance using the provided OpenGL instance.
The OpenGL instance.
Gets a value indicating whether this instance is frozen.
true if this instance is frozen; otherwise, false.
A SceneElement can implement IHasObjectSpace to allow it to transform
world space into object space.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
Gets the transformation that pushes us into object space.
Any element or asset which has an OpenGL context has some
associated OpenGL resource. This means that when it is loaded
from file, it may need to be re-created, or if it is moved
between OpenGL contexts it may need to be re-created.
Any object that has an OpenGL context has a Create method, a
Destroy Method and a CurrentContext property.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
Gets the current OpenGL that the object exists in context.
An index into a set of arrays.
Initializes a new instance of the class.
This is the vertex in the polygon vertex array that the index refers to.
This is the material coord in the polygon UV array that the index refers to.
This is the index into the normal array for this vertex. A value of -1 will
generate a normal on the fly.
Gets or sets the vertex.
The vertex.
Gets or sets the UV.
The UV.
Gets or sets the normal.
The normal.
A Scene Element can be volumne bound meaning that it can
participate in hit testing and various optimisations.
Gets the bounding volume.
This enumeration describes the linear transformation order.
Translate > Rotate > Scale
Rotate > Translate > Scale
The LinearTransformation class represents a linear transformation, such
as a transformation that moves us from world space into object space.
Base class for transformations.
Performs the transformation on the current matrix.
The OpenGL instance.
Performs the transformation on the current matrix.
The OpenGL instance.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
X Component of the Translation.
Y Component of the Translation.
Z Component of the Translation.
X Component of the Rotation.
Y Component of the Rotation.
Z Component of the Rotation.
X Component of the Scale.
Y Component of the Scale.
Z Component of the Scale.
The order of the linear transformation.
Gets the translation vertex.
Gets or sets the x component of the translation.
The x component of the translation.
Gets or sets the y component of the translation.
The y component of the translation.
Gets or sets the z component of the translation.
The z component of the translation.
Gets or sets the x component of the rotation.
The x component of the rotation.
Gets or sets the y component of the rotation.
The y component of the rotation.
Gets or sets the z component of the rotation.
The z component of the rotation.
Gets or sets the x component of the scale.
The x component of the scale.
Gets or sets the y component of the scale.
The y component of the scale.
Gets or sets the z component of the scale.
The z component of the scale.
Gets or sets the transformation order.
The transformation order.
A 4x4 matrix.
Matrix Library .Net v2.0 By Anas Abidi, 2004.
The Matrix Library contains Class Matrix which provides many
static methods for making various matrix operations on objects
derived from the class or on arrays defined as double. The
'+','-','*' operators are overloaded to work with the objects
derived from the matrix class.
Returns a hash code for this instance.
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
The matrix.
Matrix object constructor, constructs an empty
matrix with dimensions: rows = noRows and cols = noCols.
no. of rows in this matrix
no. of columns in this matrix
Matrix object constructor, constructs a matrix from an
already defined array object.
the array the matrix will contain
Creates a matrix from a column major array.
The column major array.
The rows.
The columns.
The matrix.
Creates a matrix from a row major array.
The column major array.
The rows.
The columns.
The matrix.
Creates a matrix from a segment of another matrix.
The RHS.
The rows.
The cols.
Returns the 2D form of a 1D array. i.e. array with
dimension[n] is returned as an array with dimension [n,1].
In case of an error the error is raised as an exception.
the array to convert, with dimesion [n]
the same array but with [n,1] dimension
Returns the 1D form of a 2D array. i.e. array with
dimension[n,1] is returned as an array with dimension [n].
In case of an error the error is raised as an exception.
the array to convert, with dimesions [n,1]
the same array but with [n] dimension
Sets the identity matrix as the identity matrix. It must be N x N (i.e.
square).
Returns an Identity matrix with dimensions [n,n] in the from of an array.
the no. of rows or no. cols in the matrix
An identity Matrix with dimensions [n,n] in the form of an array
Returns the summation of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First array in the summation
Second array in the summation
Sum of Mat1 and Mat2 as an array
Returns the summation of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First matrix in the summation
Second matrix in the summation
Sum of Mat1 and Mat2 as a Matrix object
Returns the summation of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First Matrix object in the summation
Second Matrix object in the summation
Sum of Mat1 and Mat2 as a Matrix object
Returns the difference of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First array in the subtraction
Second array in the subtraction
Difference of Mat1 and Mat2 as an array
Returns the difference of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First matrix in the subtraction
Second matrix in the subtraction
Difference of Mat1 and Mat2 as a Matrix object
Returns the difference of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First Matrix object in the subtraction
Second Matrix object in the subtraction
Difference of Mat1 and Mat2 as a Matrix object
Returns the multiplication of two matrices with compatible
dimensions.
In case of an error the error is raised as an exception.
First array in multiplication
Second array in multiplication
Mat1 multiplied by Mat2 as an array
Returns the multiplication of two matrices with compatible
dimensions OR the cross-product of two vectors.
In case of an error the error is raised as an exception.
First matrix or vector (i.e: dimension [3,1]) object in
multiplication
Second matrix or vector (i.e: dimension [3,1]) object in
multiplication
Mat1 multiplied by Mat2 as a Matrix object
Returns the multiplication of two matrices with compatible
dimensions OR the cross-product of two vectors.
In case of an error the error is raised as an exception.
First matrix or vector (i.e: dimension [3,1]) object in
multiplication
Second matrix or vector (i.e: dimension [3,1]) object in
multiplication
Mat1 multiplied by Mat2 as a Matrix object
Returns the determinant of a matrix with [n,n] dimension.
In case of an error the error is raised as an exception.
Array with [n,n] dimension whose determinant is to be found
Determinant of the array
Returns the determinant of a matrix with [n,n] dimension.
In case of an error the error is raised as an exception.
Matrix object with [n,n] dimension whose determinant is to be found
Determinant of the Matrix object
Returns the inverse of a matrix with [n,n] dimension
and whose determinant is not zero.
In case of an error the error is raised as an exception.
Array with [n,n] dimension whose inverse is to be found
Inverse of the array as an array
Returns the inverse of a matrix with [n,n] dimension
and whose determinant is not zero.
In case of an error the error is raised as an exception.
Matrix object with [n,n] dimension whose inverse is to be found
Inverse of the matrix as a Matrix object
Returns the transpose of a matrix.
In case of an error the error is raised as an exception.
Array whose transpose is to be found
Transpose of the array as an array
Returns the transpose of a matrix.
In case of an error the error is raised as an exception.
Matrix object whose transpose is to be found
Transpose of the Matrix object as a Matrix object
Evaluates the Singular Value Decomposition of a matrix,
returns the matrices S, U and V. Such that a given
Matrix = U x S x V'.
In case of an error the error is raised as an exception.
Note: This method is based on the 'Singular Value Decomposition'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
Array whose SVD is to be computed
An array where the S matrix is returned
An array where the U matrix is returned
An array where the V matrix is returned
Evaluates the Singular Value Decomposition of a matrix,
returns the matrices S, U and V. Such that a given
Matrix = U x S x V'.
In case of an error the error is raised as an exception.
Note: This method is based on the 'Singular Value Decomposition'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
Matrix object whose SVD is to be computed
A Matrix object where the S matrix is returned
A Matrix object where the U matrix is returned
A Matrix object where the V matrix is returned
Returns the LU Decomposition of a matrix.
the output is: lower triangular matrix L, upper
triangular matrix U, and permutation matrix P so that
P*X = L*U.
In case of an error the error is raised as an exception.
Note: This method is based on the 'LU Decomposition and Its Applications'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
Array which will be LU Decomposed
An array where the lower traingular matrix is returned
An array where the upper traingular matrix is returned
An array where the permutation matrix is returned
Returns the LU Decomposition of a matrix.
the output is: lower triangular matrix L, upper
triangular matrix U, and permutation matrix P so that
P*X = L*U.
In case of an error the error is raised as an exception.
Note: This method is based on the 'LU Decomposition and Its Applications'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
Matrix object which will be LU Decomposed
A Matrix object where the lower traingular matrix is returned
A Matrix object where the upper traingular matrix is returned
A Matrix object where the permutation matrix is returned
Solves a set of n linear equations A.X = B, and returns
X, where A is [n,n] and B is [n,1].
In the same manner if you need to compute: inverse(A).B, it is
better to use this method instead, as it is much faster.
In case of an error the error is raised as an exception.
Note: This method is based on the 'LU Decomposition and Its Applications'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
The array 'A' on the left side of the equations A.X = B
The array 'B' on the right side of the equations A.X = B
Array 'X' in the system of equations A.X = B
Solves a set of n linear equations A.X = B, and returns
X, where A is [n,n] and B is [n,1].
In the same manner if you need to compute: inverse(A).B, it is
better to use this method instead, as it is much faster.
In case of an error the error is raised as an exception.
Note: This method is based on the 'LU Decomposition and Its Applications'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
Matrix object 'A' on the left side of the equations A.X = B
Matrix object 'B' on the right side of the equations A.X = B
Matrix object 'X' in the system of equations A.X = B
Returns the rank of a matrix.
In case of an error the error is raised as an exception.
An array whose rank is to be found
The rank of the array
Returns the rank of a matrix.
In case of an error the error is raised as an exception.
a Matrix object whose rank is to be found
The rank of the Matrix object
Returns the pseudoinverse of a matrix, such that
X = PINV(A) produces a matrix 'X' of the same dimensions
as A' so that A*X*A = A, X*A*X = X.
In case of an error the error is raised as an exception.
An array whose pseudoinverse is to be found
The pseudoinverse of the array as an array
Returns the pseudoinverse of a matrix, such that
X = PINV(A) produces a matrix 'X' of the same dimensions
as A' so that A*X*A = A, X*A*X = X.
In case of an error the error is raised as an exception.
a Matrix object whose pseudoinverse is to be found
The pseudoinverse of the Matrix object as a Matrix Object
Returns the Eigenvalues and Eigenvectors of a real symmetric
matrix, which is of dimensions [n,n].
In case of an error the error is raised as an exception.
Note: This method is based on the 'Eigenvalues and Eigenvectors of a TridiagonalMatrix'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
The array whose Eigenvalues and Eigenvectors are to be found
An array where the eigenvalues are returned
An array where the eigenvectors are returned
Returns the Eigenvalues and Eigenvectors of a real symmetric
matrix, which is of dimensions [n,n]. In case of an error the
error is raised as an exception.
Note: This method is based on the 'Eigenvalues and Eigenvectors of a TridiagonalMatrix'
section of Numerical Recipes in C by William H. Press,
Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery,
University of Cambridge Press 1992.
The Matrix object whose Eigenvalues and Eigenvectors are to be found
A Matrix object where the eigenvalues are returned
A Matrix object where the eigenvectors are returned
Returns the multiplication of a matrix or a vector (i.e
dimension [3,1]) with a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to multiply the array
Array which is to be multiplied by a scalar
The multiplication of the scalar and the array as an array
Returns the multiplication of a matrix or a vector (i.e
dimension [3,1]) with a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to multiply the array
Matrix which is to be multiplied by a scalar
The multiplication of the scalar and the array as an array
Returns the multiplication of a matrix or a vector (i.e
dimension [3,1]) with a scalar quantity.
In case of an error the error is raised as an exception.
Matrix object which is to be multiplied by a scalar
The scalar value to multiply the Matrix object
The multiplication of the scalar and the Matrix object as a
Matrix object
Returns the multiplication of a matrix or a vector (i.e
dimension [3,1]) with a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to multiply the Matrix object
Matrix object which is to be multiplied by a scalar
The multiplication of the scalar and the Matrix object as a
Matrix object
Returns the division of a matrix or a vector (i.e
dimension [3,1]) by a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to divide the array with
Array which is to be divided by a scalar
The division of the array and the scalar as an array
Returns the division of a matrix or a vector (i.e
dimension [3,1]) by a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to divide the array with
Matrix which is to be divided by a scalar
The division of the array and the scalar as an array
Returns the division of a matrix or a vector (i.e
dimension [3,1]) by a scalar quantity.
In case of an error the error is raised as an exception.
The scalar value to divide the Matrix object with
Matrix object which is to be divided by a scalar
The division of the Matrix object and the scalar as a Matrix object
Returns the cross product of two vectors whose
dimensions should be [3] or [3,1].
In case of an error the error is raised as an exception.
First vector array (dimension [3]) in the cross product
Second vector array (dimension [3]) in the cross product
Cross product of V1 and V2 as an array (dimension [3])
Returns the cross product of two vectors whose
dimensions should be [3] or [3x1].
In case of an error the error is raised as an exception.
First vector array (dimensions [3,1]) in the cross product
Second vector array (dimensions [3,1]) in the cross product
Cross product of V1 and V2 as an array (dimension [3,1])
Returns the cross product of two vectors whose
dimensions should be [3] or [3x1].
In case of an error the error is raised as an exception.
First Matrix (dimensions [3,1]) in the cross product
Second Matrix (dimensions [3,1]) in the cross product
Cross product of V1 and V2 as a matrix (dimension [3,1])
Returns the dot product of two vectors whose
dimensions should be [3] or [3,1].
In case of an error the error is raised as an exception.
First vector array (dimension [3]) in the dot product
Second vector array (dimension [3]) in the dot product
Dot product of V1 and V2
Returns the dot product of two vectors whose
dimensions should be [3] or [3,1].
In case of an error the error is raised as an exception.
First vector array (dimension [3,1]) in the dot product
Second vector array (dimension [3,1]) in the dot product
Dot product of V1 and V2
Returns the dot product of two vectors whose
dimensions should be [3] or [3,1].
In case of an error the error is raised as an exception.
First Matrix object (dimension [3,1]) in the dot product
Second Matrix object (dimension [3,1]) in the dot product
Dot product of V1 and V2
Returns the magnitude of a vector whose dimension is [3] or [3,1].
In case of an error the error is raised as an exception.
The vector array (dimension [3]) whose magnitude is to be found
The magnitude of the vector array
Returns the magnitude of a vector whose dimension is [3] or [3,1].
In case of an error the error is raised as an exception.
The vector array (dimension [3,1]) whose magnitude is to be found
The magnitude of the vector array
Returns the magnitude of a vector whose dimension is [3] or [3,1].
In case of an error the error is raised as an exception.
Matrix object (dimension [3,1]) whose magnitude is to be found
The magnitude of the Matrix object
Checks if two Arrays of equal dimensions are equal or not.
In case of an error the error is raised as an exception.
First array in equality check
Second array in equality check
If two matrices are equal or not
Checks if two matrices of equal dimensions are equal or not.
In case of an error the error is raised as an exception.
First Matrix in equality check
Second Matrix in equality check
If two matrices are equal or not
Checks if two matrices of equal dimensions are equal or not.
In case of an error the error is raised as an exception.
First Matrix object in equality check
Second Matrix object in equality check
If two matrices are equal or not
Checks if two matrices of equal dimensions are not equal.
In case of an error the error is raised as an exception.
First Matrix object in equality check
Second Matrix object in equality check
If two matrices are not equal
Tests whether the specified object is a MatrixLibrary.Matrix
object and is identical to this MatrixLibrary.Matrix object.
The object to compare with the current object
This method returns true if obj is the specified Matrix object identical to this Matrix object; otherwise, false.
Returns a matrix as a string, so it can be viewed
in a multi-text textbox or in a richtextBox (preferred).
In case of an error the error is raised as an exception.
The array to be viewed
The string view of the array
Returns a matrix as a string, so it can be viewed
in a multi-text textbox or in a richtextBox (preferred).
In case of an error the error is raised as an exception.
The Matrix object to be viewed
The string view of the Matrix object
Returns the matrix as a string, so it can be viewed
in a multi-text textbox or in a richtextBox (preferred).
In case of an error the error is raised as an exception.
The string view of the Matrix object
Set or get an element from the matrix
Set or get the no. of rows in the matrix.
Warning: Setting this property will delete all of
the elements of the matrix and set them to zero.
Set or get the no. of columns in the matrix.
Warning: Setting this property will delete all of
the elements of the matrix and set them to zero.
This property returns the matrix as an array.
Gets the matrix as a row major array.
Gets the matrix as a row major array.
Gets the matrix as a column major array.
Gets the matrix as a column major array.
A plane.
Initializes a new instance of the class.
This finds out if a point is in front of, behind, or on this plane.
The point to classify.
Less than 0 if behind, 0 if on, Greater than 0 if in front.
The position.
The normal.
The equation.
The RenderMode enumeration is used to identify what kind
of rendering is occuring.
We are designing.
We are rendering for a hit test.
We are rendering.
The Scene Container is the top-level object in a scene graph.
Initializes a new instance of the class.
Gets or sets the parent scene.
The parent scene.
A texture coordinate.
Initializes a new instance of the struct.
The u.
The v.
The u value.
The v value.
Gets or sets the U.
The U.
Gets or sets the V.
The V.
The Vertex class represents a 3D point in space.
Initializes a new instance of the struct.
The x.
The y.
The z.
Initializes a new instance of the struct.
The vertex.
Sets the specified X.
The X.
The Y.
The Z.
Implements the operator +.
The LHS.
The RHS.
The result of the operator.
Implements the operator -.
The LHS.
The RHS.
The result of the operator.
Implements the operator *.
The LHS.
The RHS.
The result of the operator.
Implements the operator *.
The LHS.
The RHS.
The result of the operator.
Implements the operator *.
The LHS.
The RHS.
The result of the operator.
Implements the operator *.
The LHS.
The RHS.
The result of the operator.
Implements the operator /.
The LHS.
The RHS.
The result of the operator.
This finds the Scalar Product (Dot Product) of two vectors.
The right hand side of the equation.
A Scalar Representing the Dot-Product.
Find the Vector product (cross product) of two vectors.
The right hand side of the equation.
The Cross Product.
If You use this as a Vector, then call this function to get the vector
magnitude.
Make this vector unit length.
Normalizes this instance.
The X coordinate.
The Y coordinate.
The Z coordinate.
This class represent's a grid of points, just like you'd get on a NURBS
surface, or a patch.
Use this to draw the vertex grid.
OpenGL object.
Draw each individual vertex (with selection names).
Draw the lines connecting the points.
This function returns all of the control points as a float array, which
is in the format [0] = vertex 1 X, [1] = vertex 1 Y, [2] = vertex 1 Z,
[3] = vertex 2 X etc etc... This array is suitable for OpenGL functions
for evaluators and NURBS.
An array of floats.
The display list class basicly wraps an OpenGL display list, making them easier
to manage. Remember this class is completely OpenGL dependant. In time this class
will derive from the IOpenGLDependant interface.
This function generates the display list. You must call it before you call
anything else!
OpenGL
This function makes the display list.
OpenGL
The mode, compile or compile and execute.
This function ends the compilation of a list.
An ArcBall is an effect that pushes an arcball transformation
onto the stack.
An effect is something that can be applied to a scene element which
then changes everything in the tree below it. It can be pushed, to apply it
and popped, to restore OpenGL back to the state without the effect.
Initializes a new instance of the class.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Pops the effect off the specified parent element.
The OpenGL instance.
The parent element.
Gets or sets the name.
The name.
Gets or sets a value indicating whether this instance is enabled.
true if this instance is enabled; otherwise, false.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Pops the specified parent element.
The OpenGL instance.
The parent element.
The arcball.
Gets or sets the linear transformation.
The linear transformation.
A Linear Transformation is an effect that pushes a linear transformation (translate, scale, rotate)
onto the stack.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Pops the specified parent element.
The OpenGL instance.
The parent element.
The linear transformation.
Gets or sets the linear transformation.
The linear transformation.
The OpenGLAttributes are an effect that can set
any OpenGL attributes.
Initializes a new instance of the class.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Pops the effect off the specified parent element.
The OpenGL instance.
The parent element.
Gets or sets the hint attributes.
The hint attributes.
Gets or sets the list attributes.
The list attributes.
Gets or sets the pixel mode attributes.
The pixel mode attributes.
Gets or sets the polygon stipple attributes.
The polygon stipple attributes.
Gets or sets the scissor attributes.
The scissor attributes.
Gets or sets the stencil buffer attributes.
The stencil buffer attributes.
Gets or sets the texture attributes.
The texture attributes.
Gets or sets the transform attributes.
The transform attributes.
Gets or sets the viewport attributes.
The viewport attributes.
Gets or sets the eval attributes.
The eval attributes.
Gets or sets the accum buffer attributes.
The accum buffer attributes.
Gets or sets the color buffer attributes.
The color buffer attributes.
Gets or sets the current attributes.
The current buffer.
Gets or sets the depth buffer attributes.
The depth buffer attributes.
Gets or sets the enable attributes.
The enable attributes.
Gets the fog attributes.
Gets the lighting attributes.
Gets the line attributes.
Gets the point attributes.
Gets the polygon attributes.
This is the base class of all evaluators, 1D, 2D etc. It is also the base class
for the NURBS, as they share alot of common code, such as the VertexGrid.
Initializes a new instance of the class.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The control points.
Draw points flag.
Draw lines flag.
The IHasObjectSpace helper.
Gets or sets the control points.
The control points.
Gets or sets a value indicating whether [draw control points].
true if [draw control points]; otherwise, false.
Gets or sets a value indicating whether [draw control grid].
true if [draw control grid]; otherwise, false.
Gets the transformation that pushes us into object space.
This is a 1D evaluator, i.e a bezier curve.
Initializes a new instance of the class.
Initializes a new instance of the class.
The points.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The segments.
Gets or sets the segments.
The segments.
This is a 2D evaluator, i.e a bezier patch.
Initializes a new instance of the class.
Initializes a new instance of the class.
The u.
The v.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The segments.
Gets or sets the segments.
The segments.
The NURBS class is the base for NURBS objects, such as curves and surfaces.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
This is the pointer to the underlying NURBS object.
The display mode.
Gets or sets the display mode.
The display mode.
Gets the current OpenGL that the object exists in context.
A NURBS Curve is a one dimensional non uniform B-Spline.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The knots.
Gets the knots.
A NURBS Surface is a two dimensional non uniform B-Spline.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The s knots.
The t knots.
Gets the knots.
Gets the knots.
The feedback class handles feedback easily and well. It is 100% dependant on
OpenGL so use it with care!
This function begins feedback, recording the scene etc. End finishes
feedback, and parses the feedback buffer.
This function stops the collection of feedback data.
The feedback array.
Override this function to do custom functions on the data.
Number of values.
Pass this class any SceneObject and it'll send you back a polygon.
This takes the feedback data and turns it into triangles.
The number of triangles.
This is the main function of the class, it'll create a triangulated polygon
from and SceneObject.
The gl.
The object to convert.
A camera that can see the whole object.
A polygon created from 'sourceObject'.
This class provides a means of working with standard and opengl colours.
Use the ColorNet and ColorGL properties to set or access the colour in either
mode.
Initializes a new instance of the class.
This property allows you to access the color as if it was a .NET
color.
This property accesses the color as an opengl value.
Gets or sets the R.
The R.
Gets or sets the G.
The G.
Gets or sets the B.
The B.
Gets or sets the A.
The A.
The bounding helper.
The bounding volume.
Gets the bounding volume.
Freezes the specified instance.
The gl instance.
The renderable.
Renders the specified gl.
The gl.
Unfreezes the specified gl.
The gl.
The display list internally.
If true, we're frozen.
Gets a value indicating whether this instance is frozen.
true if this instance is frozen; otherwise, false.
Helps with implementing IHasObjectSpace.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
Deeps the clone.
The linear transformation
Gets or sets the transformation.
The transformation.
The OpenGL Helper is a class that provides some helper functions for working with OpenGL.
Initialises the supplied OpenGL instance for high quality rendering.
The OpenGL instance.
The scene helper can be used to create scene presets,
such as designer, application, etc
Initialises a modeling scene. A modeling scene has:
- A 'Look At' camera targetting the centre of the scene
- Three gentle omnidirectional lights
- A design time grid and axis.
The scene.
A Light is defined purely mathematically, but works well with OpenGL.
A light is a scene element, it can be interacted with using the mouse
and it is bindable.
Initializes a new instance of the class.
Pushes this object into the provided OpenGL instance.
This will generally push elements of the attribute stack
and then set current values.
The OpenGL instance.
Pops this object from the provided OpenGL instance.
This will generally pop elements of the attribute stack,
restoring previous attribute values.
The OpenGL instance.
This function sets all of the lights parameters into OpenGL.
The OpenGL instance.
This is the OpenGL code for the light.
The ambient colour of the light.
The diffuse color of the light.
The specular colour of the light.
The colour of the shadow created by this light.
True when the light is on.
The position of the light.
Should the light cast a shadow?
Used to aid in the implementation of IVolumeBound.
Gets the bounding volume.
Gets or sets the GL code.
The GL code.
Gets or sets the position.
The position.
Gets or sets the ambient.
The ambient.
Gets or sets the diffuse.
The diffuse.
Gets or sets the specular.
The specular.
Gets or sets the color of the shadow.
The color of the shadow.
Gets or sets a value indicating whether this is on.
true if on; otherwise, false.
Gets or sets a value indicating whether [cast shadow].
true if [cast shadow]; otherwise, false.
A spotlight has a direction and a spot cutoff.
Initializes a new instance of the class.
This function sets all of the lights parameters into OpenGL.
The OpenGL instance.
The spotlight cutoff value (between 0-90 for spotlights, or 180 for a
simple light).
A Vector describing the direction of the spotlight.
Gets or sets the direction.
The direction.
Gets or sets the spot cutoff.
The spot cutoff.
The axies objects are design time rendered primitives
that show an RGB axies at the origin of the scene.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Creates the display list. This function draws the
geometry as well as compiling it.
The internal display list.
A simple cube polygon.
A polygon contains a set of 'faces' which are indexes into a single list
of vertices. The main thing about polygons is that they are easily editable
by the user, depending on the Context they're in.
A SceneElement can implement IRayTracable to allow it to
be raytraced.
Raytraces the specified ray. If an intersection is found, it is returned,
otherwise null is returned.
The ray.
The scene.
The intersection with the object, or null.
Initializes a new instance of the class.
This function is cool, just stick in a set of points, it'll add them to the
array, and create a face. It will take account of duplicate vertices too!
A set of vertices to make into a face.
Triangulate this polygon.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
This creates a polygon from a height map (any picture). Black is low,
and the colors are high (the lighter the color, the higher the surface).
Path of the image file.
Number of points along X.
Number of points along Y.
True if sucessful, false otherwise.
This function performs lossless optimisation on the polygon, it should be
called when the geometry changes, and the polygon goes into static mode.
The amount of optimisation (as a %).
Call this function as soon as you change the polygons geometry, it will
re-generate normals, etc.
Regenerate Normals.
This function tests to see if a ray interesects the polygon.
The ray you want to test.
The distance from the origin of the ray to the intersection, or -1 if there
is no intersection.
Raytraces the specified ray. If an intersection is found, it is returned,
otherwise null is returned.
The ray.
The scene.
The intersection with the object, or null.
This function subdivides the faces of this polygon.
If set to true the faces will be smoothed.
The number of faces in the new subdivided polygon.
Freezes this instance using the provided OpenGL instance.
The OpenGL instance.
Unfreezes this instance using the provided OpenGL instance.
The OpenGL instance.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
The IHasObjectSpace helper.
The freezable helper.
The faces that make up the polygon.
The vertices that make up the polygon.
The UV coordinates (texture coodinates) for the polygon.
The normals of the polygon object.
Should the normals be drawn?
The bounding volume helper - used to ease implementation of IBoundVolume.
Gets or sets the faces.
The faces.
Gets or sets the vertices.
The vertices.
Gets or sets the U vs.
The U vs.
Gets or sets the normals.
The normals.
Gets or sets a value indicating whether [draw normals].
true if [draw normals]; otherwise, false.
Gets the transformation that pushes us into object space.
Gets the bounding volume.
Gets a value indicating whether this instance is frozen.
true if this instance is frozen; otherwise, false.
Material to be used when rendering the polygon in lighted mode.
This material may be overriden on a per-face basis.
The material.
Initializes a new instance of the class.
This function makes a simple cube shape.
A Folder is used to organise scene elements.
Initializes a new instance of the class.
The Grid design time primitive is displays a grid in the scene.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Creates the display list. This function draws the
geometry as well as compiling it.
The internal display list.
A Shadow object can be added as a child of a polygon.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
This function calculates the neighbours in a face.
Casts a real time 3D shadow.
The OpenGL object.
The lights.
This is part of the shadow casting code, it does a shadowpass for the
polygon using the specified light.
The OpenGL object.
The light casting the shadow.
An array of bools.
Are the face neighbours calculated?
The size of the shadow in each direction.
Gets the parent polygon.
Gets or sets the size of the shadow.
The size of the shadow.
The standard OpenGL teapot.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Draws the specified gl.
The gl.
The grid.
The scale.
The type.
Gets or sets the grid.
The grid.
Gets or sets the scale.
The scale.
Gets or sets the type of the fill.
The type of the fill.
Material to be used when rendering the teapot in lighted mode.
The material.
Extensions for Array type.
Flattens the specified array.
The array type.
The array.
The flattened array.
The Cylinder class wraps the cylinder quadric.
Quadric is the base class for all SharpGL quadric objects.
It can be interacted with and it can be rendered.
Initializes a new instance of the class.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Pushes us into Object Space using the transformation into the specified OpenGL instance.
The OpenGL instance.
Pops us from Object Space using the transformation into the specified OpenGL instance.
The gl.
This is the pointer to the opengl quadric object.
The draw style, can be filled, line, silouhette or points.
The IHasObjectSpace helper.
Gets or sets the quadric draw style.
The quadric draw style.
Gets or sets the normal orientation.
The normal orientation.
Gets or sets the normal generation.
The normal generation.
Gets or sets a value indicating whether [texture coords].
true if [texture coords]; otherwise, false.
Gets the transformation that pushes us into object space.
Gets the current OpenGL that the object exists in context.
Material to be used when rendering the quadric in lighted mode.
The material.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Sphere data.
Top radius.
The height.
The slices.
The stacks.
Helps us implement IVolumeBound.
Gets or sets the base radius.
The base radius.
Gets or sets the top radius.
The top radius.
Gets or sets the height.
The height.
Gets or sets the slices.
The slices.
Gets or sets the stacks.
The stacks.
Gets the bounding volume.
The Disk class wraps both the disk and partial disk quadrics.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
Gets or sets the inner radius.
The inner radius.
Gets or sets the outer radius.
The outer radius.
Gets or sets the start angle.
The start angle.
Gets or sets the sweep angle.
The sweep angle.
Gets or sets the slices.
The slices.
Gets or sets the loops.
The loops.
The Quadric draw style.
Points.
Lines.
Silhouette.
Fill.
The Quadric Normals.
None.
Flat.
Smooth.
The Quadric orientation.
Outside.
Inside.
The Sphere class wraps the sphere quadric.
Initializes a new instance of the class.
Render to the provided instance of OpenGL.
The OpenGL instance.
The render mode.
The radius.
The slices.
The stacks.
The bounding volume helper, used to aid implementation of IVolumeBound.
Gets or sets the radius.
The radius.
Gets or sets the slices.
The slices.
Gets or sets the stacks.
The stacks.
Gets the bounding volume.
An intersection.
Is it intersected?
The normal.
The point.
The closeness.
A Ray.
The light.
The origin.
The direction.
The Ray Tracer is an engine that renders a scene using the raytracing mechanism.
Renders the specified scene.
The scene.
The camera.
The scene rendered with raytracing.
A ScreenPixel, password around when raytracing.
Initializes a new instance of the class.
Performs a hit test on the scene. All elements that implement IVolumeBound will
be hit tested.
The x.
The y.
The elements hit.
This function draws all of the objects in the scene (i.e. every quadric
in the quadrics arraylist etc).
Renders the element.
The gl.
The render mode.
Renders the element for hit test.
The scene element.
The hit map.
Current hit name.
Use this function to resize the scene window, and also to look through
the current camera.
Width of the screen.
Height of the screen.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
This is the OpenGL class, use it to call OpenGL functions.
The main scene container - this is the top level element of the Scene Tree.
The set of scene assets.
This is the camera that is currently being used to view the scene.
This is the colour of the background of the scene.
Gets or sets the open GL.
The open GL.
Gets or sets the scene container.
The scene container.
Gets the assets.
Gets or sets the current camera.
The current camera.
Gets or sets the color of the clear.
The color of the clear.
Gets or sets a value indicating whether [render bounding volumes].
true if [render bounding volumes]; otherwise, false.
Gets the current OpenGL that the object exists in context.
The Fragment Shader.
The Shader base class.
Pops the effect off the specified parent element.
The OpenGL instance.
The parent element.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
Sets the shader source.
The source.
Loads the shader source.
The path to the shader file.
Compiles this instance.
The internal shader object.
Gets or sets the shader object.
The shader object.
Gets the current OpenGL that the object exists in context.
Gets the compile status.
Gets the info log.
Gets the source code.
Initializes a new instance of the class.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
The Shader base class.
Pops the effect off the specified parent element.
The OpenGL instance.
The parent element.
Pushes the effect onto the specified parent element.
The OpenGL instance.
The parent element.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.
Destroy in the context of the supplied OpenGL instance.
The OpenGL instance.
Attaches a shader.
The shader.
Detaches the shader.
The shader.
Links this instance.
Gets the uniform location.
The name.
Sets the full shader source.
The source.
Gets or sets the shader object.
The shader object.
Gets the current OpenGL that the object exists in context.
Gets the attached shaders.
Gets the compile status.
Gets the info log.
The Vertex Shader object.
Initializes a new instance of the class.
Create in the context of the supplied OpenGL instance.
The OpenGL instance.