<?xml version="1.0"?>
<doc>
    <assembly>
        <name>WW</name>
    </assembly>
    <members>
        <member name="M:WW.Math.Geometry.Ray3D.#ctor(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Constructor.
            </summary>
            <param name="origin">The ray's origin.</param>
            <param name="direction">The ray's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Ray3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray3D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray3D.Direction">
            <summary>
            Gets or sets the ray's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray3D.Origin">
            <summary>
            Gets or sets the ray's origin.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.PropertyAttributes">
            <summary>
            Has some attributes defining how a property behaves in 
            a <see cref="T:System.Windows.Forms.PropertyGrid"/>.
            </summary>
        </member>
        <member name="P:WW.ComponentModel.PropertyAttributes.IsBrowsable">
            <summary>
            Is the property visible in a property grid.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.NullSegment2DIterator">
            <summary>
            Represents a null 2D segment iterator.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.ISegment2DIterator">
            <summary>
            Iterator over segments of a <see cref="T:WW.Math.Geometry.IShape2D"/>.
            </summary>
            <remarks>
            It is expected that implementations represents a snapshot of the shape's state
            as it was when the iterator was created via the shape's 
            <see cref="M:WW.Math.Geometry.IShape2D.CreateIterator"/> method, i.e. changes which are applied 
            to the shape after the iterator is constructed are not expected to be 
            reflected by the iterator itself.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.ISegment2DIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.ISegment2DIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.ISegment2DIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.ISegment2DIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.ISegment2DIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.NullSegment2DIterator.Instance">
            <summary>
            Gets the null segment iterator.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.NullSegment2DIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.NullSegment2DIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.NullSegment2DIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.NullSegment2DIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.NullSegment2DIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.MutableBigInteger">
            <summary>
            Represents a mutable big integer.
            </summary>
            <remarks>
            For efficiency it can sometimes be useful to have a mutable big integer where computations happen in a loop
            that is executed often.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.MutableBigInteger.CompareMagnitude(WW.Math.Exact.MutableBigInteger)">
            <summary>
            Compares this big integer with specified big integer by magnitude only (ignores the signs).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.MutableBigInteger.Clamp">
            <summary>
            Updates the length so any leading zeroes are removed from digits[0..length -1].
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Matrix2BR.Zero">
            <summary>
            2-dimensional multi precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Matrix2BR.Identity">
            <summary>
            2-dimensional multi precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix2BR"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.#ctor(WW.Math.Exact.BigRational[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix2BR"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.#ctor(System.Collections.Generic.IList{WW.Math.Exact.BigRational})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix2BR"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.#ctor(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix2BR"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Exact.Vector2BR"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Exact.Vector2BR"/> instance holding values for the second column.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.#ctor(WW.Math.Exact.Matrix2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix2BR"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Add(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Subtract(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Multiply(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Transpose(WW.Math.Exact.Matrix2BR)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Exact.Matrix2BR"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Transform(WW.Math.Exact.Vector2BR)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Transform(WW.Math.Exact.Point2BR)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Exact.Matrix2BR.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 1x1 matrix (BigRational) from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A BigRational containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.ToMatrix">
            <summary>
            Convert to Drawing2BR system matrix.
            </summary>
            <returns>system matrix</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Equality(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Inequality(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Addition(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Subtraction(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Multiply(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Matrix2BR)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Multiply(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Exact.Vector2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Vector2BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.op_Multiply(WW.Math.Exact.Matrix2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Exact.Point2BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Point2BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix2BR.Equals(WW.Math.Exact.Matrix2BR)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Matrix2BR.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 2 * column + row.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Matrix2BR.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Drawing.IBitmap">
            <summary>
            A rectangular array of pixel.
            </summary>
        </member>
        <member name="M:WW.Drawing.IBitmap.GetPixel(System.Int32,System.Int32)">
            <summary>
            Get the pixel at the given position.
            Only defined for valid bitmaps.
            </summary>
            <param name="x">x position, between <c>0</c> and <c><ref name="Width"/>-1</c></param>
            <param name="y">y position, between <c>0</c> and <c><ref name="Height"/>-1</c></param>
            <returns></returns>
        </member>
        <member name="M:WW.Drawing.IBitmap.GetRgbaBytes">
            <summary>
            Get the content of this bitmap as an array of RGBA bytes.
            Only defined for valid bitmaps.
            </summary>
            <returns>RGBA byte array.</returns>
        </member>
        <member name="M:WW.Drawing.IBitmap.ToImage">
            <summary>
            Get the bitmap as an image.
            Only defined for valid bitmaps.
            </summary>
            <returns>Image</returns>
        </member>
        <member name="P:WW.Drawing.IBitmap.IsValid">
            <summary>
            Is this bitmap valid?
            </summary>
        </member>
        <member name="P:WW.Drawing.IBitmap.Width">
            <summary>
            Get the width of the pixel array.
            Only defined for valid bitmaps.
            </summary>
        </member>
        <member name="P:WW.Drawing.IBitmap.Height">
            <summary>
            Get the height of the pixel array.
            Only defined for valid bitmaps.
            </summary>
        </member>
        <member name="T:WW.Drawing.InvalidBitmapImpl">
            <summary>
            A bitmap which is always invalid.
            </summary>
        </member>
        <member name="M:WW.Drawing.InvalidBitmapImpl.GetPixel(System.Int32,System.Int32)">
            <summary>
            Get the pixel at the given position.
            Only defined for valid bitmaps.
            </summary>
            <param name="x">x position, between <c>0</c> and <c><ref name="Width"/>-1</c></param>
            <param name="y">y position, between <c>0</c> and <c><ref name="Height"/>-1</c></param>
            <returns></returns>
        </member>
        <member name="M:WW.Drawing.InvalidBitmapImpl.GetRgbaBytes">
            <summary>
            Get the content of this bitmap as an array of RGBA bytes.
            </summary>
            <returns>RGBA byte array.</returns>
        </member>
        <member name="M:WW.Drawing.InvalidBitmapImpl.ToImage">
            <summary>
            Get the bitmap as an image.
            Only defined for valid bitmaps.
            </summary>
            <returns>Image</returns>
        </member>
        <member name="M:WW.Drawing.InvalidBitmapImpl.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:WW.Drawing.InvalidBitmapImpl.IsValid">
            <summary>
            Is this bitmap valid?
            </summary>
        </member>
        <member name="P:WW.Drawing.InvalidBitmapImpl.Width">
            <summary>
            Get the width of the pixel array.
            Only defined for valid bitmaps.
            </summary>
        </member>
        <member name="P:WW.Drawing.InvalidBitmapImpl.Height">
            <summary>
            Get the height of the pixel array.
            Only defined for valid bitmaps.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleRectZoomInteractor">
            <summary>
            Represents a simple rectangle zoom interactor.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleInteractor">
            <summary>
            Interactor based on a <see cref="T:WW.Actions.SimpleTransformationProviderBase"/>.
            </summary>
        </member>
        <member name="T:WW.Actions.Interactor">
            <summary>
            Represents a interactor base class that doesn't do anything.
            </summary>
        </member>
        <member name="T:WW.Actions.IInteractor">
            <summary>
            An Interface for interactor objects that allow mouse interactions.
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="M:WW.Actions.IInteractor.Activate">
            <summary>
            Actives this interactor.
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="M:WW.Actions.IInteractor.Deactivate">
            <summary>
            Deactives this interactor.
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="M:WW.Actions.IInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.IInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.IInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.IInteractor.ProcessMouseWheel(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse wheel has rotated.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.IInteractor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.IInteractor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.IInteractor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="E:WW.Actions.IInteractor.Activated">
            <summary>
            This event is raised when the interactor is activated (see <see cref="M:WW.Actions.IInteractor.Activate"/>).
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="E:WW.Actions.IInteractor.Deactivated">
            <summary>
            This event is raised when the interactor is deactivated (see <see cref="M:WW.Actions.IInteractor.Deactivate"/>).
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="P:WW.Actions.IInteractor.IsActive">
            <summary>
            Gets a value indicating whether this interactor is active.
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.IInteractor.IsActive"/> property). 
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active. 
            But when the user clicks a control point, then the interactor becomes active, 
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="P:WW.Actions.IInteractor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.Activate">
            <summary>
            Actives this interactor.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.Deactivate">
            <summary>
            Deactives this interactor.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
            <remarks>
            The overriding method does not need to call the base method.
            </remarks>
        </member>
        <member name="M:WW.Actions.Interactor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
            <remarks>
            The overriding method does not need to call the base method.
            </remarks>
        </member>
        <member name="M:WW.Actions.Interactor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
            <remarks>
            The overriding method does not need to call the base method.
            </remarks>
        </member>
        <member name="M:WW.Actions.Interactor.ProcessMouseWheel(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse wheel has rotated.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
            <remarks>
            The overriding method does not need to call the base method.
            </remarks>
        </member>
        <member name="M:WW.Actions.Interactor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.Interactor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.Interactor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.OnActivated(System.EventArgs)">
            <summary>
            Is called when this interactor is activated.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.OnDeactivated(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.Interactor.Deactivated"/> event.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.OnCommandCreated(WW.Actions.CommandEventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.Interactor.CommandCreated"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.Interactor.CommandCreated">
            <summary>
            Occurs when a command is created.
            </summary>
        </member>
        <member name="P:WW.Actions.Interactor.IsActive">
            <summary>
            Gets a value indicating whether this interactor is active.
            </summary>
        </member>
        <member name="E:WW.Actions.Interactor.Activated">
            <summary>
            This event is raised when the interactor is activated (see <see cref="M:WW.Actions.Interactor.Activate"/>).
            </summary>
        </member>
        <member name="E:WW.Actions.Interactor.Deactivated">
            <summary>
            This event is raised when the interactor is deactivated (see <see cref="M:WW.Actions.Interactor.Deactivate"/>).
            </summary>
        </member>
        <member name="P:WW.Actions.Interactor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="T:WW.Actions.Interactor.WinFormsDrawable">
            <summary>
            Represents a GDI drawable base class that doesn't do anything.
            </summary>
        </member>
        <member name="T:WW.Actions.IInteractorWinFormsDrawable">
            <summary>
            Represents an interface for drawing an interactor drawable using GDI.
            </summary>
        </member>
        <member name="M:WW.Actions.IInteractorWinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.IInteractorWinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.WinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.Interactor.WinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="P:WW.Actions.SimpleInteractor.TransformationProvider">
            <summary>
            Get the transformation provider.
            </summary>
        </member>
        <member name="F:WW.Actions.SimpleRectZoomInteractor.MinimalMovement">
            <summary>
            Minimal movement necessary so zooming is possible, in pixel.
            </summary>
        </member>
        <member name="F:WW.Actions.SimpleRectZoomInteractor.RectangleColor">
            <summary>
            The zoom rectangle color.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleRectZoomInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.OnRectangleChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.SimpleRectZoomInteractor.RectangleChanged"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.SimpleRectZoomInteractor.RectangleChanged">
            <summary>
            Occurs when the rectangle changed.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleRectZoomInteractor.ZoomRectangle">
            <summary>
            Get the rectangle currently defined by the mouse movements, in screen coordinates.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleRectZoomInteractor.NormalizedZoomRectangle">
            <summary>
            Get the rectangle currently defined by the mouse movements, in normalized coordinates.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleRectZoomInteractor.ValidForZoom">
            <summary>
            Is the value of the interactor valid for zooming.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleRectZoomInteractor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleRectZoomInteractor.WinFormsDrawable">
            <summary>
            Represents a Windows Forms drawable for <see cref="T:WW.Actions.RectZoomInteractor"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.WinFormsDrawable.#ctor(WW.Actions.SimpleRectZoomInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleRectZoomInteractor.WinFormsDrawable"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.WinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRectZoomInteractor.WinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray4D.#ctor(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Constructor.
            </summary>
            <param name="origin">The ray's origin.</param>
            <param name="direction">The ray's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Ray4D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray4D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray4D.Direction">
            <summary>
            Gets or sets the ray's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray4D.Origin">
            <summary>
            Gets or sets the ray's origin.
            </summary>
        </member>
        <member name="T:WW.Drawing.Rasterizer2D">
            <summary>
            A 2D rasterizer that rasterizes onto a bitmap, without support for alpha blending or pen width.
            </summary>
            <remarks>
            This rasterizer is in some cases faster than <see cref="T:System.Drawing.Graphics"/> for those methods that are implemented
            and can be used to speed up drawing, 
            which may be necessary when drawing large amounts of dots, line segments and beziers.
            For relatively short line segments the clipping is taking relatively much time, so there is no performance gain.
            </remarks>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.Rasterizer2D"/> class.
            </summary>
            <param name="width">The width (may not be zero).</param>
            <param name="height">The height (may not be zero).</param>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.Clear(System.UInt32)">
            <summary>
            Clears the bitmap using specified color.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawLineSegment(WW.Math.Point2D,WW.Math.Point2D,System.UInt32)">
            <summary>
            Draws a line segment.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawWithoutClipCheck(System.Drawing.Point,System.Drawing.Point,System.UInt32)">
            <summary>
            Draw line segment using Bresenham.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawQuadraticBezier(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.UInt32)">
            <summary>
            Draws a quadratic bezier.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawCubicBezier(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.UInt32)">
            <summary>
            Draws a cubic bezier.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawShape(WW.Math.Geometry.GeneralShape2D,System.UInt32)">
            <summary>
            Draws a shape.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawPoint(System.Int32,System.Int32,System.UInt32)">
            <summary>
            Draws a point.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawPoint(System.Double,System.Double,System.UInt32)">
            <summary>
            Draws a point. The coordinates are rounded first, so the DrawPoint taking
            int's as parameters is a little faster.
            </summary>
        </member>
        <member name="M:WW.Drawing.Rasterizer2D.DrawPointAtOrigin(System.UInt32)">
            <summary>
            Draws a point at the origin. This can be useful for 1x1 bitmaps.
            </summary>
        </member>
        <member name="P:WW.Drawing.Rasterizer2D.Bitmap">
            <summary>
            Gets the bitmap.
            The bitmaps was created with <see cref="F:System.Drawing.Imaging.PixelFormat.Format32bppArgb"/>.
            </summary>
        </member>
        <member name="P:WW.Drawing.Rasterizer2D.Width">
            <summary>
            Gets the width.
            </summary>
        </member>
        <member name="P:WW.Drawing.Rasterizer2D.Height">
            <summary>
            Gets the height.
            </summary>
        </member>
        <member name="P:WW.Drawing.Rasterizer2D.Clipper">
            <summary>
            Gets the clipper.
            </summary>
        </member>
        <member name="T:WW.Drawing.ArgbColors">
            <summary>
            Specifies a number of well known colors.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.AliceBlue">
            <summary>
            AliceBlue: #F0F8FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.AntiqueWhite">
            <summary>
            AntiqueWhite: #FAEBD7.
            </summary>;
        </member>
        <member name="F:WW.Drawing.ArgbColors.Aqua">
            <summary>
            Aqua: #00FFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Aquamarine">
            <summary>
            Aquamarine: #7FFFD4.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Azure">
            <summary>
            Azure: #F0FFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Beige">
            <summary>
            Beige: #F5F5DC.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Bisque">
            <summary>
            Bisque: #FFE4C4.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Black">
            <summary>
            Black: #000000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.BlanchedAlmond">
            <summary>
            BlanchedAlmond: #FFEBCD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Blue">
            <summary>
            Blue: #0000FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.BlueViolet">
            <summary>
            BlueViolet: #8A2BE2.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Brown">
            <summary>
            Brown: #A52A2A.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.BurlyWood">
            <summary>
            BurlyWood: #DEB887.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.CadetBlue">
            <summary>
            CadetBlue: #5F9EA0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Chartreuse">
            <summary>
            Chartreuse: #7FFF00.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Chocolate">
            <summary>
            Chocolate: #D2691E.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Coral">
            <summary>
            Coral: #FF7F50.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.CornflowerBlue">
            <summary>
            CornflowerBlue: #6495ED.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Cornsilk">
            <summary>
            Cornsilk: #FFF8DC.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Crimson">
            <summary>
            Crimson: #DC143C.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Cyan">
            <summary>
            Cyan: #00FFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkBlue">
            <summary>
            DarkBlue: #00008B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkCyan">
            <summary>
            DarkCyan: #008B8B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkGoldenrod">
            <summary>
            DarkGoldenrod: #B8860B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkGray">
            <summary>
            DarkGray: #A9A9A9.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkGreen">
            <summary>
            DarkGreen: #006400.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkKhaki">
            <summary>
            DarkKhaki: #BDB76B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkMagenta">
            <summary>
            DarkMagenta: #8B008B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkOliveGreen">
            <summary>
            DarkOliveGreen: #556B2F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkOrange">
            <summary>
            DarkOrange: #FF8C00.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkOrchid">
            <summary>
            DarkOrchid: #9932CC.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkRed">
            <summary>
            DarkRed: #8B0000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkSalmon">
            <summary>
            DarkSalmon: #E9967A.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkSeaGreen">
            <summary>
            DarkSeaGreen: #8FBC8F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkSlateBlue">
            <summary>
            DarkSlateBlue: #483D8B.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkSlateGray">
            <summary>
            DarkSlateGray: #2F4F4F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkTurquoise">
            <summary>
            DarkTurquoise: #00CED1.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DarkViolet">
            <summary>
            DarkViolet: #9400D3.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DeepPink">
            <summary>
            DeepPink: #FF1493.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DeepSkyBlue">
            <summary>
            DeepSkyBlue: #00BFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DimGray">
            <summary>
            DimGray: #696969.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.DodgerBlue">
            <summary>
            DodgerBlue: #1E90FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Firebrick">
            <summary>
            Firebrick: #B22222.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.FloralWhite">
            <summary>
            FloralWhite: #FFFAF0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.ForestGreen">
            <summary>
            ForestGreen: #228B22.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Fuchsia">
            <summary>
            Fuchsia: #FF00FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Gainsboro">
            <summary>
            Gainsboro: #DCDCDC.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.GhostWhite">
            <summary>
            GhostWhite: #F8F8FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Gold">
            <summary>
            Gold: #FFD700.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Goldenrod">
            <summary>
            Goldenrod: #DAA520.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Gray">
            <summary>
            Gray: #808080.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Green">
            <summary>
            Green: #008000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.GreenYellow">
            <summary>
            GreenYellow: #ADFF2F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Honeydew">
            <summary>
            Honeydew: #F0FFF0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.HotPink">
            <summary>
            HotPink: #FF69B4.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.IndianRed">
            <summary>
            IndianRed: #CD5C5C.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Indigo">
            <summary>
            Indigo: #4B0082.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Ivory">
            <summary>
            Ivory: #FFFFF0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Khaki">
            <summary>
            Khaki: #F0E68C.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Lavender">
            <summary>
            Lavender: #E6E6FA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LavenderBlush">
            <summary>
            LavenderBlush: #FFF0F5.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LawnGreen">
            <summary>
            LawnGreen: #7CFC00.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LemonChiffon">
            <summary>
            LemonChiffon: #FFFACD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightBlue">
            <summary>
            LightBlue: #ADD8E6.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightCoral">
            <summary>
            LightCoral: #F08080.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightCyan">
            <summary>
            LightCyan: #E0FFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightGoldenrodYellow">
            <summary>
            LightGoldenrodYellow: #FAFAD2.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightGray">
            <summary>
            LightGray: #D3D3D3.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightGreen">
            <summary>
            LightGreen: #90EE90.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightPink">
            <summary>
            LightPink: #FFB6C1.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightSalmon">
            <summary>
            LightSalmon: #FFA07A.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightSeaGreen">
            <summary>
            LightSeaGreen: #20B2AA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightSkyBlue">
            <summary>
            LightSkyBlue: #87CEFA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightSlateGray">
            <summary>
            LightSlateGray: #778899.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightSteelBlue">
            <summary>
            LightSteelBlue: #B0C4DE.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LightYellow">
            <summary>
            LightYellow: #FFFFE0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Lime">
            <summary>
            Lime: #00FF00.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.LimeGreen">
            <summary>
            LimeGreen: #32CD32.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Linen">
            <summary>
            Linen: #FAF0E6.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Magenta">
            <summary>
            Magenta: #FF00FF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Maroon">
            <summary>
            Maroon: #800000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumAquamarine">
            <summary>
            MediumAquamarine: #66CDAA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumBlue">
            <summary>
            MediumBlue: #0000CD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumOrchid">
            <summary>
            MediumOrchid: #BA55D3.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumPurple">
            <summary>
            MediumPurple: #9370DB.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumSeaGreen">
            <summary>
            MediumSeaGreen: #3CB371.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumSlateBlue">
            <summary>
            MediumSlateBlue: #7B68EE.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumSpringGreen">
            <summary>
            MediumSpringGreen: #00FA9A.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumTurquoise">
            <summary>
            MediumTurquoise: #48D1CC.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MediumVioletRed">
            <summary>
            MediumVioletRed: #C71585.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MidnightBlue">
            <summary>
            MidnightBlue: #191970.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MintCream">
            <summary>
            MintCream: #F5FFFA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.MistyRose">
            <summary>
            MistyRose: #FFE4E1.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Moccasin">
            <summary>
            Moccasin: #FFE4B5.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.NavajoWhite">
            <summary>
            NavajoWhite: #FFDEAD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Navy">
            <summary>
            Navy: #000080.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.OldLace">
            <summary>
            OldLace: #FDF5E6.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Olive">
            <summary>
            Olive: #808000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.OliveDrab">
            <summary>
            OliveDrab: #6B8E23.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Orange">
            <summary>
            Orange: #FFA500.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.OrangeRed">
            <summary>
            OrangeRed: #FF4500.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Orchid">
            <summary>
            Orchid: #DA70D6.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PaleGoldenrod">
            <summary>
            PaleGoldenrod: #EEE8AA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PaleGreen">
            <summary>
            PaleGreen: #98FB98.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PaleTurquoise">
            <summary>
            PaleTurquoise: #AFEEEE.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PaleVioletRed">
            <summary>
            PaleVioletRed: #DB7093.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PapayaWhip">
            <summary>
            PapayaWhip: #FFEFD5.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PeachPuff">
            <summary>
            PeachPuff: #FFDAB9.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Peru">
            <summary>
            Peru: #CD853F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Pink">
            <summary>
            Pink: #FFC0CB.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Plum">
            <summary>
            Plum: #DDA0DD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.PowderBlue">
            <summary>
            PowderBlue: #B0E0E6.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Purple">
            <summary>
            Purple: #800080.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Red">
            <summary>
            Red: #FF0000.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.RosyBrown">
            <summary>
            RosyBrown: #BC8F8F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.RoyalBlue">
            <summary>
            RoyalBlue: #4169E1.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SaddleBrown">
            <summary>
            SaddleBrown: #8B4513.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Salmon">
            <summary>
            Salmon: #FA8072.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SandyBrown">
            <summary>
            SandyBrown: #F4A460.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SeaGreen">
            <summary>
            SeaGreen: #2E8B57.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SeaShell">
            <summary>
            SeaShell: #FFF5EE.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Sienna">
            <summary>
            Sienna: #A0522D.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Silver">
            <summary>
            Silver: #C0C0C0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SkyBlue">
            <summary>
            SkyBlue: #87CEEB.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SlateBlue">
            <summary>
            SlateBlue: #6A5ACD.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SlateGray">
            <summary>
            SlateGray: #708090.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Snow">
            <summary>
            Snow: #FFFAFA.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SpringGreen">
            <summary>
            SpringGreen: #00FF7F.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.SteelBlue">
            <summary>
            SteelBlue: #4682B4.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Tan">
            <summary>
            Tan: #D2B48C.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Teal">
            <summary>
            Teal: #008080.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Thistle">
            <summary>
            Thistle: #D8BFD8.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Tomato">
            <summary>
            Tomato: #FF6347.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Turquoise">
            <summary>
            Turquoise: #40E0D0.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Violet">
            <summary>
            Violet: #EE82EE.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Wheat">
            <summary>
            Wheat: #F5DEB3.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.White">
            <summary>
            White: #FFFFFF.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.WhiteSmoke">
            <summary>
            WhiteSmoke: #F5F5F5.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.Yellow">
            <summary>
            Yellow: #FFFF00.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColors.YellowGreen">
            <summary>
            YellowGreen: #9ACD32.
            </summary>
        </member>
        <member name="T:WW.Diagnostics.DumpWriter">
            <summary>
            A dump writer to dump objects, which can be useful
            for for analyzing problems by dumping object graphs and diffing them in a diff tool.
            Use e.g. in collaboration with <see cref="F:WW.DebugTextWriter.Instance"/>.
            </summary>
        </member>
        <member name="M:WW.Diagnostics.DumpWriter.#ctor(System.IO.TextWriter)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Diagnostics.DumpWriter"/> class.
            Use e.g. in collaboration with <see cref="F:WW.DebugTextWriter.Instance"/>.
            </summary>
        </member>
        <member name="P:WW.Diagnostics.DumpWriter.Indentation">
            <summary>
            Gets or sets the indentation.
            The default value is 2.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleTransformationProvider2D">
            <summary>
            A simple transformation provider suitable for 2D views.
            </summary>
            <remarks>
            <para>
            Set the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ViewWindow">ViewWindow</see> and 
            call <see cref="M:WW.Actions.SimpleTransformationProvider2D.ResetTransforms"/> to initialize this class.
            </para>
            <para>
            The basic difference with the 3D version is that a 2D does not allow for 
            perspective settings and does a better fit of the displayed model.
            </para>
            </remarks>
        </member>
        <member name="T:WW.Actions.SimpleTransformationProviderBase">
            <summary>
            A transformation provider which allows to define the provided transformations 
            by a chain of simpler transformations.
            </summary>
            <remarks>
            <para>
            Set the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ViewWindow"/> and call <see cref="M:WW.Actions.SimpleTransformationProviderBase.ResetTransforms"/> to initialize this class.
            </para>
            <para>
            The underlying idea is that the viewer is placed at the center of the coordinate system,
            and looking into -Z direction with X pointing right and Y pointing up (in DXF world coordinates,
            see <see cref="P:WW.Actions.SimpleTransformationProviderBase.IsInvertY"/>). So the first step is to place everything in a way that it is visible 
            (i.e. the model is lying on the view axis in front of the viewer). This is done by the 
            <see cref="P:WW.Actions.SimpleTransformationProviderBase.WorldTransform"/> which is build from 3 (for 2D) or 4 (for 3D) simple transformations
            applied in the following order:
            </para>
            <list type="number">
            <item>Place the model using <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelTranslation"/></item>
            <item>Rotate the model using <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelOrientation"/></item>
            <item>Scale the model using <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelScaling"/></item>
            <item>Move the model away by <see cref="P:WW.Actions.SimpleTransformationProvider3D.CameraDistance"/> (only 3D)</item>
            </list>
            <para>
            Project the model using either <see cref="P:WW.Actions.SimpleTransformationProviderBase.ProjectionTransform"/> to project the model into screen space,
            or <see cref="P:WW.Actions.SimpleTransformationProviderBase.CanonicalProjectionTransform"/> to project the model into a screen independent space
            where both X and Y are in the range -1 to 1.
            </para>
            <para>
            The <see cref="M:WW.Actions.SimpleTransformationProviderBase.ResetTransforms"/> method is preparing all settings in a way that a model with a given 
            bounding box is visible.
            </para>
            </remarks>
        </member>
        <member name="T:WW.Actions.ITransformationProvider">
            <summary>
            A provider for transformations.
            </summary>
        </member>
        <member name="E:WW.Actions.ITransformationProvider.TransformsChanged">
            <summary>
            Event released when one of the provided transformation is changed.
            </summary>
        </member>
        <member name="P:WW.Actions.ITransformationProvider.WorldTransform">
            <summary>
            Get the world transformation.
            </summary>
            <remarks>
            The world transformation prepares the model, i.e. it 
            places it correctly according to the view axis and rotates it.
            </remarks>
        </member>
        <member name="P:WW.Actions.ITransformationProvider.ProjectionTransform">
            <summary>
            Get the projection transformation.
            </summary>
            <remarks>
            The projection transformation projects the model placed by the <see cref="P:WW.Actions.ITransformationProvider.WorldTransform"/>
            into screen coordinates.
            </remarks>
        </member>
        <member name="P:WW.Actions.ITransformationProvider.CanonicalProjectionTransform">
            <summary>
            Get the projection transformation in a canonical form.
            </summary>
            <remarks>
            This is the projection transformation where the screen coordinates are in canonical form,
            i.e they are in the interval <c>-1</c> to <c>1</c>.
            </remarks>
        </member>
        <member name="P:WW.Actions.ITransformationProvider.CompleteTransform">
            <summary>
            Get the complete transformation.
            </summary>
            <remarks>
            The complete transformation is the combination of <see cref="P:WW.Actions.ITransformationProvider.WorldTransform"/> and <see cref="P:WW.Actions.ITransformationProvider.ProjectionTransform"/>.
            </remarks>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.ResetTransforms">
            <summary>
            Reset all transformations to a useful initial state.
            </summary>
            <remarks>
            This method requires valid model bounds and valid view size.
            </remarks>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.ResetTransforms(WW.Math.Bounds3D)">
            <summary>
            Reset all transformations to a useful initial state.
            </summary>
            <param name="bounds">Bounds of model to be displayed.</param>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.OnTransformsChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.SimpleTransformationProviderBase.TransformsChanged"/> event.
            </summary>
            <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.PanView(System.Double,System.Double)">
            <summary>
            Move the model so that a resulting movement in screen coordinates is reached.
            </summary>
            <param name="dx">Desired movement in screen coordinates, X coordinate.</param>
            <param name="dy">Desired movement in screen coordinates, Y coordinate.</param>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.RectangleZoom(WW.Math.Geometry.Rectangle2D)">
            <summary>
            Zooms into the specified rectangle (specified in the display coordinate system).
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.StoreStateTo(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Store the state of this provider into a mapping.
            </summary>
            <param name="mapping">Mapping to store to.</param>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProviderBase.RestoreStateFrom(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Restore the state of this provider from a mapping.
            </summary>
            <param name="mapping">Mapping to restore from.</param>
        </member>
        <member name="E:WW.Actions.SimpleTransformationProviderBase.TransformsChanged">
            <summary>
            Event cast when any of the transformations of this transformation provider is changed.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelTranslation">
            <summary>
            Gets or sets the model translation.
            </summary>
            <remarks>
            The model translation is the first transformation which is applied to the model.
            Initially the model is moved so that the center of its bounding box lies at the 
            world center.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelTranslationTransform">
            <summary>
            Get the transformation defined by the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelTranslation"/>.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelScaling">
            <summary>
            Gets or sets the model scaling.
            </summary>
            <remarks>
            The model scaling is applied after the model rotation <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelOrientation"/>.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelScalingTransform">
            <summary>
            Get the transformation defined by the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelScaling"/>.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelOrientation">
            <summary>
            Gets or sets the model orientation.
            </summary>
            <remarks>
            The model orientation is applied after the model translation (see <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelTranslation"/>)
            and before the model scaling (<see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelScaling"/>).
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ModelOrientationTransform">
            <summary>
            Gets the transformation defined by the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ModelOrientation"/>.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ViewScaling">
            <summary>
            Gets or sets the view scaling factor.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ViewScalingSize">
            <summary>
            Gets the view scaling size.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ViewWindow">
            <summary>
            Gets or sets the target window rectangle of the view.
            </summary>
            <remarks>
            In most cases this is a rectangle with corner <c>(0,0)</c> and the size of the target window.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.EffectiveViewWindow">
            <summary>
            Gets the effective view window. 
            This can be e.g. smaller than <see cref="P:WW.Actions.SimpleTransformationProviderBase.ViewWindow"/> because of a margin on each side.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.IsInvertY">
            <summary>
            Gets or sets whether the direction of the Y axis is inverted during projection.
            </summary>
            <remarks>
            By default this is <c>true</c>, because in DXF the Y axis is pointing upward,
            while in most screen coordinate systems it is pointing downward.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.WorldTransform">
            <summary>
            Get the world transformation.
            </summary>
            <value></value>
            <remarks>
            The world transformation prepares the model, i.e. it
            places it correctly according to the view axis and rotates it.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.CanonicalProjectionTransform">
            <summary>
            Get the projection transformation in a canonical form.
            </summary>
            <value></value>
            <remarks>
            This is the projection transformation where the screen coordinates are in canonical form,
            i.e they are in the interval <c>-1</c> to <c>1</c>.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.ProjectionTransform">
            <summary>
            Get the projection transformation.
            </summary>
            <value></value>
            <remarks>
            The projection transformation projects the model placed by the <see cref="P:WW.Actions.SimpleTransformationProviderBase.WorldTransform"/>
            into screen coordinates.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProviderBase.CompleteTransform">
            <summary>
            Get the complete transformation.
            </summary>
            <remarks>
            The complete transformation is the combination of <see cref="P:WW.Actions.ITransformationProvider.WorldTransform"/> and <see cref="P:WW.Actions.ITransformationProvider.ProjectionTransform"/>.
            </remarks>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProvider2D.ResetTransforms">
            <summary>
            Reset all transformations to a useful initial state.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider2D.ViewScalingSize">
            <summary>
            Gets the view scaling size.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider2D.EffectiveViewWindow">
            <summary>
            Gets the effective view window.
            This can be e.g. smaller than <see cref="!:ViewWindow"/> because of a margin on each side.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider2D.CanonicalProjectionTransform">
            <summary>
            Gets the canonical projection transform.
            </summary>
            <value>The canonical projection transform.</value>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider2D.WorldTransform">
            <summary>
            Get the world transformation.
            </summary>
            <value></value>
            <remarks>
            The world transformation prepares the model, i.e. it
            places it correctly according to the view axis and rotates it.
            </remarks>
        </member>
        <member name="T:WW.Actions.InteractorEventArgs">
            <summary>
            An event arguments class containing an <seealso cref="P:WW.Actions.InteractorEventArgs.Interactor"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorEventArgs.#ctor(WW.Actions.IInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorEventArgs"/> class.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorEventArgs.Interactor">
            <summary>
            Gets the interactor.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.W">
            <summary>The w-coordinate.</summary>
        </member>
        <member name="F:WW.Math.QuaternionD.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.QuaternionD.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.QuaternionD.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.QuaternionD.Zero">
            <summary>
            Zero quaternion.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.Identity">
            <summary>
            Identity quaternion.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.XAxis">
            <summary>
            X-Axis quaternion.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.YAxis">
            <summary>
            Y-Axis quaternion.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.ZAxis">
            <summary>
            Z-Axis quaternion.
            </summary>
        </member>
        <member name="F:WW.Math.QuaternionD.WAxis">
            <summary>
            W-Axis quaternion.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.QuaternionD"/> class with the specified coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(System.Double,WW.Math.Vector3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.QuaternionD"/> class with the specified coordinates.
            </summary>
            <param name="w">A scalar.</param>
            <param name="v">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(System.Double[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.QuaternionD"/> class with the specified coordinates.
            </summary>
            <param name="coordinates">An array containing the 4 coordinate parameters.</param>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(WW.Math.QuaternionD)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.QuaternionD"/> class using coordinates from a given <see cref="T:WW.Math.QuaternionD"/> instance.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> to get the coordinates from.</param>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(WW.Math.Matrix4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.QuaternionD"/> class using coordinates from a given <see cref="T:WW.Math.Matrix4D"/> instance.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionD.#ctor(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Create unit quaternion from vector difference.
            </summary>
            <param name="from">start vector</param>
            <param name="to">end vector</param>
        </member>
        <member name="M:WW.Math.QuaternionD.Parse(System.String)">
            <summary>
            Converts the specified string to its <see cref="T:WW.Math.QuaternionD"/> equivalent.
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <param name="s">A string representation of a <see cref="T:WW.Math.QuaternionD"/></param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> that represents the vector specified by the <paramref name="s"/> parameter.</returns>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.QuaternionD.Add(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Adds two quaternions.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.Add(WW.Math.QuaternionD,WW.Math.QuaternionD,WW.Math.QuaternionD@)">
            <summary>
            Adds two quaternions and put the result in the third quaternion.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="result">A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</param>
        </member>
        <member name="M:WW.Math.QuaternionD.Subtract(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Subtracts a quaternion from a quaternion.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.Multiply(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Multiplies quaternion <paramref name="a"/> by quaternion <paramref name="b"/>.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> containing the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.Multiply(WW.Math.QuaternionD,System.Double)">
            <summary>
            Multiplies a quaternion by a scalar.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.Divide(WW.Math.QuaternionD,System.Double)">
            <summary>
            Divides a quaternion by a scalar.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.DotProduct(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Calculates the dot product of two quaternions.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>The dot product value.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.QuaternionToMatrix(WW.Math.QuaternionD)">
            <summary>
            Converts a given <see cref="T:WW.Math.QuaternionD"/> to a matrix.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4D"/> instance.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.FromAxisAngle(WW.Math.Vector3D,System.Double)">
            <summary>
            Turn an axis and an angle to a quaternion.
            </summary>
            <param name="axis">A unit <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <param name="angle">An angle.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> instance.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.GetModulus">
            <summary>
            Gets the modulus of the quaternion.
            </summary>
            <returns>
            The modulus of the quaternion:  sqrt(w*w + x*x + y*y + z*z).
            </returns>
        </member>
        <member name="M:WW.Math.QuaternionD.GetModulusSquared">
            <summary>
            Gets the squared modulus of the quaternion.
            </summary>
            <returns>
            The squared modulus of the quaternion:  (w*w + x*x + y*y + z*z).
            </returns>
        </member>
        <member name="M:WW.Math.QuaternionD.GetConjugate">
            <summary>
            Gets the conjugate of the quaternion.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionD.GetInverse">
            <summary>
            Inverts the quaternion.
            </summary>
            <exception cref="T:System.DivideByZeroException"></exception>
        </member>
        <member name="M:WW.Math.QuaternionD.Normalize">
            <summary>
            Normelizes the quaternion.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionD.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.QuaternionD"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Equality(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Tests whether two specified quaternions are equal.
            </summary>
            <param name="a">The left-hand quaternion.</param>
            <param name="b">The right-hand quaternion.</param>
            <returns><see langword="true"/> if the two quaternions are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Inequality(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Tests whether two specified quaternions are not equal.
            </summary>
            <param name="a">The left-hand quaternion.</param>
            <param name="b">The right-hand quaternion.</param>
            <returns><see langword="true"/> if the two quaternions are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Addition(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Adds two quaternions.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Subtraction(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Subtracts a quaternion from a quaternion.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Multiply(WW.Math.QuaternionD,WW.Math.QuaternionD)">
            <summary>
            Multiplies quaternion <paramref name="a"/> by quaternion <paramref name="b"/>.
            </summary>
            <param name="a">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.QuaternionD"/> containing the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Multiply(WW.Math.QuaternionD,System.Double)">
            <summary>
            Multiplies a quaternion by a scalar.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Multiply(System.Double,WW.Math.QuaternionD)">
            <summary>
            Multiplies a quaternion by a scalar.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Division(WW.Math.QuaternionD,System.Double)">
            <summary>
            Divides a quaternion by a scalar.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Division(System.Double,WW.Math.QuaternionD)">
            <summary>
            Divides a scalar by a quaternion.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <param name="s">A scalar.</param>
            <returns>A <see cref="T:WW.Math.QuaternionD"/> instance to hold the result.</returns>
        </member>
        <member name="M:WW.Math.QuaternionD.op_Explicit(WW.Math.QuaternionD)~System.Double[]">
            <summary>
            Converts the quaternion to an array of double precision floating point numbers.
            </summary>
            <param name="q">A <see cref="T:WW.Math.QuaternionD"/> instance.</param>
            <returns>An array of double precision floating point numbers.</returns>
            <remarks>The array is [w, x, y, z].</remarks>
        </member>
        <member name="M:WW.Math.QuaternionD.Equals(WW.Math.QuaternionD)">
            <summary>
            Returns <b>true</b> if this quaternion is equal to specified quaternion.
            </summary>
        </member>
        <member name="P:WW.Math.QuaternionD.Item(System.Int32)">
            <summary>
            Indexer ( [w, x, y, z] ).
            </summary>
        </member>
        <member name="T:WW.Math.QuaternionDConverter">
            <summary>
            Converts a <see cref="T:WW.Math.QuaternionD"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns><b>true</b> if this converter can perform the conversion; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns><b>true</b> if this converter can perform the conversion; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/> object. If a null reference (Nothing in Visual Basic) is passed, the current culture is assumed.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert.</param>
            <param name="destinationType">The Type to convert the <paramref name="value"/> parameter to.</param>
            <returns>An <see cref="T:System.Object"/> that represents the converted value.</returns>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="value">The <see cref="T:System.Object"/> to convert.</param>
            <returns>An <see cref="T:System.Object"/> that represents the converted value.</returns>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param>
            <returns><b>true</b> if <see cref="M:WW.Math.QuaternionDConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.QuaternionDConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be a null reference.</param>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Drawing.PenInfo">
            <summary>
            Info for a pen as used in CadLib context.
            It is just defined by a color and a line width.
            </summary>
        </member>
        <member name="M:WW.Drawing.PenInfo.Equals(WW.Drawing.PenInfo)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:WW.Drawing.PenInfo.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
            </returns>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:WW.Drawing.PenInfo.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:WW.Drawing.PenInfo.Color">
            <summary>
            Get the color of the pen.
            </summary>
        </member>
        <member name="P:WW.Drawing.PenInfo.LineWidth">
            <summary>
            Get the line width of the pen.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleTransformationProvider3D">
            <summary>
            A simple transformation provider suitable for 3D views.
            </summary>
            <remarks>
            <para>
            Set the <see cref="P:WW.Actions.SimpleTransformationProviderBase.ViewWindow">ViewWindow</see> and 
            call <see cref="M:WW.Actions.SimpleTransformationProvider3D.ResetTransforms"/> to initialize this class.
            </para>
            <para>
            The basic difference with the 2D version is that a 3D view allows perspective projections.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProvider3D.ResetTransforms">
            <summary>
            Reset all transformations to a useful initial state.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProvider3D.StoreStateTo(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Store the state of this provider into a mapping.
            </summary>
            <param name="mapping">Mapping to store to.</param>
        </member>
        <member name="M:WW.Actions.SimpleTransformationProvider3D.RestoreStateFrom(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Restore the state of this provider from a mapping.
            </summary>
            <param name="mapping">Mapping to restore from.</param>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.IsPerspective">
            <summary>
            Sets/gets whether the view projection is perspective.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.CanonicalProjectionTransform">
            <summary>
            Gets the canonical projection transform.
            </summary>
            <value>The canonical projection transform.</value>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.CameraDistance">
            <summary>
            Gets or sets the camera distance.
            </summary>
            <remarks>
            The model is moved from the away by this value. 
            In case of a perspectival projection this is also the distance where 
            the <see cref="P:WW.Actions.SimpleTransformationProvider3D.ViewScalingSize"/> is valid.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.ViewScalingSize">
            <summary>
            Gets or sets the view scaling size.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.CameraDistanceTransform">
            <summary>
            Get the transformation defined by the <see cref="P:WW.Actions.SimpleTransformationProvider3D.CameraDistance"/>.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.FrontClipDistance">
            <summary>
            Gets or sets the front clip distance.
            </summary>
            <remarks>
            Objects nearer to the viewer than this distance are discarded.
            Hardware accelerated graphics systems like OpenGL, DirectX or XNA 
            require this value to be greater than <c>0</c> (i.e. <c>0</c> itself is not allowed), 
            and the z buffering may produce bad results if the ratio of 
            <see cref="P:WW.Actions.SimpleTransformationProvider3D.BackClipDistance"/>/<see cref="P:WW.Actions.SimpleTransformationProvider3D.FrontClipDistance"/> is 
            becoming too large.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.BackClipDistance">
            <summary>
            Gets or sets the back clip distance.
            </summary>
            <remarks>
            Objects farer wawy from the viewer than this distance are discarded.
            HAs to be greater than <see cref="P:WW.Actions.SimpleTransformationProvider3D.FrontClipDistance"/> or 
            nothing will be visible.
            Hardware accelerated graphics systems like OpenGL, DirectX or XNA 
            may produce bad z buffering results if the ratio of 
            <see cref="P:WW.Actions.SimpleTransformationProvider3D.BackClipDistance"/>/<see cref="P:WW.Actions.SimpleTransformationProvider3D.FrontClipDistance"/> is 
            becoming too large.
            </remarks>
        </member>
        <member name="P:WW.Actions.SimpleTransformationProvider3D.WorldTransform">
            <summary>
            Get the world transformation.
            </summary>
            <value></value>
            <remarks>
            The world transformation prepares the model, i.e. it
            places it correctly according to the view axis and rotates it.
            </remarks>
        </member>
        <member name="F:WW.Math.Vector2F.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector2F.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector2F.Zero">
            <summary>
            2D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector2F.XAxis">
            <summary>
            2D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector2F.YAxis">
            <summary>
            2D Y-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.#ctor(System.Single,System.Single)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.#ctor(System.Single[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.#ctor(WW.Math.Vector2F)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Add(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Subtract(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector2F.Divide(WW.Math.Vector2F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Multiply(WW.Math.Vector2F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.DotProduct(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Negate(WW.Math.Vector2F)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.AreApproxEqual(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for vectors of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector2F.AreApproxEqual(WW.Math.Vector2F,WW.Math.Vector2F,System.Single)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector2F.GetAngle(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Returns the angle in radians between given two vectors.
            The returned value is in the range between -pi and pi.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y ))</returns>
        </member>
        <member name="M:WW.Math.Vector2F.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y)</returns>
        </member>
        <member name="M:WW.Math.Vector2F.FromAngle(System.Double)">
            <summary>
            Gets a direction vector from the specified angle in radians.
            </summary>
            <param name="angle">the angle in radians.</param>
        </member>
        <member name="M:WW.Math.Vector2F.GetAngle">
            <summary>
            Gets the angle in radians between this vector and the x-axis.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector2F.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector2F.op_Equality(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Inequality(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_UnaryNegation(WW.Math.Vector2F)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Addition(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Subtraction(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Multiply(WW.Math.Vector2F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Multiply(System.Single,WW.Math.Vector2F)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Division(WW.Math.Vector2F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.op_Explicit(WW.Math.Vector2F)~System.Single[]">
            <summary>
            Converts the vector to an array of single precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2F.Equals(WW.Math.Vector2F)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector2F.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector2FConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector2F"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2FConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2FConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2FConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2FConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector2FConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector2FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector2FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Point2F.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point2F.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point2F.Zero">
            <summary>
            The 2F zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.#ctor(System.Single,System.Single)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.#ctor(System.Single[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.#ctor(WW.Math.Point2F)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.#ctor(WW.Math.Vector2F)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.Add(WW.Math.Point2F,WW.Math.Vector2F)">
            <summary>
            Adds point to a point and returns the result.
            </summary>
            <returns>
            p + p.
            </returns>
        </member>
        <member name="M:WW.Math.Point2F.Subtract(WW.Math.Point2F,WW.Math.Vector2F)">
            <summary>
            Subtracts point from a point and returns the result.
            </summary>
            <returns>
            p - p.
            </returns>
        </member>
        <member name="M:WW.Math.Point2F.Subtract(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2F">point</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Point2F.AreApproxEqual(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Tests whether two points are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for points of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2F.AreApproxEqual(WW.Math.Point2F,WW.Math.Point2F,System.Single)">
            <summary>
            Tests whether two points are approximately equal given a tolerance value.
            </summary>
            <param name="a">Point 1.</param>
            <param name="b">Point 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2F.GetMidPoint(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Point2F.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Point2F.op_Equality(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Inequality(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Addition(WW.Math.Point2F,WW.Math.Vector2F)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Addition(WW.Math.Vector2F,WW.Math.Point2F)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Subtraction(WW.Math.Point2F,WW.Math.Vector2F)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Subtraction(WW.Math.Point2F,WW.Math.Point2F)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2F">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Explicit(WW.Math.Point2F)~System.Single[]">
            <summary>
            Converts the point to an array of single precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Explicit(WW.Math.Point3F)~WW.Math.Point2F">
            <summary>
            Converts given 3D point to a 2D point as follows:
            result = new Point2F(p.X, p.Y);
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.op_Explicit(WW.Math.Vector4F)~WW.Math.Point2F">
            <summary>
            Converts given 4F vector to a 2F point as follows:
            result = new Point2F(p.X / p.W, p.Y / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Point2F.op_Explicit(WW.Math.Vector2F)~WW.Math.Point2F">
            <summary>
            Converts given 2F vector to a 2F point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2F.Equals(WW.Math.Point2F)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Point2F.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Point2FConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Point2F"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Point2FConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point2FConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point2FConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Point2FConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Point2FConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Point2FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Point2FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Matrix2F.Zero">
            <summary>
            2-dimensional single precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix2F.Identity">
            <summary>
            2-dimensional single precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.#ctor(System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2F"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.#ctor(System.Single[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix2F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix2F.#ctor(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2F"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector2F"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector2F"/> instance holding values for the second column.</param>
        </member>
        <member name="M:WW.Math.Matrix2F.#ctor(WW.Math.Matrix2F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2F"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.Add(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.Subtract(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix2F.Multiply(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.Transpose(WW.Math.Matrix2F)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2F"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="other">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Matrix2F"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.Transform(WW.Math.Vector2F)">
            <summary>
            Transforms a given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.Transform(WW.Math.Point2F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix2F.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 1x1 matrix (float) from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2F.AreApproxEqual(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.AreApproxEqual(WW.Math.Matrix2F,WW.Math.Matrix2F,System.Single)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Equality(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Inequality(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Addition(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2F"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Subtraction(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2F"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Multiply(WW.Math.Matrix2F,WW.Math.Matrix2F)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Multiply(WW.Math.Matrix2F,WW.Math.Vector2F)">
            <summary>
            Transforms a given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector2F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.op_Multiply(WW.Math.Matrix2F,WW.Math.Point2F)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix2F"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2F.Equals(WW.Math.Matrix2F)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix2F.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 2 * row + column.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix2F.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Math.MathUtil">
            <summary>
            Math utility methods.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.Swap``1(``0@,``0@)">
            <summary>
            Swap given values.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.Swap(System.Double@,System.Double@)">
            <summary>
            Swap given values.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.Swap(System.Single@,System.Single@)">
            <summary>
            Swap given values.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.AreApproxEqual(System.Double,System.Double)">
            <summary>
            Returns whether values a and b are within <see cref="F:WW.Math.Constants.PrecisionD"/> of eachother.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.AreApproxEqual(System.Double,System.Double,System.Double)">
            <summary>
            Returns whether values a and b are within given tolerance of eachother.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.AreApproxEqual(System.Single,System.Single)">
            <summary>
            Returns whether values a and b are within <see cref="F:WW.Math.Constants.PrecisionF"/> of eachother.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.AreApproxEqual(System.Single,System.Single,System.Single)">
            <summary>
            Returns whether values a and b are within given tolerance of eachother.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.Compare(System.Double,System.Double)">
            <summary>
            Compares the two specified doubles and returns a result based on which value is larger.
            Useful for builing comparers for e.g. sorting.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.Compare(System.Single,System.Single)">
            <summary>
            Compares the two specified doubles and returns a result based on which value is larger.
            Useful for builing comparers for e.g. sorting.
            </summary>
        </member>
        <member name="M:WW.Math.MathUtil.NormalizeAnglePi(System.Double)">
            <summary>
            Normalizes the specified angle to be in the -π to π range (-π≤result≤π).
            </summary>
            <returns>The normalized angle -π≤result≤π.</returns>
        </member>
        <member name="M:WW.Math.MathUtil.NormalizeAngleTwoPi(System.Double)">
            <summary>
            Normalizes the specified angle to be in the 0 to 2π range (0≤result≤2π).
            </summary>
            <returns>The normalized angle 0≤result≤2π.</returns>
        </member>
        <member name="M:WW.Math.MathUtil.GetAngleDifference(System.Double,System.Double)">
            <summary>
            Gets the angle difference between the specified angle and the reference angle.
            The input angles must be in the 0 to 2π range. 
            Use method <see cref="M:WW.Math.MathUtil.NormalizeAngleTwoPi(System.Double)"/> to normalize an angle to the 0 to 2π range.
            </summary>
            <remarks>
            The resulting angle is in the 0 to 2π range.
            </remarks>
            <param name="angle">The angle expected to be the 0 to 2π range.</param>
            <param name="referenceAngle">The reference angle expected to be the 0 to 2π range.</param>
            <exception cref="T:System.ArgumentException">
            Thrown when either <see cref="!:angle"/> or <see cref="!:referenceAngle"/>
            is outside the valid 0 to 2π range.
            </exception>
            <seealso cref="M:WW.Math.MathUtil.NormalizeAngleTwoPi(System.Double)"/>
        </member>
        <member name="T:WW.Math.Transformation2F">
            <summary>
            Transformation2F is a Transformation <see cref="T:WW.Math.Matrix3F"/> factory class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation2F.Rotate(System.Single)">
            <summary>
            Builds a rotation matrix.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2F.Scaling(WW.Math.Vector2F)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2F"/> structure containing two values that represent the scaling factors applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2F.Scaling(System.Single,System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2F.Scaling(System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis and y-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2F.GetCoordSystem(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and y-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="T:WW.Math.Geometry.FillMode">
            <summary>
            Represents the the fill mode when filling paths.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.FillMode.Alternate">
            <summary>
            Alternate.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.FillMode.Winding">
            <summary>
            Winding.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.BigRational">
            <summary>
            Represents a big rational struct.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.Zero">
            <summary>
            Represents the number zero.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.One">
            <summary>
            Represents the number one.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.MinusOne">
            <summary>
            Represents minus one.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.Two">
            <summary>
            Represents the number two.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.MinusTwo">
            <summary>
            Represents minus two.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.Three">
            <summary>
            Represents the number three.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.MinusThree">
            <summary>
            Represents minus three.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.Half">
            <summary>
            Represents a half.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.NaN">
            <summary>
            Represents NaN (not a number).
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.PositiveInfinity">
            <summary>
            Represents positive infinity.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigRational.NegativeInfinity">
            <summary>
            Represents negative infinity.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.BigRational"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.#ctor(System.UInt32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.BigRational"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.#ctor(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.BigRational"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Multiply(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Multiplies the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Division(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Divides the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Addition(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Adds the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Subtraction(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Subtracts the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_UnaryNegation(WW.Math.Exact.BigRational)">
            <summary>
            Negates the value.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Equality(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when specified values are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Inequality(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when specified values are unequal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_GreaterThan(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when value a is greater than value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_LessThan(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when value a is less than to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_GreaterThanOrEqual(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when value a is greater than or equal to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_LessThanOrEqual(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Returns <c>true</c> when value a is less than or equal to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Explicit(System.Double)~WW.Math.Exact.BigRational">
            <summary>
            Converts a double value to a big rational.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.op_Explicit(WW.Math.Exact.BigRational)~System.Double">
            <summary>
            Converts a big rational to a double value.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.DivideByTwo">
            <summary>
            Divides this rational number by two.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.MultiplyByTwo">
            <summary>
            Multiplies this rational number by two.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.Square">
            <summary>
            Squares this rational number.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.Abs">
            <summary>
            Returns the absolute value of this rational number.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigRational.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this instance.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.BigRational.ToString(System.IFormatProvider)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this instance.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.BigRational.CompareMagnitude(WW.Math.Exact.BigRational)">
            <summary>
            Compares this big rational with specified big rational by magnitude only (ignores the signs).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.Numerator">
            <summary>
            Gets the numerator.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.Denominator">
            <summary>
            Gets the denominator.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.IsNaN">
            <summary>
            Gets a value indicating whether this instance is NaN (not a number).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.IsNegative">
            <summary>
            Gets a value indicating whether this instance is negative.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.IsPositive">
            <summary>
            Gets a value indicating whether this instance is positive (greater than zero).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.Sign">
            <summary>
            Gets the sign.
            -1 is negavive, 0 is zero, 1 is positive.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigRational.IsZero">
            <summary>
            Gets a value indicating whether this instance is zero.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.BigInteger">
            <summary>
            Represents a big integer struct.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.Zero">
            <summary>
            Represents the number zero.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.One">
            <summary>
            Represents the number one.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.MinusOne">
            <summary>
            Represents minus one.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.Two">
            <summary>
            Represents the number two.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.MinusTwo">
            <summary>
            Represents minus two.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.Three">
            <summary>
            Represents the number three.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.MinusThree">
            <summary>
            Represents minus three.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.BigInteger.NaN">
            <summary>
            Represents NaN (not a number).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.Abs">
            <summary>
            Returns the absolute value of this big integer.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Addition(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns the sum of the specified two big integers.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Multiply(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns the product of the specified two big integers.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Division(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns the a divided by b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Subtraction(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns the difference between the specified two big integers.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_UnaryNegation(WW.Math.Exact.BigInteger)">
            <summary>
            Negates the value.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.LeftShift">
            <summary>
            Returns this big integer shifted 1 bit to the left.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.LeftShift(System.Int32)">
            <summary>
            Returns this big integer shifted to the left by the specified number of bits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShift">
            <summary>
            Returns this big integer shifted 1 bit to the right.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShift(System.Int32)">
            <summary>
            Returns this big integer shifted to the right by the specified number of bits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShiftRemainder(System.Int32)">
            <summary>
            Returns the remainder of this big integer shifted to the right by the specified number of bits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.LeftShiftDigits(System.Int32)">
            <summary>
            Shifts this big integer a number of digits to the left.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShiftDigits(System.Int32)">
            <summary>
            Shifts this big integer a number of digits to the right.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.GetLsOneBitIndex">
            <summary>
            Gets the least siginificant one bit index.
            Returns -1 if there was no one bit.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.GetGcd(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Calculates the greatest common divisor of two specified integers.
            The result is zero or greater.
            </summary>
            <remarks>
            Uses a binary gcd algorithm.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Equality(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when specified values are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Inequality(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when specified values are unequal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_GreaterThan(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when value a is greater than value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_LessThan(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when value a is less than to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_GreaterThanOrEqual(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when value a is greater than or equal to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_LessThanOrEqual(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Returns <c>true</c> when value a is less than or equal to value b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.op_Explicit(WW.Math.Exact.BigInteger)~System.Double">
            <summary>
            Converts a big integer do a double value.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            	<c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.GetMsdMsOneBitIndex">
            <summary>
            Gets the most significant one bit index inside the most significant digit.
            Returns -1 if there was no one bit.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.GetMsdMsOneBitIndex(System.UInt32[],System.Int32)">
            <summary>
            Gets the most significant one bit index inside the most significant digit.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.MultiplyUnsafe(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger,System.Boolean)">
            <summary>
            Unsafe multiply (without NaN check).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.MultiplyBasicUnsigned(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger@)">
            <summary>
            Returns a * b, using a basic multiplication algorithm (O(n^2)).
            </summary>
            <remarks>
            The result may not be the same as either one of the inputs.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.DivideBasic(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger@,WW.Math.Exact.BigInteger@)">
            <summary>
            Returns a / b.
            Uses the long division algorithm from Knuth.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.LeftShift(System.UInt32[],System.Int32,System.UInt32[],System.Int32,System.Int32@)">
            <summary>
            Left shifts the specified digits.
            To and from digits may point to the same array.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.LeftShift(System.UInt32[],System.Int32,System.Int32,System.Int32@)">
            <summary>
            Left shifts the specified digits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShift(System.UInt32[],System.Int32,System.UInt32[],System.Int32,System.Int32@)">
            <summary>
            Right shifts the specified digits.
            To and from digits may point to the same array.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShift(System.UInt32[],System.Int32,System.Int32,System.Int32@)">
            <summary>
            Right shifts the specified digits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.RightShiftDigits(System.UInt32[],System.Int32,System.UInt32[],System.Int32)">
            <summary>
            Shifts the specified digits a number of digits to the right into the result digits.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.Clamp">
            <summary>
            Updates the length so any leading zeroes are removed from digits[0..length -1].
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.AddUnsigned(WW.Math.Exact.BigInteger)">
            <summary>
            Performs an unsigned addition and returns the result.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.SubtractUnsigned(WW.Math.Exact.BigInteger)">
            <summary>
            Subtracts specified value from this big integer.
            The subtraction is done unsigned, so the magnitude of
            specified value must be equal to or smaller than this value.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.Resize(System.UInt32)">
            <summary>
            Resizes the digits array to be at least the specified capacity.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.CopyFrom(WW.Math.Exact.BigInteger)">
            <summary>
            Copies the big integer from specified big integer.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.Clear">
            <summary>
            Clears this instance.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.CompareTo(WW.Math.Exact.BigInteger)">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <param name="other">An object to compare with this object.</param>
            <returns>
            A 32-bit signed integer that indicates the relative order of the objects being compared. 
            </returns>
        </member>
        <member name="M:WW.Math.Exact.BigInteger.CompareMagnitude(WW.Math.Exact.BigInteger)">
            <summary>
            Compares this big integer with specified big integer by magnitude only (ignores the signs).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsNegative">
            <summary>
            Gets a value indicating whether this instance is negative.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsPositive">
            <summary>
            Gets a value indicating whether this instance is negative (greater than zero).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.Sign">
            <summary>
            Gets the sign.
            -1 is negavive, 0 is zero, 1 is positive.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsZero">
            <summary>
            Gets a value indicating whether this instance is zero.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsNaN">
            <summary>
            Gets a value indicating whether this instance is NaN (not a number).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsEven">
            <summary>
            Gets whether this integer is even.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.BigInteger.IsOdd">
            <summary>
            Gets whether this integer is odd.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleRotateInteractor">
            <summary>
            A rotation interactor based on a <see cref="T:WW.Actions.SimpleTransformationProviderBase"/>.
            </summary>
        </member>
        <member name="F:WW.Actions.SimpleRotateInteractor.RotationCircleColor">
            <summary>
            The rotation circle color.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleRotateInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.GetRotationCircleRadius(WW.Math.Size2D)">
            <summary>
            Gets the rotation circle radius.
            When the mouse down occurs outside this circle, the interactor rotates around the z-axis.
            Inside the circle the interactor rotates around an axis in the xy plane, perpendicular to the
            line segment between the mouse position and the window center.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleRotateInteractor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleRotateInteractor.WinFormsDrawable">
            <summary>
            Represents a Windows Forms drawable for <see cref="T:WW.Actions.RectZoomInteractor"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.WinFormsDrawable.#ctor(WW.Actions.SimpleRotateInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleRotateInteractor.WinFormsDrawable"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.WinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRotateInteractor.WinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="T:WW.Text.Encodings">
            <summary>
            Represents a collection of standard encodings.
            </summary>
        </member>
        <member name="M:WW.Text.Encodings.GetEncoding(System.Int32)">
            <summary>
            Gets the encoding for specified code page.
            </summary>
        </member>
        <member name="M:WW.Text.Encodings.GetCodePage(System.Text.Encoding)">
            <summary>
            Get the code page of an encoding.
            </summary>
            <remarks>
            This is a wrapper to codepage access handling the pecularities of Silverlight incompatibilities.
            </remarks>
            <param name="encoding">The encoding.</param>
            <returns>The codepage, or <c>0</c> if it is not determinable.</returns>
        </member>
        <member name="P:WW.Text.Encodings.Gb2312">
            <summary>
            See http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Default">
            <summary>
            Gets the default encoding (on Silverlight <see cref="P:WW.Text.Encodings.Ansi1252"/> is returned).
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Ascii">
            <summary>
            Gets the ASCII encoding.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Ibm437">
            <summary>
            Gets the IBM437 encoding.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Johab">
            <summary>
            See http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Ksc5601">
            <summary>
            See http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Ansi950">
            <summary>
            See http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT.
            </summary>
        </member>
        <member name="P:WW.Text.Encodings.Dos932">
            <summary>
            The CP932 encoding (MS's extensions to Shift JIS, see http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT).
            </summary>
        </member>
        <member name="F:WW.Math.Vector3F.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3F.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3F.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3F.Zero">
            <summary>
            3F zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3F.XAxis">
            <summary>
            3F X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3F.YAxis">
            <summary>
            3F Y-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3F.ZAxis">
            <summary>
            3F Z-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(System.Single,System.Single,System.Single)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(WW.Math.Vector2F,System.Single)">
            <summary>
            Initializes this vector with given 2D vector and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(System.Single[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(WW.Math.Vector3F)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.#ctor(WW.Math.Point3F)">
            <summary>
            Initializes this vector with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Add(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Subtract(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector3F.Divide(WW.Math.Vector3F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Multiply(WW.Math.Vector3F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.DotProduct(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.CrossProduct(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculates the cross product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Negate(WW.Math.Vector3F)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.AreApproxEqual(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for vectors of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector3F.AreApproxEqual(WW.Math.Vector3F,WW.Math.Vector3F,System.Single)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector3F.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y + Z*Z))</returns>
        </member>
        <member name="M:WW.Math.Vector3F.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y + Z*Z)</returns>
        </member>
        <member name="M:WW.Math.Vector3F.FromAngle(System.Double)">
            <summary>
            Gets a direction vector from the specified angle in radians.
            </summary>
            <param name="angle">the angle in radians.</param>
        </member>
        <member name="M:WW.Math.Vector3F.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector3F.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector3F.op_Equality(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Inequality(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_UnaryNegation(WW.Math.Vector3F)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Addition(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Subtraction(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Multiply(WW.Math.Vector3F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Multiply(System.Single,WW.Math.Vector3F)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Division(WW.Math.Vector3F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Explicit(WW.Math.Vector3F)~System.Single[]">
            <summary>
            Converts the vector to an array of float-precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Explicit(WW.Math.Vector2F)~WW.Math.Vector3F">
            <summary>
            Converts given 2D vector to a 3D vector as follows:
            result = new Vector3F(v.X, v.Y, 0f);
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.op_Explicit(WW.Math.Vector4F)~WW.Math.Vector3F">
            <summary>
            Converts given 4D vector to a 3D vector as follows:
            result = new Vector3F(v.X, v.Y, v.Z);
            </summary>
            <remarks>
            It's assumed that <c>v.W</c> is equal to zero, but this is not enforced.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector3F.op_Explicit(WW.Math.Point3F)~WW.Math.Vector3F">
            <summary>
            Converts given 3D point to a 3D vector as follows:
            result = new Vector3F(p.X, p.Y, p.Z);
            </summary>
        </member>
        <member name="M:WW.Math.Vector3F.Equals(WW.Math.Vector3F)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector3F.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector3FConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector3F"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3FConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3FConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3FConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3FConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector3FConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector3FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector3FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Math.Transformation3F">
            <summary>
            Transformation3F is a Transformation <see cref="T:WW.Math.Matrix3F"/> factory class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3F.Rotate(System.Double)">
            <summary>
            Builds a rotation matrix (same as <see cref="M:WW.Math.Transformation3F.RotateZ(System.Double)"/>).
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.RotateX(System.Double)">
            <summary>
            Builds a matrix that rotates around the x-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.RotateY(System.Double)">
            <summary>
            Builds a matrix that rotates around the y-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.RotateZ(System.Double)">
            <summary>
            Builds a matrix that rotates around the z-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling(WW.Math.Vector2F)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2F"/> structure containing three values that represent the scaling factors applied along the x-axis, and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling(System.Single,System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling(WW.Math.Vector3F)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2F"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling(System.Single,System.Single,System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <param name="z">Scaling factor that is applied along the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling2D(System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis and y-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Scaling(System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Translation(System.Single,System.Single)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="x">Offset on the x-axis.</param>
            <param name="y">Offset on the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.Translation(WW.Math.Vector2F)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2F"/> structure containing three values that represent the offsets on the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3F.GetCoordSystem(WW.Math.Vector2F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3F.GetCoordSystem(WW.Math.Vector2F,WW.Math.Vector2F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and y-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3F.GetCoordSystem(WW.Math.Vector2F,WW.Math.Vector2F,WW.Math.Point2F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and origin of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3F.GetArbitraryCoordSystem(WW.Math.Vector3F)">
            <summary>
            Generate arbitrary (but not random) coordinate transformation
            according to given z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3F.GetCoordSystem(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given x and z axis are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3F.GetCoordSystem(WW.Math.Vector3F,WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="F:WW.Math.Point3F.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3F.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3F.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3F.Zero">
            <summary>
            The 3F zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(System.Single,System.Single,System.Single)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(WW.Math.Point2F,System.Single)">
            <summary>
            Initializes this point with given 2D point and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(System.Single[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(WW.Math.Point3F)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.#ctor(WW.Math.Vector3F)">
            <summary>
            Initializes this point with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.Add(WW.Math.Point3F,WW.Math.Vector3F)">
            <summary>
            Adds vector to a point and returns the result.
            </summary>
            <returns>
            p + p.
            </returns>
        </member>
        <member name="M:WW.Math.Point3F.Subtract(WW.Math.Point3F,WW.Math.Vector3F)">
            <summary>
            Subtracts vector from a point and returns the result.
            </summary>
            <returns>
            p - p.
            </returns>
        </member>
        <member name="M:WW.Math.Point3F.Subtract(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector3F">vector</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Point3F.AreApproxEqual(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Tests whether two points are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for points of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point3F.AreApproxEqual(WW.Math.Point3F,WW.Math.Point3F,System.Single)">
            <summary>
            Tests whether two points are approximately equal given a tolerance value.
            </summary>
            <param name="a">Point 1.</param>
            <param name="b">Point 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point3F.GetMidPoint(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Point3F.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Point3F.op_Equality(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Inequality(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Addition(WW.Math.Point3F,WW.Math.Vector3F)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Addition(WW.Math.Vector3F,WW.Math.Point3F)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Subtraction(WW.Math.Point3F,WW.Math.Vector3F)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Subtraction(WW.Math.Point3F,WW.Math.Point3F)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector3F">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Explicit(WW.Math.Point3F)~System.Single[]">
            <summary>
            Converts the point to an array of single precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Explicit(WW.Math.Point2F)~WW.Math.Point3F">
            <summary>
            Converts given 2D point to a 3D point as follows:
            result = new Point3F(p.X, p.Y, 0d);
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.op_Explicit(WW.Math.Vector4F)~WW.Math.Point3F">
            <summary>
            Converts given 4F vector to a 3F point as follows:
            result = new Point3F(p.X / p.W, p.Y / p.W, p.Z / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Point3F.op_Explicit(WW.Math.Vector3F)~WW.Math.Point3F">
            <summary>
            Converts given 3F vector to a 3F point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3F.Equals(WW.Math.Point3F)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Point3F.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Point3FConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Point3F"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Point3FConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point3FConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point3FConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Point3FConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Point3FConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Point3FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Point3FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Matrix3F.Zero">
            <summary>
            3-dimensional float-precision single precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix3F.Identity">
            <summary>
            3-dimensional float-precision single precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3F"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.#ctor(System.Single[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix3F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix3F.#ctor(WW.Math.Vector3F,WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3F"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector3F"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector3F"/> instance holding values for the second column.</param>
            <param name="column3">A <see cref="T:WW.Math.Vector3F"/> instance holding values for the third column.</param>
        </member>
        <member name="M:WW.Math.Matrix3F.#ctor(WW.Math.Matrix3F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3F"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Add(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Subtract(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix3F.Multiply(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Transpose(WW.Math.Matrix3F)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3F"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Matrix3F"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.Transform(WW.Math.Vector2F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Transform(WW.Math.Point2F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Transform(WW.Math.Vector3F)">
            <summary>
            Transforms a given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.Transform(WW.Math.Point3F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.TransformTo2D(WW.Math.Point3F)">
            <summary>
            Transforms given point by this matrix and returns a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix3F.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 2x2 matrix from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Matrix2F"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3F.AreApproxEqual(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.AreApproxEqual(WW.Math.Matrix3F,WW.Math.Matrix3F,System.Single)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Equality(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Inequality(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Addition(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3F"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Subtraction(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3F"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Multiply(WW.Math.Matrix3F,WW.Math.Matrix3F)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Multiply(WW.Math.Matrix3F,WW.Math.Vector3F)">
            <summary>
            Transforms a given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.op_Multiply(WW.Math.Matrix3F,WW.Math.Point3F)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix3F"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3F.Equals(WW.Math.Matrix3F)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix3F.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 3 * row + column.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix3F.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Int32,System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Boolean,`0[])">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Boolean,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Int32)">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(`0[])">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline`1.#ctor(WW.Math.Geometry.Polyline{`0})">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polyline`1.Closed">
            <summary>
            Gets or sets whether this polyline is closed.
            </summary>
        </member>
        <member name="T:WW.Pair`2">
            <summary>
            Generic pair class.
            </summary>
            <remarks>
            This is a class often useful to keep together two instances of something.
            </remarks>
            <typeparam name="T1">type of first pair element</typeparam>
            <typeparam name="T2">type of second pair element</typeparam>
        </member>
        <member name="M:WW.Pair`2.#ctor(`0,`1)">
            <summary>
            Constructor.
            </summary>
            <param name="first">first pair element</param>
            <param name="second">second pair element</param>
        </member>
        <member name="P:WW.Pair`2.First">
            <summary>
            Get the first element of the pair.
            </summary>
        </member>
        <member name="P:WW.Pair`2.Second">
            <summary>
            Get the second element of the pair.
            </summary>
        </member>
        <member name="T:WW.Pair`1">
            <summary>
            Generic pair class.
            </summary>
            <remarks>
            This is a class often useful to keep together two instances of something.
            </remarks>
            <typeparam name="T">type of pair element</typeparam>
        </member>
        <member name="M:WW.Pair`1.#ctor(`0,`0)">
            <summary>
            Constructor.
            </summary>
            <param name="first">first pair element</param>
            <param name="second">second pair element</param>
        </member>
        <member name="P:WW.Pair`1.First">
            <summary>
            Get the first element of the pair.
            </summary>
        </member>
        <member name="P:WW.Pair`1.Second">
            <summary>
            Get the second element of the pair.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.PropertyAttributesProvider">
            <summary>
            Delegate that allows a class to change property attributes that
            define a property's behaviour in 
            a <see cref="T:System.Windows.Forms.PropertyGrid"/>.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.PropertyAttributesProviderAttribute">
            <summary>
            Use this attribute on a property to set a property's
            <see cref="T:WW.ComponentModel.PropertyAttributesProvider"/> delegate.
            </summary>
        </member>
        <member name="M:WW.ComponentModel.PropertyAttributesProviderAttribute.#ctor(System.String)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.ComponentModel.PropertyAttributesProviderAttribute.GetPropertyAttributesProvider(System.Object)">
            <summary>
            Get the <see cref="T:WW.ComponentModel.PropertyAttributesProvider"/> specified by the
            <see cref="T:WW.ComponentModel.PropertyAttributesProviderAttribute"/> on given target object.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polyline2DCollection">
            <summary>
            Represents a collection of <see cref="T:WW.Math.Geometry.Polyline2D"/> elements.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.IShape2D">
            <summary>
            General interface for two-dimensional shapes which can be drawn.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IShape2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
            <remarks>
            It is expected that the returned iterator represents a snapshot of the shape's 
            state as it is when the iterator is created via this property, i.e. changes 
            which are applied to the shape after the iterator is constructed are not expected to be 
            reflected by the iterator itself.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.IShape2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.IShape2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2DCollection.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polyline2DCollection"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2DCollection.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polyline2DCollection"/> class.
            </summary>
            <param name="capacity">The capacity.</param>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2DCollection.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Geometry.Polyline2D})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polyline2DCollection"/> class.
            </summary>
            <param name="collection">The collection whose elements are copied to the new list.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="collection"/> is null.
            </exception>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2DCollection.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2DCollection.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.Polyline2DCollection.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Triangulator2BR">
            <summary>
            2D triangulator that can triangulate polygons with holes.
            </summary>
            <remarks>
            <para>
            The polygons may not cross each other.
            </para>
            <para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating a square polygon with a hole in it.
            The hole is a smaller square.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2BRExample {
        public static void Triangulate() {
            List&lt;Triangulator2BR.Triangle&gt; resultingTriangles = new List&lt;Triangulator2BR.Triangle&gt;();
            List&lt;Point2BR&gt; points = new List&lt;Point2BR&gt;();

            // Cutout a small rectangle from a bigger rectangle.
            Triangulator2BR.Triangulate(
                new Point2BR[][] {
                    new Point2BR[] { 
                        new Point2BR(-2d, -2d),
                        new Point2BR(2d, -2d),
                        new Point2BR(2d, 2d),
                        new Point2BR(-2d, 2d)
                    },
                    new Point2BR[] { 
                        new Point2BR(-1d, -1d),
                        new Point2BR(1d, -1d),
                        new Point2BR(1d, 1d),
                        new Point2BR(-1d, 1d)
                    }
                },
                resultingTriangles,
                points
            );

            // Show all resulting triangles.
            foreach (Triangulator2BR.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})", 
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            <para>
            This is the output of the triangulation:
            </para>
            <para><c>(-2, 2), (1, 1), (-1, 1)</c></para>
            <para><c>(-1, -1), (-2, 2), (-1, 1)</c></para>
            <para><c>(1, 1), (2, 2), (1, -1)</c></para>
            <para><c>(-2, 2), (2, 2), (1, 1)</c></para>
            <para><c>(2, -2), (-1, -1), (1, -1)</c></para>
            <para><c>(2, 2), (2, -2), (1, -1)</c></para>
            <para><c>(-1, -1), (-2, -2), (-2, 2)</c></para>
            <para><c>(2, -2), (-2, -2), (-1, -1)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangulate(System.Collections.Generic.IList{System.Collections.Generic.IList{WW.Math.Exact.Point2BR}},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Triangulates given polygons and returns triangles and points.
            </summary>
            <param name="polygons">Input. The polygons may not cross each other.</param>
            <param name="triangles">Output triangles, only contains the triangle point indices.</param>
            <param name="points">Output points, referred to by the point indices in the output triangles.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating a square polygon with a hole in it.
            The hole is a smaller square.
            <!-- No matching elements were found for the following include tag --><include file="ExamplesDoc.xml" path="examples/example[@name=&quot;Triangulator2BR.Triangulate example&quot;]/code"/>
            	<para>
            This is the output of the triangulation:
            </para>
            	<para><c>(-2, 2), (1, 1), (-1, 1)</c></para>
            	<para><c>(-1, -1), (-2, 2), (-1, 1)</c></para>
            	<para><c>(1, 1), (2, 2), (1, -1)</c></para>
            	<para><c>(-2, 2), (2, 2), (1, 1)</c></para>
            	<para><c>(2, -2), (-1, -1), (1, -1)</c></para>
            	<para><c>(2, 2), (2, -2), (1, -1)</c></para>
            	<para><c>(-1, -1), (-2, -2), (-2, 2)</c></para>
            	<para><c>(2, -2), (-2, -2), (-1, -1)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangulate(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.IList{System.Collections.Generic.IList{System.Int32}},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Triangulates given point set and polylines.
            </summary>
            <param name="inputPoints">The input points.</param>
            <param name="polylinePointIndexesList">
            Represents polylines of fixed edges. May be empty or null.
            Each integer is an index in the inputPoints.
            </param>
            <param name="triangles">The output triangles.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            <para>
            This method may skip points that are very close together, in that case also the point index lists are modified.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating five points resulting in three triangles.
            The second triangulation is the same as the first one, but with one edge fixed (which forces more skinny triangles in this particular case).
            <!-- No matching elements were found for the following include tag --><include file="ExamplesDoc.xml" path="examples/example[@name=&quot;Triangulator2BR.Triangulate example 2&quot;]/code"/>
            <para>
            This is the output of the first triangulation:
            </para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            	<para><c>(2, 2), (4, 0), (2, -2)</c></para>
            	<para><c>(2, -2), (-2, -2), (2, 2)</c></para>
            <para>
            This is the output of the second triangulation:
            </para>
            	<para><c>(-2, -2), (4, 0), (2, -2)</c></para>
            	<para><c>(4, 0), (-2, -2), (2, 2)</c></para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangulate(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.IList{System.Collections.Generic.IList{System.Int32}},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Boolean)">
            <summary>
            Triangulates given point set and polylines.
            </summary>
            <param name="inputPoints">The input points.</param>
            <param name="polylinePointIndexesList">Represents polylines of fixed edges. May be empty or null.
            Each integer is an index in the inputPoints.</param>
            <param name="triangles">The output triangles.</param>
            <param name="removeSuperTriangles">if set to <c>true</c> removes super triangles when finished triangulating.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            	<para>
            This method may skip points that are very close together, in that case also the point index lists are modified.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.FilterIgnore(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.ICollection{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Filter all outside triangles.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.FilterNormal(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.ICollection{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Filter all outside and odd regions.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.FilterOuter(System.Collections.Generic.List{WW.Math.Exact.Point2BR},System.Collections.Generic.ICollection{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Filter out all triangles except outer triangles remain.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.AddPoint(WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@)">
            <summary>
            Adds point to CDT.
            Returns the point index of the point itself if added,
            or if it is approximately equal to another point, it returns the index of that point instead, and the given
            point is not added.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.AddPoint(WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Collections.Generic.List{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Int32)">
            <summary>
            Adds point to CDT.
            Returns the point index of the point itself if added,
            or if it is approximately equal to another point, it returns the index of that point instead, and the given
            point is not added.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.AddEdgeHelper(WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Int32,System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@)">
            <summary>
            Adds an edge.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.GetSuperTriangle(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Calculates the super triangle from given points 
            (adds three points to given point collection).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.TriangulatePseudoPolygon(WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Collections.Generic.List{System.Int32},System.Int32,System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.List{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Triangulate pseudo polygon.
            Note that the polygon created by
            p0, p1 and polygonPoints is expected to be clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.SwapEdge(WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Int32,System.Collections.Generic.List{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Swap edges.
            Either removes 1 triangle from or adds 1 triangle to the sweep line triangles.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Triangulator2BR.Triangle">
            <summary>
            Vertices are ordered clock wise for quick inside triangle testing.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.i0">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.i1">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.i2">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.edge0FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.edge1FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.edge2FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.neighbour0">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.neighbour1">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.neighbour2">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Constructor. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.#ctor(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Constructor (makes the triangle vertices ordered clockwise).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Init(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Intialization. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Init(System.Int32,System.Byte,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Int32,System.Byte,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Int32,System.Byte,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Intialization. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.DivideInThree(System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Collections.Generic.Stack{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Replace this triangle by 3 new triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.DivideInThree(System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Collections.Generic.List{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Int32,System.Collections.Generic.Stack{WW.Math.Exact.Geometry.Triangulator2BR.Triangle})">
            <summary>
            Replace this triangle by 3 new triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.DivideInTwo(System.Int32,System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.TriangulatorContext,System.Collections.Generic.List{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},System.Int32,System.Collections.Generic.Stack{WW.Math.Exact.Geometry.Triangulator2BR.Triangle},WW.Math.Exact.Geometry.Triangulator2BR.Triangle,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,WW.Math.Exact.Geometry.Triangulator2BR.Triangle)">
            <summary>
            Creates 2 triangles such of the new triangles 2 of the 3 edges remain at the same index.
            The sweep triangle point always remains at index 0.
            The 2 triangles are created in clockwise order along the divided edge.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.ReplaceNeighbour(System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle)">
            <summary>
            Replace neighbour at edge with given start point with specified triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.TryReplaceNeighbour(System.Int32,System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle)">
            <summary>
            Try to replace neighbour. Note that e0 and e1 must be in clockwise direction.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.GetOpposite(System.Int32)">
            <summary>
            Gets opposite triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.IsOppositeEdgeFixed(System.Int32)">
            <summary>
            Gets whether the opposite edge is fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.IsPointInCircle(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Returns whether point is in circle that goes
            through all three points of this triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.IsPointInCircle(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether point is in circle through points a, b and c.
            </summary>
            <remarks>
            This is often called the inCircle test in literature.
            Note that points a, b and c MUST be in clockwise order 
            (otherwise sign of the determinant changes).
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.GetQuadrianglePoints(System.Int32,WW.Math.Exact.Geometry.Triangulator2BR.Triangle,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@,System.Int32@,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@,System.Int32@,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@,System.Int32@,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@)">
            <summary>
            Get the four points of the 2 opposing triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.GetNextPoint(System.Int32,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@,System.Int32@,System.Byte@,WW.Math.Exact.Geometry.Triangulator2BR.Triangle@)">
            <summary>
            Get next point with adjacent edge info.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.MakeEdgeAndNeighbourEdgeFixed(System.Int32)">
            <summary>
            Also makes the edge in the neighbour triangle fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.MakeEdgeFixed(System.Int32)">
            <summary>
            Make edge starting at given point fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Intersect(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Check of 2 lines segments intersect (first segment is treated as ray (i.e. semi infinite from a point)).
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.ToString">
            <inheritdoc/>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.I0">
            <summary>
            Gets or sets the first point index.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.I1">
            <summary>
            Gets or sets the second point index.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.I2">
            <summary>
            Gets or sets the third point index.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge0FixCount">
            <summary>
            Gets or sets the whether first edge is fixed (the edge starting with the first point).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge1FixCount">
            <summary>
            Gets or sets the whether second edge is fixed (the edge starting with the second point).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge2FixCount">
            <summary>
            Gets or sets the whether third edge is fixed (the edge starting with the third point).
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge0HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 0 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge1HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 1 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.Edge2HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 2 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Triangulator2BR.Triangle.FilterStatus">
            <summary>
            Gets or sets the filter status.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.BigMath">
            <summary>
            Contains a collection of utility methods.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigMath.Max(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Gets the greatest of the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigMath.Min(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Gets the smallest of the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigMath.Max(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Gets the greatest of the specified two values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.BigMath.Min(WW.Math.Exact.BigInteger,WW.Math.Exact.BigInteger)">
            <summary>
            Gets the smallest of the specified two values.
            </summary>
        </member>
        <member name="T:WW.IBitConverter">
            <summary>
            Represents a bit converter interface.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.Int16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.UInt16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.Int32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.UInt32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.Int64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.UInt64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.Double)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.GetBytes(System.Single)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToChar(System.Byte[])">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToDouble(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToSingle(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToChar(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.IBitConverter.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="T:WW.Drawing.ArgbColor">
            <summary>
            Represents a substitute for system-dependent color values
            like System.Drawing.Color. It stores color 
            components as byte values.
            </summary>
            <remarks>
            Some constant values are found in <see cref="T:WW.Drawing.ArgbColors"/>.
            </remarks>
        </member>
        <member name="F:WW.Drawing.ArgbColor.PhysiologicalBrightnessRed">
            <summary>
            Physiolocigal brightness value for red. 
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.PhysiologicalBrightnessGreen">
            <summary>
            Physiolocigal brightness value for green. */
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.PhysiologicalBrightnessBlue">
            <summary>
            Physiolocigal brightness value for blue. */
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.AlphaShift">
            <summary>
            The left shift of the <see cref="F:WW.Drawing.ArgbColor.ComponentMask"/> so it masks the alpha color component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.RedShift">
            <summary>
            The left shift of the <see cref="F:WW.Drawing.ArgbColor.ComponentMask"/> so it masks the red color component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.GreenShift">
            <summary>
            The left shift of the <see cref="F:WW.Drawing.ArgbColor.ComponentMask"/> so it masks the green color component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.BlueShift">
            <summary>
            The left shift of the <see cref="F:WW.Drawing.ArgbColor.ComponentMask"/> so it masks the blue color component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.ComponentMask">
            <summary>
            Mask for one component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.AlphaMask">
            <summary>
            Mask for the alpha component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.RedMask">
            <summary>
            Mask for the red component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.GreenMask">
            <summary>
            Mask for the green component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.BlueMask">
            <summary>
            Mask for the blue component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.RgbMask">
            <summary>
            Mask for the red, green and blue component.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.argb">
            <summary>
            The color value.
            </summary>
        </member>
        <member name="F:WW.Drawing.ArgbColor.Empty">
            <summary>
            The empty color.
            </summary>
        </member>
        <member name="M:WW.Drawing.ArgbColor.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.ArgbColor"/> struct.
            </summary>
            <param name="a">alpha value (from 0 to 255)</param>
            <param name="r">red value (from 0 to 255)</param>
            <param name="g">green value (from 0 to 255)</param>
            <param name="b">blue value (from 0 to 255)</param>
        </member>
        <member name="M:WW.Drawing.ArgbColor.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.ArgbColor"/> struct.
            </summary>
            <param name="r">red value (from 0 to 255)</param>
            <param name="g">green value (from 0 to 255)</param>
            <param name="b">blue value (from 0 to 255)</param>
        </member>
        <member name="M:WW.Drawing.ArgbColor.#ctor(System.UInt32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.ArgbColor"/> struct.
            </summary>
            <param name="argb">ARGB value</param>
            <remarks>
            The bytes of the value are (from MSB to LSB) Alpha, Red, Green, Blue.
            </remarks>
        </member>
        <member name="M:WW.Drawing.ArgbColor.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.ArgbColor"/> struct.
            </summary>
            <param name="argb">ARGB value</param>
            <remarks>
            The bytes of the value are (from MSB to LSB) Alpha, Red, Green, Blue.
            </remarks>
        </member>
        <member name="M:WW.Drawing.ArgbColor.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            	<c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.ToString">
            <summary>
            Return a string representation.
            </summary>
            <returns>
            String representation.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:WW.Drawing.ArgbColor.FromArgb(System.Int32,WW.Drawing.ArgbColor)">
            <summary>
            Create a <see cref="T:WW.Drawing.ArgbColor"/> from specified color with a new alpha value.
            </summary>
            <param name="alpha">The alpha value.</param>
            <param name="baseColor">The base color.</param>
        </member>
        <member name="M:WW.Drawing.ArgbColor.FromArgb(System.Int32,System.Boolean)">
            <summary>
            Create a <see cref="T:WW.Drawing.ArgbColor"/> from an ARGB value.
            </summary>
            <param name="argb">The ARGB.</param>
            <param name="withAlpha">if set to <c>true</c> the ARGB value contains alpha blending, otherwise it's opawue.</param>
        </member>
        <member name="M:WW.Drawing.ArgbColor.FromRgb(System.Int32,System.Int32,System.Int32)">
            <summary>
            Create an opaque <see cref="T:WW.Drawing.ArgbColor"/> from an ARGB value.
            </summary>
            <param name="r">Red component value, between <c>0</c> and <c>255</c>.</param>
            <param name="g">Green component value, between <c>0</c> and <c>255</c>.</param>
            <param name="b">Blue component value, between <c>0</c> and <c>255</c>.</param>
        </member>
        <member name="M:WW.Drawing.ArgbColor.FromGray(System.Int32)">
            <summary>
            Create a gray color
            </summary>
            <param name="brightness">Brightness value, between <c>0</c> (black) and <c>255</c> (white).</param>
            <returns></returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.IsBrightColor(WW.Drawing.ArgbColor)">
            <summary>
            Is the given color a bright color?
            </summary>
            <remarks>
            This calculates the physiological brightness of the color and checks whether it is brighter than medium grey.
            It does not take care of the alpha value.
            </remarks>
            <param name="color">Color to test.</param>
            <returns><c>true</c> if the color is brighter than medium grey, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.Equals(WW.Drawing.ArgbColor)">
            <summary>
            Compares this and the other color.
            </summary>
            <param name="other">The other color.</param>
            <returns><c>true</c> if both are equal, otherwise <c>false</c></returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.op_Implicit(WW.Drawing.ArgbColor)~System.Drawing.Color">
            <summary>
            Implicit cast to System.Drawing.Color.
            </summary>
            <param name="color">argb color</param>
            <returns>System.Drawing.Color</returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.op_Implicit(System.Drawing.Color)~WW.Drawing.ArgbColor">
            <summary>
            Implicit cast from System.Drawing.Color.
            </summary>
            <param name="color">System.Drawing color</param>
            <returns>ARGB color</returns>
        </member>
        <member name="M:WW.Drawing.ArgbColor.op_Equality(WW.Drawing.ArgbColor,WW.Drawing.ArgbColor)">
            <summary>
            Returns whether the two specified colors are equal.
            </summary>
        </member>
        <member name="M:WW.Drawing.ArgbColor.op_Inequality(WW.Drawing.ArgbColor,WW.Drawing.ArgbColor)">
            <summary>
            Returns whether the two specified colors are unequal.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Alpha">
            <summary>
            Gets or sets the alpha component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Red">
            <summary>
            Gets or sets the red component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Green">
            <summary>
            Gets or sets the Green component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Blue">
            <summary>
            Gets or sets the blue component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.A">
            <summary>
            Gets or sets the alpha component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.R">
            <summary>
            Gets or sets the red component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.G">
            <summary>
            Gets or sets the Green component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.B">
            <summary>
            Gets or sets the blue component.
            </summary>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Argb">
            <summary>
            Gets or sets the argb value.
            </summary>
            <remarks>
            The bytes of the value are (from MSB to LSB) Alpha, Red, Green, Blue.
            </remarks>
        </member>
        <member name="P:WW.Drawing.ArgbColor.ArgbUInt32">
            <summary>
            Gets or sets the argb value.
            </summary>
            <remarks>
            The bytes of the value are (from MSB to LSB) Alpha, Red, Green, Blue.
            </remarks>
        </member>
        <member name="P:WW.Drawing.ArgbColor.Rgb">
            <summary>
            Gets or sets the Rgb value, assuming that Alpha is 255 .
            </summary>
            <remarks>
            The bytes of the value are (from MSB to LSB) unused, Red, Green, Blue.
            </remarks>
        </member>
        <member name="P:WW.Drawing.ArgbColor.MaxRgbColorComponent">
            <summary>
            Get the maximum RGB color component.
            </summary>
            <remarks>
            The maximum color component is the color component with the highest value.
            The alpha value is ignored.
            </remarks>
        </member>
        <member name="P:WW.Drawing.ArgbColor.MinRgbColorComponent">
            <summary>
            Get the minimum RGB color component.
            </summary>
            <remarks>
            The minimum color component is the color component with the lowest value.
            The alpha value is ignored.
            </remarks>
        </member>
        <member name="T:WW.Drawing.ArgbColorTypeConverter">
            <summary>
            Type converter from ArgbColor to System.Drawing.Color and vice versa.
            </summary>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param><param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from. </param>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
            <returns>
            true if this converter can perform the conversion; otherwise, false.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param><param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to. </param>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param><param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param><param name="value">The <see cref="T:System.Object"/> to convert. </param><exception cref="T:System.NotSupportedException">The conversion cannot be performed. </exception>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param><param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. </param><param name="value">The <see cref="T:System.Object"/> to convert. </param><param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. </param><exception cref="T:System.ArgumentNullException">The <paramref name="destinationType"/> parameter is null. </exception><exception cref="T:System.NotSupportedException">The conversion cannot be performed. </exception>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.
            </summary>
            <returns>
            true if <see cref="M:System.ComponentModel.TypeConverter.GetStandardValues"/> should be called to find a common set of values the object supports; otherwise, false.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
        </member>
        <member name="M:WW.Drawing.ArgbColorTypeConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>
            A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or null if the data type does not support a standard set of values.
            </returns>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context that can be used to extract additional information about the environment from which this converter is invoked. This parameter or properties of this parameter can be null. </param>
        </member>
        <member name="T:WW.DebugTextWriter">
            <summary>
            A text writer that writes to <see cref="T:System.Diagnostics.Debug"/>.
            Use <see cref="F:WW.DebugTextWriter.Instance"/> to write to.
            </summary>
        </member>
        <member name="F:WW.DebugTextWriter.Instance">
            <summary>
            The instance to use.
            </summary>
        </member>
        <member name="M:WW.DebugTextWriter.Close">
            <summary>
            Closes the current writer and releases any system resources associated with the writer.
            </summary>
        </member>
        <member name="M:WW.DebugTextWriter.Flush">
            <summary>
            Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.
            </summary>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Boolean)">
            <summary>
            Writes the text representation of a Boolean value to the text stream.
            </summary>
            <param name="value">The Boolean to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Char)">
            <summary>
            Writes a character to the text stream.
            </summary>
            <param name="value">The character to write to the text stream.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Char[])">
            <summary>
            Writes a character array to the text stream.
            </summary>
            <param name="buffer">The character array to write to the text stream.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Decimal)">
            <summary>
            Writes the text representation of a decimal value to the text stream.
            </summary>
            <param name="value">The decimal value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Double)">
            <summary>
            Writes the text representation of an 8-byte floating-point value to the text stream.
            </summary>
            <param name="value">The 8-byte floating-point value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Single)">
            <summary>
            Writes the text representation of a 4-byte floating-point value to the text stream.
            </summary>
            <param name="value">The 4-byte floating-point value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Int32)">
            <summary>
            Writes the text representation of a 4-byte signed integer to the text stream.
            </summary>
            <param name="value">The 4-byte signed integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Int64)">
            <summary>
            Writes the text representation of an 8-byte signed integer to the text stream.
            </summary>
            <param name="value">The 8-byte signed integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Object)">
            <summary>
            Writes the text representation of an object to the text stream by calling ToString on that object.
            </summary>
            <param name="value">The object to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.String)">
            <summary>
            Writes a string to the text stream.
            </summary>
            <param name="value">The string to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.UInt32)">
            <summary>
            Writes the text representation of a 4-byte unsigned integer to the text stream.
            </summary>
            <param name="value">The 4-byte unsigned integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.UInt64)">
            <summary>
            Writes the text representation of an 8-byte unsigned integer to the text stream.
            </summary>
            <param name="value">The 8-byte unsigned integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.String,System.Object)">
            <summary>
            Writes out a formatted string, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg0">An object to write into the formatted string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.String,System.Object[])">
            <summary>
            Writes out a formatted string, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg">The object array to write into the formatted string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> or <paramref name="arg"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to <paramref name="arg"/>. Length. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.Char[],System.Int32,System.Int32)">
            <summary>
            Writes a subarray of characters to the text stream.
            </summary>
            <param name="buffer">The character array to write data from.</param>
            <param name="index">Starting index in the buffer.</param>
            <param name="count">The number of characters to write.</param>
            <exception cref="T:System.ArgumentException">The buffer length minus <paramref name="index"/> is less than <paramref name="count"/>. </exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="buffer"/> parameter is null. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> or <paramref name="count"/> is negative. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.String,System.Object,System.Object)">
            <summary>
            Writes out a formatted string, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg0">An object to write into the formatted string.</param>
            <param name="arg1">An object to write into the formatted string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.Write(System.String,System.Object,System.Object,System.Object)">
            <summary>
            Writes out a formatted string, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg0">An object to write into the formatted string.</param>
            <param name="arg1">An object to write into the formatted string.</param>
            <param name="arg2">An object to write into the formatted string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine">
            <summary>
            Writes a line terminator to the text stream.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Boolean)">
            <summary>
            Writes the text representation of a Boolean followed by a line terminator to the text stream.
            </summary>
            <param name="value">The Boolean to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Char)">
            <summary>
            Writes a character followed by a line terminator to the text stream.
            </summary>
            <param name="value">The character to write to the text stream.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Char[])">
            <summary>
            Writes an array of characters followed by a line terminator to the text stream.
            </summary>
            <param name="buffer">The character array from which data is read.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Decimal)">
            <summary>
            Writes the text representation of a decimal value followed by a line terminator to the text stream.
            </summary>
            <param name="value">The decimal value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Double)">
            <summary>
            Writes the text representation of a 8-byte floating-point value followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 8-byte floating-point value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Single)">
            <summary>
            Writes the text representation of a 4-byte floating-point value followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 4-byte floating-point value to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Int32)">
            <summary>
            Writes the text representation of a 4-byte signed integer followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 4-byte signed integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Int64)">
            <summary>
            Writes the text representation of an 8-byte signed integer followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 8-byte signed integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Object)">
            <summary>
            Writes the text representation of an object by calling ToString on this object, followed by a line terminator to the text stream.
            </summary>
            <param name="value">The object to write. If <paramref name="value"/> is null, only the line termination characters are written.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.String)">
            <summary>
            Writes a string followed by a line terminator to the text stream.
            </summary>
            <param name="value">The string to write. If <paramref name="value"/> is null, only the line termination characters are written.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.UInt32)">
            <summary>
            Writes the text representation of a 4-byte unsigned integer followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 4-byte unsigned integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.UInt64)">
            <summary>
            Writes the text representation of an 8-byte unsigned integer followed by a line terminator to the text stream.
            </summary>
            <param name="value">The 8-byte unsigned integer to write.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.String,System.Object)">
            <summary>
            Writes out a formatted string and a new line, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatted string.</param>
            <param name="arg0">The object to write into the formatted string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.String,System.Object[])">
            <summary>
            Writes out a formatted string and a new line, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg">The object array to write into format string.</param>
            <exception cref="T:System.ArgumentNullException">A string or object is passed in as null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to arg.Length. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.Char[],System.Int32,System.Int32)">
            <summary>
            Writes a subarray of characters followed by a line terminator to the text stream.
            </summary>
            <param name="buffer">The character array from which data is read.</param>
            <param name="index">The index into <paramref name="buffer"/> at which to begin reading.</param>
            <param name="count">The maximum number of characters to write.</param>
            <exception cref="T:System.ArgumentException">The buffer length minus <paramref name="index"/> is less than <paramref name="count"/>. </exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="buffer"/> parameter is null. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> or <paramref name="count"/> is negative. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.String,System.Object,System.Object)">
            <summary>
            Writes out a formatted string and a new line, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg0">The object to write into the format string.</param>
            <param name="arg1">The object to write into the format string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="M:WW.DebugTextWriter.WriteLine(System.String,System.Object,System.Object,System.Object)">
            <summary>
            Writes out a formatted string and a new line, using the same semantics as <see cref="M:System.String.Format(System.String,System.Object)"/>.
            </summary>
            <param name="format">The formatting string.</param>
            <param name="arg0">The object to write into the format string.</param>
            <param name="arg1">The object to write into the format string.</param>
            <param name="arg2">The object to write into the format string.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="format"/> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.TextWriter"/> is closed. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.FormatException">The format specification in format is invalid.-or- The number indicating an argument to be formatted is less than zero, or larger than or equal to the number of provided objects to be formatted. </exception>
        </member>
        <member name="P:WW.DebugTextWriter.Encoding">
            <summary>
            When overridden in a derived class, returns the <see cref="T:System.Text.Encoding"/> in which the output is written.
            </summary>
            <returns>The Encoding in which the output is written.</returns>
        </member>
        <member name="T:WW.Text.PagedEncoding">
            <summary>
            Encoding with an explicit codepage for Silverlight.
            No new functionality else.
            </summary>
        </member>
        <member name="T:WW.Strings">
            <summary>
            A class for accessing WW's resource strings (in resource WW.Strings.resources).
            </summary>
        </member>
        <member name="M:WW.Strings.GetString(System.String)">
            <summary>
            Gets the string.
            </summary>
        </member>
        <member name="M:WW.Strings.GetString(System.String,System.Globalization.CultureInfo)">
            <summary>
            Gets the string.
            </summary>
        </member>
        <member name="P:WW.Strings.ResourceManager">
            <summary>
            Gets the resource manager for strings in the WW.Cad assembly.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4F.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4F.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4F.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4F.W">
            <summary>The w-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4F.Zero">
            <summary>
            4F zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4F.XAxis">
            <summary>
            4F X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4F.YAxis">
            <summary>
            4F Y-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4F.ZAxis">
            <summary>
            4F Z-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4F.WAxis">
            <summary>
            4F W-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.#ctor(System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.#ctor(System.Single[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.#ctor(WW.Math.Vector4F)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Add(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Subtract(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector4F.Divide(WW.Math.Vector4F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Multiply(WW.Math.Vector4F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.DotProduct(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Negate(WW.Math.Vector4F)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.AreApproxEqual(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector4F.AreApproxEqual(WW.Math.Vector4F,WW.Math.Vector4F,System.Single)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector4F.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y + Z*Z + W*W))</returns>
        </member>
        <member name="M:WW.Math.Vector4F.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y + Z*Z + W*W)</returns>
        </member>
        <member name="M:WW.Math.Vector4F.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z, w").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector4F.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z,w").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector4F.op_Equality(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Inequality(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_UnaryNegation(WW.Math.Vector4F)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Addition(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Addition(WW.Math.Vector4F,WW.Math.Vector3F)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Subtraction(WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Subtraction(WW.Math.Vector4F,WW.Math.Vector3F)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Multiply(WW.Math.Vector4F,System.Single)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Multiply(System.Single,WW.Math.Vector4F)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Division(WW.Math.Vector4F,System.Single)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Explicit(WW.Math.Vector4F)~System.Single[]">
            <summary>
            Converts the vector to an array of float-precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.op_Explicit(WW.Math.Vector3F)~WW.Math.Vector4F">
            <summary>
            Converts given 3D vector to a 4D vector as follows:
            result = new Vector4F(p.X, p.Y, p.Z, 1d);
            </summary>
        </member>
        <member name="M:WW.Math.Vector4F.Equals(WW.Math.Vector4F)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector4F.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector4FConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector4F"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4FConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4FConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4FConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4FConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector4FConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector4FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector4FConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Vector2D.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector2D.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector2D.Zero">
            <summary>
            2D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector2D.XAxis">
            <summary>
            2D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector2D.YAxis">
            <summary>
            2D Y-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.#ctor(System.Double,System.Double)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.#ctor(System.Double[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.#ctor(WW.Math.Vector2D)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.#ctor(WW.Math.Point2D)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Add(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Subtract(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector2D.Divide(WW.Math.Vector2D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Multiply(WW.Math.Vector2D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.DotProduct(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.CrossProduct(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Calculate the cross product of two vectors.
            </summary>
            <param name="u">first vector</param>
            <param name="v">second vector</param>
            <returns>cross product</returns>
        </member>
        <member name="M:WW.Math.Vector2D.Negate(WW.Math.Vector2D)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.AreApproxEqual(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for vectors of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector2D.AreApproxEqual(WW.Math.Vector2D,WW.Math.Vector2D,System.Double)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector2D.GetAngle(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Returns the angle in radians between given two vectors.
            The returned value is in the range between -pi and pi.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y ))</returns>
        </member>
        <member name="M:WW.Math.Vector2D.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y)</returns>
        </member>
        <member name="M:WW.Math.Vector2D.FromAngle(System.Double)">
            <summary>
            Gets a direction vector from the specified angle in radians.
            </summary>
            <param name="angle">the angle in radians.</param>
        </member>
        <member name="M:WW.Math.Vector2D.GetAngle">
            <summary>
            Gets the angle in radians between this vector and the x-axis.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector2D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector2D.op_Equality(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Inequality(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_UnaryNegation(WW.Math.Vector2D)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Addition(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Subtraction(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Multiply(WW.Math.Vector2D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Multiply(System.Double,WW.Math.Vector2D)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Division(WW.Math.Vector2D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Explicit(WW.Math.Vector2D)~System.Double[]">
            <summary>
            Converts the vector to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.op_Explicit(WW.Math.Point2D)~WW.Math.Vector2D">
            <summary>
            Converts given 2D point to a 2D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2D.Equals(WW.Math.Vector2D)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector2D.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector2DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector2D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector2DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector2DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Math.Transformation4F">
            <summary>
            Transformation4F is a Transformation <see cref="T:WW.Math.Matrix4F"/> factory class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4F.RotationAxis(WW.Math.Vector3F,System.Single)">
            <summary>
            Builds a matrix that rotates around an arbitrary axis.
            </summary>
            <param name="rotationAxis">A <see cref="T:WW.Math.Vector3F"/> instance specifying the axis to rotate around (vector has to be of unit length).</param>
            <param name="angle">
            Angle of rotation, in radians. Angles are measured clockwise when looking along the rotation axis from the origin.
            </param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.RotateX(System.Single)">
            <summary>
            Builds a matrix that rotates around the x-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.RotateY(System.Single)">
            <summary>
            Builds a matrix that rotates around the y-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.RotateZ(System.Single)">
            <summary>
            Builds a matrix that rotates around the z-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Scaling(WW.Math.Vector3F)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3F"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Scaling(WW.Math.Vector3F,WW.Math.Point3F)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis, using specified origin.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3F"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <param name="origin">
            The origin around which is scaled. 
            This point remains unchanged after transformation using the result matrix.
            </param>
            <returns>
            A <see cref="T:WW.Math.Matrix4F"/> representing the scaling transformation.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Scaling(System.Single,System.Single,System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <param name="z">Scaling factor that is applied along the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Scaling(System.Single)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Scaling(System.Single,WW.Math.Point3F)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor, using specified origin.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <param name="origin">
            The origin around which is scaled. 
            This point remains unchanged after transformation using the result matrix.
            </param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Translation(System.Single,System.Single,System.Single)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="x">Offset on the x-axis.</param>
            <param name="y">Offset on the y-axis.</param>
            <param name="z">Offset on the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.Translation(WW.Math.Vector3F)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3F"/> structure containing three values that represent the offsets on the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4F.GetArbitraryCoordSystem(WW.Math.Vector3F)">
            <summary>
            Generate arbitrary (but not random) coordinate transformation
            according to given z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4F.GetCoordSystem(WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given x and z axis are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4F.GetCoordSystem(WW.Math.Vector3F,WW.Math.Vector3F,WW.Math.Vector3F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4F.GetCoordSystem(WW.Math.Vector3F,WW.Math.Vector3F,WW.Math.Vector3F,WW.Math.Point3F)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis, z-axis and origin of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4F.GetPerspectiveProjectionTransform(System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Gets the perspective transform based on 
            given inverse tangents of the viewing frustrum angles and 
            front clip, back clip planes.
            </summary>
            <remarks>
            <para>
            The returned perspective transform is setup such that it can be used directly in OpenGL 
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            <para>
            This transformation matrix transforms coordinates within the viewing frustrum 
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
            <param name="cotanMu">
            The cotangent of mu where mu is the angle between the z-axis (pointing towards the camera) and the line
            passing through the camera and the left side of the display.
            </param>
            <param name="cotanNu">
            The cotangent of nu where nu is the angle between the z-axis (pointing towards the camera) and the line
            passing through the camera and the top side of the display.
            </param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0).</param>
        </member>
        <member name="M:WW.Math.Transformation4F.GetPerspectiveProjectionTransform(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Gets the perspective projection transform based on given viewing frustrum dimensions.
            </summary>
            <param name="left">The x-coordinate of the left of the viewing frustrum near face.</param>
            <param name="right">The x-coordinate of the right the viewing frustrum near face.</param>
            <param name="bottom">The y-coordinate of the bottom the viewing frustrum near face.</param>
            <param name="top">The y-coordinate of the top the viewing frustrum near face.</param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0).</param>
            <remarks>
            	<para>
            The returned perspective transform is setup such that it can be used directly in OpenGL
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            	<para>
            This transformation matrix transforms coordinates within the viewing frustrum
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4F.GetOrthographicProjectionTransform(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Gets the orthographic projection transform based on given viewing volume dimensions.
            </summary>
            <param name="left">The x-coordinate of the left of the viewing volume.</param>
            <param name="right">The x-coordinate of the right the viewing volume.</param>
            <param name="bottom">The y-coordinate of the bottom the viewing volume.</param>
            <param name="top">The y-coordinate of the top the viewing volume.</param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0 if in front of camera).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0 if in front of camera).</param>
            <remarks>
            	<para>
            The returned orthographic transform is setup such that it can be used directly in OpenGL
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            	<para>
            This transformation matrix transforms coordinates within the viewing volume
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
        </member>
        <member name="F:WW.Math.Point2D.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point2D.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point2D.Zero">
            <summary>
            The 2D zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.#ctor(System.Double,System.Double)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.#ctor(System.Double[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.#ctor(WW.Math.Point2D)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.#ctor(WW.Math.Vector2D)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.Add(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Adds specified vector to a point and returns the result.
            </summary>
            <returns>
            p + v.
            </returns>
        </member>
        <member name="M:WW.Math.Point2D.Subtract(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Subtracts specified vector from a point and returns the result.
            </summary>
            <returns>
            p - v.
            </returns>
        </member>
        <member name="M:WW.Math.Point2D.Subtract(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2D">point</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Point2D.AreApproxEqual(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Tests whether two points are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for points of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2D.AreApproxEqual(WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Tests whether two points are approximately equal given a tolerance value.
            </summary>
            <param name="a">Point 1.</param>
            <param name="b">Point 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2D.GetMidPoint(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Point2D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Point2D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Point2D.op_Equality(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Inequality(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Addition(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Addition(WW.Math.Vector2D,WW.Math.Point2D)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Subtraction(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Subtraction(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2D">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Point2D)~System.Double[]">
            <summary>
            Converts the point to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Point3D)~WW.Math.Point2D">
            <summary>
            Converts given 3D point to a 2D point as follows:
            result = new Point2D(p.X, p.Y);
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Vector4D)~WW.Math.Point2D">
            <summary>
            Converts given 4D vector to a 2D point as follows:
            result = new Point2D(p.X / p.W, p.Y / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Vector2D)~WW.Math.Point2D">
            <summary>
            Converts given 2D vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Point2D)~System.Windows.Point">
            <summary>
            Convert 2D point to Windows Point.
            </summary>
            <param name="p">point to convert</param>
            <returns>converted point</returns>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Point2D)~System.Drawing.Point">
            <summary>
            Convert 2D to Windows PointF.
            </summary>
            <param name="p">point to convert</param>
            <returns>converted point</returns>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(WW.Math.Point2D)~System.Drawing.PointF">
            <summary>
            Convert 2D to Windows PointF.
            </summary>
            <param name="p">point to convert</param>
            <returns>converted point</returns>
        </member>
        <member name="M:WW.Math.Point2D.op_Explicit(System.Drawing.PointF)~WW.Math.Point2D">
            <summary>
            Convert Windows PointF to 2D.
            </summary>
            <param name="p">point to convert</param>
            <returns>converted point</returns>
        </member>
        <member name="M:WW.Math.Point2D.Equals(WW.Math.Point2D)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Point2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="P:WW.Math.Point2D.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.SegmentIterator.#ctor(WW.Math.Point2D)">
            <summary>
            Constructor.
            </summary>
            <param name="point">point to iterate over</param>
        </member>
        <member name="M:WW.Math.Point2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Point2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Point2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Point2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Point2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Point2DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Point2D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Point2DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Point2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Point2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Matrix4F.Zero">
            <summary>
            4-dimensional float-precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4F.Identity">
            <summary>
            4-dimensional float-precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4F"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.#ctor(System.Single[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix4F.#ctor(System.Collections.Generic.IList{System.Single})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4F"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix4F.#ctor(WW.Math.Vector4F,WW.Math.Vector4F,WW.Math.Vector4F,WW.Math.Vector4F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4F"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector4F"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector4F"/> instance holding values for the second column.</param>
            <param name="column3">A <see cref="T:WW.Math.Vector4F"/> instance holding values for the third column.</param>
            <param name="column4">A <see cref="T:WW.Math.Vector4F"/> instance holding values for the fourth column.</param>
        </member>
        <member name="M:WW.Math.Matrix4F.#ctor(WW.Math.Matrix4F)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4F"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.Add(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.Subtract(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix4F.Multiply(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.Transpose(WW.Math.Matrix4F)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4F"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Matrix4F"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.Transform(WW.Math.Vector3F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo2D(WW.Math.Vector3F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Transform(WW.Math.Vector2F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector2F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)">
            <summary>
            Transforms given point by this matrix, also handling fourth row multiplication.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo3D(WW.Math.Point2F)">
            <summary>
            Transforms given point by this matrix, also handling fourth row multiplication.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformToPoint3F(WW.Math.Vector4F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <remarks>
            A 3D point is equivalent to a 4D vector with W-coordinate equal to one.
            </remarks>
            <param name="vector">A <see cref="T:WW.Math.Vector4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformToPoint2F(WW.Math.Vector4F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo2D(WW.Math.Point3F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo2D(WW.Math.Point2F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo2D(System.Drawing.PointF)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:System.Drawing.PointF"/> instance.</param>
            <returns>A new <see cref="T:System.Drawing.PointF"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo4D(WW.Math.Point2F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo4D(WW.Math.Point3F)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Point3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.TransformTo4D(WW.Math.Vector3F)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4F"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector3F)"/>
            <seealso cref="M:WW.Math.Matrix4F.Transform(WW.Math.Vector4F)"/>
        </member>
        <member name="M:WW.Math.Matrix4F.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix4F.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix4F"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 3x3 matrix from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Matrix3F"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4F.AreApproxEqual(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.AreApproxEqual(WW.Math.Matrix4F,WW.Math.Matrix4F,System.Single)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Equality(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Inequality(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Addition(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4F"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Subtraction(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4F"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Multiply(WW.Math.Matrix4F,WW.Math.Matrix4F)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Multiply(WW.Math.Matrix4F,WW.Math.Vector4F)">
            <summary>
            Transforms a given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector4F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Multiply(WW.Math.Matrix4F,WW.Math.Vector3F)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <remarks>
            A 3D vector is equivalent to a 4D vector with W-coordinate equal to zero.
            </remarks>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.op_Multiply(WW.Math.Matrix4F,WW.Math.Point3F)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <remarks>
            A 3D point is equivalent to a 4D vector with W-coordinate equal to one.
            </remarks>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4F"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point3F"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3F"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4F.Equals(WW.Math.Matrix4F)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix4F.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 4 * column + row.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix4F.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix2D.Zero">
            <summary>
            2-dimensional double precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix2D.Identity">
            <summary>
            2-dimensional double precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2D"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.#ctor(System.Double[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix2D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix2D.#ctor(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2D"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector2D"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector2D"/> instance holding values for the second column.</param>
        </member>
        <member name="M:WW.Math.Matrix2D.#ctor(WW.Math.Matrix2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix2D"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.Add(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.Subtract(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix2D.Multiply(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.Transpose(WW.Math.Matrix2D)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2D"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Matrix2D"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.Transform(WW.Math.Vector2D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.Transform(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix2D.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 1x1 matrix (double) from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A double containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix2D.ToMatrix">
            <summary>
            Convert to Drawing2D system matrix.
            </summary>
            <returns>system matrix</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.AreApproxEqual(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.AreApproxEqual(WW.Math.Matrix2D,WW.Math.Matrix2D,System.Double)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Equality(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Inequality(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Addition(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2D"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Subtraction(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2D"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Multiply(WW.Math.Matrix2D,WW.Math.Matrix2D)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Multiply(WW.Math.Matrix2D,WW.Math.Vector2D)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.op_Multiply(WW.Math.Matrix2D,WW.Math.Point2D)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix2D"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix2D.Equals(WW.Math.Matrix2D)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix2D.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 2 * column + row.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix2D.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Math.Transformation2D">
            <summary>
            Transformation2D is a Transformation <see cref="T:WW.Math.Matrix2D"/> factory class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation2D.Rotate(System.Double)">
            <summary>
            Builds a rotation matrix.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2D.Scaling(WW.Math.Vector2D)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2D"/> structure containing two values that represent the scaling factors applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2D.Scaling(System.Double,System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2D.Scaling(System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis and y-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation2D.GetCoordSystem(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and y-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="T:WW.Math.Geometry.IPolylineFactory`2">
            <summary>
            Represents an interface for polyline factories.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Boolean)">
            <summary>
            Creates a new polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Int32,System.Boolean)">
            <summary>
            Creates a new polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Boolean,`0[])">
            <summary>
            Creates a new polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Boolean,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create">
            <summary>
            Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Int32)">
            <summary>
            Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(`0[])">
            <summary>
            Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.IPolylineFactory`2.Create(WW.Math.Geometry.Polyline{`0})">
            <summary>
            Creates a new polyline.
            </summary>
        </member>
        <member name="T:WW.ICloneable">
            <summary>
            Interface for objects which clone themselves.
            </summary>
            <remarks>
            Implementing classes should make usefully independent copies.
            Useful depends on intended usage, so sometimes a deep copy may be necessary,
            and on other times not.
            </remarks>
        </member>
        <member name="T:WW.ICloneable`1">
            <summary>
            Interface for objects which clone themselves.
            </summary>
            <remarks>
            Implementing classes should make usefully independent copies.
            Useful depends on intended usage, so sometimes a deep copy may be necessary,
            and on other times not.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.#ctor(System.Collections.Generic.IComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
            <param name="comparer">
            The comparer used to sort the list.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Object"/> class.
            </summary>
            <remarks>
            The sorting of the list is given by the natural order of the type.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"/>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"/>.</param>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, a negative value containing
            the bitwise complement of the next element that is larter than the item, or otherwise the bitwise complement of <see cref="P:WW.Collections.Generic.SortedList`1.Count"/>.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.Insert(System.Int32,`0)">
            <summary>
            This operation is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">
            Insertion at an arbitry position is not allowed.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:System.Collections.Generic.IList`1"/> item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.IList`1"/> is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.Add(`0)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <remarks>
            When adding an item with a duplicate key, it is added behind the last item with the same key.
            </remarks>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.Clear">
            <summary>
            Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="array"/> is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="arrayIndex"/> is less than 0.
            </exception>
            <exception cref="T:System.ArgumentException">
            	<paramref name="array"/> is multidimensional.
            -or-
            <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.
            -or-
            The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
            -or-
            Type <paramref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.SortedList`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.SortedList`1.Item(System.Int32)">
            <summary>
            Gets the <see cref="!:T"/> at the specified index.
            Setting is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.IList`1"/> is read-only or caller is trying to set a value.
            </exception>
        </member>
        <member name="P:WW.Collections.Generic.SortedList`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <value></value>
            <returns>
            The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.SortedList`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.
            </summary>
            <value></value>
            <returns>true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="T:WW.Collections.Generic.LookupList`2">
            <summary>
            Represents a list with dictionary lookup by a key (doesn't have to be unique).
            </summary>
            <remarks>
            The <see cref="M:WW.Collections.Generic.LookupList`2.IndexOf(`1)"/> method (and therefore also <see cref="M:WW.Collections.Generic.LookupList`2.Remove(`1)"/>) 
            is not made faster by the dictionary lookup and therefore is still O(n).
            Lookup by key is made faster by dictionary lookup.
            Inserting duplicate keys becomes slow when there are many O(n * n), this
            implementation assumes lookup is more common than insertion.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.LookupList`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.LookupList`2"/> class.
            </summary>
            <param name="keyEqualityComparer">The key equality comparer.</param>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.IndexOf(`1)">
            <summary>
            Determines the index of a specific item in the list.
            </summary>
            <param name="item">The object to locate in the list.</param>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Insert(System.Int32,`1)">
            <summary>
            Inserts an item to the list at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into the list.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> is not a valid index in the list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.RemoveAt(System.Int32)">
            <summary>
            Removes the list item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> is not a valid index in the list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Add(`1)">
            <summary>
            Adds an item to the list.
            </summary>
            <remarks>
            When adding an item with a duplicate key, it is added behind the last item with the same key.
            </remarks>
            <param name="item">The object to add to the list.</param>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Clear">
            <summary>
            Removes all items from the list.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Contains(`1)">
            <summary>
            Determines whether the list contains a specific value.
            </summary>
            <param name="item">The object to locate in the list.</param>
            <returns>
            true if <paramref name="item"/> is found in the list; otherwise, false.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.CopyTo(`1[],System.Int32)">
            <summary>
            Copies the elements of the list to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from list. 
            The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="array"/> is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="arrayIndex"/> is less than 0.
            </exception>
            <exception cref="T:System.ArgumentException">
            	<paramref name="array"/> is multidimensional.
            -or-
            <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.
            -or-
            The number of elements in the source list is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
            -or-
            Type <c>TItem</c> cannot be cast automatically to the type of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Remove(`1)">
            <summary>
            Removes the first occurrence of a specific object from the list.
            </summary>
            <param name="item">The object to remove from the list.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the list; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original list.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.GetFirst(`0)">
            <summary>
            Gets the first item with the specified key.
            </summary>
            <returns>Returns <c>default(TItem)</c> if not found.</returns>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.Contains(`0)">
            <summary>
            Determines whether this list contains the specified key.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.LookupList`2.GetKeyForItem(`1)">
            <summary>
            Gets the key for specified item.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.LookupList`2.Item(System.Int32)">
            <summary>
            Gets the <see cref="!:TItem"/> at the specified index.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The list is read-only or caller is trying to set a value.
            </exception>
        </member>
        <member name="P:WW.Collections.Generic.LookupList`2.Count">
            <summary>
            Gets the number of elements contained in the list.
            </summary>
            <value></value>
            <returns>
            The number of elements contained in the list.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.LookupList`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the list is read-only.
            </summary>
            <value></value>
            <returns>true if the list is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.LookupList`2.Item(`0)">
            <summary>
            Gets all items that match the specified key.
            </summary>
        </member>
        <member name="T:WW.Drawing.FontUtil">
            <summary>
            A collection of utitity methods pertaining to fonts.
            </summary>
        </member>
        <member name="M:WW.Drawing.FontUtil.IsBold(System.Drawing.Font)">
            <summary>
            Returns whether the specified font is bold.
            </summary>
        </member>
        <member name="M:WW.Drawing.FontUtil.IsItalic(System.Drawing.Font)">
            <summary>
            Returns whether the specified font is italic.
            </summary>
        </member>
        <member name="M:WW.Drawing.FontUtil.IsUnderlined(System.Drawing.Font)">
            <summary>
            Returns whether the specified font is underlined.
            </summary>
        </member>
        <member name="M:WW.Drawing.FontUtil.IsStrikedOut(System.Drawing.Font)">
            <summary>
            Returns whether the specified font is striked out.
            </summary>
        </member>
        <member name="T:WW.Actions.MouseButtonFlags">
            <summary>
            Mouse button flags.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.None">
            <summary>
            None.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.Left">
            <summary>
            The left mouse button.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.Middle">
            <summary>
            The middle mouse button.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.Right">
            <summary>
            The right mouse button.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.XButton1">
            <summary>
            The first XButton.
            </summary>
        </member>
        <member name="F:WW.Actions.MouseButtonFlags.XButton2">
            <summary>
            The second XButton.
            </summary>
        </member>
        <member name="T:WW.Actions.InteractorWithMouseButtonDownFilter">
            <summary>
            This interactor is a wrapper for easily binding a wrapped interactor to a mouse button.
            </summary>
            <remarks>
            This interactor wrapper checks if the mouse down flags match the specified <see cref="T:WW.Actions.MouseButtonFlags"/>,
            and if <c>true</c> then it activates the wrapped interactor and lets it process the mouse down event,
            otherwise the <see cref="M:WW.Actions.InteractorWithMouseButtonDownFilter.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)"/> method returns <c>false</c>.
            </remarks>
        </member>
        <member name="T:WW.Actions.InteractorWrapper">
            <summary>
            A wrapper around another <see cref="T:WW.Actions.Interactor"/> for the purpose
            of modifying some of the behavior of the wrapped interactor like the mouse button bindings.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.#ctor(WW.Actions.IInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorWrapper"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.Activate">
            <summary>
            Actives this interactor.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.Deactivate">
            <summary>
            Deactives this interactor.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.ProcessMouseWheel(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse wheel has rotated.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.OnActivated(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.InteractorWrapper.Activated"/> event.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWrapper.OnDeactivated(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.InteractorWrapper.Deactivated"/> event.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorWrapper.Wrappee">
            <summary>
            Gets the wrappee.
            </summary>
        </member>
        <member name="E:WW.Actions.InteractorWrapper.Activated">
            <summary>
            This event is raised when the interactor is activated (see <see cref="M:WW.Actions.InteractorWrapper.Activate"/>).
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.InteractorWrapper.IsActive"/> property).
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active.
            But when the user clicks a control point, then the interactor becomes active,
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="E:WW.Actions.InteractorWrapper.Deactivated">
            <summary>
            This event is raised when the interactor is deactivated (see <see cref="M:WW.Actions.InteractorWrapper.Deactivate"/>).
            </summary>
            <remarks>
            An interactor may or may not process input events depending on whether the interactor is active (see the <see cref="P:WW.Actions.InteractorWrapper.IsActive"/> property).
            E.g. imagine a line entity being selected, and its two control point boxes are shown that allow the user to drag them.
            When the user isn't a dragging a control point, then the mouse move/mouse up events should be ignored by the interactor: the interactor is not active.
            But when the user clicks a control point, then the interactor becomes active,
            and the interactor starts processing the mouse move and mouse button up events.
            When the mouse button up event is processed, the interactor is deactivated again.
            </remarks>
        </member>
        <member name="P:WW.Actions.InteractorWrapper.IsActive">
            <summary>
            Gets a value indicating whether this interactor is active.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorWrapper.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWithMouseButtonDownFilter.#ctor(WW.Actions.IInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorWithMouseButtonDownFilter"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWithMouseButtonDownFilter.#ctor(WW.Actions.IInteractor,WW.Actions.MouseButtonFlags)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorWithMouseButtonDownFilter"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorWithMouseButtonDownFilter.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="P:WW.Actions.InteractorWithMouseButtonDownFilter.MouseDownButtonFlags">
            <summary>
            Gets or sets the mouse down button flags.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3D.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3D.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3D.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector3D.Zero">
            <summary>
            3D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3D.XAxis">
            <summary>
            3D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3D.YAxis">
            <summary>
            3D Y-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector3D.ZAxis">
            <summary>
            3D Z-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(WW.Math.Vector2D,System.Double)">
            <summary>
            Initializes this vector with given 2D vector and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(System.Double[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(WW.Math.Vector3D)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.#ctor(WW.Math.Point3D)">
            <summary>
            Initializes this vector with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Add(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Subtract(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector3D.Divide(WW.Math.Vector3D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Multiply(WW.Math.Vector3D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.DotProduct(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.CrossProduct(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculates the cross product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Negate(WW.Math.Vector3D)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.AreApproxEqual(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for vectors of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector3D.AreApproxEqual(WW.Math.Vector3D,WW.Math.Vector3D,System.Double)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector3D.AreVectorsPerpendicular(WW.Math.Vector3D,WW.Math.Vector3D,System.Double)">
            <summary>
            Returns true if vectors are perpendicular.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.OrthogonalProjection(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Returns the vector between vector a and projection of a to direction of b.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.GetAngle(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Returns the angle in radians between given two vectors.
            The returned value is in the range between -pi and pi.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.GetAngle(WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Returns the angle in radians between given two vectors.
            The returned value is in the range between -pi and pi.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y + Z*Z))</returns>
        </member>
        <member name="M:WW.Math.Vector3D.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y + Z*Z)</returns>
        </member>
        <member name="M:WW.Math.Vector3D.ContainsNaN">
            <summary>
            Determines whether this vector contains a NaN coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.FromAngle(System.Double)">
            <summary>
            Gets a direction vector from the specified angle in radians.
            </summary>
            <param name="angle">the angle in radians.</param>
        </member>
        <member name="M:WW.Math.Vector3D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector3D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector3D.op_Equality(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Inequality(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_UnaryNegation(WW.Math.Vector3D)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Addition(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Subtraction(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Multiply(WW.Math.Vector3D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Multiply(System.Double,WW.Math.Vector3D)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Division(WW.Math.Vector3D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Explicit(WW.Math.Vector3D)~System.Double[]">
            <summary>
            Converts the vector to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Explicit(WW.Math.Vector2D)~WW.Math.Vector3D">
            <summary>
            Converts given 2D vector to a 3D vector as follows:
            result = new Vector3D(v.X, v.Y, 0d);
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Explicit(WW.Math.Vector4D)~WW.Math.Vector3D">
            <summary>
            Converts given 4D vector to a 3D point as follows:
            result = new Vector3D(p.X, p.Y, p.Z);
            </summary>
            <remarks>
            It's assumed that <c>p.W</c> is equal to zero, but this is not enforced.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector3D.op_Explicit(WW.Math.Point3D)~WW.Math.Vector3D">
            <summary>
            Converts given 3D point to a 3D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.op_Explicit(WW.Math.Vector3D)~WW.Math.Vector3F">
            <summary>
            Converts given 3D double precision vector to a 3D single precision vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3D.Equals(WW.Math.Vector3D)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector3D.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector3DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector3D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector3DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector3DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector3DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector3DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Math.Transformation3D">
            <summary>
            Transformation3D is a Transformation <see cref="T:WW.Math.Matrix3D"/> factory class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3D.Rotate(System.Double)">
            <summary>
            Builds a rotation matrix (same as <see cref="M:WW.Math.Transformation3D.RotateZ(System.Double)"/>).
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.RotateX(System.Double)">
            <summary>
            Builds a matrix that rotates around the x-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.RotateY(System.Double)">
            <summary>
            Builds a matrix that rotates around the y-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.RotateZ(System.Double)">
            <summary>
            Builds a matrix that rotates around the z-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling(WW.Math.Vector2D)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2D"/> structure containing two values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling(System.Double,System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, and y-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling(WW.Math.Vector3D)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3D"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling(System.Double,System.Double,System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <param name="z">Scaling factor that is applied along the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling2D(System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis and y-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Scaling(System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Translation(System.Double,System.Double)">
            <summary>
            Builds a translation matrix (to operate on <see cref="T:WW.Math.Point2D"/> objects).
            </summary>
            <param name="x">Offset on the x-axis.</param>
            <param name="y">Offset on the y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.Translation(WW.Math.Vector2D)">
            <summary>
            Builds a translation matrix (to operate on <see cref="T:WW.Math.Point2D"/> objects).
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector2D"/> structure containing two values that represent the offsets on the x-axis, and y-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation3D.GetCoordSystem(WW.Math.Vector2D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3D.GetCoordSystem(WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and y-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3D.GetCoordSystem(WW.Math.Vector2D,WW.Math.Vector2D,WW.Math.Point2D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and origin of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3D.GetArbitraryCoordSystem(WW.Math.Vector3D)">
            <summary>
            Generate arbitrary (but not random) coordinate transformation
            according to given z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation3D.GetCoordSystem(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given x and z axis are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation3D.GetCoordSystem(WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="F:WW.Math.Point3D.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3D.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3D.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point3D.Zero">
            <summary>
            The 3D zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(WW.Math.Point2D,System.Double)">
            <summary>
            Initializes this point with given 2D point and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(System.Double[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(WW.Math.Point3D)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.#ctor(WW.Math.Vector3D)">
            <summary>
            Initializes this point with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.Add(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Adds specified vector to a point and returns the result.
            </summary>
            <returns>
            p + v.
            </returns>
        </member>
        <member name="M:WW.Math.Point3D.Subtract(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Subtracts specified vector from a point and returns the result.
            </summary>
            <returns>
            p - v.
            </returns>
        </member>
        <member name="M:WW.Math.Point3D.Subtract(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector3D">vector</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Point3D.AreApproxEqual(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Tests whether two points are approximately equal using default tolerance value.
            </summary>
            <remarks>Only use for points of magnitude <c>1.0</c>.</remarks>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point3D.AreApproxEqual(WW.Math.Point3D,WW.Math.Point3D,System.Double)">
            <summary>
            Tests whether two points are approximately equal given a tolerance value.
            </summary>
            <param name="a">Point 1.</param>
            <param name="b">Point 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point3D.GetMidPoint(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.Add(System.Double,System.Double,System.Double)">
            <summary>
            Adds specified coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Point3D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Point3D.op_Equality(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Inequality(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Addition(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Addition(WW.Math.Vector3D,WW.Math.Point3D)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Subtraction(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Subtraction(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector3D">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Explicit(WW.Math.Point3D)~System.Double[]">
            <summary>
            Converts the point to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Explicit(WW.Math.Point2D)~WW.Math.Point3D">
            <summary>
            Converts given 2D point to a 3D point as follows:
            result = new Point3D(p.X, p.Y, 0d);
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Explicit(WW.Math.Vector4D)~WW.Math.Point3D">
            <summary>
            Converts given 4D vector to a 3D point as follows:
            result = new Point3D(p.X / p.W, p.Y / p.W, p.Z / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Point3D.op_Explicit(WW.Math.Vector3D)~WW.Math.Point3D">
            <summary>
            Converts given 3D vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.op_Explicit(WW.Math.Point3D)~WW.Math.Point3F">
            <summary>
            Converts given 3D double-precision point to a 3D single-precision point.
            </summary>
        </member>
        <member name="M:WW.Math.Point3D.Equals(WW.Math.Point3D)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Point3D.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Point3DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Point3D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Point3DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point3DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Point3DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Point3DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Point3DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Point3DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Point3DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Matrix3D.Zero">
            <summary>
            3-dimensional double precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix3D.Identity">
            <summary>
            3-dimensional double precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3D"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.#ctor(System.Double[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix3D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix3D.#ctor(WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3D"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector3D"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector3D"/> instance holding values for the second column.</param>
            <param name="column3">A <see cref="T:WW.Math.Vector3D"/> instance holding values for the third column.</param>
        </member>
        <member name="M:WW.Math.Matrix3D.#ctor(WW.Math.Matrix3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix3D"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Add(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Subtract(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix3D.Multiply(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Transpose(WW.Math.Matrix3D)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3D"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Matrix3D"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.Transform(WW.Math.Vector2D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Transform(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Transform(WW.Math.Vector3D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.Transform(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.TransformTo2D(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix and returns a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix3D.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 2x2 matrix from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Matrix2D"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix3D.AreApproxEqual(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.AreApproxEqual(WW.Math.Matrix3D,WW.Math.Matrix3D,System.Double)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Equality(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Inequality(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Addition(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3D"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Subtraction(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3D"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Multiply(WW.Math.Matrix3D,WW.Math.Matrix3D)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Multiply(WW.Math.Matrix3D,WW.Math.Vector3D)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.op_Multiply(WW.Math.Matrix3D,WW.Math.Point3D)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix3D"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix3D.Equals(WW.Math.Matrix3D)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix3D.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 3 * row + column.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix3D.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Circle2D">
            <summary>
            2D double precision circle.
            </summary>
            <remarks>
            A circle consists of a <see cref="P:WW.Math.Geometry.Circle2D.Center"/> and a <see cref="P:WW.Math.Geometry.Circle2D.Radius"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.#ctor(WW.Math.Point2D,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Line2D)">
            <summary>
            Gets the intersection point(s) with specified line.
            </summary>
            <param name="line">The line.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Line2D,System.Double)">
            <summary>
            Gets the intersection point(s) with specified line.
            </summary>
            <param name="line">The line.</param>
            <param name="precision">The precision.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Line2D)">
            <summary>
            Gets the intersection point(s) with specified circle and line.
            </summary>
            <param name="circle">The circle.</param>
            <param name="line">The line.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Line2D,System.Double)">
            <summary>
            Gets the intersection point(s) with specified circle and line.
            </summary>
            <param name="circle">The circle.</param>
            <param name="line">The line.</param>
            <param name="precision">The precision.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Ray2D,System.Boolean@)">
            <summary>
            Gets the intersection point(s) with specified ray.
            </summary>
            <param name="ray">The ray.</param>
            <param name="isTangent">if set to <c>true</c> the ray is tangent to the circle.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the ray is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the ray intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Ray2D,System.Double,System.Boolean@)">
            <summary>
            Gets the intersection point(s) with specified ray.
            </summary>
            <param name="ray">The ray.</param>
            <param name="precision">The precision.</param>
            <param name="isTangent">if set to <c>true</c> the ray is tangent to the circle.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            		<item>
            			<c>null</c> if there is no intersection.
            </item>
            		<item>
            An array with 1 element if the ray is tangent to the circle.
            </item>
            		<item>
            An array with 2 element if the ray intersects the circle at two points.
            </item>
            	</list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Segment2D)">
            <summary>
            Gets the intersection point(s) with specified line segment.
            </summary>
            <param name="segment">The line segment.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line segment is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line segment intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Segment2D,System.Double)">
            <summary>
            Gets the intersection point(s) with specified line segment.
            </summary>
            <param name="segment">The line segment.</param>
            <param name="precision">The precision.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line segment is tangent to the circle.
            </item>
            <item>
                An array with 2 elements if the line segment intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetAngle(WW.Math.Point2D)">
            <summary>
            Gets the angle in radians of the line segment between this circle's center and the specified point.
            </summary>
            <returns>
            Returns an angle, θ, measured in radians, such that -π≤θ≤π.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Circle2D,WW.Math.Point2D[]@,System.Boolean@)">
            <summary>
            Gets the intersections between specified circles.
            </summary>
            <param name="circle1">Circle 1.</param>
            <param name="circle2">Circle 2.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the circles touch.
            </item>
            <item>
                An array with 2 elements if the circles intersect eachother at 2 points.
            </item>
            </list>
            </param>
            <param name="overlap">if set to <c>true</c> the two circle overlap completely.</param>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Circle2D,System.Double,WW.Math.Point2D[]@,System.Boolean@)">
            <summary>
            Gets the intersections between specified circles.
            </summary>
            <param name="circle1">Circle 1.</param>
            <param name="circle2">Circle 2.</param>
            <param name="precision">The precision.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the circles touch.
            </item>
            <item>
                An array with 2 elements if the circles intersect eachother at 2 points.
            </item>
            </list>
            </param>
            <param name="overlap">if set to <c>true</c> the two circle overlap completely.</param>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.Center">
            <summary>
            Gets or sets the center.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.Radius">
            <summary>
            Gets or sets the radius.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Circle2D.SegmentIterator">
            <summary>
            Segment iterator.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Circle2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Circle2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.PropertyIndexAttribute">
            <summary>
            Property index that allows sorting of properties in a <see cref="!:PropertyGrid"/>.
            </summary>
            <remarks>
            Indices do not have to be consecutive.
            </remarks>
        </member>
        <member name="M:WW.ComponentModel.PropertyIndexAttribute.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.ComponentModel.PropertyIndexAttribute"/> class.
            </summary>
        </member>
        <member name="P:WW.ComponentModel.PropertyIndexAttribute.Index">
            <summary>
            Gets the index.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.PropertyDescriptor2">
            <summary>
            Enhances the <see cref="T:System.ComponentModel.PropertyDescriptor"/> to
            be able to return customized values of <see cref="P:WW.ComponentModel.PropertyDescriptor2.DisplayName"/>, <see cref="P:WW.ComponentModel.PropertyDescriptor2.Description"/>, etc.
            </summary>
            <remarks>
            All values are gotten from the <see cref="T:WW.ComponentModel.PropertyAttributes"/> 
            object passed to the constructor.
            </remarks>
        </member>
        <member name="M:WW.ComponentModel.PropertyDescriptor2.#ctor(System.ComponentModel.PropertyDescriptor,WW.ComponentModel.PropertyAttributes)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Nurbs.Chapter1.Horner1(System.Double[],System.Int32,System.Double)">
            <summary>
            Evaluates a coordinate based on a power basis curve.
            </summary>
            <param name="a">The coefficients, must have (at least) n + 1 elements.</param>
            <param name="n">The degree of the curve.</param>
            <param name="u">The curve parameter value.</param>
        </member>
        <member name="T:WW.IO.PagedMemoryStream">
            <summary>
            Represents a paged memory stream that uses multiple byte array pages as an alternative for <see cref="T:System.IO.MemoryStream"/>, which
            uses one byte array as a backing store.
            </summary>
            <remarks>
            <see cref="T:System.IO.MemoryStream"/> occasionally runs out of memory because it uses a single byte array, which
            is harder to allocate than smaller byte array blocks.
            </remarks>
        </member>
        <member name="F:WW.IO.PagedMemoryStream.DefaultPageSize">
            <summary>
            The default block size is 65536 bytes (64 KB).
            </summary>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.IO.PagedMemoryStream"/> class using the <see cref="F:WW.IO.PagedMemoryStream.DefaultPageSize"/>.
            </summary>
            <param name="capacity">The capacity in bytes.</param>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.IO.PagedMemoryStream"/> class.
            </summary>
            <param name="capacity">The capacity in bytes.</param>
            <param name="pageSize">The page size in bytes.</param>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.#ctor(WW.IO.PagedMemoryStream)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.IO.PagedMemoryStream"/> class, cloning
            the source chunked memory stream. The pages are shallow copied.
            </summary>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.#ctor(System.IO.Stream,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.IO.PagedMemoryStream"/> class.
            </summary>
            <param name="source">The source stream to read from.</param>
            <param name="length">The length.</param>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.#ctor(System.IO.MemoryStream,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.IO.PagedMemoryStream"/> class.
            Reuses the source memory stream buffer.
            </summary>
            <param name="source">The source stream to read from.</param>
            <param name="length">The length.</param>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.Flush">
            <summary>
            When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device.
            </summary>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            When overridden in a derived class, sets the position within the current stream.
            </summary>
            <param name="offset">A byte offset relative to the <paramref name="origin"/> parameter.</param>
            <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin"/> indicating the reference point used to obtain the new position.</param>
            <returns>
            The new position within the current stream.
            </returns>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support seeking, such as if the stream is constructed from a pipe or console output. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.SetLength(System.Int64)">
            <summary>
            When overridden in a derived class, sets the length of the current stream.
            </summary>
            <param name="value">The desired length of the current stream in bytes.</param>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset"/> and (<paramref name="offset"/> + <paramref name="count"/> - 1) replaced by the bytes read from the current source.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin storing the data read from the current stream.</param>
            <param name="count">The maximum number of bytes to be read from the current stream.</param>
            <returns>
            The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
            </returns>
            <exception cref="T:System.ArgumentException">The sum of <paramref name="offset"/> and <paramref name="count"/> is larger than the buffer length. </exception>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="buffer"/> is null. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="offset"/> or <paramref name="count"/> is negative. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support reading. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
            <exception cref="T:System.ArgumentException">The sum of <paramref name="offset"/> and <paramref name="count"/> is greater than the buffer length. </exception>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="buffer"/> is null. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="offset"/> or <paramref name="count"/> is negative. </exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support writing. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.ReadByte">
            <summary>
            Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.
            </summary>
            <returns>
            The unsigned byte cast to an Int32, or -1 if at the end of the stream.
            </returns>
            <exception cref="T:System.NotSupportedException">The stream does not support reading. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.WriteByte(System.Byte)">
            <summary>
            Writes a byte to the current position in the stream and advances the position within the stream by one byte.
            </summary>
            <param name="value">The byte to write to the stream.</param>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support writing, or the stream is already closed. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.WriteTo(System.IO.Stream)">
            <summary>
            Writes the entire contents of this stream to the specified stream.
            </summary>
        </member>
        <member name="M:WW.IO.PagedMemoryStream.WriteTo(System.Int32,System.IO.Stream,System.Int32)">
            <summary>
            Writes length bytes from this stream from specifed offset to the specified stream.
            </summary>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.PageSize">
            <summary>
            Gets the page size.
            </summary>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.CanRead">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports reading.
            </summary>
            <value></value>
            <returns>true if the stream supports reading; otherwise, false.</returns>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.CanSeek">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
            </summary>
            <value></value>
            <returns>true if the stream supports seeking; otherwise, false.</returns>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.CanWrite">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports writing.
            </summary>
            <value></value>
            <returns>true if the stream supports writing; otherwise, false.</returns>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.Length">
            <summary>
            When overridden in a derived class, gets the length in bytes of the stream.
            </summary>
            <value></value>
            <returns>A long value representing the length of the stream in bytes.</returns>
            <exception cref="T:System.NotSupportedException">A class derived from Stream does not support seeking. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.Position">
            <summary>
            When overridden in a derived class, gets or sets the position within the current stream.
            </summary>
            <value></value>
            <returns>The current position within the stream.</returns>
            <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
            <exception cref="T:System.NotSupportedException">The stream does not support seeking. </exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed. </exception>
        </member>
        <member name="P:WW.IO.PagedMemoryStream.Pages">
            <summary>
            Gets the pages.
            </summary>
        </member>
        <member name="T:WW.Drawing.GraphicsHelper">
            <summary>
            A graphics helper.
            </summary>
        </member>
        <member name="M:WW.Drawing.GraphicsHelper.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.GraphicsHelper"/> class with the white color.
            </summary>
        </member>
        <member name="M:WW.Drawing.GraphicsHelper.#ctor(System.Drawing.Color)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.GraphicsHelper"/> class.
            </summary>
        </member>
        <member name="M:WW.Drawing.GraphicsHelper.DrawEditHandle(System.Drawing.Graphics,System.Drawing.Pen,WW.Math.Point2D)">
            <summary>
            Draws an edit handle at the specified position.
            </summary>
        </member>
        <member name="M:WW.Drawing.GraphicsHelper.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.DefaultPen">
            <summary>
            Gets or sets the default pen.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.HighlightPen">
            <summary>
            Gets or sets the highlight pen.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.DottedPen">
            <summary>
            Gets or sets the dotted pen.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.DefaultBrush">
            <summary>
            Gets or sets the default brush.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.DefaultFont">
            <summary>
            Gets or sets the default font.
            </summary>
        </member>
        <member name="P:WW.Drawing.GraphicsHelper.EditHandleSize">
            <summary>
            Gets or sets the size of the edit handle.
            The default value is 6.
            </summary>
        </member>
        <member name="T:WW.Actions.ZoomWheelInteractor">
            <summary>
            Represents a zoom wheel interactor.
            </summary>
        </member>
        <member name="T:WW.Actions.IScaler">
            <summary>
            Interface for something which does scaling.
            </summary>
        </member>
        <member name="P:WW.Actions.IScaler.ScaleFactor">
            <summary>
            Gets or sets the scale factor.
            </summary>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.ProcessMouseWheel(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse wheel has rotated.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.OnBeforeScaleFactorChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.ZoomWheelInteractor.BeforeScaleFactorChanged"/> event.
            </summary>
        </member>
        <member name="M:WW.Actions.ZoomWheelInteractor.OnScaleFactorChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.ZoomWheelInteractor.ScaleFactorChanged"/> event.
            </summary>
        </member>
        <member name="P:WW.Actions.ZoomWheelInteractor.ScaleFactor">
            <summary>
            Gets or sets the scale factor.
            </summary>
        </member>
        <member name="T:WW.Actions.Windows.PanInteractor">
            <summary>
            Represents a pan interactor.
            </summary>
            <remarks>
            A translation of 1 in the x direction represents half the UI element width (x-axis pointing to the right).
            A translation of 1 in the y direction represents half the UI element height (y-axis pointing up).
            </remarks>
        </member>
        <member name="T:WW.Actions.ITranslator">
            <summary>
            Interface for something which does 2D translating.
            </summary>
        </member>
        <member name="P:WW.Actions.ITranslator.Translation">
            <summary>
            Gets or sets the translation.
            </summary>
            <remarks>
            A translation of 1 in the x direction represents half the UI element width (x-axis pointing to the right).
            A translation of 1 in the y direction represents half the UI element height (y-axis pointing up).
            </remarks>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.Windows.PanInteractor.OnTranslationChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.Windows.PanInteractor.TranslationChanged"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.Windows.PanInteractor.TranslationChanged">
            <summary>
            Occurs when the translation changed.
            </summary>
        </member>
        <member name="P:WW.Actions.Windows.PanInteractor.Translation">
            <summary>
            Gets or sets the translation.
            </summary>
            <remarks>
            A translation of 1 in the x direction represents half the UI element width (x-axis pointing to the right).
            A translation of 1 in the y direction represents half the UI element height (y-axis pointing up).
            </remarks>
        </member>
        <member name="T:WW.Actions.InteractionContext">
            <summary>
            Represents an interaction context.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractionContext.#ctor(WW.Math.Matrix4D,WW.Math.Size2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractionContext"/> class.
            </summary>
            <param name="projectionTransform">The world coordinate system to display coordinate system transform.</param>
            <param name="uiElementSize">Size of the UI element.</param>
        </member>
        <member name="P:WW.Actions.InteractionContext.ProjectionTransform">
            <summary>
            Gets the world coordinate system to display coordinate system transform.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractionContext.InverseProjectionTransform">
            <summary>
            Gets the display coordinate system to world coordinate system transform.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractionContext.UiElementSize">
            <summary>
            Gets the size of the UI element.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractionContext.EditHandleSize">
            <summary>
            Gets or sets the size of the edit handle.
            The default value is 6.
            </summary>
        </member>
        <member name="T:WW.Windows.Forms.TreeView2">
            <summary>
            This treeview fixes a bug in the Windows treeview when double clicking on a node with a checkbox.
            See <see href="http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/9d717ce0-ec6b-4758-a357-6bb55591f956/"/>.
            </summary>
        </member>
        <member name="M:WW.Windows.Forms.TreeView2.WndProc(System.Windows.Forms.Message@)">
            <summary>
            Overrides <see cref="M:System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message@)"/>.
            </summary>
            <param name="m">The Windows <see cref="T:System.Windows.Forms.Message"/> to process.</param>
        </member>
        <member name="F:WW.Math.Vector4D.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4D.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4D.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4D.W">
            <summary>The w-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Vector4D.Zero">
            <summary>
            4D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4D.XAxis">
            <summary>
            4D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4D.YAxis">
            <summary>
            4D Y-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4D.ZAxis">
            <summary>
            4D Z-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Vector4D.WAxis">
            <summary>
            4D W-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.#ctor(System.Double[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.#ctor(System.Collections.Generic.IEnumerable{System.Double})">
            <summary>
            Initialize this vector from any enumeratable.
            </summary>
            <param name="coordinates">enumeratable containing at least 4 doubles</param>
        </member>
        <member name="M:WW.Math.Vector4D.#ctor(WW.Math.Vector4D)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Add(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Subtract(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Vector4D.Divide(WW.Math.Vector4D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Multiply(WW.Math.Vector4D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.DotProduct(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Negate(WW.Math.Vector4D)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.AreApproxEqual(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Tests whether two vectors are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector4D.AreApproxEqual(WW.Math.Vector4D,WW.Math.Vector4D,System.Double)">
            <summary>
            Tests whether two vectors are approximately equal given a tolerance value.
            </summary>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <param name="u">Vector 1.</param>
            <param name="v">Vector 2.</param>
            <returns><see langword="true"/> if the two vectors are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Vector4D.Normalize">
            <summary>
            Scale the vector so that its length is 1.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.GetUnit">
            <summary>
            Returns the unit vector of the current vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.GetLength">
            <summary>
            Returns the length of the vector.
            </summary>
            <returns>The length of the vector. (Sqrt(X*X + Y*Y + Z*Z + W*W))</returns>
        </member>
        <member name="M:WW.Math.Vector4D.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y + Z*Z + W*W)</returns>
        </member>
        <member name="M:WW.Math.Vector4D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z, w").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Vector4D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y,z,w").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Vector4D.op_Equality(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Inequality(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_UnaryNegation(WW.Math.Vector4D)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Addition(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Addition(WW.Math.Vector4D,WW.Math.Vector3D)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Subtraction(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Subtraction(WW.Math.Vector4D,WW.Math.Vector3D)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Multiply(WW.Math.Vector4D,System.Double)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Multiply(System.Double,WW.Math.Vector4D)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Division(WW.Math.Vector4D,System.Double)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Explicit(WW.Math.Vector4D)~System.Double[]">
            <summary>
            Converts the vector to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Explicit(WW.Math.Vector3D)~WW.Math.Vector4D">
            <summary>
            Converts given 3D vector to a 4D vector as follows:
            result = new Vector4D(p.X, p.Y, p.Z, 0d);
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Explicit(WW.Math.Point3D)~WW.Math.Vector4D">
            <summary>
            Converts given 3D point to a 4D vector as follows:
            result = new Vector4D(p.X, p.Y, p.Z, 1d);
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Explicit(WW.Math.Vector4D)~System.Windows.Point">
            <summary>
            Converts the vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.op_Explicit(WW.Math.Vector4D)~WW.Math.Point3F">
            <summary>
            Converts the vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.ToPoint2D">
            <summary>
            Converts this vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.ToPoint3D">
            <summary>
            Converts this vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4D.Equals(WW.Math.Vector4D)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Vector4D.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Vector4DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Vector4D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Vector4DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Vector4DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Vector4DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Vector4DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Math.Transformation4D">
            <summary>
            Transformation4D is a Transformation <see cref="T:WW.Math.Matrix4D"/> factory class.
            </summary>
        </member>
        <member name="F:WW.Math.Transformation4D.IdentityTransform">
            <summary>
            <see cref="T:WW.Math.ITransformer4D"/> performing an identity transformation.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.RotationAxis(WW.Math.Vector3D,System.Double)">
            <summary>
            Builds a matrix that rotates around an arbitrary axis.
            </summary>
            <param name="rotationAxis">A <see cref="T:WW.Math.Vector3D"/> instance specifying the axis to rotate around (vector has to be of unit length).</param>
            <param name="angle">
            Angle of rotation, in radians. Angles are measured clockwise when looking along the rotation axis from the origin.
            </param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.RotateX(System.Double)">
            <summary>
            Builds a matrix that rotates around the x-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.RotateY(System.Double)">
            <summary>
            Builds a matrix that rotates around the y-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.RotateZ(System.Double)">
            <summary>
            Builds a matrix that rotates around the z-axis.
            </summary>
            <param name="angle">Angle of rotation, in radians.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the rotation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Scaling(WW.Math.Vector3D)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3D"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Scaling(WW.Math.Vector3D,WW.Math.Point3D)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis, using specified origin.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3D"/> structure containing three values that represent the scaling factors applied along the x-axis, y-axis, and z-axis.</param>
            <param name="origin">
            The origin around which is scaled. 
            This point remains unchanged after transformation using the result matrix.
            </param>
            <returns>
            A <see cref="T:WW.Math.Matrix4D"/> representing the scaling transformation.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Scaling(System.Double,System.Double,System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis.
            </summary>
            <param name="x">Scaling factor that is applied along the x-axis.</param>
            <param name="y">Scaling factor that is applied along the y-axis.</param>
            <param name="z">Scaling factor that is applied along the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Scaling(System.Double)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Scaling(System.Double,WW.Math.Point3D)">
            <summary>
            Builds a matrix that scales along the x-axis, y-axis, and z-axis with given s factor, using specified origin.
            </summary>
            <param name="s">Scaling factor that is applied along the x-axis, y-axis and z-axis.</param>
            <param name="origin">
            The origin around which is scaled. 
            This point remains unchanged after transformation using the result matrix.
            </param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the scaling transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Translation(System.Double,System.Double,System.Double)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="x">Offset on the x-axis.</param>
            <param name="y">Offset on the y-axis.</param>
            <param name="z">Offset on the z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.Translation(WW.Math.Vector3D)">
            <summary>
            Builds a translation matrix.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Vector3D"/> structure containing three values that represent the offsets on the x-axis, y-axis, and z-axis.</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> representing the translation transformation.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetArbitraryCoordSystem(WW.Math.Vector3D)">
            <summary>
            Generate arbitrary (but not random) coordinate transformation
            according to given z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.GetCoordSystem(WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given x and z axis are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4D.GetCoordSystem(WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis and z-axis of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4D.GetCoordSystem(WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Point3D)">
            <summary>
            Calculate coordinate transformation 
            according to given x-axis, y-axis, z-axis and origin of the source coordinate system 
            (specified in target coordinate system).
            </summary>
            <remarks>
            No check is done to ensure that given axes are perpendicular to eachother.
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4D.GetPerspectiveProjectionTransform(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Gets the perspective transform based on 
            given inverse tangents of the viewing frustrum angles and 
            front clip, back clip planes.
            </summary>
            <remarks>
            <para>
            The returned perspective transform is setup such that it can be used directly in OpenGL 
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            <para>
            This transformation matrix transforms coordinates within the viewing frustrum 
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
            <param name="cotanMu">
            The cotangent of mu where mu is the angle between the z-axis (pointing towards the camera) and the line
            passing through the camera and the left side of the display.
            </param>
            <param name="cotanNu">
            The cotangent of nu where nu is the angle between the z-axis (pointing towards the camera) and the line
            passing through the camera and the top side of the display.
            </param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0).</param>
        </member>
        <member name="M:WW.Math.Transformation4D.GetPerspectiveProjectionTransform(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Gets the perspective projection transform based on given viewing frustrum dimensions.
            </summary>
            <param name="left">The x-coordinate of the left of the viewing frustrum near face.</param>
            <param name="right">The x-coordinate of the right the viewing frustrum near face.</param>
            <param name="bottom">The y-coordinate of the bottom the viewing frustrum near face.</param>
            <param name="top">The y-coordinate of the top the viewing frustrum near face.</param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0).</param>
            <remarks>
            	<para>
            The returned perspective transform is setup such that it can be used directly in OpenGL
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            	<para>
            This transformation matrix transforms coordinates within the viewing frustrum
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4D.GetOrthographicProjectionTransform(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Gets the orthographic projection transform based on given viewing volume dimensions.
            </summary>
            <param name="left">The x-coordinate of the left of the viewing volume.</param>
            <param name="right">The x-coordinate of the right the viewing volume.</param>
            <param name="bottom">The y-coordinate of the bottom the viewing volume.</param>
            <param name="top">The y-coordinate of the top the viewing volume.</param>
            <param name="near">The front clip plane z-value closest to the camera (&gt; 0 if in front of camera).</param>
            <param name="far">The back clip plane z-value furthest from the camera (&gt; 0 if in front of camera).</param>
            <remarks>
            	<para>
            The returned orthographic transform is setup such that it can be used directly in OpenGL
            as the projection transform.
            The camera is positioned at the origin, looking towards the negative z-axis.
            The x-axis is pointing towards the right of the display, the y-axis points up.
            </para>
            	<para>
            This transformation matrix transforms coordinates within the viewing volume
            to a cube with coordinate ranges (-1, 1), which is convenient for clipping.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Transformation4D.GetScaleAndTranslateTransform(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Gets the scale and translate transform from source to target rectangle.
            </summary>
            <param name="fromP1">From point 1.</param>
            <param name="fromP2">From point 2.</param>
            <param name="toP1">To point 1.</param>
            <param name="toP2">To point 2.</param>
        </member>
        <member name="M:WW.Math.Transformation4D.GetScaleTransform(WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Constructs a Matrix4D to fit the from bounding box to the target bounding box.
            Useful to fit an object to a viewport.
            </summary>
            <param name="fromPoint1">corner of source viewport</param>
            <param name="fromPoint2">opposite corner of source viewport</param>
            <param name="fromReferencePoint">reference point of source viewport</param>
            <param name="toPoint1">corner of target viewport corresponding to <paramref name="fromPoint1"/></param>
            <param name="toPoint2">corner of target viewport corresponding to <paramref name="fromPoint2"/></param>
            <param name="toReferencePoint">
             Reference point of target viewport. The calculated transformation is always mapping 
             <paramref name="fromReferencePoint"/> to <paramref name="toReferencePoint"/>.
            </param>
            <returns>uniform scaling mapping transformation</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetScaleTransform(WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,WW.Math.Point3D,System.Double@)">
            <summary>
            Constructs a Matrix4D to fit the from bounding box to the target bounding box.
            Useful to fit an object to a viewport.
            </summary>
            <param name="fromPoint1">corner of source viewport</param>
            <param name="fromPoint2">opposite corner of source viewport</param>
            <param name="fromReferencePoint">reference point of source viewport</param>
            <param name="toPoint1">corner of target viewport corresponding to <paramref name="fromPoint1"/></param>
            <param name="toPoint2">corner of target viewport corresponding to <paramref name="fromPoint2"/></param>
            <param name="toReferencePoint">
             Reference point of target viewport. The calculated transformation is always mapping 
             <paramref name="fromReferencePoint"/> to <paramref name="toReferencePoint"/>.
            </param>
            <param name="scaling">output of the calculated source-to-target scaling</param>
            <returns>uniform scaling mapping transformation</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Bounds3D,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="bounds">
            The bounding box which shall be mapped.
            Z coordinate values will be ignored.
            </param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <returns>
            Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates,
            or <see cref="F:WW.Math.Matrix4D.Identity"/> if <paramref name="bounds"/> is not initialized.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Bounds3D,System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="bounds">
            The bounding box which shall be mapped.
            Z coordinate values will be ignored.
            </param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <param name="margin">
            The additional margin to be left around the screen rectangle.
            Making this larger than half of the minimum of <paramref name="width"/> and 
            <paramref name="height"/> will lead to unexpected results.
            </param>
            <returns>
            Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates,
            or <see cref="F:WW.Math.Matrix4D.Identity"/> if <paramref name="bounds"/> is not initialized.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Bounds2D,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="bounds">The bounding box which shall be mapped.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <returns>
            Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates,
            or <see cref="F:WW.Math.Matrix4D.Identity"/> if <paramref name="bounds"/> is not initialized.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Bounds2D,System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="bounds">The bounding box which shall be mapped.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <param name="margin">
            The additional margin to be left around the screen rectangle.
            Making this larger than half of the minimum of <paramref name="width"/> and 
            <paramref name="height"/> will lead to unexpected results.
            </param>
            <returns>
            Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates,
            or <see cref="F:WW.Math.Matrix4D.Identity"/> if <paramref name="bounds"/> is not initialized.
            </returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Point3D,WW.Math.Point3D,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="min">
            The minimal corner of the model which should be visible.
            The z coordinate will be ignored.
            </param>
            <param name="max">
            The maximal corner of the model which should be visible.
            The z coordinate will be ignored.
            </param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <returns>Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Point3D,WW.Math.Point3D,System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="min">
            The minimal corner of the model which should be visible.
            The z coordinate will be ignored.
            </param>
            <param name="max">
            The maximal corner of the model which should be visible.
            The z coordinate will be ignored.
            </param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <param name="margin">
            The additional margin to be left around the screen rectangle.
            Making this larger than half of the minimum of <paramref name="width"/> and 
            <paramref name="height"/> will lead to unexpected results.
            </param>
            <returns>Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Point2D,WW.Math.Point2D,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="min">The minimal corner of the model which should be visible.</param>
            <param name="max">The maximal corner of the model which should be visible.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(WW.Math.Point2D,WW.Math.Point2D,System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="min">The minimal corner of the model which should be visible.</param>
            <param name="max">The maximal corner of the model which should be visible.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <param name="margin">
            The additional margin to be left around the screen rectangle.
            Making this larger than half of the minimum of <paramref name="width"/> and 
            <paramref name="height"/> will lead to unexpected results.
            </param>
            <returns>Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(System.Double,System.Double,System.Double,System.Double,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="minX">The minimal X coordinate of the model which should be visible.</param>
            <param name="minY">The minimal Y coordinate of the model which should be visible.</param>
            <param name="maxX">The maximal X coordinate of the model which should be visible.</param>
            <param name="maxY">The maximal Y coordinate of the model which should be visible.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <returns>Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.GetBoundsToScreenTransform(System.Double,System.Double,System.Double,System.Double,System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets the bounds to screen transform.
            </summary>
            <remarks>
            This maps a model rectangle to a screen rectangle by applying an uniform scaling
            so that the source rectangle defined by its minimum and maximum coordinates
            fits into a screen (or image) rectangle with coordinate (0,0) in its upper left corner 
            and defined by its width and height. The different orientation of the y axis in model 
            and screen coordinates is taken care of. The model rectangle will always fit completely 
            into the screen rectangle, but if the aspect ratios of both rectangles differ, a bit more 
            of the model is mapped either at top and bottom or at the left and right side. The mapping
            is always done in a way that the model rectangles center will be mapped to the screen 
            rectangles center.
            </remarks>
            <param name="minX">The minimal X coordinate of the model which should be visible.</param>
            <param name="minY">The minimal Y coordinate of the model which should be visible.</param>
            <param name="maxX">The maximal X coordinate of the model which should be visible.</param>
            <param name="maxY">The maximal Y coordinate of the model which should be visible.</param>
            <param name="width">The screen/image width.</param>
            <param name="height">The screen/image height.</param>
            <param name="margin">
            The additional margin to be left around the screen rectangle.
            Making this larger than half of the minimum of <paramref name="width"/> and 
            <paramref name="height"/> will lead to unexpected results.
            </param>
            <returns>Orthogonal transformation which maps model X and Y coordinates to screen X and Y coordinates.</returns>
        </member>
        <member name="M:WW.Math.Transformation4D.IsSane(WW.Math.Matrix4D)">
            <summary>
            Is the transformation sane?
            </summary>
            <remarks>
            This checks whether the transformation contains invalid components like NaN or infinity.
            </remarks>
            <param name="transform">Transformation to check.</param>
            <returns><c>true</c> if transformation is sane, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:WW.Math.Transformation4D.IdentityTransformer">
            <summary>
            Helper class for providing an identity transform.
            </summary>
        </member>
        <member name="T:WW.Math.ITransformer4D">
            <summary>
            Represents an interface for transforming 4D vectors.
            </summary>
        </member>
        <member name="M:WW.Math.ITransformer4D.Transform(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 4D vector.
            </summary>
        </member>
        <member name="M:WW.Math.ITransformer4D.TransformToPoint2D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.ITransformer4D.TransformToPoint3D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.ITransformer4D.TransformTo4D(WW.Math.Point2D)">
            <summary>
            Transforms the given 2D point to a 4D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.IdentityTransformer.Transform(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 4D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.IdentityTransformer.TransformToPoint2D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.IdentityTransformer.TransformToPoint3D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Transformation4D.IdentityTransformer.TransformTo4D(WW.Math.Point2D)">
            <summary>
            Transforms the given 2D point to a 4D vector.
            </summary>
        </member>
        <member name="F:WW.Math.Size2D.X">
            <summary>The size measured on the x-axis.</summary>
        </member>
        <member name="F:WW.Math.Size2D.Y">
            <summary>The size measured on the y-axis.</summary>
        </member>
        <member name="F:WW.Math.Size2D.Zero">
            <summary>
            The zero size.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.#ctor(System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Size2D.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Size2D.Equals(WW.Math.Size2D)">
            <summary>
            Returns <b>true</b> if this size is equal to specified size.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.op_Equality(WW.Math.Size2D,WW.Math.Size2D)">
            <summary>
            Tests whether two specified sizes are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Size2D.op_Inequality(WW.Math.Size2D,WW.Math.Size2D)">
            <summary>
            Tests whether two specified sizes are not equal.
            </summary>
        </member>
        <member name="T:WW.Math.Size2DConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Size2D"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Size2DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Size2DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Size2DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Size2DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Size2DConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Size2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Size2DConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="F:WW.Math.Matrix4D.M00">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M10">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M20">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M30">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M01">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M11">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M21">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M31">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M02">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M12">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M22">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M32">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M03">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M13">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M23">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.M33">
            <summary>
            The matrix elements.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.Zero">
            <summary>
            4-dimensional double precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Matrix4D.Identity">
            <summary>
            4-dimensional double precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4D"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.#ctor(System.Double[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix4D.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4D"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Matrix4D.#ctor(WW.Math.Vector4D,WW.Math.Vector4D,WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4D"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Vector4D"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Vector4D"/> instance holding values for the second column.</param>
            <param name="column3">A <see cref="T:WW.Math.Vector4D"/> instance holding values for the third column.</param>
            <param name="column4">A <see cref="T:WW.Math.Vector4D"/> instance holding values for the fourth column.</param>
        </member>
        <member name="M:WW.Math.Matrix4D.#ctor(WW.Math.Matrix4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Matrix4D"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Add(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Subtract(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Matrix4D.Multiply(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Multiply(WW.Math.Matrix4D,WW.Math.Matrix2D)">
            <summary>
            Multiplies two matrices.
            The 2D matrix is interpreted as a 4D matrix with all elements
            outside the 2D matrix having value zero, except M22 and M33 of value 1.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Transpose(WW.Math.Matrix4D)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4D"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="other">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="other"/> is a <see cref="T:WW.Math.Matrix4D"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform(WW.Math.Vector3D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo2D(WW.Math.Vector3D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform(WW.Math.Vector2D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix, also handling fourth row multiplication.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform4x3(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix, but not handling fourth row multiplication.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transform(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix, also handling fourth row multiplication.
            </summary>
            <remarks>
            A 2D point is equivalent to a 3D point with Z-coordinate equal to one.
            </remarks>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo3D(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix, also handling fourth row multiplication.
            </summary>
            <remarks>
            A 3D point is equivalent to a 4D vector with W-coordinate equal to one.
            </remarks>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo3D4x3(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix, but without handling fourth row multiplication.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo3D(WW.Math.Vector2D)">
            <summary>
            Transforms given vector by this matrix, also handling fourth row multiplication.
            </summary>
            <param name="v">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToPoint3D(WW.Math.Vector4D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <remarks>
            A 3D point is equivalent to a 4D vector with W-coordinate equal to one.
            </remarks>
            <param name="vector">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToPoint2D(WW.Math.Vector4D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToPointF(WW.Math.Vector4D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:System.Drawing.PointF"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToPointF(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:System.Drawing.PointF"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToPointF(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:System.Drawing.PointF"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformToWindowsPoint(WW.Math.Vector4D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:System.Windows.Point"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo2D(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo2D(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo2D(WW.Math.Vector4D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo3D(WW.Math.Vector4D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point2D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo2D(System.Drawing.PointF)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:System.Drawing.PointF"/> instance.</param>
            <returns>A new <see cref="T:System.Drawing.PointF"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo4D(WW.Math.Point2D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo4D(WW.Math.Point3D)">
            <summary>
            Transforms given point by this matrix.
            </summary>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Point3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformTo4D(WW.Math.Vector3D)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
            <param name="vector">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4D"/> instance containing the result.</returns>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector3D)"/>
            <seealso cref="M:WW.Math.Matrix4D.Transform(WW.Math.Vector4D)"/>
        </member>
        <member name="M:WW.Math.Matrix4D.TransformAngle(System.Double)">
            <summary>
            Creates a 2D vector from specified angle in radians, transforms this vector and returns the new angle of this vector.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Matrix4D.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Matrix4D"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 3x3 matrix from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Matrix3D"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.GetTranslation">
            <summary>
            return translation component of the matrix
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.AreApproxEqual(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Tests whether two matrices are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.AreApproxEqual(WW.Math.Matrix4D,WW.Math.Matrix4D,System.Double)">
            <summary>
            Tests whether two matrices are approximately equal given a tolerance value.
            </summary>
            <param name="a">Matrix 1.</param>
            <param name="b">Matrix 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two matrices are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Equality(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Inequality(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Addition(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4D"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Subtraction(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4D"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Multiply(WW.Math.Matrix4D,WW.Math.Matrix4D)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Matrix4D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Multiply(WW.Math.Matrix4D,WW.Math.Vector4D)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector4D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Multiply(WW.Math.Matrix4D,WW.Math.Vector3D)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <remarks>
            A 3D vector is equivalent to a 4D vector with W-coordinate equal to zero.
            </remarks>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Vector3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Vector4D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Multiply(WW.Math.Matrix4D,WW.Math.Point3D)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <remarks>
            A 3D point is equivalent to a 4D vector with W-coordinate equal to one.
            </remarks>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point3D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Multiply(WW.Math.Matrix4D,WW.Math.Point2D)">
            <summary>
            Transforms given point by matrix, assuming a z coordinate of <c>0</c>.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Matrix4D"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Point2D"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Point3D"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Explicit(WW.Math.Matrix4D)~WW.Math.Matrix4F">
            <summary>
            Converts the specified double-precision matrix to a single-precision matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.op_Explicit(WW.Math.Matrix4F)~WW.Math.Matrix4D">
            <summary>
            Converts the specified single-precision matrix to a double-precision matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Matrix4D.Equals(WW.Math.Matrix4D)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix4D.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 4 * column + row.
            </summary>
        </member>
        <member name="P:WW.Math.Matrix4D.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Math.Bounds2D">
            <summary>
            Bounds object for convenient updating of a bounding box.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.#ctor(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.#ctor(WW.Math.Bounds2D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Reset">
            <summary>
            Reset the bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(WW.Math.Point2D)">
            <summary>
            Update bounds with given point.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(System.Windows.Point)">
            <summary>
            Update bounds with given point.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(WW.Math.Point2D[])">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(WW.Math.Bounds2D)">
            <summary>
            Update bounds with given bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds2D.Update(System.Double,System.Double)">
            <summary>
            Update bounds.
            </summary>
            <param name="x">x coordinate</param>
            <param name="y">y coordinate</param>
        </member>
        <member name="M:WW.Math.Bounds2D.Move(System.Double,System.Double)">
            <summary>
            Translate this bounds.
            </summary>
            <param name="deltaX">translation in x</param>
            <param name="deltaY">translation in y</param>
        </member>
        <member name="M:WW.Math.Bounds2D.Overlaps(WW.Math.Bounds2D)">
            <summary>
            Is this bounds overlapping another?
            </summary>
            <remarks>
            If this or the other bounds is not initialized, <c>false</c> is returned.
            </remarks>
            <param name="bounds">Other bounds.</param>
            <returns><c>true</c> if there is any overlap, including an overlap of width <c>0.0</c>.</returns>
        </member>
        <member name="M:WW.Math.Bounds2D.Clone">
            <summary>
            Clone.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Corner1">
            <summary>
            Corner point with smallest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Corner2">
            <summary>
            Corner point with largest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Min">
            <summary>
            Corner point with smallest coordinates.
            Another name for <see cref="P:WW.Math.Bounds2D.Corner1"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Max">
            <summary>
            Corner point with largest coordinates.
            Another name for <see cref="P:WW.Math.Bounds2D.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Delta">
            <summary>
            Vector from <see cref="P:WW.Math.Bounds2D.Corner1"/> to <see cref="P:WW.Math.Bounds2D.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Center">
            <summary>
            The center.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Corners">
            <summary>
            Returns the four corner points.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds2D.Initialized">
            <summary>
            Are the bounds initialized?
            </summary>
        </member>
        <member name="M:WW.LicenseChecker.#cctor">
            <summary>
            See for more details <see href="http://www.pcreview.co.uk/forums/signedxml-checksignature-very-slow-t3428177.html"/>.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.KeyedCollection`2">
            <summary>
            Keyed collection, with TryGetValue method.
            </summary>
            <typeparam name="TKey">The type of keys in the collection.</typeparam>
            <typeparam name="TItem">The type of items in the collection.</typeparam>
        </member>
        <member name="M:WW.Collections.Generic.KeyedCollection`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.KeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.KeyedCollection`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.KeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.KeyedCollection`2.#ctor(System.Collections.Generic.IEqualityComparer{`0},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.KeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.KeyedCollection`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key. 
            </summary>
            <returns><c>true</c> if the Dictionary contains an element with the specified key; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:WW.Collections.Generic.KeyedCollection`2.Keys">
            <summary>
            Get a collection of the keys of this KeyedCollection.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveKeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveKeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.#ctor(System.Collections.Generic.IEqualityComparer{`0},System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveKeyedCollection`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.InsertItem(System.Int32,`1)">
            <summary>
            Inserts an element into the <see cref="T:WW.Collections.Generic.ActiveKeyedCollection`2"/> at the specified index.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.SetItem(System.Int32,`1)">
            <summary>
            Replaces the item at the specified index with the specified item.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.RemoveItem(System.Int32)">
            <summary>
            Removes the element at the specified index.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:WW.Collections.Generic.ActiveKeyedCollection`2"/>.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.OnInserted(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveKeyedCollection`2.Inserted"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.OnSet(System.Int32,`1,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveKeyedCollection`2.Set"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveKeyedCollection`2.OnRemoved(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveKeyedCollection`2.Removed"/> event.
            </summary>
        </member>
        <member name="T:WW.NonSwappingBitConverter">
            <summary>
            Represents a bit converter that doesn't swap the bytes on input/output.
            This is a basic wrapper around <see cref="T:System.BitConverter"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Char)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Int16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.UInt16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Int32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.UInt32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Int64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.UInt64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Double)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.GetBytes(System.Single)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToChar(System.Byte[])">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToDouble(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToSingle(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToChar(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.NonSwappingBitConverter.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D">
            <summary>
            This class represents a 2D polygon: a closed plane figure with n sides (in 2D).
            </summary>
            <remarks>
            This class has methods to:
            <list type="bullet">
             <item>
              <description>
            calculate the polygon area (<see cref="M:WW.Math.Geometry.Polygon2D.GetArea"/>), 
              </description>
             </item>
             <item>
              <description>
            to test whether a point is inside the polygon (<see cref="M:WW.Math.Geometry.Polygon2D.IsInside(WW.Math.Point2D)"/>),
              </description>
             </item>
             <item>
              <description>
            test whether the polygon is clockwise or not (<see cref="M:WW.Math.Geometry.Polygon2D.IsClockwise"/>),
              </description>
             </item>
             <item>
              <description>
            do boolean operations (<see cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>, <see cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>, <see cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>).
              </description>
             </item>
            </list>
            Further static methods are also provided to allow to use other data structures than Polygon2D.
            </remarks>
            <seealso cref="T:WW.Math.Geometry.Polyline2D"/>
        </member>
        <member name="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision">
            <summary>
            The default precision with which boolean operations are done (currently 1e-8).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the intersection of both lists.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetIntersection(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <returns>The polygons building the intersection of both lists.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetIntersection(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the difference of the first minus the second list.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetDifference(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <returns>The polygons building the difference of the first minus the second list.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetDifference(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the union of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetUnion(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <returns>The polygons building the union of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetUnion(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <returns>The polygons building the exclusive or of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; ExclusiveOrExample() {
            Polygon2D polygon1 =
                new Polygon2D(
                    new Point2D(2d, 1d),
                    new Point2D(5d, 2d),
                    new Point2D(4d, 5d),
                    new Point2D(1d, 4d)
                );
            Polygon2D polygon2 =
                new Polygon2D(
                    new Point2D(3d, -1d),
                    new Point2D(7d, 1d),
                    new Point2D(6d, 4d),
                    new Point2D(-1d, 2d)
                );
            List&lt;Polygon2D&gt; result = Polygon2D.GetExclusiveOr(
                new Polygon2D[] { polygon1 },
                new Polygon2D[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <returns>The polygons building the exclusive or of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; ExclusiveOrExample() {
            Polygon2D polygon1 =
                new Polygon2D(
                    new Point2D(2d, 1d),
                    new Point2D(5d, 2d),
                    new Point2D(4d, 5d),
                    new Point2D(1d, 4d)
                );
            Polygon2D polygon2 =
                new Polygon2D(
                    new Point2D(3d, -1d),
                    new Point2D(7d, 1d),
                    new Point2D(6d, 4d),
                    new Point2D(-1d, 2d)
                );
            List&lt;Polygon2D&gt; result = Polygon2D.GetExclusiveOr(
                new Polygon2D[] { polygon1 },
                new Polygon2D[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.#ctor(WW.Math.Point2D[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Point2D})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.#ctor(WW.Math.Geometry.Polygon2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetBounds">
            <summary>
            Get the bounds of this polygon.
            </summary>
            <returns></returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetCentroid">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass).
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetCentroid(System.Double@)">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass) and
            the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsConvex">
            <summary>
            Is this polygon convex?
            </summary>
            <returns><c>true</c> if the polygon is convex, <c>false</c> if it is not convex.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsInside(WW.Math.Point2D)">
            <summary>
            Determine if a point is inside of this polygon.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygon 
            (<see cref="M:WW.Math.Geometry.Polygon2D.GetWindingNumber(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetNoOfIntersections(WW.Math.Geometry.Ray2D)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsClockwise">
            <summary>
            Returns whether the polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetArea">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.Outset(System.Double)">
            <summary>
            Outsets the polygon to the right by the specified distance. 
            Right is defined as the right side when travelling the polygon from first to last point. 
            </summary>
            <remarks>
            Only works for 3 points or more.
            </remarks>
            <param name="distance">The outset distance. Use a negative value for inset.</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.RightSet(System.Double)">
            <summary>
            'Right' sets the polygon to the right by the specified distance. 
            Right is defined as the right side when travelling the polygon from first to last point. 
            </summary>
            <remarks>
            Only works for 3 points or more.
            </remarks>
            <param name="distance">The distance. Use a negative value for 'left' set.</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetReverse">
            <summary>
            Gets the reverse polygon 
            (useful to change polygon from clockwise to counter clockwise and vice versa).
            </summary>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.IsClockwise"/>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsInside(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Determine if a point is inside a polygon.
            </summary>
            <remarks>
            Uses the Jordan Curve theorem.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsInsidePolygons(WW.Math.Point2D,System.Collections.IEnumerator)">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <param name="p">The point.</param>
            <param name="polygonsEnumerator">
            The polygons enumerator, must enumerate over items of type <see cref="T:System.Collections.Generic.IList`1"/>.
            </param>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons 
            (<see cref="M:WW.Math.Geometry.Polygon2D.GetWindingNumber(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsInside(WW.Math.Point2D,System.Collections.Generic.IEnumerable{System.Collections.Generic.IList{WW.Math.Point2D}})">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons
            (<see cref="M:WW.Math.Geometry.Polygon2D.GetWindingNumber(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetWindingNumber(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetWindingNumber(System.Double,System.Double,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetNoOfIntersections(System.Collections.Generic.IList{WW.Math.Point2D},WW.Math.Geometry.Ray2D)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetNoOfIntersections(System.Collections.Generic.IList{WW.Math.Point2D},WW.Math.Geometry.Ray2D,System.Int32,System.Int32)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsClockwise(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Returns whether given polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetArea(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetDoubleArea(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Calculates the double area.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The double area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsClockwise(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Returns whether given polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetArea(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetDoubleArea(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Calculates the double area.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The double area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetCentroid(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass).
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetCentroid(System.Collections.Generic.IList{WW.Math.Point2D},System.Double@)">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass) and
            the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.Outset(System.Collections.Generic.IList{WW.Math.Point2D},System.Double)">
            <summary>
            Outsets a polygon by the specified distance. 
            Right is defined as the right side when travelling the polygon from first to last point. 
            </summary>
            <remarks>
            Only works for 3 points or more.
            </remarks>
            <param name="polygon">The polygon points. The collection is modified by this method.</param>
            <param name="distance">The outset distance. Use a negative value for inset.</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.RightSet(System.Collections.Generic.IList{WW.Math.Point2D},System.Double)">
            <summary>
            'Right' sets a polygon to the right by the specified distance. 
            Right is defined as the right side when travelling the polygon from first to last point. 
            </summary>
            <remarks>
            Only works for 3 points or more.
            </remarks>
            <param name="polygon">The polygon points. The collection is modified by this method.</param>
            <param name="distance">The distance</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetSegments(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.IList{WW.Math.Geometry.Segment2D})">
            <summary>
            Creates <see cref="T:WW.Math.Geometry.Segment2D"/> objects for the given polygon and adds them to the
            specified segments.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetConvexHull">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetConvexHull(System.Double)">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetConvexHull(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            The input polygon is expected to be counter clockwise. 
            The result is counter clockwise.
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetConvexHull(System.Collections.Generic.IList{WW.Math.Point2D},System.Double)">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            The input polygon is expected to be counter clockwise. 
            The result is counter clockwise.
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetMinimumAreaRectangle">
            <summary>
            Gets the minimum area rectangle that encloses specified convex polygon.
            This method assumes the polygon is convex and does not verify it is convex.
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetConvexHull"/>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.GetMinimumAreaRectangle(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Gets the minimum area rectangle that encloses specified convex polygon.
            This method assumes the polygon is convex and does not verify it is convex.
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.GetConvexHull(System.Collections.Generic.IList{WW.Math.Point2D})"/>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.IsInsideSlow(WW.Math.Point2D)">
            <summary>
            Determine if a point is inside of a (closed) polyline.
            </summary>
            <remarks>
            Uses the Jordan Curve theorem.
            </remarks>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations">
            <summary>
            This class contains methods for doing boolean operations on 2D polygons.
            </summary>
            <remarks>
            <para>
            The following boolan operations are implemented:
            <list type="bullet">
                <item>
                    Union: <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>, <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
                </item>
                <item>
                    Difference: <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>, <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
                </item>
                <item>
                    Intersection: <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>, <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
                </item>
                <item>
                    Exclusive or (symmetric difference): <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>, <see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
                </item>
            </list>
            </para>
            <para>
            This implementation replaces the older implementation, and is more robust and faster. 
            The old implementation is still available here: <see cref="T:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete"/>.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetUnion(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetUnion(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetDifference(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetDifference(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetIntersection(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2D p1 = new Polygon2D(
                new Point2D(1d, 1d),
                new Point2D(2d, 1d),
                new Point2D(2d, 2d),
                new Point2D(1d, 2d)
            );
            Polygon2D p2 = new Polygon2D(
                new Point2D(1.5d, 1.5d),
                new Point2D(2d, 1.6d),
                new Point2D(2d, 3d),
                new Point2D(1d, 3d)
            );
            List&lt;Polygon2D&gt; result = Polygon2D.GetIntersection(new Polygon2D[] { p1 }, new Polygon2D[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            <para>
            Uses the <see cref="F:WW.Math.Geometry.Polygon2D.DefaultBooleanOperationPrecision"/> as the precision.
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; ExclusiveOrExample() {
            Polygon2D polygon1 =
                new Polygon2D(
                    new Point2D(2d, 1d),
                    new Point2D(5d, 2d),
                    new Point2D(4d, 5d),
                    new Point2D(1d, 4d)
                );
            Polygon2D polygon2 =
                new Polygon2D(
                    new Point2D(3d, -1d),
                    new Point2D(7d, 1d),
                    new Point2D(6d, 4d),
                    new Point2D(-1d, 2d)
                );
            List&lt;Polygon2D&gt; result = Polygon2D.GetExclusiveOr(
                new Polygon2D[] { polygon1 },
                new Polygon2D[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <param name="precision">The precision used, a small but positive number.</param>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})"/>
            <seealso cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},System.Double)"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2DTest {
        public List&lt;Polygon2D&gt; ExclusiveOrExample() {
            Polygon2D polygon1 =
                new Polygon2D(
                    new Point2D(2d, 1d),
                    new Point2D(5d, 2d),
                    new Point2D(4d, 5d),
                    new Point2D(1d, 4d)
                );
            Polygon2D polygon2 =
                new Polygon2D(
                    new Point2D(3d, -1d),
                    new Point2D(7d, 1d),
                    new Point2D(6d, 4d),
                    new Point2D(-1d, 2d)
                );
            List&lt;Polygon2D&gt; result = Polygon2D.GetExclusiveOr(
                new Polygon2D[] { polygon1 },
                new Polygon2D[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.CollectPolygon(WW.Math.Geometry.Polygon2D.BooleanOperations.Segment,WW.Math.Geometry.Polygon2D.BooleanOperations.Region,System.Func{WW.Math.Geometry.Polygon2D.BooleanOperations.Segment,System.Boolean},System.Int32@)">
            <summary>
            Collect polygon from given start segment.
            </summary>
            <param name="startSegment">the start segment of the polygon</param>
            <param name="resultRegion">the result region to which to add the result polygon</param>
            <param name="includeSegment">the function to determine whether or not to include a segment</param>
            <param name="n">
            Is used for protecting against endless looping as a safety precaution, just in case
            the data causes floating point issues and ends up looping forever.
            </param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.ReplacePoint(WW.Math.Geometry.Polygon2D.BooleanOperations.Point2DToPointDictionary,WW.Math.Geometry.Polygon2D.BooleanOperations.Point,WW.Math.Geometry.Polygon2D.BooleanOperations.Point)">
            <summary>
            Givens points were very close together, so replace one by the other.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.GetRegion(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D},WW.Math.Geometry.Polygon2D.BooleanOperations.Point2DToPointDictionary,System.Boolean)">
            <summary>
            Find shared points and convert to internal structures.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Point.AddVertexSorted(WW.Math.Geometry.Polygon2D.BooleanOperations.Vertex)">
            <summary>
            Adds a vertex at a sorted position.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperations.Point.Vertices">
            <summary>
            Gets the vertices.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.Vertex">
            <summary>
            Represents a vertex.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Vertex.IsInside(WW.Math.Geometry.Polygon2D.BooleanOperations.Segment)">
            <summary>
            Returns whether the specified segment is included in the angle
            between in and out segment of this vertex.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperations.Vertex.InSegment">
            <summary>
            Gets or sets the incoming segment.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperations.Vertex.OutSegment">
            <summary>
            Gets or sets the outgoing segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Segment.AddIntersection(WW.Math.Geometry.Polygon2D.BooleanOperations.Intersection)">
            <summary>
            Adds the specified intersection.
            If there was already an intersection present with the same parameter or Point,
            than the intersection was not added, and the existing intersection is returned.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Segment.CalculateStatusFirstSegment(WW.Math.Geometry.Polygon2D.BooleanOperations.Region)">
            <summary>
            Calculate the first segment status based on the other region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Segment.CalculateStatus(WW.Math.Geometry.Polygon2D.BooleanOperations.Segment,WW.Math.Geometry.Polygon2D.BooleanOperations.Region)">
            <summary>
            Calculate the segment status based on the previous segment and other region.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.EventQueue">
            <summary>
            Events are sorted first along the x-axis, and then along the y-axis.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.RedBlackTree`1">
            <summary>
            Represents a red black tree (a type of self-balancing binary search tree).
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.#ctor(System.Collections.Generic.IComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1"/> class.
            </summary>
            <remarks>
            Uses the <see cref="P:System.Collections.Generic.Comparer`1.Default"/> as comparer.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.TryAdd(`0)">
            <summary>
            Adds the specified value to this collection.
            </summary>
            <returns>
            Returns <c>true</c> if successfully added, returns <c>false</c>
            if the key was already present.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Find(`0)">
            <summary>
            Finds the item in this collection that matches the specified value.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Find(System.IComparable{`0})">
            <summary>
            Finds the node using specified comparer object 
            (this should match the comparer on which this tree is based).
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.GetEnumerator(`0)">
            <summary>
            Gets the enumerator and moves to target element if present in this collection.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.GetReverseEnumerator">
            <summary>
            Gets the reverse enumerator.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.GetReverseEnumerator(`0)">
            <summary>
            Gets the reverse enumerator and moves to target element if present in this collection.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Add(`0)">
            <summary>
            Adds the specified value to this collection.
            </summary>
            <exception cref="T:System.ArgumentException">
            An element with the same key already exists in this collection.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Remove(`0)">
            <summary>
            Removes specified value.
            </summary>
            <remarks>
            Returns <c>true</c> if the value was present in this collection.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Clear">
            <summary>
            Removes all items.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.Contains(`0)">
            <summary>
            Returns whether this collections contains specified item.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of this collection to an System.Array, starting at a particular System.Array index.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.GetEnumerator">
            <summary>
            Gets the enumerator.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Gets the enumerator.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.FindNode(`0)">
            <summary>
            Finds the node with specified value.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.GetBlackHeight(WW.Collections.Generic.RedBlackTree{`0}.Node,System.Int32)">
            <summary>
            Returns the black height.
            Throws an exception if the tree is invalid.
            Used for testing only.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.RotateRight(WW.Collections.Generic.RedBlackTree{`0}.Node)">
            <summary>
            Left becomes the new root.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.RotateLeft(WW.Collections.Generic.RedBlackTree{`0}.Node)">
            <summary>
            Right becomes the new root.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.RedBlackTree`1.Count">
            <summary>
            Gets the number of elements.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.RedBlackTree`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the collection is read-only.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.RedBlackTree`1.Root">
            <summary>
            Gets the root node.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase">
            <summary>
            Represents an enumerator base class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.#ctor(WW.Collections.Generic.RedBlackTree{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.#ctor(WW.Collections.Generic.RedBlackTree{`0},`0)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase"/> class.
            </summary>
            <param name="tree">The tree.</param>
            <param name="target">The target to move to if present in the tree.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.#ctor(WW.Collections.Generic.RedBlackTree{`0}.EnumeratorBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase"/> class.
            </summary>
            <param name="from">this enumerator moves to the same position as specified from enumerator.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.Find(`0)">
            <summary>
            Finds the specified target and moves to the target if present.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>
            true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
            </returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.Reset">
            <summary>
            Sets the enumerator to its initial position, which is before the first element in the collection.
            </summary>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="P:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.Current">
            <summary>
            Gets the current item.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.RedBlackTree`1.EnumeratorBase.System#Collections#IEnumerator#Current">
            <summary>
            Gets the current item.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator">
            <summary>
            Represents a forward enumerator for a <see cref="T:WW.Collections.Generic.RedBlackTree`1"/>.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0},`0)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator"/> class.
            </summary>
            <param name="tree">The tree.</param>
            <param name="target">The target to move to if present in the tree.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0}.EnumeratorBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator"/> class.
            </summary>
            <param name="from">this enumerator moves to the same position as specified from enumerator.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator.Search(`0)">
            <summary>
            Finds the item matching the specified value, or the item following it.
            Returns <c>true</c> if the item was found or an item greater than specified value.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ForwardEnumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>
            true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
            </returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="T:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator">
            <summary>
            Represents a reverse enumerator for a <see cref="T:WW.Collections.Generic.RedBlackTree`1"/>.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0},`0)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator"/> class.
            </summary>
            <param name="tree">The tree.</param>
            <param name="target">The target to move to if present in the tree.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator.#ctor(WW.Collections.Generic.RedBlackTree{`0}.EnumeratorBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator"/> class.
            </summary>
            <param name="from">this enumerator moves to the same position as specified from enumerator.</param>
        </member>
        <member name="M:WW.Collections.Generic.RedBlackTree`1.ReverseEnumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the collection.
            </summary>
            <returns>
            true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
            </returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created. </exception>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.Event">
            <summary>
            Represents an event for doing segment-segment intersection using a sweepline algorithm.
            </summary>
            <remarks>
            Events are sorted first along the x-axis, and then along the y-axis.
            </remarks>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.SweepLine">
            <summary>
            Loosely based on bentley-ottman and "line segment intersection" by M. de Berg et al. 
            However this implementation doesn't use a balanced search tree for ordering segments along the sweepline
            as it would be difficult to circumvent precision issues in case of multiple overlapping line segments.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.SegmentWithIntersections.AddIntersection(WW.Math.Geometry.Polygon2D.BooleanOperations.Intersection)">
            <summary>
            Adds the specified intersection.
            If there was already an intersection present with the same parameter or Point,
            than the intersection was not added, and the existing intersection is returned.
            If result was null, then intersection is at start or end point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperations.Intersection.Parameter">
            <summary>
            Gets the parameter (0-1), 0 represents a segments start point, 1 represents
            the end point.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.Region">
            <summary>
            A region is a set of polygons.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Region.IsInside(WW.Math.Point2D)">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons 
            (<see cref="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon.GetWindingNumber(WW.Math.Point2D,WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon)"/>).
            Returns <c>true</c> if the winding number is greater than zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Region.GetWindingNumber(WW.Math.Point2D)">
            <summary>
            Gets the winding number of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Region.CalculateSegmentStatus(WW.Math.Geometry.Polygon2D.BooleanOperations.Region)">
            <summary>
            Calculates the segment status for all segments in this region.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperations.Region.Reversed">
            <summary>
            Gets a value indicating whether this <see cref="T:WW.Math.Geometry.Polygon2D.BooleanOperations.Region"/> is reversed.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon">
            <summary>
            Represents a polygon.
            </summary>
            <remarks>
            The IsInsidePolygons/GetWindingNumber are copied from Polygon2D and adapted.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon.GetWindingNumber(WW.Math.Point2D,WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon)">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon.GetWindingNumber(System.Double,System.Double,WW.Math.Geometry.Polygon2D.BooleanOperations.Polygon)">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.SegmentIterator">
            <summary>
            Iterator over a closed polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.SegmentIterator.#ctor(System.Collections.Generic.List{WW.Math.Point2D})">
            <summary>
            Constructor.
            </summary>
            <param name="polygon">polygon to iterate</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete">
            <summary>
            This class contains the old implementation of the 2D polygon boolean operations.
            This class has been replaced by <see cref="T:WW.Math.Geometry.Polygon2D.BooleanOperations"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.GetSimplexChain(System.Collections.Generic.IList{WW.Math.Geometry.Polygon2D})">
            <summary>
            Gets one simplex chain per polygon contour.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.CalculateEdgeOverlap(System.Collections.Generic.List{WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex},System.Collections.Generic.List{WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex})">
            <summary>
            Calculates which edges overlap.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex">
            <summary>
            This is an 'original' simplex (triangle), with one point of the triangle being the origin.
            The origin point doesn't need to be stored.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex.op_UnaryNegation(WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex)">
            <summary>
            Negates the simplex. Note that the edge characterist is left empty here.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex.Alpha">
            <summary>
            Gets the simplex alpha value.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2D.BooleanOperationsObsolete.Simplex.EdgeCharacteristic">
            <summary>
            Gets or sets the result of the characteristic function f on the non-original edge of the
            simplex with respect to the other polygon.
            </summary>
        </member>
        <member name="T:WW.Drawing.DrawableContext">
            <summary>
            Represents a context for drawable objects.
            </summary>
        </member>
        <member name="M:WW.Drawing.DrawableContext.#ctor(WW.Math.Geometry.Rectangle2D,WW.Math.Matrix4D,System.Boolean,WW.Drawing.ArgbColor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.DrawableContext"/> class.
            </summary>
            <param name="canvasRectangle">The canvas rectangle (defined in the display coordinate system (DCS)).
            For windows forms this corresponds the the <see cref="P:System.Windows.Forms.Control.ClientRectangle"/>.</param>
            <param name="projectionTransform">The projection transform.</param>
            <param name="projectionFlipsOrientation">
            If set to <c>true</c> the projection transform flips the orientation (typically if the y-axis of the DCS points down like in Windows Forms).
            </param>
            <param name="backgroundColor">The background color.</param>
        </member>
        <member name="P:WW.Drawing.DrawableContext.CanvasRectangle">
            <summary>
            Gets or sets the canvas rectangle (defined in the display coordinate system (DCS)).
            </summary>
            <remarks>
            For windows forms this corresponds the the <see cref="P:System.Windows.Forms.Control.ClientRectangle"/>.
            </remarks>
        </member>
        <member name="P:WW.Drawing.DrawableContext.ProjectionTransform">
            <summary>
            Gets or sets the projection transform.
            The default value is <see cref="F:WW.Math.Matrix4D.Identity"/>.
            </summary>
            <remarks>
            Transforms from the world coordinate system (WCS) to the display coordinate system (DCS).
            </remarks>
        </member>
        <member name="P:WW.Drawing.DrawableContext.ProjectionFlipsOrientation">
            <summary>
            Gets or sets a value indicating whether the projection transform flips the orientation 
            (typically if the y-axis of the DCS points down like in Windows Forms).
            </summary>
        </member>
        <member name="P:WW.Drawing.DrawableContext.BackgroundColor">
            <summary>
            Gets or sets the background color.
            The default value is <see cref="F:WW.Drawing.ArgbColors.Black"/>.
            </summary>
        </member>
        <member name="P:WW.Drawing.DrawableContext.LengthFormatString">
            <summary>
            Gets or sets the length format string.
            The default value is "#,##0.00".
            </summary>
        </member>
        <member name="P:WW.Drawing.DrawableContext.AngleFormatString">
            <summary>
            Gets or sets the angle format string.
            The default value is "#,##0.00".
            </summary>
        </member>
        <member name="T:WW.Util.Md5Helper">
            <summary>
            Pure C# implementation of the MD5 algorithm.
            </summary>
        </member>
        <member name="M:WW.Util.Md5Helper.ComputeHash(System.Byte[])">
            <summary>
            Compute the hash value.
            </summary>
            <remarks>
            This uses the fastest available algorithm to calculate the MD5 hash value.
            </remarks>
            <param name="bytes">message bytes for which to calculate the hash value</param>
            <returns>MD5 hash value, 16 bytes</returns>
        </member>
        <member name="M:WW.Util.Md5Helper.ComputeHash(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Compute the hash value.
            </summary>
            <remarks>
            This uses the fastest available algorithm to calculate the MD5 hash value.
            </remarks>
            <param name="bytes">Message bytes for which to calculate the hash value</param>
            <param name="start">Message start</param>
            <param name="length">Message length</param>
            <returns>MD5 hash value, 16 bytes</returns>
        </member>
        <member name="M:WW.Util.Md5Helper.GetHash(System.Byte[])">
            <summary>
            Compute the hash value.
            </summary>
            <remarks>
            This uses a software algorithm to calculate the MD5 hash value.
            Generally you shoud prefer using the <see cref="M:WW.Util.Md5Helper.ComputeHash(System.Byte[])"/> method.
            </remarks>
            <param name="bytes">message bytes for which to calculate the hash value</param>
            <returns>MD5 hash value, 16 bytes</returns>
        </member>
        <member name="M:WW.Util.Md5Helper.GetHash(System.Byte[],System.Int64,System.Int64)">
            <summary>
            Compute the hash value.
            </summary>
            <remarks>
            This uses a software algorithm to calculate the MD5 hash value.
            Generally you shoud prefer using the <see cref="M:WW.Util.Md5Helper.ComputeHash(System.Byte[])"/> method.
            </remarks>
            <param name="bytes">message bytes for which to calculate the hash value</param>
            <param name="start">Message start</param>
            <param name="length">Message length</param>
            <returns>MD5 hash value, 16 bytes</returns>
        </member>
        <member name="T:WW.Text.ICanonicalGlyph">
            <summary>
            Represents a canonical glyph without advance.
            </summary>
        </member>
        <member name="P:WW.Text.ICanonicalGlyph.Letter">
            <summary>
            The letter this glyph represents.
            </summary>
        </member>
        <member name="P:WW.Text.ICanonicalGlyph.Path">
            <summary>
            The canonical path of the letter.
            </summary>
        </member>
        <member name="P:WW.Text.ICanonicalGlyph.Filled">
            <summary>
            Has this glyph to be drawn filled?
            </summary>
        </member>
        <member name="P:WW.Text.ICanonicalGlyph.Advance">
            <summary>
            The canonical advance of the letter.
            </summary>
            <remarks>
            The advance is the distance on the baseline the insertion point is moved after this letter is drawn,
            defining the insertion point of the next letter.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.#ctor(System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Segment1D"/> class.
            </summary>
            <param name="start">The start.</param>
            <param name="end">The end.</param>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.GetCenter">
            <summary>
            Gets the center.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.OverlapsExclusive(WW.Math.Geometry.Segment1D)">
            <summary>
            Returns whether this segment overlaps the other segment (exclusive segment ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.OverlapsInclusive(WW.Math.Geometry.Segment1D)">
            <summary>
            Returns whether this segment overlaps the other segment (inclusive segment ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.ContainsInclusive(System.Double)">
            <summary>
            Determines whether the specified number is contained (inclusive segments ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.ContainsExclusive(System.Double)">
            <summary>
            Determines whether the specified number is contained (exclusive segments ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.OverlapsExclusive(WW.Math.Geometry.Segment1D,WW.Math.Geometry.Segment1D)">
            <summary>
            Returns whether this segment overlaps the other segment (exclusive segment ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.OverlapsInclusive(WW.Math.Geometry.Segment1D,WW.Math.Geometry.Segment1D)">
            <summary>
            Returns whether this segment overlaps the other segment (inclusive segment ends).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment1D.GetDifference(System.Collections.Generic.IList{WW.Math.Geometry.Segment1D},System.Collections.Generic.IList{WW.Math.Geometry.Segment1D})">
            <summary>
            Gets the difference between given segments and the to be subtracted segments.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment1D.Start">
            <summary>
            Gets or sets the start.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment1D.End">
            <summary>
            Gets or sets the end.
            </summary>
        </member>
        <member name="T:WW.Math.Bounds3D">
            <summary>
            Bounds object for convenient updating of a bounding box.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Bounds3D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.#ctor(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Bounds3D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Bounds3D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.#ctor(WW.Math.Bounds3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Bounds3D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Reset">
            <summary>
            Reset the bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(WW.Math.Point3D)">
            <summary>
            Update bounds with given point.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(System.Collections.Generic.IList{WW.Math.Point3D})">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(WW.Math.Point3D[])">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(WW.Math.Vector4D)">
            <summary>
            Update bounds with given point.
            </summary>
            <remarks>
            The vector is assumed to represent a point, meaning that its W coordinate is unequal to zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(System.Collections.Generic.IList{WW.Math.Vector4D})">
            <summary>
            Update bounds with given points.
            </summary>
            <remarks>
            Each vector is assumed to represent a point, meaning that its W coordinate is unequal to zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(System.Collections.Generic.IList{WW.Math.Vector4D},WW.Math.Matrix4D)">
            <summary>
            Update bounds with given points.
            </summary>
            <remarks>
            Each vector is assumed to represent a point, meaning that its W coordinate is unequal to zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(WW.Math.Vector4D[])">
            <summary>
            Update bounds with given points.
            </summary>
            <remarks>
            Each vector is assumed to represent a point, meaning that its W coordinate is unequal to zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(WW.Math.Bounds3D)">
            <summary>
            Update bounds with given bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Update(System.Double,System.Double,System.Double)">
            <summary>
            Update bounds.
            </summary>
            <param name="x">x coordinate</param>
            <param name="y">y coordinate</param>
            <param name="z">z coordinate</param>
        </member>
        <member name="M:WW.Math.Bounds3D.Move(System.Double,System.Double,System.Double)">
            <summary>
            Translate this bounds.
            </summary>
            <param name="deltaX">translation in x</param>
            <param name="deltaY">translation in y</param>
            <param name="deltaZ">translation in z</param>
        </member>
        <member name="M:WW.Math.Bounds3D.Transform(WW.Math.Matrix4D)">
            <summary>
            Transforms the bounds by specified transform.
            </summary>
        </member>
        <member name="M:WW.Math.Bounds3D.Intersects(WW.Math.Geometry.Segment3D)">
            <summary>
            Calculates whether this object intersects the specified segment.
            </summary>
            <returns>true if intersects.</returns>
            <seealso cref="M:WW.Math.Bounds3D.GetIntersectionParameters(WW.Math.Geometry.Segment3D,System.Double@,System.Double@)"/>
        </member>
        <member name="M:WW.Math.Bounds3D.GetIntersectionParameters(WW.Math.Geometry.Segment3D,System.Double@,System.Double@)">
            <summary>
            Gets the intersection parameters.
            </summary>
            <param name="segment">The segment.</param>
            <param name="p0">The first intersection parameter (between 0 and 1).</param>
            <param name="p1">The second intersection parameter (between 0 and 1, greater than p0).</param>
            <returns><c>true</c> if the segment intersects the bounding box.</returns>
        </member>
        <member name="M:WW.Math.Bounds3D.Overlaps(WW.Math.Bounds3D)">
            <summary>
            Is this bounds overlapping another?
            </summary>
            <remarks>
            If this or the other bounds is not initialized, <c>false</c> is returned.
            </remarks>
            <param name="bounds">Other bounds.</param>
            <returns><c>true</c> if there is any overlap, including an overlap of width <c>0.0</c>.</returns>
        </member>
        <member name="M:WW.Math.Bounds3D.Clone">
            <summary>
            Clone.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Corner1">
            <summary>
            Corner point with smallest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Corner2">
            <summary>
            Corner point with largest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Min">
            <summary>
            Corner point with smallest coordinates.
            Another name for <see cref="P:WW.Math.Bounds3D.Corner1"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Max">
            <summary>
            Corner point with largest coordinates.
            Another name for <see cref="P:WW.Math.Bounds3D.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Delta">
            <summary>
            Vector from <see cref="P:WW.Math.Bounds3D.Corner1"/> to <see cref="P:WW.Math.Bounds3D.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Center">
            <summary>
            The center.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Corners">
            <summary>
            Returns the eight corner points.
            </summary>
        </member>
        <member name="P:WW.Math.Bounds3D.Initialized">
            <summary>
            Are the bounds initialized?
            </summary>
        </member>
        <member name="T:WW.ComponentModel.GlobalizedPropertyAttribute">
            <summary>
            Optional attribute for detailed specification of where
            <see cref="T:WW.ComponentModel.SortedPropertiesTypeConverter"/> should look for its resources.
            </summary>
            <remarks>
            See also <seealso cref="T:WW.ComponentModel.GlobalizedTypeAttribute"/>
            </remarks>
        </member>
        <member name="P:WW.ComponentModel.GlobalizedPropertyAttribute.BaseName">
            <summary>
            Place where <see cref="T:System.Resources.ResourceManager"/> can find its resources.
            </summary>
        </member>
        <member name="P:WW.ComponentModel.GlobalizedPropertyAttribute.DisplayNameId">
            <summary>
            Resource name for a property's DisplayName.
            </summary>
        </member>
        <member name="P:WW.ComponentModel.GlobalizedPropertyAttribute.DescriptionId">
            <summary>
            Resource name for a property's Description.
            </summary>
        </member>
        <member name="P:WW.ComponentModel.GlobalizedPropertyAttribute.CategoryId">
            <summary>
            Resource name for a property's Category.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Point3BR.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Point3BR.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Point3BR.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Point3BR.Zero">
            <summary>
            The 3D zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(WW.Math.Exact.Point2BR,WW.Math.Exact.BigRational)">
            <summary>
            Initializes this point with given 2D point and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(WW.Math.Exact.BigRational[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(System.Collections.Generic.IList{WW.Math.Exact.BigRational})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(WW.Math.Exact.Point3BR)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.#ctor(WW.Math.Exact.Vector3BR)">
            <summary>
            Initializes this point with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Add(WW.Math.Exact.Point3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Adds specified vector to a point and returns the result.
            </summary>
            <returns>
            p + v.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Subtract(WW.Math.Exact.Point3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Subtracts specified vector from a point and returns the result.
            </summary>
            <returns>
            p - v.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Subtract(WW.Math.Exact.Point3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Exact.Vector3BR">vector</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.GetMidPoint(WW.Math.Exact.Point3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Add(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Adds specified coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Equality(WW.Math.Exact.Point3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Inequality(WW.Math.Exact.Point3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Addition(WW.Math.Exact.Point3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Addition(WW.Math.Exact.Vector3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Subtraction(WW.Math.Exact.Point3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Subtraction(WW.Math.Exact.Point3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Exact.Vector3BR">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Explicit(WW.Math.Exact.Point3BR)~WW.Math.Exact.BigRational[]">
            <summary>
            Converts the point to an array of big rational floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Explicit(WW.Math.Exact.Point2BR)~WW.Math.Exact.Point3BR">
            <summary>
            Converts given 2D point to a 3D point as follows:
            result = new Point3BR(p.X, p.Y, BigRational.Zero);
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Explicit(WW.Math.Vector4D)~WW.Math.Exact.Point3BR">
            <summary>
            Converts given 4D vector to a 3D point as follows:
            result = new Point3BR(p.X / p.W, p.Y / p.W, p.Z / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Explicit(WW.Math.Exact.Vector3BR)~WW.Math.Exact.Point3BR">
            <summary>
            Converts given 3D vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.op_Explicit(WW.Math.Exact.Point3BR)~WW.Math.Point3F">
            <summary>
            Converts given 3D BigRational-precision point to a 3D single-precision point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BR.Equals(WW.Math.Exact.Point3BR)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Point3BR.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Point3BRConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Exact.Point3BR"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Exact.Point3BRConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Point3BRConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Segment2BR">
            <summary>
            Represents a 2D segment struct based on big rationals.
            </summary>
            <remarks>
            A line segment has a <see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start"/> and an <see cref="P:WW.Math.Exact.Geometry.Segment2BR.End"/> point.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.#ctor(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Segment2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Segment2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Segment2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetCenter">
            <summary>
            Gets the center of the segment.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetDelta">
            <summary>
            Gets <see cref="P:WW.Math.Exact.Geometry.Segment2BR.End"/> minus <see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetIntersectionParameters(WW.Math.Exact.Geometry.Segment2BR,WW.Math.Exact.Geometry.Segment2BR,WW.Math.Exact.BigRational[]@,WW.Math.Exact.BigRational[]@)">
            <summary>
            Calculate intersection parameter between two line segments.
            </summary>
            <remarks>
            The result is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start">Start</see> + p * <paramref name="a"/>.<see cref="M:WW.Math.Exact.Geometry.Segment2BR.GetDelta">GetDelta</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Exact.Geometry.Segment2BR.GetDelta">GetDelta</see>.
            </remarks>
            <param name="a">Line segment a.</param>
            <param name="b">Line segment b.</param>
            <param name="pArray">
            A single parameter has a value between BigRational.Zero and BigRational.One. 
            If the lines are parallel, the start p and end p of the overlapping line are returned.
            Lowest p value is first in the array.
            If the lines don't intersect then <c>null</c> is returned.
            </param>
            <param name="qArray">
            Analogue to <paramref name="pArray"/>.
            When lines are parallel, q values are returned in the order that the
            corresponding points are with respect to the p values.
            </param>
            <returns>
            <c>true</c> if intersection occurred.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.Intersects(WW.Math.Exact.Geometry.Segment2BR,WW.Math.Exact.Geometry.Segment2BR)">
            <summary>
            Calculates if 2 line segment intersect.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.Contains(WW.Math.Exact.Point2BR)">
            <summary>
            Returns <c>true</c> if given point is on the line segment.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetDistanceSquared(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the smallest squared distance between the line segment
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetClosestPoint(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the point on this segment that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetNormalizedProjection(WW.Math.Exact.Point2BR)">
            <summary>
            Gets the projection of specified point onto this segment, normalized such that
            the projection of the start point is 0 and of the end point is 1.
            Returns NaN if this segment has a zero length.
            </summary>
            <remarks>
            Returns the distance from this segment's start point 
            in the direction of the end point, normalized to 0-1 when the point's projection
            falls between the start and end point.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.ContainsProjection(WW.Math.Exact.Point2BR)">
            <summary>
            Determines whether this segment contains the projection of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.op_Equality(WW.Math.Exact.Geometry.Segment2BR,WW.Math.Exact.Geometry.Segment2BR)">
            <summary>
            Tests whether two specified segments are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.op_Inequality(WW.Math.Exact.Geometry.Segment2BR,WW.Math.Exact.Geometry.Segment2BR)">
            <summary>
            Tests whether two specified segments are not equal.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Segment2BR.Start">
            <summary>
            Gets or sets the start point.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Segment2BR.End">
            <summary>
            Gets or sets the end point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.IntersectionHelper.IsOnLine(WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether given point is on the line that goes through the segment
            between start and end point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Segment2BR.IntersectionHelper.ContainsProjection(WW.Math.Exact.Point2BR)">
            <summary>
            Determines whether this segment contains the projection of specified point.
            </summary>
            <remarks>
            Set <see cref="!:L"/> before calling this method.
            </remarks>
        </member>
        <member name="T:WW.Math.Exact.Bounds2BR">
            <summary>
            Bounds object for convenient updating of a bounding box.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.#ctor(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.#ctor(WW.Math.Exact.Bounds2BR)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Reset">
            <summary>
            Reset the bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Update(WW.Math.Exact.Point2BR)">
            <summary>
            Update bounds with given point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Update(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Update(WW.Math.Exact.Point2BR[])">
            <summary>
            Update bounds with given points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Update(WW.Math.Exact.Bounds2BR)">
            <summary>
            Update bounds with given bounds.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Update(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Update bounds.
            </summary>
            <param name="x">x coordinate</param>
            <param name="y">y coordinate</param>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Move(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Translate this bounds.
            </summary>
            <param name="deltaX">translation in x</param>
            <param name="deltaY">translation in y</param>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Overlaps(WW.Math.Exact.Bounds2BR)">
            <summary>
            Is this bounds overlapping another?
            </summary>
            <remarks>
            If this or the other bounds is not initialized, <c>false</c> is returned.
            </remarks>
            <param name="bounds">Other bounds.</param>
            <returns><c>true</c> if there is any overlap, including an overlap of width <c>0.0</c>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Bounds2BR.Clone">
            <summary>
            Clone.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Corner1">
            <summary>
            Corner point with smallest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Corner2">
            <summary>
            Corner point with largest coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Min">
            <summary>
            Corner point with smallest coordinates.
            Another name for <see cref="P:WW.Math.Exact.Bounds2BR.Corner1"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Max">
            <summary>
            Corner point with largest coordinates.
            Another name for <see cref="P:WW.Math.Exact.Bounds2BR.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Delta">
            <summary>
            Vector from <see cref="P:WW.Math.Exact.Bounds2BR.Corner1"/> to <see cref="P:WW.Math.Exact.Bounds2BR.Corner2"/>.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Center">
            <summary>
            The center.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Corners">
            <summary>
            Returns the four corner points.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Bounds2BR.Initialized">
            <summary>
            Are the bounds initialized?
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.#ctor(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Segment2D"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Segment2D"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetCenter">
            <summary>
            Gets the center of the segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetDelta">
            <summary>
            Gets <see cref="P:WW.Math.Geometry.Segment2D.End"/> minus <see cref="P:WW.Math.Geometry.Segment2D.Start"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetLength">
            <summary>
            Get the line length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetIntersectionParameters(WW.Math.Geometry.Segment2D,WW.Math.Geometry.Segment2D,System.Double[]@,System.Double[]@)">
            <summary>
            Calculate intersection parameter between two line segments.
            </summary>
            <remarks>
            The result is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + p * <paramref name="a"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta</see>.
            </remarks>
            <param name="a">Line segment a.</param>
            <param name="b">Line segment b.</param>
            <param name="pArray">
            A single parameter has a value between 0 and 1. 
            If the lines are parallel, the start p and end p of the overlapping line are returned.
            Lowest p value is first in the array.
            If the lines don't intersect then <c>null</c> is returned.
            </param>
            <param name="qArray">
            Analogue to <paramref name="pArray"/>.
            When lines are parallel, q values are returned in the order that the
            corresponding points are with respect to the p values.
            </param>
            <returns>
            <c>true</c> if intersection occurred.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetIntersectionParameters(WW.Math.Geometry.Segment2D,WW.Math.Geometry.Segment2D,System.Double[]@,System.Double[]@,System.Double)">
            <summary>
            Calculate intersection parameter between two line segments.
            </summary>
            <remarks>
            The result is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + p * <paramref name="a"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta</see>.
            </remarks>
            <param name="a">Line segment a.</param>
            <param name="b">Line segment b.</param>
            <param name="pArray">
            A single parameter has a value between 0 and 1. 
            If the lines are parallel, the start p and end p of the overlapping line are returned.
            Lowest p value is first in the array.
            If the lines don't intersect then <c>null</c> is returned.
            </param>
            <param name="qArray">
            Analogue to <paramref name="pArray"/>.
            When lines are parallel, q values are returned in the order that the
            corresponding points are with respect to the p values.
            </param>
            <param name="precision">
            The precision used to determine if segments are parallel or not.
            </param>
            <returns>
            <c>true</c> if intersection occurred.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.Intersects(WW.Math.Geometry.Segment2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Calculates if 2 line segment intersect.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.Contains(WW.Math.Point2D)">
            <summary>
            Returns <c>true</c> if given point is on the line segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.Contains(WW.Math.Point2D,System.Double)">
            <summary>
            Returns <c>true</c> if given point is on the line segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetDistance(WW.Math.Point2D)">
            <summary>
            Returns the smallest distance between the line segment
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetDistanceSquared(WW.Math.Point2D)">
            <summary>
            Returns the smallest squared distance between the line segment
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetClosestPoint(WW.Math.Point2D)">
            <summary>
            Returns the point on this segment that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetNormalizedProjection(WW.Math.Point2D)">
            <summary>
            Gets the projection of specified point onto this segment, normalized such that
            the projection of the start point is 0 and of the end point is 1.
            </summary>
            <remarks>
            Returns the distance from this segment's start point 
            in the direction of the end point, normalized to 0-1 when the point's projection
            falls between the start and end point.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetProjection(WW.Math.Point2D)">
            <summary>
            Gets the projection of specified point onto this segment.
            </summary>
            <remarks>
            Returns the distance from this segment's start point 
            in the direction of the end point.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.ContainsProjection(WW.Math.Point2D)">
            <summary>
            Determines whether this segment contains the projection of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.ContainsProjection(WW.Math.Point2D,System.Double)">
            <summary>
            Determines whether this segment contains the projection of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.op_Equality(WW.Math.Geometry.Segment2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Tests whether two specified segments are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.op_Inequality(WW.Math.Geometry.Segment2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Tests whether two specified segments are not equal.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.Start">
            <summary>
            Gets or sets the start point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.End">
            <summary>
            Gets or sets the end point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.IntersectionHelper.IsOnLine(WW.Math.Point2D)">
            <summary>
            Returns whether given point is on the line that goes through the segment
            between start and end point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.IntersectionHelper.CalculateLength">
            <summary>
            Calculate the length <see cref="F:WW.Math.Geometry.Segment2D.IntersectionHelper.L"/> and <see cref="F:WW.Math.Geometry.Segment2D.IntersectionHelper.PL"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.IntersectionHelper.ContainsProjection(WW.Math.Point2D)">
            <summary>
            Determines whether this segment contains the projection of specified point.
            </summary>
            <remarks>
            Set <see cref="F:WW.Math.Geometry.Segment2D.IntersectionHelper.L"/> before calling this method.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.SegmentIterator.#ctor(WW.Math.Geometry.Segment2D)">
            <summary>
            Constructor.
            </summary>
            <param name="segment">line to iterate over</param>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Line2D">
            <summary>
            A 2D double precision line consisting of a <see cref="P:WW.Math.Geometry.Line2D.Origin"/> and a <see cref="P:WW.Math.Geometry.Line2D.Direction"/>.
            </summary>
            <remarks>
            The line is represented by 
            <code>x(t) = <see cref="P:WW.Math.Geometry.Line2D.Origin"/> + t * <see cref="P:WW.Math.Geometry.Line2D.Direction"/></code>
            where <code>t</code> may have any value.
            
            If used as a shape the line is the representation of the parameter interval [0,1].
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.#ctor(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Line2D"/> struct.
            </summary>
            <param name="origin">The line's origin.</param>
            <param name="direction">The line's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Line2D"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.#ctor(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Line2D"/> struct.
            </summary>
            <param name="start">The start point of the line.</param>
            <param name="end">The end point of the line.</param>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.Intersects(WW.Math.Geometry.Line2D,WW.Math.Point2D@,System.Boolean@)">
            <summary>
            Calculates if 2 lines intersect.
            </summary>
            <param name="other">Other line for testing intersection.</param>
            <param name="intersection">Resulting intersection.</param>
            <param name="parallel">
            If lines intersect, then this parameter indicates whether the
            lines are parallel.
            In this case parameter intersection contains no valid value.
            </param>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.Intersects(WW.Math.Geometry.Line2D,System.Double,WW.Math.Point2D@,System.Boolean@)">
            <summary>
            Calculates if 2 lines intersect.
            </summary>
            <param name="other">Other line for testing intersection.</param>
            <param name="relativePrecision">Relative precision.</param>
            <param name="intersection">Resulting intersection.</param>
            <param name="parallel">
            If lines intersect, then this parameter indicates whether the
            lines are parallel.
            In this case parameter intersection contains no valid value.
            </param>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Line2D,System.Double@,System.Double@)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p (may be smaller than zero).</param>
            <param name="q">q (may be smaller than zero).</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Line2D,System.Double@,System.Double@,System.Double)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p (may be smaller than zero).</param>
            <param name="q">q (may be smaller than zero).</param>
            <param name="precision">The precision.</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Line2D,System.Double@,System.Double@,System.Boolean@)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p (may be smaller than zero).</param>
            <param name="q">q (may be smaller than zero).</param>
            <param name="parallel">Whether the two lines are parallel.</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Line2D,System.Double@,System.Double@,System.Boolean@,System.Double)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p (may be smaller than zero).</param>
            <param name="q">q (may be smaller than zero).</param>
            <param name="parallel">Whether the two lines are parallel.</param>
            <param name="precision">The precision.</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersection(WW.Math.Geometry.Line2D,WW.Math.Geometry.Line2D)">
            <summary>
            Calculate intersection point between two lines.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.Intersects(WW.Math.Geometry.Line2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersection(WW.Math.Geometry.Line2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Segment2D,System.Double@,System.Double@,System.Boolean@)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p (may be smaller than zero).
            When the line and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the line and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the line and segment are parallel.</param>
            <returns>whether the line and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetIntersectionCoefficients(WW.Math.Geometry.Line2D,WW.Math.Geometry.Segment2D,System.Double@,System.Double@,System.Boolean@,System.Double)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p (may be smaller than zero).
            When the line and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the line and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the line and segment are parallel.</param>
            <param name="precision">the precision.</param>
            <returns>whether the line and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetDistance(WW.Math.Point2D)">
            <summary>
            Returns the smallest distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetDistanceSquared(WW.Math.Point2D)">
            <summary>
            Returns the smallest squared distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetClosestPoint(WW.Math.Point2D)">
            <summary>
            Returns the point on this line that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.GetLeastSquaresFit(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Gets the least squares fit line given specified set of points.
            </summary>
            <remarks>
            The least squares fit minimizes the vertical distance of the specified points to
            the best fitting line.
            </remarks>
            <exception cref="T:System.ArgumentException">
            Thrown when number of points is less than two.
            </exception>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.IsLeft(WW.Math.Point2D)">
            <summary>
            Returns whether the specified point is left of this line when looking at this line along its direction vector.
            A point exactly on the line is not considered left of the line.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.IsRight(WW.Math.Point2D)">
            <summary>
            Returns whether the specified point is left of this line when looking at this line along its direction vector.
            A point exactly on the line is not considered right of the line.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.Direction">
            <summary>
            Gets or sets the line's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.Origin">
            <summary>
            Gets or sets the line's origin.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.Start">
            <summary>
            Gets the start point of the line.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.End">
            <summary>
            Gets the end point of the line.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.SegmentIterator.#ctor(WW.Math.Geometry.Line2D)">
            <summary>
            Constructor.
            </summary>
            <param name="line">line to iterate over</param>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Shape2DCollectionIterator">
            <summary>
            Represents a segment iterator for a collection of shapes.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Shape2DCollectionIterator.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Shape2DCollectionIterator"/> class.
            </summary>
            <param name="connect">Determines whether to add connections between shapes.</param>
        </member>
        <member name="M:WW.Math.Geometry.Shape2DCollectionIterator.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Geometry.IShape2D},System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Shape2DCollectionIterator"/> class.
            </summary>
            <param name="coll">collection of shapes</param>
            <param name="connect">Determines whether to add connections between shapes.</param>
        </member>
        <member name="M:WW.Math.Geometry.Shape2DCollectionIterator.Create``1(System.Collections.Generic.IEnumerable{``0},System.Boolean)">
            <summary>
            Creates an iterator for the specified collection.
            </summary>
            <param name="coll">collection of shapes</param>
            <param name="connect">Add connections between shapes?</param>
            <returns></returns>
        </member>
        <member name="M:WW.Math.Geometry.Shape2DCollectionIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Shape2DCollectionIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Shape2DCollectionIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Shape2DCollectionIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Shape2DCollectionIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polygon2DCollection">
            <summary>
            Represents a collection of <see cref="T:WW.Math.Geometry.Polygon2D"/> elements.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2DCollection.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2DCollection"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2DCollection.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2DCollection"/> class.
            </summary>
            <param name="capacity">The capacity.</param>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2DCollection.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Geometry.Polygon2D})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Polygon2DCollection"/> class.
            </summary>
            <param name="collection">The collection whose elements are copied to the new list.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="collection"/> is null.
            </exception>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2DCollection.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon2DCollection.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.Polygon2DCollection.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Point2BR">
            <summary>
            Represents a 2D point struct based on big rationals.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Point2BR.Zero">
            <summary>
            The 2D zero point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Point2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.#ctor(System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Point2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.Add(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Adds specified vector to a point and returns the result.
            </summary>
            <returns>
            p + v.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.Subtract(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Subtracts specified vector from a point and returns the result.
            </summary>
            <returns>
            p - v.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.Subtract(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Exact.Vector2BR">point</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.GetMidPoint(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Gets the mid point of specified 2 points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Equality(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Inequality(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Addition(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Addition(WW.Math.Exact.Vector2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Subtraction(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.op_Subtraction(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Exact.Vector2BR">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Point2BR.Equals(WW.Math.Exact.Point2BR)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Point2BR.IsZero">
            <summary>
            Gets a value indicating whether this instance is zero.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Point2BR.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Triangle2BR">
            <summary>
            Contains utility methods pertaining to 2D triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangle2BR.ContainsPoint(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <remarks>
            The triangle points must be in clockwise order!
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangle2BR.ContainsPoint(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,System.Int32@)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <param name="p">The point to test.</param>
            <param name="p0">The triangle's first point.</param>
            <param name="p1">The triangle's second point.</param>
            <param name="p2">The triangle's third point.</param>
            <param name="onEdgeFlags">
            The on edge flags (only valid when return value is <c>true</c>):
            0 is not on an edge, 
            1 is on the edge starting at p0, 
            2 is on the edge starting at p1, 
            4 is on the edge starting at p2.
            </param>
            <remarks>
            The triangle points must be in clockwise order!
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Triangle2BR.ContainsPoint(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,System.Int32,System.Int32@,System.Int32@)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <param name="p">The point to test.</param>
            <param name="p0">The triangle's first point.</param>
            <param name="p1">The triangle's second point.</param>
            <param name="p2">The triangle's third point.</param>
            <param name="skipEdgeIndex">
            Index of edge to skip checking (e.g. if it was already checked elsewhere). 
            Pass 0-2 to skip check a certain edge, or -1 to check all edges.</param>
            <param name="onEdgeFlags">The on edge flags (only valid when return value is <c>true</c>):
            0 is not on an edge,
            1 is on the edge starting at p0,
            2 is on the edge starting at p1,
            4 is on the edge starting at p2.</param>
            <param name="outsideEdgeIndex">Index of the edge (between 0 and 2) outside which the point is if the result is <c>false</c>, -1 otherwise.</param>
            <returns>
            	<c>true</c> if the specified p contains point; otherwise, <c>false</c>.
            </returns>
            <remarks>
            The triangle points must be in clockwise order!
            </remarks>
        </member>
        <member name="T:WW.Actions.CommandEventArgs">
            <summary>
            An event arguments containing a <see cref="P:WW.Actions.CommandEventArgs.Command"/>.
            </summary>
        </member>
        <member name="F:WW.Actions.CommandEventArgs.Empty">
            <summary>
            An empty event args object.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandEventArgs.#ctor(WW.Actions.ICommand)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CommandEventArgs"/> class.
            </summary>
        </member>
        <member name="P:WW.Actions.CommandEventArgs.Command">
            <summary>
            Gets the command.
            </summary>
        </member>
        <member name="T:WW.Actions.Command">
            <summary>
            Represents an undoable action.
            </summary>
        </member>
        <member name="T:WW.Actions.ICommand">
            <summary>
            Represents an undoable command.
            </summary>
        </member>
        <member name="M:WW.Actions.ICommand.Do(WW.Actions.CommandInvoker)">
            <summary>
            Perform a do.
            Don't call this directly, but instead call <seealso cref="M:WW.Actions.CommandInvoker.Do(WW.Actions.ICommand)"/>,
            which calls this method and raises an event.
            </summary>
        </member>
        <member name="M:WW.Actions.ICommand.Undo(WW.Actions.CommandInvoker)">
            <summary>
            Perform an undo.
            Don't call this directly, but instead call <seealso cref="M:WW.Actions.CommandInvoker.Undo(WW.Actions.ICommand)"/>,
            which calls this method and raises an event.
            </summary>
        </member>
        <member name="P:WW.Actions.ICommand.Target">
            <summary>
            Gets the target object of the command.
            This is the object that is being affected/changed by the command.
            </summary>
        </member>
        <member name="F:WW.Actions.Command.EmptyAction">
            <summary>
            Represents an empty action.
            </summary>
        </member>
        <member name="F:WW.Actions.Command.Empty">
            <summary>
            An empty action that doesn't do anything.
            </summary>
        </member>
        <member name="M:WW.Actions.Command.#ctor(System.Action,System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.Command"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.Command.#ctor(System.Object,System.Action,System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.Command"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.Command.Do(WW.Actions.CommandInvoker)">
            <summary>
            Perform a do.
            </summary>
        </member>
        <member name="M:WW.Actions.Command.Undo(WW.Actions.CommandInvoker)">
            <summary>
            Perform an undo.
            </summary>
        </member>
        <member name="P:WW.Actions.Command.Target">
            <summary>
            Gets the target object of the command.
            This is the object that is being affected/changed by the command.
            </summary>
        </member>
        <member name="T:WW.Actions.RotateInteractor">
            <summary>
            Represents a rotate interactor.
            </summary>
        </member>
        <member name="F:WW.Actions.RotateInteractor.RotationCircleColor">
            <summary>
            The rotation circle color.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when event <see cref="E:System.Windows.UIElement.MouseMove"/> is raised.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when event <see cref="E:System.Windows.UIElement.MouseLeftButtonUp"/> is raised.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateInteractor.GetRotationCircleRadius(WW.Math.Size2D)">
            <summary>
            Gets the rotation circle radius.
            When the mouse down occurs outside this circle, the interactor rotates around the z-axis.
            Inside the circle the interactor rotates around an axis in the xy plane, perpendicular to the
            line segment between the mouse position and the window center.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateInteractor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.RotateInteractor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.OnOrientationChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.RotateInteractor.OrientationChanged"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.RotateInteractor.OrientationChanged">
            <summary>
            Occurs when the orientation changed.
            </summary>
        </member>
        <member name="P:WW.Actions.RotateInteractor.Orientation">
            <summary>
            Gets or sets the orientation.
            </summary>
        </member>
        <member name="P:WW.Actions.RotateInteractor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="T:WW.Actions.RotateInteractor.WinFormsDrawable">
            <summary>
            Represents a Windows Forms drawable for <see cref="T:WW.Actions.RectZoomInteractor"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.WinFormsDrawable.#ctor(WW.Actions.RotateInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.RotateInteractor.WinFormsDrawable"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.WinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateInteractor.WinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.#ctor(WW.Math.Point3D,WW.Math.Point3D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.GetCenter">
            <summary>
            Gets the center of the segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.GetDelta">
            <summary>
            Gets <see cref="P:WW.Math.Geometry.Segment3D.End"/> minus <see cref="P:WW.Math.Geometry.Segment3D.Start"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.GetLength">
            <summary>
            Get the line length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.op_Equality(WW.Math.Geometry.Segment3D,WW.Math.Geometry.Segment3D)">
            <summary>
            Tests whether two specified segments are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment3D.op_Inequality(WW.Math.Geometry.Segment3D,WW.Math.Geometry.Segment3D)">
            <summary>
            Tests whether two specified segments are not equal.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment3D.Start">
            <summary>
            Gets or sets the start point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment3D.End">
            <summary>
            Gets or sets the end point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.#ctor">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.#ctor(System.Int32)">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.#ctor(WW.Math.Point3D[])">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Point3D})">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.#ctor(WW.Math.Geometry.Polygon3D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetBounds">
            <summary>
            Get the bounds of this polygon.
            </summary>
            <returns></returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetPlane">
            <summary>
            Gets the polygon plane.
            </summary>
            <returns>
            If a plane could not be determined, then null is returned 
            (if the polygon only has 2 points or all the points are collinear).
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetProjection2D(WW.Math.Matrix4D)">
            <summary>
            Gets the projection of this polygon using the specified projection transform.
            </summary>
            <param name="projectionTransform">
            The projection transform. 
            From the resulting vertices only the x and y-coordinates are used.
            </param>
            <returns>
            The projected 2D polygon.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetCentroid">
            <summary>
            Gets the centroid (center of mass) of this polygon.
            </summary>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetCentroid(System.Nullable{WW.Math.Geometry.Plane3D}@)">
            <summary>
            Gets the centroid (center of mass) and the plane of this polygon.
            </summary>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetPlane(System.Collections.Generic.IList{WW.Math.Point3D})">
            <summary>
            Gets the polygon plane of the polygon defined by given points.
            </summary>
            <returns>
            If a plane could not be determined, then null is returned 
            (if the polygon only has 2 points or all the points are collinear).
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetProjection2D(System.Collections.Generic.IList{WW.Math.Point3D},WW.Math.Matrix4D)">
            <summary>
            Gets the projection of a polygon using the specified projection transform.
            </summary>
            <param name="polygon">The polygon vertices.</param>
            <param name="projectionTransform">
            The projection transform. 
            From the resulting vertices only the x and y-coordinates are used.
            </param>
            <returns>
            The projected 2D polygon.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetCentroid(System.Collections.Generic.IList{WW.Math.Point3D})">
            <summary>
            Gets the centroid (center of mass) of given polygon.
            </summary>
            <remarks>
            No check is done to verify that the vertices are coplanar.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Polygon3D.GetCentroid(System.Collections.Generic.IList{WW.Math.Point3D},System.Nullable{WW.Math.Geometry.Plane3D}@)">
            <summary>
            Gets the centroid (center of mass) and the plane of given polygon.
            </summary>
            <remarks>
            No check is done to verify that the vertices are coplanar.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Line3D.#ctor(WW.Math.Point3D,WW.Math.Vector3D)">
            <summary>
            Constructor.
            </summary>
            <param name="origin">The line's origin.</param>
            <param name="direction">The line's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Line3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line3D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line3D.Direction">
            <summary>
            Gets or sets the line's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line3D.Origin">
            <summary>
            Gets or sets the line's origin.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Triangle2D">
            <summary>
            2D triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangle2D.ContainsPoint(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <remarks>
            The triangle points must be in clockwise order!
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangle2D.ContainsPoint(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double,System.Int32@)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <param name="p">The point to test.</param>
            <param name="p0">The triangle's first point.</param>
            <param name="p1">The triangle's second point.</param>
            <param name="p2">The triangle's third point.</param>
            <param name="precision">The precision.</param>
            <param name="onEdgeFlags">
            The on edge flags (only valid when return value is <c>true</c>):
            0 is not on an edge, 
            1 is on the edge starting at p0, 
            2 is on the edge starting at p1, 
            4 is on the edge starting at p2.
            </param>
            <remarks>
            The triangle points must be in clockwise order!
            This method is slower than the one not taking any precision argument.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangle2D.ContainsPoint(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Int32,System.Double,System.Int32@,System.Int32@)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <param name="p">The point to test.</param>
            <param name="p0">The triangle's first point.</param>
            <param name="p1">The triangle's second point.</param>
            <param name="p2">The triangle's third point.</param>
            <param name="skipEdgeIndex">
            Index of edge to skip checking (e.g. if it was already checked elsewhere). 
            Pass 0-2 to skip check a certain edge, or -1 to check all edges.</param>
            <param name="precision">The precision.</param>
            <param name="onEdgeFlags">The on edge flags (only valid when return value is <c>true</c>):
            0 is not on an edge,
            1 is on the edge starting at p0,
            2 is on the edge starting at p1,
            4 is on the edge starting at p2.</param>
            <param name="outsideEdgeIndex">Index of the edge (between 0 and 2) outside which the point is if the result is <c>false</c>, -1 otherwise.</param>
            <returns>
            	<c>true</c> if the specified p contains point; otherwise, <c>false</c>.
            </returns>
            <remarks>
            The triangle points must be in clockwise order!
            This method is slower than the one not taking any precision argument.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangle2D.ContainsPoint(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Returns whether p is contained in the triangle specified by p0, p1, p2.
            </summary>
            <remarks>
            The triangle points must be in clockwise order!
            This method is slower than the one not taking any precision argument.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.#ctor(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.GetCenter">
            <summary>
            Gets the center of the segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.GetDelta">
            <summary>
            Gets <see cref="P:WW.Math.Geometry.Segment4D.End"/> minus <see cref="P:WW.Math.Geometry.Segment4D.Start"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.GetLength">
            <summary>
            Get the line length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.op_Equality(WW.Math.Geometry.Segment4D,WW.Math.Geometry.Segment4D)">
            <summary>
            Tests whether two specified segments are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Segment4D.op_Inequality(WW.Math.Geometry.Segment4D,WW.Math.Geometry.Segment4D)">
            <summary>
            Tests whether two specified segments are not equal.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment4D.Start">
            <summary>
            Gets or sets the start point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Segment4D.End">
            <summary>
            Gets or sets the end point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.#ctor(WW.Math.Vector3D,System.Double)">
            <summary>
            Constructor.
            </summary>
            <param name="normal">The plane's normal vector.</param>
            <param name="distance">The distance from the origin projected on the normal vector.</param>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.#ctor(WW.Math.Vector3D,WW.Math.Point3D)">
            <summary>
            Constructor.
            </summary>
            <param name="normal">The plane's normal vector.</param>
            <param name="point">An arbitrary point on the plane.</param>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Segment3D)">
            <summary>
            Gets the intersection between specified segment and this plane.
            </summary>
            <remarks>
            If the segment is parallel to plane, and the segment is on this plane then the middle of the segment is returned.
            </remarks>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Segment3D,System.Double@)">
            <summary>
            Gets the intersection between specified segment and this plane.
            </summary>
            <remarks>
            If the segment is parallel to plane, and the segment is on this plane then the middle of the segment is returned.
            </remarks>
            <param name="segment">The segment to test for intersection.</param>
            <param name="u">The intersection point = <c>segment.Start + u * segment.GetDelta()</c>.</param>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersectionCoefficient(WW.Math.Geometry.Segment3D)">
            <summary>
            Gets the intersection between specified segment and this plane.
            </summary>
            <remarks>
            If the segment is parallel to plane, and the segment is on this plane then the middle of the segment is returned.
            </remarks>
            <returns>
            The intersection coefficient u if there is an intersection, 
            where the intersection point = <c>segment.Start + u * segment.GetDelta()</c>.
            Returns <c>null</c> otherwise.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Ray3D)">
            <summary>
            Gets the intersection between specified ray and this plane.
            </summary>
            <remarks>
            If the ray is parallel to plane, and the ray is on this plane then the origin of the ray is returned.
            </remarks>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Ray3D,System.Double@)">
            <summary>
            Gets the intersection between specified ray and this plane.
            </summary>
            <remarks>
            If the ray is parallel to plane, and the ray is on this plane then the origin of the ray is returned.
            </remarks>
            <param name="ray">The ray to test for intersection.</param>
            <param name="u">The intersection point = <c>ray.Origin + u * ray.Direction</c>.</param>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersectionCoefficient(WW.Math.Geometry.Ray3D)">
            <summary>
            Gets the intersection between specified ray and this plane.
            </summary>
            <remarks>
            If the ray is parallel to plane, and the ray is on this plane then the origin of the ray is returned.
            </remarks>
            <returns>
            The intersection coefficient u if there is an intersection, 
            where the intersection point = <c>ray.Origin + u * ray.Direction</c>.
            Returns <c>null</c> otherwise.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Line3D)">
            <summary>
            Gets the intersection between specified line and this plane.
            </summary>
            <remarks>
            If the line is parallel to plane, and the line is on this plane then the origin of the line is returned.
            </remarks>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersection(WW.Math.Geometry.Line3D,System.Double@)">
            <summary>
            Gets the intersection between specified line and this plane.
            </summary>
            <remarks>
            If the line is parallel to plane, and the line is on this plane then the origin of the line is returned.
            </remarks>
            <param name="line">The line to test for intersection.</param>
            <param name="u">The intersection point = <c>line.Origin + u * line.Direction</c>.</param>
            <returns>The intersection if there is an intersection. Returns <c>null</c> otherwise.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Plane3D.GetIntersectionCoefficient(WW.Math.Geometry.Line3D)">
            <summary>
            Gets the intersection between specified line and this plane.
            </summary>
            <remarks>
            If the line is parallel to plane, and the line is on this plane then the origin of the line is returned.
            </remarks>
            <returns>
            The intersection coefficient u if there is an intersection, 
            where the intersection point = <c>line.Origin + u * line.Direction</c>.
            Returns <c>null</c> otherwise.
            </returns>
        </member>
        <member name="P:WW.Math.Geometry.Plane3D.Normal">
            <summary>
            Gets or sets the plane's normal vector.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Plane3D.Distance">
            <summary>
            Gets or sets the distance from the origin projected on the <see cref="P:WW.Math.Geometry.Plane3D.Normal">normal</see> vector.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line4D.#ctor(WW.Math.Vector4D,WW.Math.Vector4D)">
            <summary>
            Constructor.
            </summary>
            <param name="origin">The line's origin.</param>
            <param name="direction">The line's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Line4D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Line4D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line4D.Direction">
            <summary>
            Gets or sets the line's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Line4D.Origin">
            <summary>
            Gets or sets the line's origin.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.TransformingSegment2DIterator">
            <summary>
            Segment iterator which transparently applies a 4D transformation to the segment points of another iteratrór.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.TransformingSegment2DIterator.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.TransformingSegment2DIterator"/> class.
            </summary>
            <param name="iterator">The iterator to be wrapped.</param>
            <param name="transformation">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.TransformingSegment2DIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.TransformingSegment2DIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.TransformingSegment2DIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.TransformingSegment2DIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.TransformingSegment2DIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR">
            <summary>
            This class represents a 2D polygon: a closed plane figure with n sides (in 2D).
            </summary>
            <remarks>
            This class has methods to:
            <list type="bullet">
             <item>
              <description>
            calculate the polygon area (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetArea"/>), 
              </description>
             </item>
             <item>
              <description>
            to test whether a point is inside the polygon (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.IsInside(WW.Math.Exact.Point2BR)"/>),
              </description>
             </item>
             <item>
              <description>
            test whether the polygon is clockwise or not (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.IsClockwise"/>),
              </description>
             </item>
             <item>
              <description>
            do boolean operations (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>, <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>, <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>).
              </description>
             </item>
            </list>
            Further static methods are also provided to allow to use other data structures than Polygon2BR.
            </remarks>
            <seealso cref="!:Polyline2BR"/>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the intersection of both lists.</returns>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetIntersection(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the difference of the first minus the second list.</returns>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetDifference(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="input1">First region, see restrictons above.</param>
            <param name="input2">Second region, see restrictions above.</param>
            <returns>The polygons building the union of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetUnion(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <returns>The polygons building the exclusive or of the first and the second region.</returns>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; ExclusiveOrExample() {
            Polygon2BR polygon1 =
                new Polygon2BR(
                    new Point2BR(2d, 1d),
                    new Point2BR(5d, 2d),
                    new Point2BR(4d, 5d),
                    new Point2BR(1d, 4d)
                );
            Polygon2BR polygon2 =
                new Polygon2BR(
                    new Point2BR(3d, -1d),
                    new Point2BR(7d, 1d),
                    new Point2BR(6d, 4d),
                    new Point2BR(-1d, 2d)
                );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetExclusiveOr(
                new Polygon2BR[] { polygon1 },
                new Polygon2BR[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Polygon2BR"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Polygon2BR"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.#ctor(WW.Math.Exact.Point2BR[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Polygon2BR"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Exact.Point2BR})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Polygon2BR"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.#ctor(WW.Math.Exact.Geometry.Polygon2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Polygon2BR"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetCentroid">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass).
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetCentroid(WW.Math.Exact.BigRational@)">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass) and
            the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsConvex">
            <summary>
            Is this polygon convex?
            </summary>
            <returns><c>true</c> if the polygon is convex, <c>false</c> if it is not convex.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsInside(WW.Math.Exact.Point2BR)">
            <summary>
            Determine if a point is inside of this polygon.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygon 
            (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetWindingNumber(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetNoOfIntersections(WW.Math.Exact.Geometry.Ray2BR)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsClockwise">
            <summary>
            Returns whether the polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetArea">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetReverse">
            <summary>
            Gets the reverse polygon 
            (useful to change polygon from clockwise to counter clockwise and vice versa).
            </summary>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.IsClockwise"/>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsInside(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Determine if a point is inside a polygon.
            </summary>
            <remarks>
            Uses the Jordan Curve theorem.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsInsidePolygons(WW.Math.Exact.Point2BR,System.Collections.IEnumerator)">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <param name="p">The point.</param>
            <param name="polygonsEnumerator">
            The polygons enumerator, must enumerate over items of type <see cref="T:System.Collections.Generic.IList`1"/>.
            </param>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons 
            (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetWindingNumber(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsInside(WW.Math.Exact.Point2BR,System.Collections.Generic.IEnumerable{System.Collections.Generic.IList{WW.Math.Exact.Point2BR}})">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons
            (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.GetWindingNumber(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})"/>).
            Returns <c>true</c> if the winding number's value is odd.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetWindingNumber(WW.Math.Exact.Point2BR,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetWindingNumber(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetNoOfIntersections(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},WW.Math.Exact.Geometry.Ray2BR)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetNoOfIntersections(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},WW.Math.Exact.Geometry.Ray2BR,System.Int32,System.Int32)">
            <summary>
            Gets the number of intersections between a ray and a polygon.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsClockwise(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Returns whether given polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetArea(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetDoubleArea(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Calculates the BigRational area.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The BigRational area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.IsClockwise(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether given polygon is clockwise.
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetArea(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Gets the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetDoubleArea(WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR,WW.Math.Exact.Point2BR)">
            <summary>
            Calculates the BigRational area.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>The BigRational area, where clockwise polygons will result in a negative area.</returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetCentroid(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass).
            </summary>
            <remarks>
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetCentroid(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},WW.Math.Exact.BigRational@)">
            <summary>
            Calculates the centroid of a polygon (also known as the center of mass) and
            the area of the polygon.
            </summary>
            <remarks>
            Clockwise polygons will result in a negative area.
            The polygon may not be self intersecting.
            </remarks>
            <returns>
            The centroid or null if the polygon has no points.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetSegments(System.Collections.Generic.IList{WW.Math.Exact.Point2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Segment2BR})">
            <summary>
            Creates <see cref="T:WW.Math.Exact.Geometry.Segment2BR"/> objects for the given polygon and adds them to the
            specified segments.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetConvexHull">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.GetConvexHull(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Calculates the convex hull using the Melkman algorithm (1987).
            This method assumes the specified polygon is a simple polygon (i.e. it does not cross itself).
            The input polygon is expected to be counter clockwise. 
            The result is counter clockwise.
            </summary>
            <remarks>
            The running time of this algorithm is O(n).
            </remarks>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations">
            <summary>
            This class contains methods for doing boolean operations on 2D polygons.
            </summary>
            <remarks>
            <para>
            The following boolan operations are implemented:
            <list type="bullet">
                <item>
                    Union: <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
                </item>
                <item>
                    Difference: <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
                </item>
                <item>
                    Intersection: <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
                </item>
                <item>
                    Exclusive or (symmetric difference): <see cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the union of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the union of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; UnionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetUnion(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the difference of two given regions (region2 is subtracted from region1).
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the difference of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; DifferenceExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetDifference(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the intersection of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the intersection of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; IntersectionExample() {
            // Two polygons where two edges overlap, and two edges intersect.
            Polygon2BR p1 = new Polygon2BR(
                new Point2BR(1d, 1d),
                new Point2BR(2d, 1d),
                new Point2BR(2d, 2d),
                new Point2BR(1d, 2d)
            );
            Polygon2BR p2 = new Polygon2BR(
                new Point2BR(1.5d, 1.5d),
                new Point2BR(2d, 1.6d),
                new Point2BR(2d, 3d),
                new Point2BR(1d, 3d)
            );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetIntersection(new Polygon2BR[] { p1 }, new Polygon2BR[] { p2 });
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})">
            <summary>
            Get the exclusive or (XOR) of two given regions.
            </summary>
            <remarks>
            <para>
            Each region is defined by a set of polygons.
            If a polygon is counter clockwise, it is filled, if it's clockwise it represents a hole.
            Polygons of one region may not intersect each other.  A polygon may touch itself though.
            </para>
            <para>
            The outer polygon must always be counter clockwise 
            (if there are holes, the hole must always be a cutout of a non-hole).
            </para>
            </remarks>
            <param name="region1">First region, see restrictons above.</param>
            <param name="region2">Second region, see restrictions above.</param>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetIntersection(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetDifference(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetExclusiveOr(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <seealso cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetUnion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR})"/>
            <example>
            This is a simple example of getting the exclusive or of two regions.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Test {
    public class Polygon2BRTest {
        public List&lt;Polygon2BR&gt; ExclusiveOrExample() {
            Polygon2BR polygon1 =
                new Polygon2BR(
                    new Point2BR(2d, 1d),
                    new Point2BR(5d, 2d),
                    new Point2BR(4d, 5d),
                    new Point2BR(1d, 4d)
                );
            Polygon2BR polygon2 =
                new Polygon2BR(
                    new Point2BR(3d, -1d),
                    new Point2BR(7d, 1d),
                    new Point2BR(6d, 4d),
                    new Point2BR(-1d, 2d)
                );
            List&lt;Polygon2BR&gt; result = Polygon2BR.GetExclusiveOr(
                new Polygon2BR[] { polygon1 },
                new Polygon2BR[] { polygon2 }
            );
            return result;
        }
    }
}
</code>
            </example>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.CollectPolygon(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region,System.Func{WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment,System.Boolean},System.Int32@)">
            <summary>
            Collect polygon from given start segment.
            </summary>
            <param name="startSegment">the start segment of the polygon</param>
            <param name="resultRegion">the result region to which to add the result polygon</param>
            <param name="includeSegment">the function to determine whether or not to include a segment</param>
            <param name="n">
            Is used for protecting against endless looping as a safety precaution, just in case
            the data causes floating point issues and ends up looping forever.
            </param>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.ReplacePoint(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point2BRToPointDictionary,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point)">
            <summary>
            Givens points were very close together, so replace one by the other.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.GetRegion(System.Collections.Generic.IList{WW.Math.Exact.Geometry.Polygon2BR},WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point2BRToPointDictionary,System.Boolean)">
            <summary>
            Find shared points and convert to internal structures.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point.AddVertexSorted(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Vertex)">
            <summary>
            Adds a vertex at a sorted position.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Point.Vertices">
            <summary>
            Gets the vertices.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Vertex">
            <summary>
            Represents a vertex.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Vertex.IsInside(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment)">
            <summary>
            Returns whether the specified segment is included in the angle
            between in and out segment of this vertex.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Vertex.InSegment">
            <summary>
            Gets or sets the incoming segment.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Vertex.OutSegment">
            <summary>
            Gets or sets the outgoing segment.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment.AddIntersection(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Intersection)">
            <summary>
            Adds the specified intersection.
            If there was already an intersection present with the same parameter or Point,
            than the intersection was not added, and the existing intersection is returned.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment.CalculateStatusFirstSegment(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region)">
            <summary>
            Calculate the first segment status based on the other region.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment.CalculateStatus(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Segment,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region)">
            <summary>
            Calculate the segment status based on the previous segment and other region.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.EventQueue">
            <summary>
            Events are sorted first along the x-axis, and then along the y-axis.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Event">
            <summary>
            Represents an event for doing segment-segment intersection using a sweepline algorithm.
            </summary>
            <remarks>
            Events are sorted first along the x-axis, and then along the y-axis.
            </remarks>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.SweepLine">
            <summary>
            Loosely based on bentley-ottman and "line segment intersection" by M. de Berg et al. 
            TODO:
            Remark from the double-precision implementation of this algorithm:
              However this implementation doesn't use a balanced search tree for ordering segments along the sweepline
              as it would be difficult to circumvent precision issues in case of multiple overlapping line segments.
            For big rationals there are no precision issues, so can implement this more accurately.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.SegmentWithIntersections.AddIntersection(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Intersection)">
            <summary>
            Adds the specified intersection.
            If there was already an intersection present with the same parameter or Point,
            than the intersection was not added, and the existing intersection is returned.
            If result was null, then intersection is at start or end point.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Intersection.Parameter">
            <summary>
            Gets the parameter (0-1), 0 represents a segments start point, 1 represents
            the end point.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region">
            <summary>
            A region is a set of polygons.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region.IsInside(WW.Math.Exact.Point2BR)">
            <summary>
            Determine if a point is inside of a set of polygons.
            </summary>
            <remarks>
            Uses the winding number to compute whether the point is inside the polygons 
            (<see cref="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon.GetWindingNumber(WW.Math.Exact.Point2BR,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon)"/>).
            Returns <c>true</c> if the winding number is greater than zero.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region.GetWindingNumber(WW.Math.Exact.Point2BR)">
            <summary>
            Gets the winding number of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region.CalculateSegmentStatus(WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region)">
            <summary>
            Calculates the segment status for all segments in this region.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region.Reversed">
            <summary>
            Gets a value indicating whether this <see cref="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Region"/> is reversed.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon">
            <summary>
            Represents a polygon.
            </summary>
            <remarks>
            The IsInsidePolygons/GetWindingNumber are copied from Polygon2BR and adapted.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon.GetWindingNumber(WW.Math.Exact.Point2BR,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon)">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon.GetWindingNumber(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.Geometry.Polygon2BR.BooleanOperations.Polygon)">
            <summary>
            Gets the winding number of specified point with respect to specified polygon.
            </summary>
            <remarks>
            The winding number can be used to determine if a point is inside the polygon using the winding number.
            It depends on the definition of inside how this can be done. Useful definitions are
            an odd winding number, a positive winding number or a non-zero winding number.
            </remarks>
        </member>
        <member name="T:WW.Drawing.GdiBitmap">
            <summary>
            IBitmap implementation for GDI.
            </summary>
        </member>
        <member name="F:WW.Drawing.GdiBitmap.InvalidBitmap">
            <summary>
            Invalid bitmap.
            </summary>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.#ctor(System.Drawing.Bitmap)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Drawing.GdiBitmap"/> class.
            </summary>
            <param name="bitmap">The bitmap.</param>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.GetPixel(System.Int32,System.Int32)">
            <summary>
            Get the pixel at the given position.
            </summary>
            <param name="x"></param>
            <param name="y"></param>
            <returns></returns>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.GetRgbaBytes">
            <summary>
            Get the content of this bitmap as an array of RGBA bytes.
            </summary>
            <returns>RGBA byte array.</returns>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.ToImage">
            <summary>
            Get the bitmap as an image.
            Only defined for valid bitmaps.
            </summary>
            <returns>Image</returns>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:WW.Drawing.GdiBitmap.LoadBitmap(System.String,System.String)">
            <summary>
            Load a bitmap from a file.
            </summary>
            <param name="filename">Bitmap file name.</param>
            <param name="modelFilename">File name of model loading the bitmap file.</param>
            <returns>The loaded bitmap, possibly invalid.</returns>
        </member>
        <member name="P:WW.Drawing.GdiBitmap.IsValid">
            <summary>
            Is this bitmap valid?
            </summary>
        </member>
        <member name="P:WW.Drawing.GdiBitmap.Width">
            <summary>
            Get the width of the pixel array.
            </summary>
        </member>
        <member name="P:WW.Drawing.GdiBitmap.Height">
            <summary>
            Get the height of the pixel array.
            </summary>
        </member>
        <member name="T:WW.Actions.CommandGroup">
            <summary>
            Represents an undoable command group.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CommandGroup"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CommandGroup"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.#ctor(System.Object,WW.Actions.ICommand[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CommandGroup"/> class.
            All commands are pushed onto the do stack in reverse order (so they will be executed in order when popped from the do stack).
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.#ctor(WW.Actions.ICommand[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CommandGroup"/> class.
            All commands are pushed onto the do stack in reverse order (so they will be executed in order when popped from the do stack).
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.UndoSingle(WW.Actions.CommandInvoker)">
            <summary>
            Undoes a single command in this group.
            </summary>
            <remarks>
            Pops a command from the undo stack, pushes it onto the do stack and then executes it.
            This allows a command undoing the next command.
            </remarks>
        </member>
        <member name="M:WW.Actions.CommandGroup.DoSingle(WW.Actions.CommandInvoker)">
            <summary>
            Does a single command in this group.
            </summary>
            <remarks>
            Pops a command from the do stack, pushes it onto the undo stack and then executes it.
            This allows a command doing the next command.
            </remarks>
        </member>
        <member name="M:WW.Actions.CommandGroup.Clear">
            <summary>
            Clears the do and undo stacks.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.Undo(WW.Actions.CommandInvoker)">
            <summary>
            Perform an undo.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandGroup.Do(WW.Actions.CommandInvoker)">
            <summary>
            Perform a do.
            </summary>
        </member>
        <member name="P:WW.Actions.CommandGroup.DoStack">
            <summary>
            Gets the do stack.
            </summary>
        </member>
        <member name="P:WW.Actions.CommandGroup.UndoStack">
            <summary>
            Gets the undo stack.
            </summary>
        </member>
        <member name="P:WW.Actions.CommandGroup.Target">
            <summary>
            Gets the target object of the command.
            This is the object that is being affected/changed by the command.
            </summary>
        </member>
        <member name="T:WW.Actions.InteractorDrawableContext">
            <summary>
            Represents a context for interactor drawables.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorDrawableContext.#ctor(WW.Math.Geometry.Rectangle2D,WW.Math.Matrix4D,System.Boolean,WW.Drawing.ArgbColor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorDrawableContext"/> class.
            </summary>
            <param name="canvasRectangle">The canvas rectangle (defined in the display coordinate system (DCS)).
            For windows forms this corresponds the the <see cref="P:System.Windows.Forms.Control.ClientRectangle"/>.</param>
            <param name="projectionTransform">The projection transform.</param>
            <param name="projectionFlipsOrientation">
            If set to <c>true</c> the projection transform flips the orientation (typically if the y-axis of the DCS points down like in Windows Forms).
            </param>
            <param name="backgroundColor">The background color.</param>
        </member>
        <member name="P:WW.Actions.InteractorDrawableContext.EditHandleSize">
            <summary>
            Gets or sets the size of the edit handle.
            The default value is 6.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorDrawableContext.CrossHairSize">
            <summary>
            Gets or sets the size of the cross hair.
            The default value is 6.
            </summary>
        </member>
        <member name="T:WW.Actions.CanonicalMouseEventArgs">
            <summary>
            Represents canonical mouse event arguments (platform independent).
            </summary>
        </member>
        <member name="M:WW.Actions.CanonicalMouseEventArgs.#ctor(System.Windows.Forms.MouseEventArgs)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CanonicalMouseEventArgs"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CanonicalMouseEventArgs.#ctor(System.Windows.Input.MouseEventArgs,System.Windows.IInputElement)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CanonicalMouseEventArgs"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CanonicalMouseEventArgs.#ctor(System.Windows.Input.MouseButtonEventArgs,System.Windows.IInputElement)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CanonicalMouseEventArgs"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CanonicalMouseEventArgs.#ctor(System.Windows.Input.MouseWheelEventArgs,System.Windows.IInputElement)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.CanonicalMouseEventArgs"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.CanonicalMouseEventArgs.GetWcsPosition(WW.Actions.InteractionContext)">
            <summary>
            Gets the WCS position.
            If the <seealso cref="P:WW.Actions.CanonicalMouseEventArgs.WcsPosition"/> has a value, that is returned, otherwise
            the <seealso cref="P:WW.Actions.CanonicalMouseEventArgs.Position"/> is transformed by the <seealso cref="P:WW.Actions.InteractionContext.InverseProjectionTransform"/> to
            calculate the WCS position.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.Position">
            <summary>
            Gets the position in the display coordinate system.
            Use the <see cref="P:WW.Actions.CanonicalMouseEventArgs.WcsPosition"/> for the WCS position.
            </summary>
            <seealso cref="P:WW.Actions.CanonicalMouseEventArgs.WcsPosition"/>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.WcsPosition">
            <summary>
            Gets or sets the WCS position (WCS stands for world coordinate system).
            This is optional.
            </summary>
            <remarks>
            This can be used for snapping to a coordinate in the WCS.
            </remarks>
            <seealso cref="P:WW.Actions.CanonicalMouseEventArgs.Position"/>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.ClickCount">
            <summary>
            Gets the click count.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.LeftButtonDown">
            <summary>
            Gets a value indicating whether the left button is down.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.MiddleButtonDown">
            <summary>
            Gets a value indicating whether the middle button is down.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.RightButtonDown">
            <summary>
            Gets a value indicating whether the right button is down.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.XButton1Down">
            <summary>
            Gets a value indicating whether the first XButton is down.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.XButton2Down">
            <summary>
            Gets a value indicating whether the second XButton is down.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.MouseWheelDelta">
            <summary>
            Gets the mouse wheel delta.
            </summary>
        </member>
        <member name="P:WW.Actions.CanonicalMouseEventArgs.MouseButtonFlags">
            <summary>
            Gets the mouse button flags.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Triangulator2D">
            <summary>
            2D triangulator that can triangulate polygons with holes.
            </summary>
            <remarks>
            <para>
            The polygons may not cross each other.
            </para>
            <para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating a square polygon with a hole in it.
            The hole is a smaller square.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            List&lt;Point2D&gt; points = new List&lt;Point2D&gt;();

            // Cutout a small rectangle from a bigger rectangle.
            Triangulator2D.Triangulate(
                new Point2D[][] {
                    new Point2D[] { 
                        new Point2D(-2d, -2d),
                        new Point2D(2d, -2d),
                        new Point2D(2d, 2d),
                        new Point2D(-2d, 2d)
                    },
                    new Point2D[] { 
                        new Point2D(-1d, -1d),
                        new Point2D(1d, -1d),
                        new Point2D(1d, 1d),
                        new Point2D(-1d, 1d)
                    }
                },
                resultingTriangles,
                points
            );

            // Show all resulting triangles.
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})", 
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            <para>
            This is the output of the triangulation:
            </para>
            <para><c>(-2, 2), (1, 1), (-1, 1)</c></para>
            <para><c>(-1, -1), (-2, 2), (-1, 1)</c></para>
            <para><c>(1, 1), (2, 2), (1, -1)</c></para>
            <para><c>(-2, 2), (2, 2), (1, 1)</c></para>
            <para><c>(2, -2), (-1, -1), (1, -1)</c></para>
            <para><c>(2, 2), (2, -2), (1, -1)</c></para>
            <para><c>(-1, -1), (-2, -2), (-2, 2)</c></para>
            <para><c>(2, -2), (-2, -2), (-1, -1)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangulate(System.Collections.Generic.IList{System.Collections.Generic.IList{WW.Math.Point2D}},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle},System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Triangulates given polygons and returns triangles and points.
            </summary>
            <remarks>
            <para>
            The polygons may not cross each other.
            </para>
            <para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            <para>
            Uses <see cref="F:WW.Math.Constants.PrecisionD"/> as precision.
            </para>
            </remarks>
            <param name="polygons">Input. The polygons may not cross each other.</param>
            <param name="triangles">Output triangles, only contains the triangle point indices.</param>
            <param name="points">Output points, referred to by the point indices in the output triangles.</param>
            <example>
            Below is an example demonstrating triangulating a square polygon with a hole in it.
            The hole is a smaller square.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            List&lt;Point2D&gt; points = new List&lt;Point2D&gt;();

            // Cutout a small rectangle from a bigger rectangle.
            Triangulator2D.Triangulate(
                new Point2D[][] {
                    new Point2D[] { 
                        new Point2D(-2d, -2d),
                        new Point2D(2d, -2d),
                        new Point2D(2d, 2d),
                        new Point2D(-2d, 2d)
                    },
                    new Point2D[] { 
                        new Point2D(-1d, -1d),
                        new Point2D(1d, -1d),
                        new Point2D(1d, 1d),
                        new Point2D(-1d, 1d)
                    }
                },
                resultingTriangles,
                points
            );

            // Show all resulting triangles.
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})", 
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            <para>
            This is the output of the triangulation:
            </para>
            <para><c>(-2, 2), (1, 1), (-1, 1)</c></para>
            <para><c>(-1, -1), (-2, 2), (-1, 1)</c></para>
            <para><c>(1, 1), (2, 2), (1, -1)</c></para>
            <para><c>(-2, 2), (2, 2), (1, 1)</c></para>
            <para><c>(2, -2), (-1, -1), (1, -1)</c></para>
            <para><c>(2, 2), (2, -2), (1, -1)</c></para>
            <para><c>(-1, -1), (-2, -2), (-2, 2)</c></para>
            <para><c>(2, -2), (-2, -2), (-1, -1)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangulate(System.Collections.Generic.IList{System.Collections.Generic.IList{WW.Math.Point2D}},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle},System.Collections.Generic.IList{WW.Math.Point2D},System.Double)">
            <summary>
            Triangulates given polygons and returns triangles and points.
            </summary>
            <param name="polygons">Input. The polygons may not cross each other.</param>
            <param name="triangles">Output triangles, only contains the triangle point indices.</param>
            <param name="points">Output points, referred to by the point indices in the output triangles.</param>
            <param name="precision">The precision.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating a square polygon with a hole in it.
            The hole is a smaller square.
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            List&lt;Point2D&gt; points = new List&lt;Point2D&gt;();

            // Cutout a small rectangle from a bigger rectangle.
            Triangulator2D.Triangulate(
                new Point2D[][] {
                    new Point2D[] { 
                        new Point2D(-2d, -2d),
                        new Point2D(2d, -2d),
                        new Point2D(2d, 2d),
                        new Point2D(-2d, 2d)
                    },
                    new Point2D[] { 
                        new Point2D(-1d, -1d),
                        new Point2D(1d, -1d),
                        new Point2D(1d, 1d),
                        new Point2D(-1d, 1d)
                    }
                },
                resultingTriangles,
                points
            );

            // Show all resulting triangles.
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})", 
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            	<para>
            This is the output of the triangulation:
            </para>
            	<para><c>(-2, 2), (1, 1), (-1, 1)</c></para>
            	<para><c>(-1, -1), (-2, 2), (-1, 1)</c></para>
            	<para><c>(1, 1), (2, 2), (1, -1)</c></para>
            	<para><c>(-2, 2), (2, 2), (1, 1)</c></para>
            	<para><c>(2, -2), (-1, -1), (1, -1)</c></para>
            	<para><c>(2, 2), (2, -2), (1, -1)</c></para>
            	<para><c>(-1, -1), (-2, -2), (-2, 2)</c></para>
            	<para><c>(2, -2), (-2, -2), (-1, -1)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangulate(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.IList{System.Collections.Generic.IList{System.Int32}},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Triangulates given point set and polylines.
            </summary>
            <param name="inputPoints">The input points.</param>
            <param name="polylinePointIndexesList">
            Represents polylines of fixed edges. May be empty or null.
            Each integer is an index in the inputPoints.
            </param>
            <param name="triangles">The output triangles.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            <para>
            This method may skip points that are very close together, in that case also the point index lists are modified.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating five points resulting in three triangles.
            The second triangulation is the same as the first one, but with one edge fixed (which forces more skinny triangles in this particular case).
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample2 {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            Point2D[] points = new Point2D[] {
                new Point2D(-2d, -2d),
                new Point2D(2d, -2d),
                new Point2D(4d, 0d),
                new Point2D(2d, 2d),
                new Point2D(-2d, 2d)
            };

            // Triangulate without fixed edges.
            Triangulator2D.Triangulate(
                points,
                null,
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }

            resultingTriangles.Clear();

            // Triangulate with one fixed edge.
            Triangulator2D.Triangulate(
                points,
                new ushort[][] { new ushort[] { 0, 2 } },
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code><code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample2 {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            Point2D[] points = new Point2D[] {
                new Point2D(-2d, -2d),
                new Point2D(2d, -2d),
                new Point2D(4d, 0d),
                new Point2D(2d, 2d),
                new Point2D(-2d, 2d)
            };

            // Triangulate without fixed edges.
            Triangulator2D.Triangulate(
                points,
                null,
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }

            resultingTriangles.Clear();

            // Triangulate with one fixed edge.
            Triangulator2D.Triangulate(
                points,
                new ushort[][] { new ushort[] { 0, 2 } },
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            <para>
            This is the output of the first triangulation:
            </para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            	<para><c>(2, 2), (4, 0), (2, -2)</c></para>
            	<para><c>(2, -2), (-2, -2), (2, 2)</c></para>
            <para>
            This is the output of the second triangulation:
            </para>
            	<para><c>(-2, -2), (4, 0), (2, -2)</c></para>
            	<para><c>(4, 0), (-2, -2), (2, 2)</c></para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangulate(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.IList{System.Collections.Generic.IList{System.Int32}},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle},System.Double)">
            <summary>
            Triangulates given point set and polylines.
            </summary>
            <param name="inputPoints">The input points.</param>
            <param name="polylinePointIndexesList">
            Represents polylines of fixed edges. May be empty or null.
            Each integer is an index in the inputPoints.
            </param>
            <param name="triangles">The output triangles.</param>
            <param name="precision">The precision.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            <para>
            This method may skip points that are very close together, in that case also the point index lists are modified.
            </para>
            </remarks>
            <example>
            Below is an example demonstrating triangulating five points resulting in three triangles.
            The second triangulation is the same as the first one, but with one edge fixed (which forces more skinny triangles in this particular case).
            <code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample2 {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            Point2D[] points = new Point2D[] {
                new Point2D(-2d, -2d),
                new Point2D(2d, -2d),
                new Point2D(4d, 0d),
                new Point2D(2d, 2d),
                new Point2D(-2d, 2d)
            };

            // Triangulate without fixed edges.
            Triangulator2D.Triangulate(
                points,
                null,
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }

            resultingTriangles.Clear();

            // Triangulate with one fixed edge.
            Triangulator2D.Triangulate(
                points,
                new ushort[][] { new ushort[] { 0, 2 } },
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code><code lang="cs">
using System;
using System.Collections.Generic;
using System.Text;

using WW.Math;
using WW.Math.Geometry;

namespace WW.Examples {
    public class Triangulator2DExample2 {
        public static void Triangulate() {
            List&lt;Triangulator2D.Triangle&gt; resultingTriangles = new List&lt;Triangulator2D.Triangle&gt;();
            Point2D[] points = new Point2D[] {
                new Point2D(-2d, -2d),
                new Point2D(2d, -2d),
                new Point2D(4d, 0d),
                new Point2D(2d, 2d),
                new Point2D(-2d, 2d)
            };

            // Triangulate without fixed edges.
            Triangulator2D.Triangulate(
                points,
                null,
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }

            resultingTriangles.Clear();

            // Triangulate with one fixed edge.
            Triangulator2D.Triangulate(
                points,
                new ushort[][] { new ushort[] { 0, 2 } },
                resultingTriangles,
                1e-6d
            );

            // Show all resulting triangles.
            Console.WriteLine("Triangulation result:");
            foreach (Triangulator2D.Triangle triangle in resultingTriangles) {
                Console.WriteLine(
                    "({0}), ({1}), ({2})",
                    points[triangle.I0].ToString(),
                    points[triangle.I1].ToString(),
                    points[triangle.I2].ToString()
                );
            }
        }
    }
}
</code>
            <para>
            This is the output of the first triangulation:
            </para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            	<para><c>(2, 2), (4, 0), (2, -2)</c></para>
            	<para><c>(2, -2), (-2, -2), (2, 2)</c></para>
            <para>
            This is the output of the second triangulation:
            </para>
            	<para><c>(-2, -2), (4, 0), (2, -2)</c></para>
            	<para><c>(4, 0), (-2, -2), (2, 2)</c></para>
            	<para><c>(2, 2), (-2, -2), (-2, 2)</c></para>
            </example>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangulate(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.IList{System.Collections.Generic.IList{System.Int32}},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle},System.Double,System.Boolean)">
            <summary>
            Triangulates given point set and polylines.
            </summary>
            <param name="inputPoints">The input points.</param>
            <param name="polylinePointIndexesList">Represents polylines of fixed edges. May be empty or null.
            Each integer is an index in the inputPoints.</param>
            <param name="triangles">The output triangles.</param>
            <param name="precision">The precision.</param>
            <param name="removeSuperTriangles">if set to <c>true</c> removes super triangles when finished triangulating.</param>
            <remarks>
            	<para>
            The polygons may not cross each other.
            </para>
            	<para>
            The algorithm used is a Constrained Delaunay triangulation.
            </para>
            	<para>
            This method may skip points that are very close together, in that case also the point index lists are modified.
            </para>
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.FilterIgnore(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.ICollection{WW.Math.Geometry.Triangulator2D.Triangle},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Filter all outside triangles.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.FilterNormal(System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.ICollection{WW.Math.Geometry.Triangulator2D.Triangle},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Filter all outside and odd regions.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.FilterOuter(System.Collections.Generic.List{WW.Math.Point2D},System.Collections.Generic.ICollection{WW.Math.Geometry.Triangulator2D.Triangle},System.Collections.Generic.IList{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Filter out all triangles except outer triangles remain.
            Assumes the 3 super triangle points are included in the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.AddPoint(WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Int32,System.Double,WW.Math.Geometry.Triangulator2D.Triangle@)">
            <summary>
            Adds point to CDT.
            Returns the point index of the point itself if added,
            or if it is approximately equal to another point, it returns the index of that point instead, and the given
            point is not added.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.AddPoint(WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Collections.Generic.List{WW.Math.Geometry.Triangulator2D.Triangle},System.Int32,System.Double)">
            <summary>
            Adds point to CDT.
            Returns the point index of the point itself if added,
            or if it is approximately equal to another point, it returns the index of that point instead, and the given
            point is not added.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.AddEdgeHelper(WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Int32,System.Int32,System.Double,WW.Math.Geometry.Triangulator2D.Triangle@)">
            <summary>
            Adds an edge.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.GetSuperTriangle(System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Calculates the super triangle from given points 
            (adds three points to given point collection).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.TriangulatePseudoPolygon(WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Collections.Generic.List{System.Int32},System.Int32,System.Int32,WW.Math.Geometry.Triangulator2D.Triangle,System.Collections.Generic.IList{WW.Math.Point2D},System.Collections.Generic.List{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Triangulate pseudo polygon.
            Note that the polygon created by
            p0, p1 and polygonPoints is expected to be clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.SwapEdge(WW.Math.Geometry.Triangulator2D.TriangulatorContext,WW.Math.Geometry.Triangulator2D.Triangle,WW.Math.Geometry.Triangulator2D.Triangle,System.Int32,System.Collections.Generic.List{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Swap edges.
            Either removes 1 triangle from or adds 1 triangle to the sweep line triangles.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Triangulator2D.Triangle">
            <summary>
            Vertices are ordered clock wise for quick inside triangle testing.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.i0">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.i1">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.i2">
            <summary>
            Triangle vertex indices.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.edge0FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.edge1FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.edge2FixCount">
            <summary>
            Edges (edge 0 starts with vertex 0, ends at vertex 1, etc).
            The fix count represents how many times an edge was fixed.
            If 3 polygons share the same edge, then that shared edge was fixed 3 times.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.neighbour0">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.neighbour1">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Triangulator2D.Triangle.neighbour2">
            <summary>
            Neighbour 0 is associated with edge 0, etc.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Constructor. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.#ctor(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Constructor (makes the triangle vertices ordered clockwise).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.Init(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Intialization. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.Init(System.Int32,System.Byte,WW.Math.Geometry.Triangulator2D.Triangle,System.Int32,System.Byte,WW.Math.Geometry.Triangulator2D.Triangle,System.Int32,System.Byte,WW.Math.Geometry.Triangulator2D.Triangle,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Intialization. Input triangle vertices must be ordered clockwise!
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.DivideInThree(System.Int32,WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Collections.Generic.Stack{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Replace this triangle by 3 new triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.DivideInThree(System.Int32,WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Collections.Generic.List{WW.Math.Geometry.Triangulator2D.Triangle},System.Int32,System.Collections.Generic.Stack{WW.Math.Geometry.Triangulator2D.Triangle})">
            <summary>
            Replace this triangle by 3 new triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.DivideInTwo(System.Int32,System.Int32,WW.Math.Geometry.Triangulator2D.TriangulatorContext,System.Collections.Generic.List{WW.Math.Geometry.Triangulator2D.Triangle},System.Int32,System.Collections.Generic.Stack{WW.Math.Geometry.Triangulator2D.Triangle},WW.Math.Geometry.Triangulator2D.Triangle,WW.Math.Geometry.Triangulator2D.Triangle,WW.Math.Geometry.Triangulator2D.Triangle,WW.Math.Geometry.Triangulator2D.Triangle)">
            <summary>
            Creates 2 triangles such of the new triangles 2 of the 3 edges remain at the same index.
            The sweep triangle point always remains at index 0.
            The 2 triangles are created in clockwise order along the divided edge.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.ReplaceNeighbour(System.Int32,WW.Math.Geometry.Triangulator2D.Triangle)">
            <summary>
            Replace neighbour at edge with given start point with specified triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.TryReplaceNeighbour(System.Int32,System.Int32,WW.Math.Geometry.Triangulator2D.Triangle)">
            <summary>
            Try to replace neighbour. Note that e0 and e1 must be in clockwise direction.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.IsPointInsideSlow(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Algorithm based on barycentric coordinates.
            (see http://www.ddj.com/184404201, Dr Dobbs, Triangle Intersection Tests).
            </summary>
            <remarks>
            Just keeping this method for future reference. 
            (Is about 50% slower than the method using three outside tests).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.GetOpposite(System.Int32)">
            <summary>
            Gets opposite triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.IsOppositeEdgeFixed(System.Int32)">
            <summary>
            Gets whether the opposite edge is fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.IsPointInCircle(WW.Math.Point2D,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Returns whether point is in circle that goes
            through all three points of this triangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.IsPointInCircle(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Returns whether point is in circle through points a, b and c.
            </summary>
            <remarks>
            This is often called the inCircle test in literature.
            Note that points a, b and c MUST be in clockwise order 
            (otherwise sign of the determinant changes).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.GetQuadrianglePoints(System.Int32,WW.Math.Geometry.Triangulator2D.Triangle,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@,System.Int32@,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@,System.Int32@,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@,System.Int32@,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@)">
            <summary>
            Get the four points of the 2 opposing triangles.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.GetNextPoint(System.Int32,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@,System.Int32@,System.Byte@,WW.Math.Geometry.Triangulator2D.Triangle@)">
            <summary>
            Get next point with adjacent edge info.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.MakeEdgeAndNeighbourEdgeFixed(System.Int32)">
            <summary>
            Also makes the edge in the neighbour triangle fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.MakeEdgeFixed(System.Int32)">
            <summary>
            Make edge starting at given point fixed.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.GetAngularDistance(System.Double,System.Double,System.Double)">
            <summary>
            Gets the angular distance for specified angle from clockwise arc with specified start/end angles.
            All arguments must be in the range 0 .. 2 * pi.
            </summary>
            <returns>
            Returns the closest distance to either start/end angle. Returns a negative value
            if the angle is inside the angle range, or a positive value if outside the angle range.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.Intersect(WW.Math.Point2D,WW.Math.Vector2D,System.Int32,System.Int32,System.Collections.Generic.IList{WW.Math.Point2D})">
            <summary>
            Check of 2 lines segments intersect (first segment is treated as ray (i.e. semi infinite from a point)).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Triangulator2D.Triangle.ToString">
            <inheritdoc/>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.I0">
            <summary>
            Gets or sets the first point index.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.I1">
            <summary>
            Gets or sets the second point index.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.I2">
            <summary>
            Gets or sets the third point index.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge0FixCount">
            <summary>
            Gets or sets the whether first edge is fixed (the edge starting with the first point).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge1FixCount">
            <summary>
            Gets or sets the whether second edge is fixed (the edge starting with the second point).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge2FixCount">
            <summary>
            Gets or sets the whether third edge is fixed (the edge starting with the third point).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge0HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 0 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge1HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 1 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.Edge2HasOddFixCount">
            <summary>
            Gets a value indicating whether edge 2 has an odd fix count,
            i.e. if 3 then edge 0 was fixed 3 times, this could happen when
            3 polylines run over this edge.
            Depending on the definition of inside/outside, when odd, the edge is a transition from inside to outside,
            when even, both sides are either inside/outside.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Triangulator2D.Triangle.FilterStatus">
            <summary>
            Gets or sets the filter status.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polyline2D">
            <summary>
            An optionally closed polyline.
            </summary>
            <seealso cref="T:WW.Math.Geometry.Polygon2D"/>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Int32,System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Boolean,WW.Math.Point2D[])">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Boolean,System.Collections.Generic.IEnumerable{WW.Math.Point2D})">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Int32)">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(WW.Math.Point2D[])">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(System.Collections.Generic.IEnumerable{WW.Math.Point2D})">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.#ctor(WW.Math.Geometry.Polyline2D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetReverse">
            <summary>
            Gets the reverse polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.Offset(System.Collections.Generic.IList{WW.Math.Point2D},System.Double)">
            <summary>
            Offsets the specified polyline by a specified distance.
            </summary>
            <remarks>
            Each line segment is offset to the right (if distance is positive).
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetSubPolyline(System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetSubPolyline(System.Collections.Generic.IList{WW.Math.Point2D},System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetLength">
            <summary>
            Gets the total length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetLength(System.Collections.Generic.IList{WW.Math.Point2D},System.Boolean)">
            <summary>
            Gets the total length of the polyline defined by specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetNoOfIntersections(WW.Math.Geometry.Ray2D)">
            <summary>
            Gets the number of intersections between a ray and a polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.GetNoOfIntersections(System.Collections.Generic.IList{WW.Math.Point2D},System.Boolean,WW.Math.Geometry.Ray2D)">
            <summary>
            Gets the number of intersections between a ray and a polyline.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polyline2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Polyline2D.OpenPolylineIterator">
            <summary>
            Segment iterator only for open polylines.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.OpenPolylineIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline2D.OpenPolylineIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Polyline2D.OpenPolylineIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Polyline2D.OpenPolylineIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Polyline2D.OpenPolylineIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedRectangle2D.Origin">
            <summary>
            Gets or sets the origin.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedRectangle2D.XAxis">
            <summary>
            Gets or sets the x-axis of the rectangle. The length of the vector
            determines the length of the rectangle in the direction of this vector.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedRectangle2D.YAxis">
            <summary>
            Gets or sets the y-axis of the rectangle. The length of the vector
            determines the length of the rectangle in the direction of this vector.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedRectangle2D.Empty">
            <summary>
            An empty oriented rectangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.OrientedRectangle2D.#ctor(WW.Math.Point2D,WW.Math.Vector2D,WW.Math.Vector2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.OrientedRectangle2D"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.OrientedRectangle2D.ToPolygon2D">
            <summary>
            Converts this rectangle to a polygon (counter clockwise).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.OrientedRectangle2D.Contains(WW.Math.Point2D)">
            <summary>
            Returns whether the border of this rectangle contains the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.OrientedRectangle2D.BorderContains(WW.Math.Point2D,System.Double)">
            <summary>
            Returns whether the border of this rectangle contains the specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.OrientedRectangle2D.TopLeft">
            <summary>
            Gets the top left point (origin + y-axis).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.OrientedRectangle2D.BottomRight">
            <summary>
            Gets the bottom right point (origin + x-axis).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.OrientedRectangle2D.TopRight">
            <summary>
            Gets the top right point (origin + x-axis + y-axis).
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.Z">
            <summary>The z-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.Zero">
            <summary>
            3D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.XAxis">
            <summary>
            3D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.YAxis">
            <summary>
            3D Y-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector3BR.ZAxis">
            <summary>
            3D Z-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(WW.Math.Exact.Vector2BR,WW.Math.Exact.BigRational)">
            <summary>
            Initializes this vector with given 2D vector and z-coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(WW.Math.Exact.BigRational[])">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(System.Collections.Generic.IList{WW.Math.Exact.BigRational})">
            <summary>
            Initializes this vector with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(WW.Math.Exact.Vector3BR)">
            <summary>
            Initializes this vector with coordinates from given source vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.#ctor(WW.Math.Exact.Point3BR)">
            <summary>
            Initializes this vector with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Add(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Subtract(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Divide(WW.Math.Exact.Vector3BR,WW.Math.Exact.BigRational)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Multiply(WW.Math.Exact.Vector3BR,WW.Math.Exact.BigRational)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.DotProduct(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.CrossProduct(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Calculates the cross product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Negate(WW.Math.Exact.Vector3BR)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.AreVectorsPerpendicular(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Returns true if vectors are perpendicular.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.OrthogonalProjection(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Returns the vector between vector a and projection of a to direction of b.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y + Z*Z)</returns>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.ContainsNaN">
            <summary>
            Determines whether this vector contains a NaN coordinate.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y, z").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Equality(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Inequality(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_UnaryNegation(WW.Math.Exact.Vector3BR)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Addition(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Subtraction(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Multiply(WW.Math.Exact.Vector3BR,WW.Math.Exact.BigRational)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Multiply(WW.Math.Exact.BigRational,WW.Math.Exact.Vector3BR)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Division(WW.Math.Exact.Vector3BR,WW.Math.Exact.BigRational)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Explicit(WW.Math.Exact.Vector3BR)~WW.Math.Exact.BigRational[]">
            <summary>
            Converts the vector to an array of BigRational precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Explicit(WW.Math.Exact.Vector2BR)~WW.Math.Exact.Vector3BR">
            <summary>
            Converts given 2D vector to a 3D vector as follows:
            result = new Vector3BR(v.X, v.Y, BigRational.Zero);
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Explicit(WW.Math.Vector4D)~WW.Math.Exact.Vector3BR">
            <summary>
            Converts given 4D vector to a 3D point as follows:
            result = new Vector3BR(p.X, p.Y, p.Z);
            </summary>
            <remarks>
            It's assumed that <c>p.W</c> is equal to zero, but this is not enforced.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Explicit(WW.Math.Exact.Point3BR)~WW.Math.Exact.Vector3BR">
            <summary>
            Converts given 3D point to a 3D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.op_Explicit(WW.Math.Exact.Vector3BR)~WW.Math.Vector3F">
            <summary>
            Converts given 3D BigRational precision vector to a 3D single precision vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BR.Equals(WW.Math.Exact.Vector3BR)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Vector3BR.IsZero">
            <summary>
            Gets a value indicating whether this instance is zero.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Vector3BR.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Vector3BRConverter">
            <summary>
            Converts a <see cref="T:WW.Math.Exact.Vector3BR"/> to and from string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert the object to the specified type, using the specified context.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to the specified type, using the specified context and culture information.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the type of this converter, using the specified context and culture information.
            </summary>
            <exception cref="T:System.ArgumentException">Failed parsing from string.</exception>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns whether this object supports a standard set of values that can be picked from a list.
            </summary>
            <returns><b>true</b> if <see cref="M:WW.Math.Exact.Vector3BRConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)"/> should be called to find a common set of values the object supports; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Vector3BRConverter.GetStandardValues(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.
            </summary>
            <returns>A <see cref="T:System.ComponentModel.TypeConverter.StandardValuesCollection"/> that holds a standard set of valid values, or a null reference (Nothing in Visual Basic) if the data type does not support a standard set of values.</returns>
        </member>
        <member name="T:WW.Actions.CommandInvoker">
            <summary>
            Use this object to invoke commands.
            This always subscribers to be notified when a command is executed, 
            including its nested commands when e.g. a <seealso cref="T:WW.Actions.CommandGroup"/> is executed.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandInvoker.Do(WW.Actions.ICommand)">
            <summary>
            Performs a do on the specified command and calls <seealso cref="M:WW.Actions.CommandInvoker.OnCommandDone(WW.Actions.CommandEventArgs)"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandInvoker.Undo(WW.Actions.ICommand)">
            <summary>
            Performs an undo on the specified command and calls <seealso cref="M:WW.Actions.CommandInvoker.OnCommandUndone(WW.Actions.CommandEventArgs)"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandInvoker.OnCommandDone(WW.Actions.CommandEventArgs)">
            <summary>
            Raises the <see cref="E:CommandDone"/> event.
            </summary>
        </member>
        <member name="M:WW.Actions.CommandInvoker.OnCommandUndone(WW.Actions.CommandEventArgs)">
            <summary>
            Raises the <see cref="E:CommandUndone"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.CommandInvoker.CommandDone">
            <summary>
            Occurs when a command is done.
            </summary>
        </member>
        <member name="E:WW.Actions.CommandInvoker.CommandUndone">
            <summary>
            Occurs when a command is undone.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Int32,System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Boolean,WW.Math.Point3D[])">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Boolean,System.Collections.Generic.IList{WW.Math.Point3D})">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Int32)">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(WW.Math.Point3D[])">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(System.Collections.Generic.IList{WW.Math.Point3D})">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(WW.Math.Geometry.Polyline2D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.#ctor(WW.Math.Geometry.Polyline3D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.GetReverse">
            <summary>
            Gets the reverse polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.GetSubPolyline(System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.GetSubPolyline(System.Collections.Generic.IList{WW.Math.Point3D},System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.GetLength">
            <summary>
            Gets the total length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline3D.GetLength(System.Collections.Generic.IList{WW.Math.Point3D},System.Boolean)">
            <summary>
            Gets the total length of the polyline defined by specified points.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedBox3D.Origin">
            <summary>
            Gets or sets the origin.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedBox3D.XAxis">
            <summary>
            Gets or sets the x-axis of the box. The length of the vector
            determines the length of the box in the direction of this vector.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedBox3D.YAxis">
            <summary>
            Gets or sets the y-axis of the box. The length of the vector
            determines the length of the box in the direction of this vector.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedBox3D.ZAxis">
            <summary>
            Gets or sets the z-axis of the box. The length of the vector
            determines the length of the box in the direction of this vector.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.OrientedBox3D.Empty">
            <summary>
            An empty oriented box.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.OrientedBox3D.#ctor(WW.Math.Point3D,WW.Math.Vector3D,WW.Math.Vector3D,WW.Math.Vector3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.OrientedBox3D"/> struct.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.NullShape2D">
            <summary>
            Represents an empty shape.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.NullShape2D.Instance">
            <summary>
            The null shape instance.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.NullShape2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
            <returns></returns>
            <remarks>
            It is expected that the returned iterator represents a snapshot of the shape's
            state as it is when the iterator is created via this property, i.e. changes
            which are applied to the shape after the iterator is constructed are not expected to be
            reflected by the iterator itself.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.NullShape2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.NullShape2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.GeneralShape2D">
            <summary>
            A general shape which can contain all kinds of segments.
            </summary>
            <remarks>
            As a special optimization which makes iterating over a
            general shape a cheap operation an object of this class 
            can be fixated (see <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/> and <see cref="M:WW.Math.Geometry.GeneralShape2D.ShrinkWrap"/>).
            If this is done, no further changes are allowed to it. 
            If a change is tried, an <see cref="T:System.InvalidOperationException"/>
            will be thrown.
            </remarks>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.coordinates">
            <summary>
            Array of coordinates (possibly longer than necessary).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.coordinateCount">
            <summary>
            Number of coordinates really used.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.segmentTypes">
            <summary>
            Array of segment types (possibly longer than necessary).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.segmentTypeCount">
            <summary>
            Number of segment types really used.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.fix">
            <summary>
            Is this shape fixed?
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.GeneralShape2D.quadCount">
            <summary>
            Number of quad segments (optimization for conversion to GraphicsPath).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.GeneralShape2D,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Copy constructor copying only a part of the original shape.
            </summary>
            <param name="baseShape">Original shape.</param>
            <param name="sStart">Start segment index.</param>
            <param name="sEnd">End segment index(not copied).</param>
            <param name="pStart">Start coordinate index.</param>
            <param name="pEnd">End coordinate index (not copied).</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.FillMode)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="segmentCapacity">The initial segment capacity.</param>
            <param name="pointCapacity">The initial point capacity.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(System.Int32,System.Int32,WW.Math.Geometry.FillMode)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="segmentCapacity">The initial segment capacity.</param>
            <param name="pointCapacity">The initial point capacity.</param>
            <param name="fillMode">The fill mode.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix2D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix3D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix4D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="iterator">Segment iterator from which the shape is created.</param>
            <param name="transformation">The transformation to use in the iterator.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix2D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix3D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix3D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix4D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.#ctor(WW.Math.Geometry.IShape2D,WW.Math.Matrix4D,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.GeneralShape2D"/> class.
            </summary>
            <param name="shape">Shape which is copied.</param>
            <param name="transformation">The transformation to be applied.</param>
            <param name="fixate">Fixate this shape? See <see cref="M:WW.Math.Geometry.GeneralShape2D.Fixate"/></param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.ISegment2DIterator,System.Boolean)">
            <summary>
            Appends a shape via its iterator.
            </summary>
            <param name="iterator">The iterator.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.ISegment2DIterator,System.Boolean,WW.Math.Matrix2D)">
            <summary>
            Appends a shape via its iterator, while applying a transformation.
            </summary>
            <param name="iterator">The iterator.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.ISegment2DIterator,System.Boolean,WW.Math.Matrix3D)">
            <summary>
            Appends a shape via its iterator, while applying a transformation.
            </summary>
            <param name="iterator">The iterator.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.ISegment2DIterator,System.Boolean,WW.Math.Matrix4D)">
            <summary>
            Appends a shape via its iterator, while applying a transformation.
            </summary>
            <param name="iterator">The iterator.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.IShape2D,System.Boolean)">
            <summary>
            Appends a shape.
            </summary>
            <param name="shape">The shape.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.IShape2D,System.Boolean,WW.Math.Matrix2D)">
            <summary>
            Appends a shape.
            </summary>
            <param name="shape">The shape.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.IShape2D,System.Boolean,WW.Math.Matrix3D)">
            <summary>
            Appends a shape.
            </summary>
            <param name="shape">The shape.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Append(WW.Math.Geometry.IShape2D,System.Boolean,WW.Math.Matrix4D)">
            <summary>
            Appends a shape.
            </summary>
            <param name="shape">The shape.</param>
            <param name="connect">if set to <c>true</c> connect the shape using a lineto segment.</param>
            <param name="transform">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.TransformBy(WW.Math.Matrix2D)">
            <summary>
            Transforms all coordinates by the given transformation.
            </summary>
            <param name="transformation">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.TransformBy(WW.Math.Matrix3D)">
            <summary>
            Transforms all coordinates by the given transformation.
            </summary>
            <param name="transformation">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.TransformBy(WW.Math.Matrix4D)">
            <summary>
            Transforms all coordinates by the given transformation.
            </summary>
            <param name="transformation">The transformation.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.MoveTo(System.Double,System.Double)">
            <summary>
            Add a moveto segment.
            </summary>
            <param name="x">The x coordinate.</param>
            <param name="y">The y coordinate.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.MoveTo(WW.Math.Point2D)">
            <summary>
            Add a moveto segment.
            </summary>
            <param name="p">The point to move to</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.LineTo(System.Double,System.Double)">
            <summary>
            Add a lineto segment.
            </summary>
            <param name="x">The x coordinate.</param>
            <param name="y">The y coordinate.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.LineTo(WW.Math.Point2D)">
            <summary>
            Add a lineto segment.
            </summary>
            <param name="p">The point to draw a line to</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.QuadTo(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Add a quadratic bezier spline segment.
            </summary>
            <remarks>The current point becomes the first control point of the segment.</remarks>
            <param name="x1">The x coordinate of the second control point.</param>
            <param name="y1">The y coordinate of the second control point.</param>
            <param name="x2">The x coordinate of the third control point.</param>
            <param name="y2">The y coordinate of the third control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.QuadTo(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add a quadratic bezier spline segment.
            </summary>
            <remarks>The current point becomes the first control point of the segment.</remarks>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.CubicTo(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Add a cubic bezier spline segment.
            </summary>
            <remarks>The current point becomes the first control point of the segment.</remarks>
            <param name="x1">The x coordinate of the second control point.</param>
            <param name="y1">The y coordinate of the second control point.</param>
            <param name="x2">The x coordinate of the third control point.</param>
            <param name="y2">The y coordinate of the third control point.</param>
            <param name="x3">The x coordinate of the fourth control point.</param>
            <param name="y3">The y coordinate of the fourth control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.CubicTo(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add a cubic bezier spline segment.
            </summary>
            <remarks>The current point becomes the first control point of the segment.</remarks>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
            <param name="p3">The fourth control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Close">
            <summary>
            Close the current subpath.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.AddPoint(WW.Math.Point2D)">
            <summary>
            Adds the point (simulated by a move to and a line to).
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.AddCircleApproximation(WW.Math.Point2D,System.Double)">
            <summary>
            Add 4 cubic spline segments approximating a circle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.AddSquare(WW.Math.Point2D,System.Double)">
            <summary>
            Adds a square.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.GetSegmentTypeAt(System.Int32)">
            <summary>
            Get the segment type at a given index.
            </summary>
            <param name="index">The index.</param>
            <returns>The segment type at the given index.</returns>
            <exception cref="T:System.IndexOutOfRangeException">If there no segment with the given index.</exception>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.GetPointAt(System.Int32)">
            <summary>
            Get the coordinate at a given index.
            </summary>
            <param name="index">The index.</param>
            <returns>The coordinate at the given index.</returns>
            <exception cref="T:System.IndexOutOfRangeException">If there no point with the given index.</exception>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Shrink">
            <summary>
            Shrinks the internal data to the necessary minimum.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Fixate">
            <summary>
            Set this shape into fixed state.
            </summary>
            <remarks>
            In fixed state it is no longer possible to change this shape,
            which allows for optimizations for iterators. Therefore it's 
            a good idea to set shapes to fixed when it is clear that they
            are no longer changed. There is no way to "unfixate" a once 
            fixed shape other then to append it to another 
            <see cref="T:WW.Math.Geometry.GeneralShape2D"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.ShrinkWrap">
            <summary>
            Shrink this shape, then set it into fixed state.
            </summary>
            <remarks>
            Calling this method is a good idea for longer living shapes after
            they are constructed.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.GetUnbrokenShapes">
            <summary>
            Split this shape into unbroken sub shapes.
            Each of the sub shapes will only contain one MoveTo segment.
            </summary>
            <returns>Array of fixed unbroken sub shapes.</returns>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.op_Explicit(WW.Math.Geometry.GeneralShape2D)~System.Drawing.Drawing2D.GraphicsPath">
            <summary>
            Converts a GeneralShape into a Windows GraphicsPath.
            </summary>
            <param name="shape">The shape.</param>
            <returns>A Windows GraphicsPath.</returns>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.ToGraphicsPath(WW.Math.Matrix4D)">
            <summary>
            Converts this GeneralShape into a Windows GraphicsPath.
            </summary>
            <returns>A Windows GraphicsPath.</returns>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.op_Explicit(System.Drawing.Drawing2D.GraphicsPath)~WW.Math.Geometry.GeneralShape2D">
            <summary>
            Converts a Windows GraphicsPath into a GeneralShape.
            </summary>
            <param name="path">The shape.</param>
            <returns>A Windows GraphicsPath.</returns>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Create(System.Drawing.Drawing2D.GraphicsPath,WW.Math.Matrix2D)">
            <summary>
            Converts a Windows GraphicsPath into a GeneralShape.
            </summary>
            <param name="path">The graphics path.</param>
            <param name="transform">The transform to be applied to the graphics path.</param>
            <returns>A Windows GraphicsPath.</returns>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.ForgetLastSegmentIfMoveTo">
            <summary>
            Forget the last segment if it is a moveto.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.EnsureCapacity(System.Int32)">
            <summary>
            Ensures the capacity for one segment and the given number of points.
            </summary>
            <param name="pointCount">The number of points.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.EnsureCapacity(System.Int32,System.Int32)">
            <summary>
            Ensures the capacity for the given number of segments and the given number of points.
            </summary>
            <param name="segmentCount">The number of segments</param>
            <param name="pointCount">The number of points.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Transform(WW.Math.Matrix2D,System.Int32,System.Int32)">
            <summary>
            Apply a transformation to the specified interval.
            </summary>
            <param name="transformation">The transformation.</param>
            <param name="start">The start of the interval.</param>
            <param name="end">The end after the interval.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Transform(WW.Math.Matrix3D,System.Int32,System.Int32)">
            <summary>
            Apply a transformation to the specified interval.
            </summary>
            <param name="transformation">The transformation.</param>
            <param name="start">The start of the interval.</param>
            <param name="end">The end after the interval.</param>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.Transform(WW.Math.Matrix4D,System.Int32,System.Int32)">
            <summary>
            Apply a transformation to the specified interval.
            </summary>
            <param name="transformation">The transformation.</param>
            <param name="start">The start of the interval.</param>
            <param name="end">The end after the interval.</param>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.SegmentCount">
            <summary>
            Get the number of segments in this path.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.PointCount">
            <summary>
            Get the number of coordinates in this path.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.CurrentPoint">
            <summary>
            Get the current point in this path.
            </summary>
            <exception cref="T:System.IndexOutOfRangeException">If there is no segment in this path, compare <see cref="P:WW.Math.Geometry.GeneralShape2D.HasSegments"/></exception>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.FirstPoint">
            <summary>
            Get the first point in this path.
            </summary>
            <exception cref="T:System.IndexOutOfRangeException">If there is no segment in this path, compare <see cref="P:WW.Math.Geometry.GeneralShape2D.HasSegments"/></exception>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.IsFixated">
            <summary>
            Is this path in fixed state?
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.Coordinates">
            <summary>
            Gets the coordinates.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.SegmentTypes">
            <summary>
            Gets the segment types.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.FillMode">
            <summary>
            Gets or sets the fill mode.
            The default value is <see cref="F:WW.Math.Geometry.FillMode.Alternate">FillMode.Alternate</see>.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.GeneralShape2D.SegmentIterator">
            <summary>
            Iterator over the shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.GeneralShape2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.GeneralShape2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Vector2BR">
            <summary>
            Represents a 2D vector struct based on big rationals.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector2BR.Zero">
            <summary>
            The 2D zero vector.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector2BR.XAxis">
            <summary>
            2D X-Axis vector.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Vector2BR.YAxis">
            <summary>
            2D Y-Axis vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Vector2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.#ctor(System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Vector2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Add(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Adds given vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Subtract(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Subtracts given vectors.
            </summary>
            <returns>
            u - p.
            </returns>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Divide(WW.Math.Exact.Vector2BR,WW.Math.Exact.BigRational)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Multiply(WW.Math.Exact.Vector2BR,WW.Math.Exact.BigRational)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.DotProduct(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Calculates the dot product of two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.CrossProduct(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Calculate the cross product of two vectors.
            </summary>
            <param name="u">first vector</param>
            <param name="v">second vector</param>
            <returns>cross product</returns>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Negate(WW.Math.Exact.Vector2BR)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.GetLengthSquared">
            <summary>
            Returns the squared length of the vector.
            </summary>
            <returns>The squared length of the vector. (X*X + Y*Y)</returns>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.CompareAngles(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Compares the angles of the two specified vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.GetQuadrant(WW.Math.Exact.Vector2BR)">
            <summary>
            Gets the quadrant (0-3) in which the vector lies.
            On edge cases the quandrant on the positive x/y-axis is chosen.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Equality(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Tests whether two specified vectors are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Inequality(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Tests whether two specified vectors are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_UnaryNegation(WW.Math.Exact.Vector2BR)">
            <summary>
            Negates the values of the vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Addition(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Subtraction(WW.Math.Exact.Vector2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Subtracts a vector from a vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Multiply(WW.Math.Exact.Vector2BR,WW.Math.Exact.BigRational)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Multiply(WW.Math.Exact.BigRational,WW.Math.Exact.Vector2BR)">
            <summary>
            Multiplies a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Division(WW.Math.Exact.Vector2BR,WW.Math.Exact.BigRational)">
            <summary>
            Divides a vector by a scalar.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Explicit(WW.Math.Exact.Vector2BR)~WW.Math.Exact.BigRational[]">
            <summary>
            Converts the vector to an array of BigRational precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.op_Explicit(WW.Math.Exact.Point2BR)~WW.Math.Exact.Vector2BR">
            <summary>
            Converts given 2D point to a 2D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Vector2BR.Equals(WW.Math.Exact.Vector2BR)">
            <summary>
            Returns <b>true</b> if this vector is equal to specified vector.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Vector2BR.IsZero">
            <summary>
            Gets a value indicating whether this instance is zero.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Vector2BR.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Ray2BR">
            <summary>
            A 2D big rational based ray consisting of a <see cref="P:WW.Math.Exact.Geometry.Ray2BR.Origin"/> and a <see cref="P:WW.Math.Exact.Geometry.Ray2BR.Direction"/>.
            </summary>
            <remarks>
            The ray is represented by 
            <code>x(t) = <see cref="P:WW.Math.Exact.Geometry.Ray2BR.Origin"/> + t * <see cref="P:WW.Math.Exact.Geometry.Ray2BR.Direction"/></code>
            where <code>t</code> may have any value.
            
            If used as a shape the ray is the representation of the parameter interval [0,1].
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.#ctor(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Ray2BR"/> struct.
            </summary>
            <param name="origin">The ray's origin.</param>
            <param name="direction">The ray's direction.</param>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Ray2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.Intersects(WW.Math.Exact.Geometry.Ray2BR,System.Nullable{WW.Math.Exact.Point2BR}@,System.Boolean@)">
            <summary>
            Calculates if 2 lines intersect.
            </summary>
            <param name="other">Other ray for testing intersection.</param>
            <param name="intersection">Resulting intersection if there is one, <c>null</c> otherwise.</param>
            <param name="parallel">
            If lines intersect, then this parameter indicates whether the
            lines are parallel.
            In this case parameter intersection contains no valid value.
            </param>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.GetIntersectionCoefficients(WW.Math.Exact.Geometry.Ray2BR,WW.Math.Exact.Geometry.Ray2BR,System.Nullable{WW.Math.Exact.BigRational}@,System.Nullable{WW.Math.Exact.BigRational}@,System.Boolean@)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p, is null if there is no intersection or if the lines are parallel or if a has a zero direction.</param>
            <param name="q">q, is null if there is no intersection or if the lines are parallel or if b has a zero direction.</param>
            <param name="parallel">Whether the two lines are parallel.</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.Intersects(WW.Math.Exact.Geometry.Ray2BR,WW.Math.Exact.Geometry.Segment2BR)">
            <summary>
            Calculate intersection point between a ray and a segment.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.GetIntersectionCoefficients(WW.Math.Exact.Geometry.Ray2BR,WW.Math.Exact.Geometry.Segment2BR,System.Nullable{WW.Math.Exact.BigRational}@,System.Nullable{WW.Math.Exact.BigRational}@,System.Boolean@)">
            <summary>
            Calculate intersection point between a ray and a segment.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p has value between 0 and 1 when there is 1 intersection.
            When the ray and segment are parallel or if a has a zero direction, then p is set to <c>null</c>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the ray and segment are parallel or if b has a zero length, then q is set to <c>null</c>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the ray and segment are parallel.</param>
            <returns>whether the ray and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Ray2BR.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Exact.Geometry.Segment2BR.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.Contains(WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether given point is on this ray.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.GetDistanceSquared(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the smallest squared distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.GetClosestPoint(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the point on this ray that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.GetLeastSquaresFit(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Gets the least squares fit ray given specified set of points.
            </summary>
            <remarks>
            The least squares fit minimizes the vertical distance of the specified points to
            the best fitting ray.
            </remarks>
            <exception cref="T:System.ArgumentException">
            Thrown when number of points is less than two.
            </exception>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Ray2BR.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Ray2BR.Direction">
            <summary>
            Gets or sets the ray's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Ray2BR.Origin">
            <summary>
            Gets or sets the ray's origin.
            </summary>
        </member>
        <member name="T:WW.LittleEndianBitConverter">
            <summary>
            Represents a little endian bit converter.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Char)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Int16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.UInt16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Int32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.UInt32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Int64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.UInt64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Double)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.GetBytes(System.Single)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToChar(System.Byte[])">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToDouble(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToSingle(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToChar(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.LittleEndianBitConverter.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="T:WW.IO.StreamUtil">
            <summary>
            Contains utility methods for streaming.
            </summary>
        </member>
        <member name="M:WW.IO.StreamUtil.Forward(System.IO.Stream,System.IO.Stream)">
            <summary>
            Forward all data in the source stream to the target stream.
            The source stream position is moved back to its original position afterwards.
            </summary>
            <remarks>
            In case the source is a <see cref="T:System.IO.MemoryStream"/> or <see cref="T:WW.IO.PagedMemoryStream"/>,
            then the forwarding is done more efficiently by directly making use of their internal byte buffers.
            Otherwise the forwarding is done by reading page by page into a temporary byte buffer and writing
            each page to the target.
            </remarks>
        </member>
        <member name="M:WW.IO.StreamUtil.Forward(System.IO.Stream,System.Int32,System.IO.Stream,System.Int32)">
            <summary>
            Forward data of specified length in the source stream to the target stream.
            The source stream position is moved back to its original position afterwards.
            </summary>
            <remarks>
            In case the source is a <see cref="T:System.IO.MemoryStream"/> or <see cref="T:WW.IO.PagedMemoryStream"/>,
            then the forwarding is done more efficiently by directly making use of their internal byte buffers.
            Otherwise the forwarding is done by reading page by page into a temporary byte buffer and writing
            each page to the target.
            </remarks>
        </member>
        <member name="T:WW.Compression.CompressionUtil">
            <summary>
            A collection of compression utility methods.
            </summary>
        </member>
        <member name="M:WW.Compression.CompressionUtil.GetZipStream(System.IO.Stream,System.Boolean,System.Func{System.String,System.Boolean})">
            <summary>
            Gets a zip stream from specified stream.
            Chooses the first zip entry for which the specified zip entry filter returns <c>true</c>.
            </summary>
        </member>
        <member name="M:WW.Compression.CompressionUtil.GetGZipStream(System.IO.Stream,System.Boolean)">
            <summary>
            Gets a gzip stream from specified stream.
            </summary>
        </member>
        <member name="M:WW.Compression.CompressionUtil.GetTarStream(System.IO.Stream,System.Boolean,System.Func{System.String,System.Boolean})">
            <summary>
            Gets a tar stream from specified stream.
            Chooses the first tar entry for which the specified tar entry filter returns <c>true</c>.
            </summary>
        </member>
        <member name="M:WW.Compression.CompressionUtil.GetBzip2Stream(System.IO.Stream,System.Boolean)">
            <summary>
            Gets a bzip2 stream from specified stream.
            </summary>
        </member>
        <member name="M:WW.Compression.CompressionUtil.GetMemoryStream(System.IO.Stream)">
            <summary>
            Stream the contents of specified input stream into a memory stream in case random access to the stream is needed. 
            </summary>
        </member>
        <member name="T:WW.BigEndianBitConverter">
            <summary>
            Represents a big endian bit converter.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Char)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Int16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.UInt16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Int32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.UInt32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Int64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.UInt64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Double)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.GetBytes(System.Single)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToChar(System.Byte[])">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToDouble(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToSingle(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToChar(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.BigEndianBitConverter.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="T:WW.Actions.RotateAroundZInteractor">
            <summary>
            Represent a rotation interactor for 2D rotations around the view axis.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.GetStateForStore">
            <summary>
            Get the current state of this interactor for storage.
            </summary>
            <returns>
            Complete internal state of this object, allowing to restore the current settings
            when the state is restored with <see cref="M:WW.Actions.Interactor.SetStateFromStore(System.Object)"/> method.
            </returns>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.SetStateFromStore(System.Object)">
            <summary>
            Set the current state of this interactor from a previously stored state.
            </summary>
            <param name="state">Interactor state as returned by <see cref="M:WW.Actions.Interactor.GetStateForStore"/></param>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.ResetState">
            <summary>
            Reset the state to the default value.
            </summary>
        </member>
        <member name="M:WW.Actions.RotateAroundZInteractor.OnOrientationChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.RotateAroundZInteractor.OrientationChanged"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.RotateAroundZInteractor.OrientationChanged">
            <summary>
            Occurs when the orientation changed.
            </summary>
        </member>
        <member name="P:WW.Actions.RotateAroundZInteractor.RotationAngle">
            <summary>
            Gets or sets the rotation angle.
            </summary>
            <remarks>
            The angle is measured in radians in counterclockwise direction.
            </remarks>
        </member>
        <member name="T:WW.Actions.ITransaction">
            <summary>
            Represents a transaction (containing commands) that can be committed or rolled back.
            </summary>
        </member>
        <member name="M:WW.Actions.ITransaction.Add(WW.Actions.ICommand)">
            <summary>
            Adds the specified command.
            </summary>
        </member>
        <member name="M:WW.Actions.ITransaction.Commit">
            <summary>
            Commits this transaction.
            </summary>
        </member>
        <member name="M:WW.Actions.ITransaction.Rollback">
            <summary>
            Rollbacks this instance.
            </summary>
        </member>
        <member name="T:WW.WWConstants">
            <summary>
            Wout Ware constants.
            </summary>
        </member>
        <member name="F:WW.WWConstants.ReleaseDateString">
            <summary>
            The software release date string.
            </summary>
        </member>
        <member name="F:WW.WWConstants.Version">
            <summary>
            The software version x.y.
            </summary>
        </member>
        <member name="F:WW.WWConstants.FullVersion">
            <summary>
            The full version a.b.x.y, where a.b. is the .NET framework version.
            </summary>
        </member>
        <member name="T:WW.Math.IntervalD">
            <summary>
            Double-precision interval.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.#ctor(System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.IntervalD"/> class 
            with given values and closed ends.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.#ctor(System.Double,System.Boolean,System.Double,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.IntervalD"/> class 
            with given values and closed ends.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.Equals(System.Object)">
            <summary>
            Returns whether this interval is equal to given object.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.GetHashCode">
            <summary>
            Returns the hashcode.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.Contains(System.Double)">
            <summary>
            Returns <b>true</b> when interval contains given value.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.Overlaps(WW.Math.IntervalD)">
            <summary>
            Returns <b>true</b> when interval overlaps given interval.
            </summary>
        </member>
        <member name="M:WW.Math.IntervalD.GetRestrictedValue(System.Double,System.Double,System.Double)">
            <summary>
            Restrict a value to an interval.
            </summary>
            <param name="value">
            value to restrict, will be mapped to <paramref name="minValue"/> if smaller
            and <paramref name="maxValue"/> if larger, otherwise be left untouched
            </param>
            <param name="minValue">minimal allowed value</param>
            <param name="maxValue">maximal allowed value</param>
            <returns>value restricted to interval</returns>
        </member>
        <member name="P:WW.Math.IntervalD.Min">
            <summary>
            Gets or sets the minimum.
            </summary>
        </member>
        <member name="P:WW.Math.IntervalD.MinClosed">
            <summary>
            Gets or sets whether the <see cref="P:WW.Math.IntervalD.Min">minimum</see> is closed.
            </summary>
        </member>
        <member name="P:WW.Math.IntervalD.Max">
            <summary>
            Gets or sets the maximum.
            </summary>
        </member>
        <member name="P:WW.Math.IntervalD.MaxClosed">
            <summary>
            Gets or sets whether the <see cref="P:WW.Math.IntervalD.Max">maximum</see> is closed.
            </summary>
        </member>
        <member name="P:WW.Math.IntervalD.Delta">
            <summary>
            Gets the difference between <see cref="P:WW.Math.IntervalD.Max"/> and <see cref="P:WW.Math.IntervalD.Min"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Int32,System.Boolean)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Boolean,WW.Math.Vector4D[])">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Boolean,System.Collections.Generic.IList{WW.Math.Vector4D})">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Int32)">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(WW.Math.Vector4D[])">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(System.Collections.Generic.IList{WW.Math.Vector4D})">
            <summary>
            Constructor. Creates an open polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.#ctor(WW.Math.Geometry.Polyline4D)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.GetReverse">
            <summary>
            Gets the reverse polyline.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.GetSubPolyline(System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.GetSubPolyline(System.Collections.Generic.IList{WW.Math.Vector4D},System.Int32,System.Int32)">
            <summary>
            Creates a new polyline using a subset of the specified points.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.GetLength">
            <summary>
            Gets the total length.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.ToPolyline3D">
            <summary>
            Map this to a 3D polyline.
            </summary>
            <returns>3D polyline.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.ToPolyline2D">
            <summary>
            Map this to a 2D polyline.
            </summary>
            <returns>3D polyline.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Polyline4D.GetLength(System.Collections.Generic.IList{WW.Math.Vector4D},System.Boolean)">
            <summary>
            Gets the total length of the polyline defined by specified points.
            </summary>
        </member>
        <member name="T:WW.Math.Point2DC">
            <summary>
            Represents the class counterpart of the <see cref="T:WW.Math.Point2D"/> struct.
            </summary>
            <seealso cref="T:WW.Math.Point2D"/>
        </member>
        <member name="F:WW.Math.Point2DC.X">
            <summary>The x-coordinate.</summary>
        </member>
        <member name="F:WW.Math.Point2DC.Y">
            <summary>The y-coordinate.</summary>
        </member>
        <member name="M:WW.Math.Point2DC.#ctor(System.Double,System.Double)">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.#ctor(System.Double[])">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.#ctor(System.Collections.Generic.IList{System.Double})">
            <summary>
            Initializes this point with given coordinates.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.#ctor(WW.Math.Point2D)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.#ctor(WW.Math.Vector2D)">
            <summary>
            Initializes this point with coordinates from given source point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.Add(WW.Math.Point2DC,WW.Math.Vector2D)">
            <summary>
            Adds specified vector to a point and returns the result.
            </summary>
            <returns>
            p + v.
            </returns>
        </member>
        <member name="M:WW.Math.Point2DC.Subtract(WW.Math.Point2DC,WW.Math.Vector2D)">
            <summary>
            Subtracts specified vector from a point and returns the result.
            </summary>
            <returns>
            p - v.
            </returns>
        </member>
        <member name="M:WW.Math.Point2DC.Subtract(WW.Math.Point2DC,WW.Math.Point2DC)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2D">point</see> between given points.
            </summary>
            <returns>
            a - b.
            </returns>
        </member>
        <member name="M:WW.Math.Point2DC.AreApproxEqual(WW.Math.Point2DC,WW.Math.Point2DC)">
            <summary>
            Tests whether two points are approximately equal using default tolerance value.
            </summary>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2DC.AreApproxEqual(WW.Math.Point2DC,WW.Math.Point2DC,System.Double)">
            <summary>
            Tests whether two points are approximately equal given a tolerance value.
            </summary>
            <param name="a">Point 1.</param>
            <param name="b">Point 2.</param>
            <param name="tolerance">The tolerance value used to test approximate equality.</param>
            <returns><see langword="true"/> if the two points are approximately equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Point2DC.Add(WW.Math.Vector2D)">
            <summary>
            Adds specified vector to this point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.Subtract(WW.Math.Vector2D)">
            <summary>
            Subtracts vector from this point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.ToPoint2D">
            <summary>
            Creates a <see cref="T:WW.Math.Point2D"/> instance from this point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.GetHashCode">
            <summary>
            See <see cref="M:System.ValueType.GetHashCode"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.Equals(System.Object)">
            <summary>
            See <see cref="M:System.ValueType.Equals(System.Object)"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.ToString">
            <summary>
            Returns a string representation of this object (format: "x, y").
            </summary>
            <remarks>
            To string conversion is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Point2DC.Parse(System.String)">
            <summary>
            Parse given string (format: "x,y").
            </summary>
            <remarks>
            Parsing is done using the <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">is thrown when the string could not be parsed.</exception>
        </member>
        <member name="M:WW.Math.Point2DC.op_Equality(WW.Math.Point2DC,WW.Math.Point2DC)">
            <summary>
            Tests whether two specified points are equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Inequality(WW.Math.Point2DC,WW.Math.Point2DC)">
            <summary>
            Tests whether two specified points are not equal.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Addition(WW.Math.Point2DC,WW.Math.Vector2D)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Addition(WW.Math.Vector2D,WW.Math.Point2DC)">
            <summary>
            Adds a vector to a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Subtraction(WW.Math.Point2DC,WW.Math.Vector2D)">
            <summary>
            Subtracts a vector from a point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Subtraction(WW.Math.Point2DC,WW.Math.Point2DC)">
            <summary>
            Returns the difference <see cref="T:WW.Math.Vector2D">vector</see> between given points.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Explicit(WW.Math.Point2DC)~System.Double[]">
            <summary>
            Converts the point to an array of double precision floating point values.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Explicit(WW.Math.Point3D)~WW.Math.Point2DC">
            <summary>
            Converts given 3D point to a 2D point as follows:
            result = new Point2D(p.X, p.Y);
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.op_Explicit(WW.Math.Vector4D)~WW.Math.Point2DC">
            <summary>
            Converts given 4D vector to a 2D point as follows:
            result = new Point2D(p.X / p.W, p.Y / p.W);
            </summary>
            <remarks>
            This conversion only works if <c>p.W</c> is unequal to zero.
            (when equal to zero the vector represents a direction).
            </remarks>
        </member>
        <member name="M:WW.Math.Point2DC.op_Explicit(WW.Math.Vector2D)~WW.Math.Point2DC">
            <summary>
            Converts given 2D vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Point2DC.Equals(WW.Math.Point2DC)">
            <summary>
            Returns <b>true</b> if this point is equal to specified point.
            </summary>
        </member>
        <member name="P:WW.Math.Point2DC.Item(System.Int32)">
            <summary>
            Indexer.
            </summary>
        </member>
        <member name="T:WW.Math.Transformer4DList">
            <summary>
            Represents a list of 4D transformers.
            The transformations are executed from 0 to Count - 1.
            </summary>
        </member>
        <member name="M:WW.Math.Transformer4DList.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Transformer4DList"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Transformer4DList.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Transformer4DList"/> class.
            </summary>
            <param name="capacity">The capacity.</param>
        </member>
        <member name="M:WW.Math.Transformer4DList.#ctor(System.Collections.Generic.IEnumerable{WW.Math.ITransformer4D})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Transformer4DList"/> class.
            </summary>
            <param name="collection">The collection.</param>
        </member>
        <member name="M:WW.Math.Transformer4DList.Transform(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 4D vector.
            </summary>
        </member>
        <member name="M:WW.Math.Transformer4DList.TransformToPoint2D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Transformer4DList.TransformToPoint3D(WW.Math.Vector4D)">
            <summary>
            Transforms the given 4D vector to a 3D point.
            </summary>
        </member>
        <member name="M:WW.Math.Transformer4DList.TransformTo4D(WW.Math.Point2D)">
            <summary>
            Transforms the given 2D point to a 4D vector.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.ShapeTool">
            <summary>
            Toolbox for handling of <see cref="T:WW.Math.Geometry.IShape2D"/> objects.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.ShapeTool.DefaultEpsilon">
            <summary>
            Default value for epsilon in <see cref="M:WW.Math.Geometry.ShapeTool.GetFlattened(WW.Math.Geometry.IShape2D,System.Double)"/> 
            and <see cref="!:GetFlattened(WW.Math.Matrix4D,WW.Math.Geometry.IShape2D,double)"/> methods: 
            1% relative accuracy.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.ShapeTool.QuadToCubicCorrection">
            <summary>
            Correction factor when converting quadratic to cubic bezier.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.ShapeTool.NullShape">
            <summary>
            Null shape, which does not contain anything.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddQuadBezierToBounds(WW.Math.Bounds2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add the bounds of a quadratic bezier segment to a bounding box.
            </summary>
            <param name="bounds">The bounds.</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddCubicBezierToBounds(WW.Math.Bounds2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add the bounds of a cubic bezier segment to a bounding box.
            </summary>
            <param name="bounds">The bounds.</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
            <param name="p3">The fourth control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetQuadBezierPoint(System.Double,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Evaluate a quadratic bezier spline at the given parameter.
            </summary>
            <param name="t">The parameter in the interval 0 to 1</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
            <returns>Point on bezier curve at parameter <paramref name="t"/></returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetCubicBezierPoint(System.Double,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Evaluate a cubic bezier spline at the given parameter.
            </summary>
            <param name="t">The parameter in the interval 0 to 1</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
            <param name="p3">The fourth control point.</param>
            <returns>Point on bezier curve at parameter <paramref name="t"/></returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetBounds(WW.Math.Geometry.IShape2D)">
            <summary>
            Get the bounds of a shape.
            </summary>
            <param name="shape">Shape.</param>
            <returns>The shape's bounds.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddToBounds(WW.Math.Bounds2D,WW.Math.Geometry.ISegment2DIterator)">
            <summary>
            Add the segments of a segment iterator to a bounding box.
            </summary>
            <param name="bounds">Bounds where the segment bounds are added.</param>
            <param name="iterator">Segment iterator.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetBounds(WW.Math.Geometry.IShape2D,WW.Math.Matrix2D)">
            <summary>
            Get the bounds of a transformed shape.
            </summary>
            <param name="shape">Shape.</param>
            <param name="transformation">Transformation to apply before calculating bounds.</param>
            <returns>The shape's bounds.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddToBounds(WW.Math.Bounds2D,WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix2D)">
            <summary>
            Add the segments of a segment iterator to a bounding box.
            </summary>
            <param name="bounds">Bounds where the segment bounds are added.</param>
            <param name="iterator">Segment iterator.</param>
            <param name="transformation">Transformation applied to iterator points before adding to bounds.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetBounds(WW.Math.Geometry.IShape2D,WW.Math.Matrix3D)">
            <summary>
            Get the bounds of a transformed shape.
            </summary>
            <param name="shape">Shape.</param>
            <param name="transformation">Transformation to apply before calculating bounds.</param>
            <returns>The shape's bounds.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddToBounds(WW.Math.Bounds2D,WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix3D)">
            <summary>
            Add the segments of a segment iterator to a bounding box.
            </summary>
            <param name="bounds">Bounds where the segment bounds are added.</param>
            <param name="iterator">Segment iterator.</param>
            <param name="transformation">Transformation applied to iterator points before adding to bounds.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AreEqual(WW.Math.Geometry.IShape2D,WW.Math.Geometry.IShape2D)">
            <summary>
            Compare two shapes and return whether there forms are equal.
            </summary>
            <param name="shape1">First shape.</param>
            <param name="shape2">Second shape.</param>
            <returns><c>true</c> if the two shapes are equal, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.SplitIntoUnbroken(WW.Math.Geometry.IShape2D)">
            <summary>
            Splits a shape into sub shapes, which are unbroken. I.e. each of the sub shapes will have only one MoveTo segment.
            </summary>
            <param name="shape">Shape to split.</param>
            <returns>Array of unbroken sub shapes.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetTransformation(WW.Math.Geometry.IShape2D,WW.Math.Geometry.IShape2D,System.Double)">
            <summary>
            Get the transformation which transforms one shape into another.
            </summary>
            <param name="shape1">First shape.</param>
            <param name="shape2">Second shape.</param>
            <param name="accuracy">Accuracy to use for mapping.</param>
            <returns>
            The transformation which transforms <paramref name="shape1"/> into <paramref name="shape2"/>, 
            or <c>null</c> if there is no such transformation.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetBounds(WW.Math.Geometry.IShape2D,WW.Math.Matrix4D)">
            <summary>
            Get the bounds of a transformed shape.
            </summary>
            <param name="shape">Shape.</param>
            <param name="transformation">Transformation to apply before calculating bounds.</param>
            <returns>The shape's bounds.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddToBounds(WW.Math.Bounds2D,WW.Math.Geometry.ISegment2DIterator,WW.Math.Matrix4D)">
            <summary>
            Add the segments of a segment iterator to a bounding box.
            </summary>
            <param name="bounds">Bounds where the segment bounds are added.</param>
            <param name="iterator">Segment iterator.</param>
            <param name="transformation">Transformation applied to iterator points before adding to bounds.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetFlattened(WW.Math.Geometry.IShape2D,System.Double)">
            <summary>
            Create a flattened version of a shape.
            </summary>
            <param name="shape">The shape to flatten.</param>
            <param name="epsilon">
            Epsilon value for determining accuracy. Absolute if greater zero, an internal default if zero,
            and relative to the extent of the shape if less than zero.
            </param>
            <returns>List of polylines created from the shape</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.GetFlattened(WW.Math.ITransformer4D,WW.Math.Geometry.IShape2D,System.Double)">
            <summary>
            Create a transformed flattened version of a shape.
            </summary>
            <param name="transformation">The transformation to use.</param>
            <param name="shape">The shape to flatten.</param>
            <param name="epsilon">
            Epsilon value for determining accuracy. Absolute if greater zero, an internal default if zero,
            and relative to the extent of the shape if less than zero. It is evaluated on the untransformed shape!
            </param>
            <returns>List of polylines created from the shape</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.QuadToCubicBezier(WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Convert the control polygon of a quadratic bezier segment to cubic form.
            </summary>
            <param name="p0"></param>
            <param name="p1"></param>
            <param name="p2"></param>
            <returns>Pair with the two inner control points p1 and p2. p0 stays as it is, and incoming p2 becomes p3.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddShapeToGraphicsPath(System.Drawing.Drawing2D.GraphicsPath,WW.Math.Geometry.IShape2D,System.Boolean)">
            <summary>
            Adds a shape to a Windows <see cref="T:System.Drawing.Drawing2D.GraphicsPath"/>.
            </summary>
            <param name="path">The path.</param>
            <param name="shape">The shape to add.</param>
            <param name="connect">Connect the shape?</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddShapeToGraphicsPath(System.Drawing.Drawing2D.GraphicsPath,WW.Math.Geometry.ISegment2DIterator,System.Boolean)">
            <summary>
            Adds a shape defined by a <see cref="T:WW.Math.Geometry.ISegment2DIterator"/>
            to a Windows <see cref="T:System.Drawing.Drawing2D.GraphicsPath"/>.
            </summary>
            <param name="path">The path.</param>
            <param name="iterator">The iterator.</param>
            <param name="connect">Connect the shape?</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.ToGraphicsPath(WW.Math.Geometry.IShape2D)">
            <summary>
            Converts specified shape to a graphics path.
            </summary>
            <param name="shape">The shape to convert.</param>
            <returns>An equivalent GDI graphics path.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.ToGraphicsPath(WW.Math.Geometry.IShape2D,WW.Math.Matrix3D)">
            <summary>
            Converts specified shape to a graphics path, allowing for an additional transformation.
            </summary>
            <param name="shape">The shape to convert.</param>
            <param name="transform">Transformation to apply during conversion.</param>
            <returns>An equivalent GDI graphics path.</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.DebugShape(WW.Math.Geometry.IShape2D)">
            <summary>
            Get construction code for a given shape.
            </summary>
            <param name="shape">shape</param>
            <returns>code which would construct a similar shape</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.ExactToString(System.Double)">
            <summary>
            Helper for <see cref="M:WW.Math.Geometry.ShapeTool.DebugShape(WW.Math.Geometry.IShape2D)"/>. Return a string representing a double most exactly.
            </summary>
            <param name="v">double value</param>
            <returns>string representation</returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddInnerQuadBezierExtremaToBounds(WW.Math.Bounds2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add the bounds defined by inner extrema of a quadratic bezier segment to a bounding box.
            I.e. this will not add the points <paramref name="p0"/> and <paramref name="p2"/>.
            </summary>
            <param name="bounds">The bounds.</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddInnerCubicBezierExtremaToBounds(WW.Math.Bounds2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Add the bounds defined by inner extrema of a cubic bezier segment to a bounding box.
            I.e. this will not add the points <paramref name="p0"/> and <paramref name="p3"/>.
            </summary>
            <param name="bounds">The bounds.</param>
            <param name="p0">The first control point.</param>
            <param name="p1">The second control point.</param>
            <param name="p2">The third control point.</param>
            <param name="p3">The fourth control point.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.Square(System.Double)">
            <summary>
            Square a value.
            </summary>
            <param name="value">The value.</param>
            <returns>Squared <paramref name="value"/></returns>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddQuadSegmentToPolyline(WW.Math.Geometry.Polyline2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Add the points of a quadratic bezier segment to a polyline.
            </summary>
            <remarks>
            It is assumed that the last point of the polyline is the first point of the control polygon.
            </remarks>
            <param name="polyline">The Polyline where the approximation points are added.</param>
            <param name="p0">Coordinates of the first control polygon point</param>
            <param name="p1">Coordinates of the second control polygon point</param>
            <param name="p2">Coordinates of the third control polygon point</param>
            <param name="epsilonSquared">Squared accuracy epsilon, a small value greater than 0.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddQuadSegmentToPolyline(WW.Math.Geometry.Polyline4D,WW.Math.ITransformer4D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Add the transformed points of a quadratic bezier segment to a 4D polyline.
            </summary>
            <param name="polyline">The Polyline where the approximation points are added.</param>
            <param name="transformation">The transformation to use.</param>
            <param name="p0">Coordinates of the first control polygon point</param>
            <param name="p1">Coordinates of the second control polygon point</param>
            <param name="p2">Coordinates of the third control polygon point</param>
            <param name="epsilonSquared">Squared accuracy epsilon, a small value greater than 0.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddCubicSegmentToPolyline(WW.Math.Geometry.Polyline2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Add the points of a quadratic bezier segment to a polyline.
            </summary>
            <remarks>
            It is assumed that the last point of the polyline is the first point of the control polygon.
            </remarks>
            <param name="polyline">The Polyline where the approximation points are added.</param>
            <param name="p0">Coordinates of the first control polygon point</param>
            <param name="p1">Coordinates of the second control polygon point</param>
            <param name="p2">Coordinates of the third control polygon point</param>
            <param name="p3">Coordinates of the fourth control polygon point</param>
            <param name="epsilonSquared">Squared accuracy epsilon, a small value greater than 0.</param>
        </member>
        <member name="M:WW.Math.Geometry.ShapeTool.AddCubicSegmentToPolyline(WW.Math.Geometry.Polyline4D,WW.Math.ITransformer4D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,WW.Math.Point2D,System.Double)">
            <summary>
            Add the transformed points of a quadratic bezier segment to a polyline.
            </summary>
            <remarks>
            It is assumed that the last point of the polyline is the first point of the control polygon.
            </remarks>
            <param name="polyline">The Polyline where the approximation points are added.</param>
            <param name="transformation">The transformation to use.</param>
            <param name="p0">Coordinates of the first control polygon point</param>
            <param name="p1">Coordinates of the second control polygon point</param>
            <param name="p2">Coordinates of the third control polygon point</param>
            <param name="p3">Coordinates of the fourth control polygon point</param>
            <param name="epsilonSquared">Squared accuracy epsilon, a small value greater than 0.</param>
        </member>
        <member name="T:WW.Math.Geometry.ShapeTool.NullShape2D">
            <summary>
            Helper class for <see cref="F:WW.Math.Geometry.ShapeTool.NullShape"/>.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D">
            <summary>
            Implements viewport clipping using Blinn clipping.
            </summary>
            <remarks>
            See pdf document titled "Clipping" by William Shoaff, March 12, 2002.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
            <remarks>
            This is the slowest clipping option because clipping bounds are flexible.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.#ctor(WW.Math.Geometry.BlinnClipper2D.IInsideTester[])">
            <summary>
            Constructor.
            </summary>
            <param name="insideTesters">Inside testers.</param>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.IInsideTester">
            <summary>
            Tester for being inside of the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.IInsideTester.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
            <param name="p">The coordinate.</param>
            <returns><c>true</c> if the coordinate is inside, <c>false</c> if it is outside or on the clipping region</returns>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.IInsideTester.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
            <param name="p1">First point of line.</param>
            <param name="p2">Second point of line.</param>
            <returns>Intersection point. This point is only useful if one of the two points is inside and the other outside.</returns>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Generic">
            <summary>
            Contains generic inside testers against an arbitrary min/max x/y coordinate.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Generic.Under">
            <summary>
            Point is inside if real y is smaller than or equal to top.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Under.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.BlinnClipper2D.Generic.Under"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Under.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Under.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
            <returns>
            Intersection point. This point is only useful if one of the two points is inside and the other outside.
            </returns>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Generic.Above">
            <summary>
            Point is inside if real y is greater than or equal to bottom.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Above.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.BlinnClipper2D.Generic.Above"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Above.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.Above.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Generic.LeftOf">
            <summary>
            Point is inside if real x is smaller than or equal to right.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.LeftOf.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.BlinnClipper2D.Generic.LeftOf"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.LeftOf.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.LeftOf.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Generic.RightOf">
            <summary>
            Point is inside if real x is greater than or equal to left.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.RightOf.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.BlinnClipper2D.Generic.RightOf"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.RightOf.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Generic.RightOf.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Fixed">
            <summary>
            Contains IInsideTester implementations for clipping box: (0, 0) - (1, 1).
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Fixed.Under">
            <summary>
            Point is inside if real y is smaller than or equal to 1.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.Under.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.Under.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Fixed.Above">
            <summary>
            Point is inside if real y is greater than or equal to 0.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.Above.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.Above.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Fixed.LeftOf">
            <summary>
            Point is inside if real x is smaller than or equal to 1.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.LeftOf.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.LeftOf.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.BlinnClipper2D.Fixed.RightOf">
            <summary>
            Point is inside if real x is greater than or equal to 0.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.RightOf.IsInside(WW.Math.Point2D)">
            <summary>
            Is the given coordinate inside the clipping region.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.BlinnClipper2D.Fixed.RightOf.GetIntersection(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Get the intersection of a line through two points with the clipping boundary.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.ActiveLookupList`2">
            <summary>
            Represents an active list with dictionary lookup by a key (doesn't have to be unique).
            Provides events that are raised when the list is modified.
            </summary>
            <remarks>
            The <see cref="M:WW.Collections.Generic.ActiveLookupList`2.IndexOf(`1)"/> method (and therefore also <see cref="M:WW.Collections.Generic.ActiveLookupList`2.Remove(`1)"/>) 
            is not made faster by the dictionary lookup and therefore is still O(n).
            Lookup by key is made faster by dictionary lookup.
            Inserting duplicate keys becomes slow when there are many O(n * n), this
            implementation assumes lookup is more common than insertion.
            </remarks>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.LookupList`2"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.LookupList`2"/> class.
            </summary>
            <param name="keyEqualityComparer">The key equality comparer.</param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.IndexOf(`1)">
            <summary>
            Determines the index of a specific item in the list.
            </summary>
            <param name="item">The object to locate in the list.</param>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Insert(System.Int32,`1)">
            <summary>
            Inserts an item to the list at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into the list.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> is not a valid index in the list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.RemoveAt(System.Int32)">
            <summary>
            Removes the list item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="index"/> is not a valid index in the list.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Add(`1)">
            <summary>
            Adds an item to the list.
            </summary>
            <remarks>
            When adding an item with a duplicate key, it is added behind the last item with the same key.
            </remarks>
            <param name="item">The object to add to the list.</param>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Clear">
            <summary>
            Removes all items from the list.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Contains(`1)">
            <summary>
            Determines whether the list contains a specific value.
            </summary>
            <param name="item">The object to locate in the list.</param>
            <returns>
            true if <paramref name="item"/> is found in the list; otherwise, false.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.CopyTo(`1[],System.Int32)">
            <summary>
            Copies the elements of the list to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from list. 
            The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">
            	<paramref name="array"/> is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            	<paramref name="arrayIndex"/> is less than 0.
            </exception>
            <exception cref="T:System.ArgumentException">
            	<paramref name="array"/> is multidimensional.
            -or-
            <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.
            -or-
            The number of elements in the source list is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
            -or-
            Type <c>TItem</c> cannot be cast automatically to the type of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Remove(`1)">
            <summary>
            Removes the first occurrence of a specific object from the list.
            </summary>
            <param name="item">The object to remove from the list.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the list; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original list.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The list is read-only.
            </exception>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerator`1"/> object that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.GetFirst(`0)">
            <summary>
            Gets the first item with the specified key.
            </summary>
            <returns>Returns <c>default(TItem)</c> if not found.</returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.Contains(`0)">
            <summary>
            Determines whether this list contains the specified key.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.GetKeyForItem(`1)">
            <summary>
            Gets the key for specified item.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnSet(System.Int32,`1,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Set"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnSetting(System.Int32,`1,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Setting"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnAdded(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Added"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnAdding(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Adding"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnRemoving(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Removing"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveLookupList`2.OnRemoved(System.Int32,`1)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveLookupList`2.Removed"/> event.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveLookupList`2.Item(System.Int32)">
            <summary>
            Gets the <see cref="!:TItem"/> at the specified index.
            </summary>
            <exception cref="T:System.NotSupportedException">
            The list is read-only or caller is trying to set a value.
            </exception>
        </member>
        <member name="P:WW.Collections.Generic.ActiveLookupList`2.Count">
            <summary>
            Gets the number of elements contained in the list.
            </summary>
            <value></value>
            <returns>
            The number of elements contained in the list.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.ActiveLookupList`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the list is read-only.
            </summary>
            <value></value>
            <returns>true if the list is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:WW.Collections.Generic.ActiveLookupList`2.Item(`0)">
            <summary>
            Gets all items that match the specified key.
            </summary>
        </member>
        <member name="T:WW.Actions.SimpleZoomWheelInteractor">
            <summary>
            Simple zoom wheel interactor based on a <see cref="T:WW.Actions.SimpleTransformationProviderBase"/>.
            </summary>
        </member>
        <member name="F:WW.Actions.SimpleZoomWheelInteractor.DefaultScalingPerClick">
            <summary>
            The default scaling per mouse wheel click.
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleZoomWheelInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleZoomWheelInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="M:WW.Actions.SimpleZoomWheelInteractor.ProcessMouseWheel(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse wheel has rotated.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleZoomWheelInteractor.OnFinishedSetting(System.EventArgs)">
            <summary>
            Send the <see cref="E:WW.Actions.SimpleZoomWheelInteractor.FinishedSetting"/> event.
            </summary>
            <param name="e">Event arguments</param>
        </member>
        <member name="E:WW.Actions.SimpleZoomWheelInteractor.FinishedSetting">
            <summary>
            Event cast when the interactor did a change.
            </summary>
        </member>
        <member name="P:WW.Actions.SimpleZoomWheelInteractor.ScalingPerClick">
            <summary>
            Gets/sets the scaling factor per mouse wheel click.
            </summary>
        </member>
        <member name="T:WW.Actions.SimplePanInteractor">
            <summary>
            Interactor which pans a model based on a <see cref="T:WW.Actions.SimpleTransformationProviderBase"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.SimplePanInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimplePanInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="M:WW.Actions.SimplePanInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimplePanInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimplePanInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="T:WW.Math.Geometry.Rectangle2D">
            <summary>
            2D double-precision rectangle (axis-aligned).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.Rectangle2D.Empty">
            <summary>
            Empty rectangle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.#ctor(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Constructor.
            </summary>
            <param name="corner1">
            Corner 1 containing the minimum coordinates (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(WW.Math.Point2D,WW.Math.Point2D)"/>).
            </param>
            <param name="corner2">
            Corner 1 containing the maximum coordinates (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(WW.Math.Point2D,WW.Math.Point2D)"/>).
            </param>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor.
            </summary>
            <param name="x1">
            The minimum x-coordinate (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(System.Double,System.Double,System.Double,System.Double)"/>).
            </param>
            <param name="y1">
            The minimum y-coordinate (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(System.Double,System.Double,System.Double,System.Double)"/>).
            </param>
            <param name="x2">
            The maximum x-coordinate (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(System.Double,System.Double,System.Double,System.Double)"/>).
            </param>
            <param name="y2">
            The maximum y-coordinate (this is not enforced, but see <see cref="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(System.Double,System.Double,System.Double,System.Double)"/>).
            </param>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.Canonize">
            <summary>
            Enforce the restriction that <see cref="P:WW.Math.Geometry.Rectangle2D.Corner1"/> coordinates are smaller than  <see cref="P:WW.Math.Geometry.Rectangle2D.Corner2"/> coordinates.
            </summary>
            <remarks>
            This will swap corner coordinates if necessary.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.Contains(WW.Math.Point2D)">
            <summary>
            Returns whether this rectangle contains the specified point.
            </summary>
            <remarks>
            For performance reasons the implementation assumes that the rectangle is <see cref="M:WW.Math.Geometry.Rectangle2D.Canonize"/>d.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.Equals(WW.Math.Geometry.Rectangle2D)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.Equals(System.Object)">
            <summary>
            Indicates whether this instance and a specified object are equal.
            </summary>
            <returns>
            true if <paramref name="obj"/> and this instance are the same type and represent the same value; otherwise, false.
            </returns>
            <param name="obj">Another object to compare to. </param>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer that is the hash code for this instance.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(WW.Math.Point2D,WW.Math.Point2D)">
            <summary>
            Create a canonized rectangle from two opposite corner points.
            </summary>
            <remarks>
            This enforces the restriction that <see cref="P:WW.Math.Geometry.Rectangle2D.Corner1"/> coordinates are smaller than <see cref="P:WW.Math.Geometry.Rectangle2D.Corner2"/> coordinates. 
            </remarks>
            <param name="p1">Corner point.</param>
            <param name="p2">Opposite corner point.</param>
            <returns>Canonized rectangle.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.CreateCanonized(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Create a canonized rectangle from two opposite corner points.
            </summary>
            <remarks>
            This enforces the restriction that <see cref="P:WW.Math.Geometry.Rectangle2D.Corner1"/> coordinates are smaller than <see cref="P:WW.Math.Geometry.Rectangle2D.Corner2"/> coordinates. 
            </remarks>
            <param name="x1">
            X coordinate of corner point.
            </param>
            <param name="y1">
            Y coordinate of corner point.
            </param>
            <param name="x2">
            X coordinate of opposite corner point.
            </param>
            <param name="y2">
            Y coordinate of opposite corner point.
            </param>
            <returns>Canonized rectangle.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.X1">
            <summary>
            Gets or sets the minimum x-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.X2">
            <summary>
            Gets or sets the maximum x-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Y1">
            <summary>
            Gets or sets the minimum y-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Y2">
            <summary>
            Gets or sets the maximum y-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Corner1">
            <summary>
            Gets or sets corner 1 with minimum x and y-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Corner2">
            <summary>
            Gets or sets corner 2 with maximum x and y-coordinate.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Width">
            <summary>
            Gets the width.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Height">
            <summary>
            Gets the height.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Center">
            <summary>
            Gets the center point.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.Size">
            <summary>
            Gets the size.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Rectangle2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Rectangle2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Arc2D">
            <summary>
            Represents a 2D double precision arc.
            </summary>
            <remarks>
            An arc consists of a <see cref="P:WW.Math.Geometry.Arc2D.Center"/> and a <see cref="P:WW.Math.Geometry.Arc2D.Radius"/>, its angle ranges from
            <see cref="P:WW.Math.Geometry.Arc2D.StartAngle"/> until <see cref="P:WW.Math.Geometry.Arc2D.EndAngle"/> in counter clockwise direction.
            Angle zero is in the direction of <see cref="F:WW.Math.Vector2D.XAxis"/>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.#ctor(WW.Math.Point2D,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Arc2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Arc2D"/> class.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Segment2D)">
            <summary>
            Gets the intersection point(s) with specified line segment.
            </summary>
            <param name="segment">The line segment.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line segment is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the line segment intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Segment2D,System.Double)">
            <summary>
            Gets the intersection point(s) with specified line segment.
            </summary>
            <param name="segment">The line segment.</param>
            <param name="precision">The precision.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line segment is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the line segment intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Line2D)">
            <summary>
            Gets the intersection point(s) with specified line.
            </summary>
            <param name="line">The line.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line segment is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the line segment intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Line2D,System.Double)">
            <summary>
            Gets the intersection point(s) with specified line.
            </summary>
            <param name="line">The line.</param>
            <param name="precision">The precision.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the line is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the line intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Ray2D,System.Boolean@)">
            <summary>
            Gets the intersection point(s) with specified ray.
            </summary>
            <param name="ray">The ray.</param>
            <param name="isTangent">if set to <c>true</c> the ray is tangent to the arc.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the ray is tangent to the circle.
            </item>
            <item>
                An array with 2 element if the ray intersects the circle at two points.
            </item>
            </list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Ray2D,System.Double,System.Boolean@)">
            <summary>
            Gets the intersection point(s) with specified ray.
            </summary>
            <param name="ray">The ray.</param>
            <param name="precision">The precision.</param>
            <param name="isTangent">if set to <c>true</c> the ray is tangent to the arc.</param>
            <returns>
            Returns one of the three following possibilities:
            <list type="bullet">
            		<item>
            			<c>null</c> if there is no intersection.
            </item>
            		<item>
            An array with 1 element if the ray is tangent to the circle.
            </item>
            		<item>
            An array with 2 element if the ray intersects the circle at two points.
            </item>
            	</list>
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Arc2D,WW.Math.Geometry.Arc2D,WW.Math.Point2D[]@,WW.Math.Geometry.Arc2D[]@)">
            <summary>
            Gets the intersections between specified arcs.
            </summary>
            <param name="arc1">Arc 1.</param>
            <param name="arc2">Arc 2.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the arcs touch.
            </item>
            <item>
                An array with 2 element if the arcs intersect eachother at 2 points or overlap (partially).
            </item>
            </list>
            </param>
            <param name="overlappingArcs">
            Resulting overlapping arcs in case the arcs overlap, <c>null</c> otherwise.
            If the arcs overlap, contains either 1 or 2 elements.
            </param>
            <returns>Returns <c>true</c> if there are either intersections or overlapping arcs.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Arc2D,WW.Math.Geometry.Arc2D,System.Double,WW.Math.Point2D[]@,WW.Math.Geometry.Arc2D[]@)">
            <summary>
            Gets the intersections between specified arcs.
            </summary>
            <param name="arc1">Arc 1.</param>
            <param name="arc2">Arc 2.</param>
            <param name="precision">The precision.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the arcs touch.
            </item>
            <item>
                An array with 2 elements if the arcs intersect eachother at 2 points.
            </item>
            </list>
            </param>
            <param name="overlappingArcs">
            Resulting overlapping arcs in case the arcs overlap, <c>null</c> otherwise.
            If the arcs overlap, contains either 1 or 2 elements.
            </param>
            <returns>Returns <c>true</c> if there are either intersections or overlapping arcs.</returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Arc2D,WW.Math.Point2D[]@,System.Boolean@)">
            <summary>
            Gets the intersections between specified circle and arc.
            </summary>
            <param name="circle">The circle.</param>
            <param name="arc">The arc.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the arc and circle touch.
            </item>
            <item>
                An array with 2 elements if the arc and circle intersect eachother at 2 points.
            </item>
            </list>
            </param>
            <param name="overlap">if set to <c>true</c> the arc overlaps the circle.</param>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetIntersections(WW.Math.Geometry.Circle2D,WW.Math.Geometry.Arc2D,System.Double,WW.Math.Point2D[]@,System.Boolean@)">
            <summary>
            Gets the intersections between specified circle and arc.
            </summary>
            <param name="circle">The circle.</param>
            <param name="arc">The arc.</param>
            <param name="precision">The precision.</param>
            <param name="intersections">
            The intersections, one of the three following possibilities:
            <list type="bullet">
            <item>
                <c>null</c> if there is no intersection.
            </item>
            <item>
                An array with 1 element if the arc and circle touch.
            </item>
            <item>
                An array with 2 elements if the arc and circle intersect eachother at 2 points.
            </item>
            </list>
            </param>
            <param name="overlap">if set to <c>true</c> the arc overlaps the circle.</param>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.ContainsAngleProjection(WW.Math.Point2D)">
            <summary>
            Determines whether this arc contains the angle projection of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.ContainsAngleProjection(WW.Math.Point2D,System.Double)">
            <summary>
            Determines whether this arc contains the angle projection of specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.ContainsAngle(System.Double)">
            <summary>
            Determines whether this arc contains the specified angle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.ContainsAngle(System.Double,System.Double)">
            <summary>
            Determines whether this arc contains the specified angle.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetPointAtAngle(System.Double)">
            <summary>
            Gets the point at the specified angle on the circle determined by 
            <see cref="P:WW.Math.Geometry.Arc2D.Center"/> and <see cref="P:WW.Math.Geometry.Arc2D.Radius"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetPointAtAngle(WW.Math.Point2D,System.Double,System.Double)">
            <summary>
            Gets the point at the specified angle on the circle determined by 
            <paramref name="center"/> and <paramref name="radius"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetProjection(WW.Math.Point2D)">
            <summary>
            Gets the projected angle (radians) of the specified point.
            </summary>
            <remarks>
            Subtracts the <see cref="P:WW.Math.Geometry.Arc2D.Center"/> point from the specified point, and uses <see cref="!:Math.Atan2"/>
            to calculate the angle of the resulting vector.
            </remarks>
            <returns>
            An angle, θ, measured in radians, such that -π≤θ≤π.
            </returns>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetStartPoint">
            <summary>
            Gets the point on this arc at the <see cref="P:WW.Math.Geometry.Arc2D.StartAngle"/>.
            </summary>
            <seealso cref="P:WW.Math.Geometry.Arc2D.StartAngle"/>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetEndPoint">
            <summary>
            Gets the point on this arc at the <see cref="P:WW.Math.Geometry.Arc2D.EndAngle"/>.
            </summary>
            <seealso cref="P:WW.Math.Geometry.Arc2D.EndAngle"/>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.ToString">
            <summary>
            Returns a string representation.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.CreateIterator">
            <summary>
            Creates an iterator over this shape.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.AddToBounds(WW.Math.Bounds2D)">
            <summary>
            Add the bounds of this shape to the given bounds.
            </summary>
            <param name="bounds">Bounds where to add this shape's bounds</param>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.GetOverlappingArcs(WW.Math.Geometry.Arc2D,WW.Math.Geometry.Arc2D,System.Double,WW.Math.Geometry.Arc2D[]@)">
            <summary>
            Get overlapping arcs for specified arcs that have 
            approximately the same center and radius.
            </summary>
            <remarks>
            Has 4 cases, depending on which arc includes the 0 angle (= 2 * π).
            </remarks>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.Center">
            <summary>
            Gets or sets the center.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.Radius">
            <summary>
            Gets or sets the radius.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.EndAngle">
            <summary>
            Gets or sets the end angle (radians).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.StartAngle">
            <summary>
            Gets or sets the start angle (radians).
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.IncludedAngle">
            <summary>
            Gets the included angle (radians).
            </summary>
            <remarks>
            Gets the included angle between the <see cref="P:WW.Math.Geometry.Arc2D.StartAngle">start</see> and <see cref="P:WW.Math.Geometry.Arc2D.EndAngle">end angle</see>.
            Note that this angle is always positive, as this arc class is always
            counter clock wise. So if the start angle is 1.3 * π and the end angle is 0.2 * π, then
            the included angle = ((2 + 0.2) - 1.3) * π = 0.9 * π.
            </remarks>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.HasSegments">
            <summary>
            Does this path contain any segments?
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.Arc2D.SegmentIterator">
            <summary>
            Helper class for iteration.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.SegmentIterator.MoveNext">
            <summary>
            Move to the next segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Arc2D.SegmentIterator.Current(WW.Math.Point2D[],System.Int32)">
            <summary>
            Get the current segment.
            </summary>
            <param name="points">Output of the points of the current segment, array must have at least capacity 3 at <paramref name="offset"/></param>
            <param name="offset">Offset into the array to write the result to</param>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.SegmentIterator.CurrentType">
            <summary>
            Get the type of the current segment.
            </summary>
            <returns>Type of the current segment</returns>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.SegmentIterator.TotalSegmentCount">
            <summary>
            Get the total number of segments.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Arc2D.SegmentIterator.TotalPointCount">
            <summary>
            Get the total number of points.
            Return <c>-1</c> if number is unknown.
            </summary>
        </member>
        <member name="T:WW.Math.Constants">
            <summary>
            Constants.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.PI">
            <summary>
            The value of PI.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.TwoPI">
            <summary>
            The value of (2 * PI).
            </summary>
        </member>
        <member name="F:WW.Math.Constants.SquaredPI">
            <summary>
            The value of (PI*PI).
            </summary>
        </member>
        <member name="F:WW.Math.Constants.HalfPI">
            <summary>
            The value of PI/2.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.PrecisionF">
            <summary>
            Single precision.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.PrecisionD">
            <summary>
            Double precision.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.RadiansToDegrees">
            <summary>
            A conversion factor from radians to degrees.
            </summary>
        </member>
        <member name="F:WW.Math.Constants.DegreesToRadians">
            <summary>
            A conversion factor from degrees to radians.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.ItemEventHandler`1">
            <summary>
            Item event handler delegate.
            </summary>
        </member>
        <member name="T:WW.Collections.Generic.ItemSetEventHandler`1">
            <summary>
            Item set event handler delegate.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveList`1"/> class.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveList`1"/> class.
            </summary>
            <param name="collection">
            The collection whose elements are copied to the new list.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Collections.Generic.ActiveList`1"/> class.
            </summary>
            <param name="capacity">
            The number of elements that the new list can initially store.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.IndexOf(`0)">
            <summary>
            Searches for the specified object and returns the zero-based index 
            of the first occurrence within the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <param name="item">
            The object to locate in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. The value can be a null reference.
            </param>
            <returns></returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an element into the <see cref="T:WW.Collections.Generic.ActiveList`1"/> at the specified index. 
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The object to insert. The value can be a null reference.</param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.RemoveAt(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <param name="index">
            The zero-based index of the element to remove.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Add(`0)">
            <summary>
            Adds an object to the end of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <param name="item">
            The object to be added to the end of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            The value can be a null reference.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Clear">
            <summary>
            Removes all elements from the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Contains(`0)">
            <summary>
            Determines whether an element is in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>.
            </summary>
            <param name="item">
            The object to locate in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. The value can be a null reference.
            </param>
            <returns>
            true if item is found in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>; otherwise, false.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/> to a compatible one-dimensional array, 
            starting at the specified index of the target array.
            </summary>
            <param name="array">
            The one-dimensional <see cref="T:System.Array"/> that is the destination 
            of the elements copied from <see cref="T:WW.Collections.Generic.ActiveList`1"/>. The Array must have zero-based indexing.
            </param>
            <param name="arrayIndex">
            The zero-based index in array at which copying begins.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <param name="item">
            The object to remove from the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. The value can be a null reference.
            </param>
            <returns>
            true if item is successfully removed; otherwise, false. 
            This method also returns false if item was not found in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection. 
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IList#Add(System.Object)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.IList">IList</see>. 
            </summary>
            <param name="value">The Object to add to the 
            <see cref="T:System.Collections.IList">IList</see>.
            </param>
            <returns>The position into which the new element was inserted.</returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IList#Remove(System.Object)">
            <summary>
            Removes the first occurrence of a specific object from the 
            <see cref="T:System.Collections.IList">IList</see>.
            </summary>
            <param name="value">
            The object to remove from the 
            <see cref="T:System.Collections.IList">IList</see>.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IList#Contains(System.Object)">
            <summary>
            Determines whether the 
            <see cref="T:System.Collections.IList">IList</see>
            contains a specific value.
            </summary>
            <param name="value">
            The Object to locate in the <see cref="T:System.Collections.IList">IList</see>.
            </param>
            <returns>
            true if item is found in the IList; otherwise, false.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IList#IndexOf(System.Object)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.IList">IList</see>.
            </summary>
            <param name="value">
            The object to locate in the <see cref="T:System.Collections.IList">IList</see>.
            </param>
            <returns>
            The index of item if found in the list; otherwise, –1.
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IList#Insert(System.Int32,System.Object)">
            <summary>
            Inserts an item to the <see cref="T:System.Collections.IList">IList</see> at the specified index.
            </summary>
            <param name="index">
            The zero-based index at which item should be inserted.
            </param>
            <param name="value">
            The object to insert into the <see cref="T:System.Collections.IList">IList</see>.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the 
            <see cref="T:System.Collections.ICollection">ICollection</see>
            to an Array, starting at a particular Array index.
            </summary>
            <param name="array">
            The one-dimensional Array that is the destination of the elements copied from 
            <see cref="T:System.Collections.ICollection">ICollection</see>. 
            The Array must have zero-based indexing.
            </param>
            <param name="index">
            The zero-based index in array at which copying begins.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator">IEnumerator</see> 
            object that can be used to iterate through the collection.  
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
            <param name="collection">
            The collection whose elements should be added to the end of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            The collection itself cannot be a null reference (<c>Nothing</c> in Visual Basic), 
            but it can contain elements that are a null reference (<c>Nothing</c> in Visual Basic), 
            if type T is a reference type.
            </param>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.ToArray">
            <summary>
            Copies the elements of the <see cref="T:WW.Collections.Generic.ActiveList`1"/> to a new array.
            </summary>
            <returns>
            An array containing copies of the elements of the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </returns>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Sort">
            <summary>
            Sorts the elements in the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/> using the default comparer.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Sort(System.Collections.Generic.Comparer{`0})">
            <summary>
            Sorts the elements in the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/> using the specified <c>System.Comparison</c>. 
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Sort(System.Collections.Generic.IComparer{`0})">
            <summary>
            Sorts the elements in the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/> using the specified comparer.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer{`0})">
            <summary>
            Sorts the elements in the entire <see cref="T:WW.Collections.Generic.ActiveList`1"/> using the specified comparer.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindAll(System.Predicate{`0})">
            <summary>
            Retrieves all the elements that match the conditions defined by the specified predicate.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.Find(System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the first occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindIndex(System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the first occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindIndex(System.Int32,System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the first occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the first occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindLast(System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the last occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindLastIndex(System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the last occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindLastIndex(System.Int32,System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the last occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.FindLastIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>
            Searches for an element that matches the conditions defined by the specified predicate, 
            and returns the zero-based index of the last occurrence within the entire list.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnSet(System.Int32,`0,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Set"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnSetting(System.Int32,`0,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Setting"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnAdded(System.Int32,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Added"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnAdding(System.Int32,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Adding"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnRemoving(System.Int32,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Removing"/> event.
            </summary>
        </member>
        <member name="M:WW.Collections.Generic.ActiveList`1.OnRemoved(System.Int32,`0)">
            <summary>
            Fires <see cref="E:WW.Collections.Generic.ActiveList`1.Removed"/> event.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index. 
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.Count">
            <summary>
            Gets the number of elements actually contained in the <see cref="T:WW.Collections.Generic.ActiveList`1"/>. 
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:WW.Collections.Generic.ActiveList`1"/> is read-only.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.System#Collections#IList#Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index. 
            </summary>
            <param name="index">
            The zero-based index of the element to get or set.
            </param>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.System#Collections#IList#IsReadOnly">
            <summary>
            Gets a value indicating whether the 
            <see cref="T:System.Collections.IList">IList</see> is read-only. 
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.System#Collections#IList#IsFixedSize">
            <summary>
            Gets a value indicating whether the 
            <see cref="T:System.Collections.IList">IList</see> has a fixed size. 
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the 
            <see cref="T:System.Collections.ICollection">ICollection</see>.
            </summary>
        </member>
        <member name="P:WW.Collections.Generic.ActiveList`1.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the 
            <see cref="T:System.Collections.ICollection">ICollection</see> is synchronized (thread safe).
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.SegmentType">
            <summary>
            Types of segments of shapes.
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.SegmentType.MoveTo">
            <summary>
            Move to point segment (1 point).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.SegmentType.LineTo">
            <summary>
            Line to point segment (1 point).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.SegmentType.QuadTo">
            <summary>
            Quadratic curve segment (2 points: control + end).
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.SegmentType.CubicTo">
            <summary>
            Cubic curve segment (3 points: control1, control2 + end)
            </summary>
        </member>
        <member name="F:WW.Math.Geometry.SegmentType.Close">
            <summary>
            Close segment (line to last MoveTo point, no points given)
            </summary>
        </member>
        <member name="T:WW.InternalException">
            <summary>
            Generalization of ApplicationException.
            </summary>
            <remarks>
            This should be used internally instead of ApplicationException, because ApplicationException is
            not available for Silverlight.
            </remarks>
        </member>
        <member name="T:WW.Actions.SimpleRotateAroundZInteractor">
            <summary>
            Simple interactor based on <see cref="T:WW.Actions.SimpleTransformationProviderBase"/> which rotates the 
            model around the view axis (center point of view).
            </summary>
        </member>
        <member name="M:WW.Actions.SimpleRotateAroundZInteractor.#ctor(WW.Actions.SimpleTransformationProviderBase)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.SimpleRotateAroundZInteractor"/> class.
            </summary>
            <param name="transformationProvider">The transformation provider.</param>
        </member>
        <member name="M:WW.Actions.SimpleRotateAroundZInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRotateAroundZInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.SimpleRotateAroundZInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="T:WW.Actions.RectZoomInteractor">
            <summary>
            Represents a rectangle zoom interactor.
            </summary>
        </member>
        <member name="F:WW.Actions.RectZoomInteractor.MinimalMovement">
            <summary>
            Minimal movement necessary so zooming is possible, in pixel.
            </summary>
        </member>
        <member name="F:WW.Actions.RectZoomInteractor.RectangleColor">
            <summary>
            The zoom rectangle color.
            </summary>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.ProcessMouseButtonDown(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is pressed.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.ProcessMouseMove(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when the mouse moves.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.ProcessMouseButtonUp(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Call this method when a mouse button is released.
            </summary>
            <returns>
            Returns whether this interactor consumed the mouse event.
            </returns>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.PropagateTo(WW.Actions.IScaler,WW.Actions.ITranslator)">
            <summary>
            Propagate the current setting of this element to a scaler and a translator.
            </summary>
            <param name="scaler">The scaler.</param>
            <param name="translator">The translator.</param>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.OnRectangleChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="E:WW.Actions.RectZoomInteractor.RectangleChanged"/> event.
            </summary>
        </member>
        <member name="E:WW.Actions.RectZoomInteractor.RectangleChanged">
            <summary>
            Occurs when the rectangle changed.
            </summary>
        </member>
        <member name="P:WW.Actions.RectZoomInteractor.ZoomRectangle">
            <summary>
            Get the rectangle currently defined by the mouse movements, in screen coordinates.
            </summary>
        </member>
        <member name="P:WW.Actions.RectZoomInteractor.NormalizedZoomRectangle">
            <summary>
            Get the rectangle currently defined by the mouse movements, in normalized coordinates.
            </summary>
        </member>
        <member name="P:WW.Actions.RectZoomInteractor.ValidForZoom">
            <summary>
            Is the value of the interactor valid for zooming.
            </summary>
        </member>
        <member name="P:WW.Actions.RectZoomInteractor.UserHint">
            <summary>
            Gets the hint to the user about what input the interactor is expecting next.
            </summary>
        </member>
        <member name="T:WW.Actions.RectZoomInteractor.WinFormsDrawable">
            <summary>
            Represents a Windows Forms drawable for <see cref="T:WW.Actions.RectZoomInteractor"/>.
            </summary>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.WinFormsDrawable.#ctor(WW.Actions.RectZoomInteractor)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.RectZoomInteractor.WinFormsDrawable"/> class.
            </summary>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.WinFormsDrawable.Draw(System.Windows.Forms.PaintEventArgs,WW.Drawing.GraphicsHelper,WW.Actions.InteractorDrawableContext)">
            <summary>
            Draws this drawable.
            </summary>
        </member>
        <member name="M:WW.Actions.RectZoomInteractor.WinFormsDrawable.GetCursor">
            <summary>
            Gets the cursor. Returns <c>null</c> if the cursor should remain unchanged.
            </summary>
        </member>
        <member name="T:WW.Actions.InteractorMouseEventArgs">
            <summary>
            A class containing interactor mouse event arguments.
            </summary>
        </member>
        <member name="M:WW.Actions.InteractorMouseEventArgs.#ctor(WW.Actions.CanonicalMouseEventArgs,WW.Actions.InteractionContext)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Actions.InteractorMouseEventArgs"/> class.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorMouseEventArgs.MouseEventArgs">
            <summary>
            Gets the mouse event args.
            </summary>
        </member>
        <member name="P:WW.Actions.InteractorMouseEventArgs.InteractionContext">
            <summary>
            Gets the interaction context.
            </summary>
        </member>
        <member name="T:WW.Windows.Forms.PropertyGrid2">
            <summary>
            PropertyGrid that allows tabbing through items and has globalized tooltips.
            </summary>
        </member>
        <member name="M:WW.Windows.Forms.PropertyGrid2.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:WW.Windows.Forms.PropertyGrid2.Refresh">
            <summary>
            Refresh.
            </summary>
            <remarks>
            Sets up globalized tooltips for "Categorized" and
            "Alphabetic".
            </remarks>
        </member>
        <member name="M:WW.Windows.Forms.PropertyGrid2.GetPropertyGrid(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
            Gets the property grid from specified type descriptor context.
            </summary>
            <returns>
            <c>null</c> if the owner grid is not of type <see cref="T:System.Windows.Forms.PropertyGrid"/>.
            </returns>
        </member>
        <member name="M:WW.Windows.Forms.PropertyGrid2.ProcessCmdKey(System.Windows.Forms.Message@,System.Windows.Forms.Keys)">
            <summary>
            Do special processing for Tab key.
            </summary>
        </member>
        <member name="P:WW.Windows.Forms.PropertyGrid2.ExpandOnTab">
            <summary>
            Gets or sets whether to expand an item when pressing tab.
            </summary>
            <remarks>
            When <c>true</c> items are also unexpanded when pressing shift-tab.
            Note that the enter key will always work to expand.
            </remarks>
        </member>
        <member name="P:WW.Windows.Forms.PropertyGrid2.SplitterPosition">
            <summary>
            Sets the splitter position.
            </summary>
            <remarks>
            Initial value is zero. 
            When zero the original property grid splitter position is unaffected. 
            </remarks>
        </member>
        <member name="P:WW.Windows.Forms.PropertyGrid2.IsReadOnly">
            <summary>
            Gets or sets a value indicating whether this property grid is read only.
            Note that this property only works in conjuction with <see cref="T:WW.ComponentModel.SortedPropertiesTypeConverter"/>,
            or any other type converter that uses this property.
            </summary>
        </member>
        <member name="T:WW.SwappingBitConverter">
            <summary>
            Represents a bit converter that swaps the bytes on input/output.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Char)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Int16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.UInt16)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Int32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.UInt32)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Int64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.UInt64)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Double)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.GetBytes(System.Single)">
            <summary>
            Returns the specified value as an array of bytes.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToChar(System.Byte[])">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt16(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt32(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt64(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToDouble(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToSingle(System.Byte[])">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToChar(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to a <see cref="T:System.Char"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int16"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt16"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int32"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt32"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Int64"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.UInt64"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Double"/>.
            </summary>
        </member>
        <member name="M:WW.SwappingBitConverter.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Converts the specified bytes to an <see cref="T:System.Single"/>.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.#ctor(WW.Math.Point2D,WW.Math.Vector2D)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Ray2D"/> struct.
            </summary>
            <param name="origin">The ray's origin.</param>
            <param name="direction">The ray's direction.</param>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Geometry.Ray2D"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.Intersects(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Calculate intersection point between a ray and a line segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersection(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Segment2D)">
            <summary>
            Calculate intersection point between a ray and a line segment.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersection(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Ray2D)">
            <summary>
            Calculate intersection point between two rays.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersection(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Ray2D,System.Boolean@)">
            <summary>
            Calculate intersection point between two rays.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersection(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Ray2D,System.Double,System.Boolean@)">
            <summary>
            Calculate intersection point between two rays.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersectionCoefficients(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Segment2D,System.Double@,System.Double@,System.Boolean@)">
            <summary>
            Calculate intersection point between a ray and a segment.
            </summary>
            <param name="a">Ray a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p (may note be smaller than zero).
            When the ray and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the ray and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the line and segment are parallel.</param>
            <returns>whether the ray and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetIntersectionCoefficients(WW.Math.Geometry.Ray2D,WW.Math.Geometry.Segment2D,System.Double@,System.Double@,System.Boolean@,System.Double)">
            <summary>
            Calculate intersection point between a ray and a segment.
            </summary>
            <param name="a">Ray a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p (may not be smaller than zero).
            When the ray and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the ray and segment are parallel, then p is set to <see cref="F:System.Double.NaN"/>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the ray and segment are parallel.</param>
            <param name="precision">the precision.</param>
            <returns>whether the line and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Geometry.Line2D.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Geometry.Segment2D.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Geometry.Segment2D.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetDistance(WW.Math.Point2D)">
            <summary>
            Returns the smallest distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetDistanceSquared(WW.Math.Point2D)">
            <summary>
            Returns the smallest squared distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.GetClosestPoint(WW.Math.Point2D)">
            <summary>
            Returns the point on this ray that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Geometry.Ray2D.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray2D.Direction">
            <summary>
            Gets or sets the ray's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Geometry.Ray2D.Origin">
            <summary>
            Gets or sets the ray's origin.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.SortedPropertiesTypeConverter">
            <summary>
            This class makes it possible to: 
            globalize property display names and desriptions,
            sort properties and set the DisplayName to a property with an attribute.
            Also all property characteristics can be changed dynamically if needed.
            </summary>
            <remarks>
            Set a class's <see cref="T:System.ComponentModel.TypeConverter"/> to this class to enable
            globalization and dynamic property characteristics.
            <para/>
            The display name and description for a property are obtained
            from a resource file if specified by the <see cref="T:WW.ComponentModel.GlobalizedPropertyAttribute"/>.
            The resource file is expected to be named namespace.classname.resources.
            Resources are expected to be named PropertyName_DisplayName,
            PropertyName_Description PropertyName_Category (all optional).
            Also sorts using the <see cref="T:WW.ComponentModel.PropertyIndexAttribute"/> attribute.
            <para/>
            Specify <see cref="T:System.ComponentModel.DisplayNameAttribute"/> for simpler usage (not globalized).
            <para/>
            If a property has the <see cref="T:WW.ComponentModel.PropertyAttributesProviderAttribute"/> attribute
            then the delegate specified is called for its runtime <see cref="T:WW.ComponentModel.PropertyAttributes"/>.
            <para/>
            See also 
            <seealso cref="T:System.ComponentModel.DisplayNameAttribute"/>
            <seealso cref="T:WW.ComponentModel.GlobalizedPropertyAttribute"/>
            <seealso cref="T:WW.ComponentModel.GlobalizedTypeAttribute"/>
            <seealso cref="T:WW.ComponentModel.PropertyAttributesProviderAttribute"/>
            <seealso cref="T:WW.ComponentModel.PropertyIndexAttribute"/>
            </remarks>
        </member>
        <member name="M:WW.ComponentModel.SortedPropertiesTypeConverter.GetPropertyAttributes(System.ComponentModel.PropertyDescriptor,System.Object,System.String)">
            <summary>
            Get property attributes for given property descriptor and target object.
            </summary>
        </member>
        <member name="T:WW.ComponentModel.GlobalizedTypeAttribute">
            <summary>
            Optional attribute for detailed specification of where
            <see cref="!:PropertiesDeluxeTypeConverter"/> should look for its resources.
            </summary>
            <remarks>
            See also <seealso cref="T:WW.ComponentModel.GlobalizedPropertyAttribute"/>
            </remarks>
        </member>
        <member name="P:WW.ComponentModel.GlobalizedTypeAttribute.BaseName">
            <summary>
            Place where <see cref="!:ResourceManager"/> can find its resources.
            </summary>
        </member>
        <member name="T:WW.Math.Geometry.NoMoreSegmentsException">
            <summary>
            Exception throw if undefined segment is accessed.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Matrix3BR.Zero">
            <summary>
            3-dimensional multi precision zero matrix.
            </summary>
        </member>
        <member name="F:WW.Math.Exact.Matrix3BR.Identity">
            <summary>
            3-dimensional multi precision identity matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> structure with the specified values.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(WW.Math.Exact.BigRational[])">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(System.Collections.Generic.IList{WW.Math.Exact.BigRational})">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> structure with the specified values.
            </summary>
            <param name="elements">An array containing the matrix values in row-major order.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> structure with the specified values.
            </summary>
            <param name="column1">A <see cref="T:WW.Math.Exact.Vector3BR"/> instance holding values for the first column.</param>
            <param name="column2">A <see cref="T:WW.Math.Exact.Vector3BR"/> instance holding values for the second column.</param>
            <param name="column3">A <see cref="T:WW.Math.Exact.Vector3BR"/> instance holding values for the third column.</param>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.#ctor(WW.Math.Exact.Matrix3BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Matrix3BR"/> class using a given matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Add(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Adds two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Subtract(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <remarks>
            result[row, column] = a[row, column] - b[row, column]
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Multiply(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Multiplies two matrices.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transpose(WW.Math.Exact.Matrix3BR)">
            <summary>
            Transposes a matrix.
            </summary>
            <param name="m">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the transposed matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetHashCode">
            <summary>
            Returns the hashcode for this instance.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to
            the specified object.
            </summary>
            <param name="obj">An object to compare to this instance.</param>
            <returns><see langword="true"/> if <paramref name="obj"/> is a <see cref="T:WW.Math.Exact.Matrix3BR"/> and has the same values as this instance; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.ToString">
            <summary>
            Returns a string representation of this object.
            </summary>
            <returns>A string representation of this object.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transform(WW.Math.Exact.Vector2BR)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transform(WW.Math.Exact.Point2BR)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transform(WW.Math.Exact.Vector3BR)">
            <summary>
            Transforms given vector by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transform(WW.Math.Exact.Point3BR)">
            <summary>
            Transforms given point by this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.TransformTo2BR(WW.Math.Exact.Point3BR)">
            <summary>
            Transforms given point by this matrix and returns a 2D point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetDeterminant">
            <summary>
            Calculates the determinant value of the matrix.
            </summary>
            <returns>The determinant value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetAdjoint">
            <summary>
            Calculates the adjoint of the matrix.
            </summary>
            <returns>A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the adjoint of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetInverse">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <remarks>
            It is not always possible to invert a matrix, in which case you'll get a
            matrix containing infinite values. See the <see cref="M:WW.Math.Exact.Matrix3BR.GetInverse(System.Boolean@)"/> method for
            a method which indicates whether inversion was possible or not.
            </remarks>
            <returns>A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetInverse(System.Boolean@)">
            <summary>
            Calculates the inverse of the matrix.
            </summary>
            <param name="couldInvert">set to <c>true</c> if the inversion was possible and <c>false</c> otherwise</param>
            <returns>A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the inverse of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetTranspose">
            <summary>
            Gets the transpose of this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetMinor(System.Int32,System.Int32)">
            <summary>
            Build a 2x2 matrix from from the current matrix without the given row and column.
            </summary>
            <param name="removeRow">The row to remove.</param>
            <param name="removeColumn">The column to remove.</param>
            <returns>A <see cref="T:WW.Math.Exact.Matrix2BR"/> instance containing the result Minor.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.GetTrace">
            <summary>
            Calculates the trace of the matrix which is the sum of its diagonal elements.
            </summary>
            <returns>Returns the trace value of the matrix.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Transpose">
            <summary>
            Transposes this matrix.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Equality(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Tests whether two specified matrices are equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Inequality(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Tests whether two specified matrices are not equal.
            </summary>
            <param name="a">The left-hand matrix.</param>
            <param name="b">The right-hand matrix.</param>
            <returns><see langword="true"/> if the two matrices are not equal; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Addition(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Adds two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the sum.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Subtraction(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Subtracts a matrix from a matrix.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the difference.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Multiply(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Matrix3BR)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <param name="b">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Matrix3BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Multiply(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Vector3BR)">
            <summary>
            Transforms given vector by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <param name="vector">A <see cref="T:WW.Math.Exact.Vector3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Vector3BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.op_Multiply(WW.Math.Exact.Matrix3BR,WW.Math.Exact.Point3BR)">
            <summary>
            Transforms given point by a matrix.
            </summary>
            <param name="matrix">A <see cref="T:WW.Math.Exact.Matrix3BR"/> instance.</param>
            <param name="point">A <see cref="T:WW.Math.Exact.Point3BR"/> instance.</param>
            <returns>A new <see cref="T:WW.Math.Exact.Point3BR"/> instance containing the result.</returns>
        </member>
        <member name="M:WW.Math.Exact.Matrix3BR.Equals(WW.Math.Exact.Matrix3BR)">
            <summary>
            Returns <b>true</b> if this matrix is equal to specified matrix.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Matrix3BR.Item(System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by an index
            where index = 3 * row + column.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Matrix3BR.Item(System.Int32,System.Int32)">
            <summary>
            Indexer allowing to access the matrix elements by row and column.
            </summary>
        </member>
        <member name="T:WW.Math.Exact.Geometry.Line2BR">
            <summary>
            A 2D big rational based line consisting of a <see cref="P:WW.Math.Exact.Geometry.Line2BR.Origin"/> and a <see cref="P:WW.Math.Exact.Geometry.Line2BR.Direction"/>.
            </summary>
            <remarks>
            The line is represented by 
            <code>x(t) = <see cref="P:WW.Math.Exact.Geometry.Line2BR.Origin"/> + t * <see cref="P:WW.Math.Exact.Geometry.Line2BR.Direction"/></code>
            where <code>t</code> may have any value.
            
            If used as a shape the line is the representation of the parameter interval [0,1].
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.#ctor(WW.Math.Exact.Point2BR,WW.Math.Exact.Vector2BR)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Line2BR"/> struct.
            </summary>
            <param name="origin">The line's origin.</param>
            <param name="direction">The line's direction.</param>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.#ctor(WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational,WW.Math.Exact.BigRational)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Line2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:WW.Math.Exact.Geometry.Line2BR"/> struct.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.Intersects(WW.Math.Exact.Geometry.Line2BR,System.Nullable{WW.Math.Exact.Point2BR}@,System.Boolean@)">
            <summary>
            Calculates if 2 lines intersect.
            </summary>
            <param name="other">Other line for testing intersection.</param>
            <param name="intersection">Resulting intersection if there is one, <c>null</c> otherwise.</param>
            <param name="parallel">
            If lines intersect, then this parameter indicates whether the
            lines are parallel.
            In this case parameter intersection contains no valid value.
            </param>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.GetIntersectionCoefficients(WW.Math.Exact.Geometry.Line2BR,WW.Math.Exact.Geometry.Line2BR,System.Nullable{WW.Math.Exact.BigRational}@,System.Nullable{WW.Math.Exact.BigRational}@,System.Boolean@)">
            <summary>
            Calculate intersection parameters between two lines.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Line b.</param>
            <param name="p">p, is null if there is no intersection or if the lines are parallel or if a has a zero direction.</param>
            <param name="q">q, is null if there is no intersection or if the lines are parallel or if b has a zero direction.</param>
            <param name="parallel">Whether the two lines are parallel.</param>
            <returns>whether the two lines intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Origin">Origin</see> + q * <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Direction">Direction</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.Intersects(WW.Math.Exact.Geometry.Line2BR,WW.Math.Exact.Geometry.Segment2BR)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.GetIntersectionCoefficients(WW.Math.Exact.Geometry.Line2BR,WW.Math.Exact.Geometry.Segment2BR,System.Nullable{WW.Math.Exact.BigRational}@,System.Nullable{WW.Math.Exact.BigRational}@,System.Boolean@)">
            <summary>
            Calculate intersection point between a line and a segment.
            </summary>
            <param name="a">Line a.</param>
            <param name="b">Segment b.</param>
            <param name="p">
            p has value between 0 and 1 when there is 1 intersection.
            When the line and segment are parallel or if a has a zero direction, then p is set to <c>null</c>.
            </param>
            <param name="q">
            q has value between 0 and 1 when there is 1 intersection.
            When the line and segment are parallel or if b has a zero length, then q is set to <c>null</c>.
            </param>
            <param name="areParallel">is set to <c>true</c> when the line and segment are parallel.</param>
            <returns>whether the line and segment intersect.</returns>
            <remarks>
            The results is the solution of equation
            <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Origin">Origin</see> + p * <paramref name="a"/>.<see cref="P:WW.Math.Exact.Geometry.Line2BR.Direction">Direction</see> =
            <paramref name="b"/>.<see cref="P:WW.Math.Exact.Geometry.Segment2BR.Start">Start</see> + q * <paramref name="b"/>.<see cref="M:WW.Math.Exact.Geometry.Segment2BR.GetDelta">GetDelta()</see>.
            </remarks>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.Contains(WW.Math.Exact.Point2BR)">
            <summary>
            Returns whether given point is on this line.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.GetDistanceSquared(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the smallest squared distance between the ray
            and specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.GetClosestPoint(WW.Math.Exact.Point2BR)">
            <summary>
            Returns the point on this line that is closest to the specified point.
            </summary>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.GetLeastSquaresFit(System.Collections.Generic.IList{WW.Math.Exact.Point2BR})">
            <summary>
            Gets the least squares fit line given specified set of points.
            </summary>
            <remarks>
            The least squares fit minimizes the vertical distance of the specified points to
            the best fitting line.
            </remarks>
            <exception cref="T:System.ArgumentException">
            Thrown when number of points is less than two.
            </exception>
        </member>
        <member name="M:WW.Math.Exact.Geometry.Line2BR.ToString">
            <summary>
            Returns string representation.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Line2BR.Direction">
            <summary>
            Gets or sets the line's direction.
            </summary>
        </member>
        <member name="P:WW.Math.Exact.Geometry.Line2BR.Origin">
            <summary>
            Gets or sets the line's origin.
            </summary>
        </member>
    </members>
</doc>
