<?xml version="1.0"?>
<doc>
    <assembly>
        <name>devDept.Geometry</name>
    </assembly>
    <members>
        <member name="T:devDept.Geometry.Converters.ushortHexTypeConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.Point3DConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="M:devDept.Geometry.Converters.Point3DConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <exclude/>
        </member>
        <member name="M:devDept.Geometry.Converters.Point3DConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <exclude/>
        </member>
        <member name="M:devDept.Geometry.Converters.Point3DConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <exclude/>
        </member>
        <member name="M:devDept.Geometry.Converters.Point3DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <exclude/>
        </member>
        <member name="T:devDept.Geometry.Converters.Point2DConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.Point4DConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="M:devDept.Geometry.Converters.Point4DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <exclude/>
        </member>
        <member name="T:devDept.Geometry.Converters.Point4DConverter.QuaternionConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.QuaternionConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.PlaneConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.Vector2DConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="T:devDept.Geometry.Converters.Vector3DConverter">
            <exclude/>
            <excludetoc/>
        </member>
        <member name="M:devDept.Geometry.Converters.Vector3DConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <exclude/>
        </member>
        <member name="T:devDept.Geometry.MomentOfInertia">
            <summary>
            Moment of inertia and radii of gyration values.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Ix">
            <summary>
            Moments of inertia about X coordinate axis.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Iy">
            <summary>
            Moments of inertia about Y coordinate axis.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Iz">
            <summary>
            Moments of inertia about Z coordinate axis.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Rx">
            <summary>
            Radii of gyration about X coordinate axis.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Ry">
            <summary>
            Radii of gyration about Y coordinate axis.
            </summary>
        </member>
        <member name="F:devDept.Geometry.MomentOfInertia.Rz">
            <summary>
            Radii of gyration about Z coordinate axis.
            </summary>
        </member>
        <member name="T:devDept.Geometry.AreaAndVolume">
            <summary>
            Base class for area and volume properties calculation.
            </summary>
        </member>
        <member name="M:devDept.Geometry.AreaAndVolume.GetResultsAboutWorld(System.Double,System.Double)">
            <summary>
            This method is called to obtain the results.
            </summary>
            <param name="world">Moments of Inertia about world coordinate axes</param>
        </member>
        <member name="M:devDept.Geometry.AreaAndVolume.GetResultsAboutCentroid(System.Double,devDept.Geometry.Point3D,System.Double)">
            <summary>
            This method is called to obtain the results.
            </summary>
            <param name="xx">Second moment X</param>
            <param name="yy">Second moment Y</param>
            <param name="zz">Second moment Z</param>
            <param name="centroid">Area Moments of Inertia about centroid coordinate axes</param> 
        </member>
        <member name="P:devDept.Geometry.AreaAndVolume.Centroid">
            <summary>
            Gets centroid.
            </summary>
        </member>
        <member name="T:devDept.Geometry.AreaProperties">
            <summary>
            Area properties of a planar polygon or area properties of a solid defined by a triangle mesh.
            </summary>
        </member>
        <member name="M:devDept.Geometry.AreaProperties.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.AreaProperties.#ctor(devDept.Geometry.Plane,System.Collections.Generic.IList{devDept.Geometry.Point3D})">
            <summary>
            Planar polygon constructor.
            </summary>
            <param name="pln">Polygon plane</param>
            <param name="vList">Polygon vertices</param>
        </member>
        <member name="M:devDept.Geometry.AreaProperties.Add(devDept.Geometry.Plane,System.Collections.Generic.IList{devDept.Geometry.Point3D})">
            <summary>
            Accumulates additional segments.
            </summary>
            <param name="pln">Polygon plane</param>
            <param name="vList">Polygon vertices</param>
        </member>
        <member name="M:devDept.Geometry.AreaProperties.Add(System.Collections.Generic.IList{devDept.Geometry.Point3D},System.Collections.Generic.IList{devDept.Geometry.IndexTriangle})">
            <summary>
            Accumulate additional triangles.
            </summary>
            <param name="vList">Vertices</param>
            <param name="tList">Triangles</param>
        </member>
        <member name="M:devDept.Geometry.AreaProperties.GetResults(System.Double,devDept.Geometry.Point3D,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,devDept.Geometry.MomentOfInertia@,devDept.Geometry.MomentOfInertia@)">
            <summary>
            This method is called to obtain the results.
            </summary>
            <param name="a">Area</param> 
            <param name="C">Centroid</param>
            <param name="x">First moment X</param>
            <param name="y">First moment Y</param>
            <param name="z">First moment Z</param>
            <param name="xx">Second moment X</param>
            <param name="yy">Second moment Y</param>
            <param name="zz">Second moment Z</param>
            <param name="xy">Product moment XY</param>
            <param name="zx">Product moment ZX</param>
            <param name="yz">Product moment YZ</param>
            <param name="world">Moments of Inertia about world coordinate axes</param>
            <param name="centroid">Area Moments of Inertia about centroid coordinate axes</param>
        </member>
        <member name="P:devDept.Geometry.AreaProperties.Area">
            <summary>
            Gets area.
            </summary>
        </member>
        <member name="P:devDept.Geometry.AreaProperties.Centroid">
            <summary>
            Gets centroid.
            </summary>
        </member>
        <member name="T:devDept.Geometry.VolumeProperties">
            <summary>
            Volume properties of a solid defined by a triangle mesh.
            </summary>
        </member>
        <member name="M:devDept.Geometry.VolumeProperties.#ctor">
            <summary>
            Empty construtor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.VolumeProperties.#ctor(System.Collections.Generic.IList{devDept.Geometry.Point3D},System.Collections.Generic.IList{devDept.Geometry.IndexTriangle})">
            <summary>
            Triangle list constructor.
            </summary>
            <param name="vList">Vertices</param>
            <param name="tList">Triangles</param>
        </member>
        <member name="M:devDept.Geometry.VolumeProperties.Add(System.Collections.Generic.IList{devDept.Geometry.Point3D},System.Collections.Generic.IList{devDept.Geometry.IndexTriangle})">
            <summary>
            Accumulates additional triangles.
            </summary>
            <param name="vList">Vertices</param>
            <param name="tList">Triangles</param>
        </member>
        <member name="M:devDept.Geometry.VolumeProperties.GetResults(System.Double,devDept.Geometry.Point3D,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@,devDept.Geometry.MomentOfInertia@,devDept.Geometry.MomentOfInertia@)">
            <summary>
            This method is called to obtain the results.
            </summary>
            <param name="m">Mass</param> 
            <param name="C">Centroid</param>
            <param name="x">First moment X</param>
            <param name="y">First moment Y</param>
            <param name="z">First moment Z</param>
            <param name="xx">Second moment X</param>
            <param name="yy">Second moment Y</param>
            <param name="zz">Second moment Z</param>
            <param name="xy">Product moment XY</param>
            <param name="zx">Product moment ZX</param>
            <param name="yz">Product moment YZ</param>
            <param name="world">Moments of Inertia about world coordinate axes</param>
            <param name="centroid">Area Moments of Inertia about centroid coordinate axes</param>
        </member>
        <member name="P:devDept.Geometry.VolumeProperties.Volume">
            <summary>
            Gets solid mass.
            </summary>
        </member>
        <member name="P:devDept.Geometry.VolumeProperties.Centroid">
            <summary>
            Gets solid centroid.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Utility">
            <summary>
            Contains a collection of utility methods and constants.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Utility.FitPlane(System.Collections.Generic.IList{devDept.Geometry.Point3D})">
            <summary>
            Planar fitting of 3D points using orthogonal regression.
            </summary>
            <param name="points">The set of points</param>
            <returns>The plane.</returns>        
        </member>
        <member name="M:devDept.Geometry.Utility.FitLine(System.Collections.Generic.IList{devDept.Geometry.Point3D},devDept.Geometry.Point3D@,devDept.Geometry.Vector3D@)">
            <summary>
            Linear fitting of 3D points using orthogonal regression.
            </summary>
            <param name="points">List of points to be fitted</param>
            <param name="p">The line origin</param>
            <param name="dir">The line direction</param>
        </member>
        <member name="M:devDept.Geometry.Utility.FitCircle(System.Collections.Generic.IList{devDept.Geometry.Point2D},devDept.Geometry.Plane,devDept.Geometry.Point2D@,System.Double@)">
            <summary>
            Least squares circle fit given a set of 2D points.
            </summary>
            <param name="pts2D">List of 2D points to be fitted</param>
            <param name="plane">Plane of the 2D points</param>
            <param name="center">The center of the circle</param>
            <param name="radius">The radius of the circle</param>
        </member>
        <member name="M:devDept.Geometry.Utility.FitCircle(System.Collections.Generic.IList{devDept.Geometry.Point3D},devDept.Geometry.Plane@,System.Double@)">
            <summary>
            Least squares circle fit given a set of 3D points.
            </summary>
            <param name="pts">List of 3D points to be fitted</param>
            <param name="plane">The plane of the circle, whose origin is the center of the circle</param>
            <param name="radius">The radius of the circle</param>
        </member>
        <member name="M:devDept.Geometry.Utility.BoundingRect(System.Collections.Generic.IList{devDept.Geometry.Point2D},devDept.Geometry.Point2D@,devDept.Geometry.Point2D@)">
            <summary>
            Returns the bounding rectangle of a collection of 2D points.
            </summary>
            <param name="pointList">A collection of 2D points.</param>
            <param name="min">The min 2D point</param>
            <param name="max">The max 2D point</param>
        </member>
        <member name="M:devDept.Geometry.Utility.BoundingRect(System.Collections.Generic.IList{System.Drawing.Point},System.Drawing.Point@,System.Drawing.Point@)">
            <summary>
            Returns the bounding rectangle of a collection of 2D points.
            </summary>
            <param name="pointList">A collection of 2D points.</param>
            <param name="min">The min 2D point</param>
            <param name="max">The max 2D point</param>
        </member>
        <member name="M:devDept.Geometry.Utility.BoundingBox(System.Collections.Generic.IList{devDept.Geometry.Point3D},devDept.Geometry.Point3D@,devDept.Geometry.Point3D@)">
            <summary>
            Returns the bounding box of a collection of 3D points.
            </summary>
            <param name="pointList">A collection of 3D points.</param>
            <param name="min">The min 3D point</param>
            <param name="max">The max 3D point</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ComputeBoundingBox(devDept.Geometry.Transformation,System.Collections.Generic.IList{devDept.Geometry.Point3D},devDept.Geometry.Point3D@,devDept.Geometry.Point3D@)">
            <summary>
            Computes the bounding box of the given array of points.
            </summary>
            <param name="transform">The transformation applied to the points</param>
            <param name="points">The set of points</param>
            <param name="boxMin">The minimum point of the bounding box</param>
            <param name="boxMax">The maximum point of the bounding box</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ComputeBoundingBox``1(devDept.Geometry.Transformation,System.Collections.Generic.IList{``0},System.Int32,devDept.Geometry.Point3D@,devDept.Geometry.Point3D@)">
            <summary>
            Computes the bounding box of the given array of points.
            </summary>
            <param name="transform">The transformation applied to the points</param>
            <param name="points">The set of points</param>
            <param name="count">Number of points</param>
            <param name="boxMin">The minimum point of the bounding box</param>
            <param name="boxMax">The maximum point of the bounding box</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ComputeBoundingRect(System.Collections.Generic.IList{devDept.Geometry.Point2D},devDept.Geometry.Point2D@,devDept.Geometry.Point2D@)">
            <summary>
            Computes the bounding box of the given array of points.
            </summary>
            <param name="points">The set of points</param>
            <param name="boxMin">The minimum point of the bounding box</param>
            <param name="boxMax">The maximum point of the bounding box</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ComputeBoundingRect(System.Collections.Generic.IList{devDept.Geometry.Point2D},System.Int32,devDept.Geometry.Point2D@,devDept.Geometry.Point2D@)">
            <summary>
            Computes the bounding box of the given array of points.
            </summary>
            <param name="points">The set of points</param>
            <param name="count">Number of points</param>
            <param name="boxMin">The minimum point of the bounding box</param>
            <param name="boxMax">The maximum point of the bounding box</param>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlapOrTouch2D(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
             Check if two bounding boxes overlap or touch.
            </summary>
             <param name="firstMin">First rectangle min 2D point</param>
             <param name="firstMax">First rectangle max 2D point</param>
             <param name="secondMin">Second rectangle min 2D point</param>
             <param name="secondMax">Second rectangle max 2D point</param>
             <returns>True if the two boxes overlap or touch, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlapOrTouch2D(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,System.Double)">
            <summary>
            Check if two bounding rectangles overlap.
            </summary>
            <param name="firstMin">First rectangle min 2D point</param>
            <param name="firstMax">First rectangle max 2D point</param>
            <param name="secondMin">Second rectangle min 2D point</param>
            <param name="secondMax">Second rectangle max 2D point</param>
            <param name="domainSize">The 2D domain size</param>
            <returns>True if the two rectangle overlap or coincide, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlap2D(System.Drawing.Point,System.Drawing.Point,System.Drawing.Point,System.Drawing.Point)">
            <summary>
            Check if two bounding rectangles overlap.
            </summary>
            <param name="firstMin">First rectangle min point</param>
            <param name="firstMax">First rectangle max point</param>
            <param name="secondMin">Second rectangle min point</param>
            <param name="secondMax">Second rectangle max point</param> 
            <returns>True if the two rectangles overlap, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlap2D(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Check if two bounding rectangles overlap.
            </summary>
            <param name="firstMin">First rectangle min 2D point</param>
            <param name="firstMax">First rectangle max 2D point</param>
            <param name="secondMin">Second rectangle min 2D point</param>
            <param name="secondMax">Second rectangle max 2D point</param> 
            <returns>True if the two rectangles overlap, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlap(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Check if two bounding boxes overlap.
            </summary>
            <param name="firstMin">First rectangle min 3D point</param>
            <param name="firstMax">First rectangle max 3D point</param>
            <param name="secondMin">Second rectangle min 3D point</param>
            <param name="secondMax">Second rectangle max 3D point</param> 
            <returns>True if the two rectangles overlap, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlapOrTouch(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
             Check if two bounding boxes overlap or touch.
            </summary>
             <param name="firstMin">First box min 3D point</param>
             <param name="firstMax">First box max 3D point</param>
             <param name="secondMin">Second box min 3D point</param>
             <param name="secondMax">Second box max 3D point</param>
             <returns>True if the two boxes overlap or touch, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlapOrTouch(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,System.Double)">
            <summary>
            Check if two bounding boxes overlap or touch.
            </summary>
            <param name="firstMin">First box min 3D point</param>
            <param name="firstMax">First box max 3D point</param>
            <param name="secondMin">Second box min 3D point</param>
            <param name="secondMax">Second box max 3D point</param>
            <param name="domainSize">The domain size</param>
            <returns>True if the two boxes overlap or touch, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoOverlapOrTouch``1(System.Int32,``0,``0,``0,``0,System.Double)">
            <summary>
            Check if two bounding boxes overlap or touch.
            </summary>
            <param name="firstMin">First box min 3D point</param>
            <param name="firstMax">First box max 3D point</param>
            <param name="secondMin">Second box min 3D point</param>
            <param name="secondMax">Second box max 3D point</param>
            <param name="domainSize">The domain size</param>
            <returns>True if the two boxes overlap or touch, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.IntersectionRect(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D@,devDept.Geometry.Point2D@)">
            <summary>
            Computes the intersection rectangle between two axis aligned rectangles. This function assumes that the two rectangles overlap.
            </summary>
            <param name="firstMin">First rectangle min point</param>
            <param name="firstMax">First rectangle max point</param>
            <param name="secondMin">Second rectangle min point</param>
            <param name="secondMax">Second rectangle max point</param>
            <param name="intersMin">Intersection rectangle min point</param>
            <param name="intersMax">Intersection rectangle max point</param>
            <returns>The size of the intersection rectangle</returns>
            <see cref="M:devDept.Geometry.Utility.DoOverlap2D(System.Drawing.Point,System.Drawing.Point,System.Drawing.Point,System.Drawing.Point)"/>
        </member>
        <member name="M:devDept.Geometry.Utility.IntersectionBox(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D@,devDept.Geometry.Point3D@)">
            <summary>
            Computes the intersection rectangle between two axis aligned boxes. This function assumes that the two boxes overlap.
            </summary>
            <param name="firstMin">First box min point</param>
            <param name="firstMax">First box max point</param>
            <param name="secondMin">Second box min point</param>
            <param name="secondMax">Second box max point</param>
            <param name="intersMin">Intersection box min point</param>
            <param name="intersMax">Intersection box max point</param>
            <returns>The size of the intersection box</returns>
            <see cref="M:devDept.Geometry.Utility.DoOverlapOrTouch(devDept.Geometry.IntPoint,devDept.Geometry.IntPoint,devDept.Geometry.IntPoint,devDept.Geometry.IntPoint)"/>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInPolygon``1(``0,System.Collections.Generic.IList{``0})">
            <summary>
            Tests if a 2D point is inside a 2D polygon.
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="polygon">The polygon</param>
            <returns>True if the 2D point is inside, false if the point is outside. For points on the edges of the polygon, please use <see cref="M:devDept.Geometry.Utility.PointInPolygon(devDept.Geometry.Point2D,System.Collections.Generic.IList{devDept.Geometry.Point2D},System.Double)"/></returns>
            <remarks>The polygon must be closed, so the first and last points of the list must be coincident.</remarks>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInPolygon(devDept.Geometry.Point2D,System.Collections.Generic.IList{devDept.Geometry.Point2D},System.Double)">
            <summary>
            Tests if a 2D point is inside a 2D polygon.
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="polygon">The polygon</param>
            <param name="domainSize">The maximum diagonal size of the relevant polygon</param>
            <returns>The point status.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInPolygon(devDept.Geometry.Point2D,System.Collections.Generic.IList{System.Collections.Generic.IList{devDept.Geometry.Point2D}},System.Double)">
            <summary>
            Tests if a 2D point is inside to a region composed by multiple 2D polygons (clockwise/anticlockwise orientation rule).
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="polygonList">The region as a collection of properly oriented 2D polygons</param>
            <param name="domainSize">The maximum diagonal size polygon</param>
            <returns>The point status.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInPolygon(devDept.Geometry.Point2D,System.Collections.Generic.IList{devDept.Geometry.Polygon2D})">
            <summary>
            Tests if a 2D point is inside to a region composed by multiple 2D polygons (clockwise/anticlockwise orientation rule).
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="polygonList">The region as a collection of properly oriented 2D polygons</param>
            <returns>True if the point is inside the outer loop and outside all the inners loop, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInRectangle(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Tests if a 2D point is inside to a 2D rectangle.
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="lowerLeft">Rectangle lower left corner</param>
            <param name="upperRight">Rectangle upper right corner</param>
            <returns>The point status.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PointInTriangle(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Point in triangle test.
            </summary>
            <param name="xP">The point's X-coordinate</param>
            <param name="yP">The point's y-coordinate</param>
            <param name="x1">The first triangle vertex's X-coordinate</param>
            <param name="y1">The first triangle vertex's y-coordinate</param>
            <param name="x2">The second triangle vertex's X-coordinate</param>
            <param name="y2">The second triangle vertex's y-coordinate</param>
            <param name="x3">The third triangle vertex's X-coordinate</param>
            <param name="y3">The third triangle vertex's y-coordinate</param>
            <returns>Returns true if the point is inside the triangle.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.CleanTriangles(System.Collections.Generic.IList{devDept.Geometry.IndexTriangle},System.Collections.Generic.IList{devDept.Geometry.Point3D},System.Collections.Generic.List{devDept.Geometry.IndexTriangle}@,System.Collections.Generic.List{devDept.Geometry.Point3D}@)">
            <summary>
            Cleans a triangles list from the duplicated vertices.
            </summary>
            <param name="triangles">The triangles list</param>
            <param name="vertices">The vertices list</param>
            <param name="cleanedTriangles">The triangles list without degenerate triangles</param>
            <param name="uniqueVertices">The vertices list without the duplicated vertices</param>
        </member>
        <member name="M:devDept.Geometry.Utility.CleanTriangles(System.Collections.Generic.IList{devDept.Geometry.IndexTriangle},System.Collections.Generic.IList{devDept.Geometry.Point3D},System.Collections.Generic.List{devDept.Geometry.IndexTriangle}@,System.Collections.Generic.List{devDept.Geometry.Point3D}@,System.Int32[]@)">
            <summary>
            Cleans the triangles from the duplicated vertices
            </summary>
            <param name="triangles">The triangles list</param>
            <param name="vertices">The vertices list</param>
            <param name="cleanedTriangles">The triangles list without degenerate triangles</param>
            <param name="uniqueVertices">The vertices list without the duplicated vertices</param>
            <param name="conversionIndices"></param>
            <returns>the vertices conversion indices</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.AreEqual(System.Double,System.Double,System.Double)">
            <summary>
            Compares two floating point numbers using the provided domain size.
            </summary>
            <param name="a">First floating point number</param>
            <param name="b">Second floating point number</param>
            <param name="domainSize">The domain size</param>
            <returns>True if the two numbers are equal, false otherwise.</returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:devDept.Geometry.Utility.Compare(System.Double,System.Double)" -->
        <!-- Badly formed XML comment ignored for member "M:devDept.Geometry.Utility.Compare(System.Double,System.Double,System.Double)" -->
        <!-- Badly formed XML comment ignored for member "M:devDept.Geometry.Utility.CompareWithoutTolerance(System.Double,System.Double)" -->
        <member name="M:devDept.Geometry.Utility.RadToDeg(System.Double)">
            <summary>
            Converts radians to degrees.
            </summary>
            <param name="radians">The angle in radians</param>
            <returns>The converted angle in degrees.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DegToRad(System.Double)">
            <summary>
            Converts degrees to radians.
            </summary>
            <param name="degrees">The angle in degrees</param>
            <returns>The converted angle in radians.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.LimitRange``1(``0,``0@,``0)">
            <summary>
            Clamps a value between the specified lower and upper limits.
            </summary>
            <typeparam name="T">The type of the value to clamp</typeparam>
            <param name="low">Lower limit</param>
            <param name="value">The value</param>
            <param name="high">Upper limit</param>
        </member>
        <member name="M:devDept.Geometry.Utility.Min``1(``0,``0,``0)">
            <summary>
            Returns the min of three values.
            </summary>
            <param name="a">First value</param>
            <param name="b">Second value</param>
            <param name="c">Third value</param>
            <returns>The maximum value.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.Max``1(``0,``0,``0)">
            <summary>
            Returns the max of three values.
            </summary>
            <param name="a">First value</param>
            <param name="b">Second value</param>
            <param name="c">Third value</param>
            <returns>The maximum value.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.CircularNext``1(System.Collections.Generic.LinkedListNode{``0})">
            <summary>
            Returns the next 'circular' node in the linked list.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listNode">Current node</param>
            <returns>The next 'circular' node.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.CircularPrevious``1(System.Collections.Generic.LinkedListNode{``0})">
            <summary>
            Returns the previous 'circular' node in the linked list.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listNode">Current node</param>
            <returns>The previous 'circular' node.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.FloatArrayToColor(System.Single[])">
            <summary>
            Converts a float[4] to <see cref="T:System.Drawing.Color"/>.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Utility.ColorToFloatArray(System.Drawing.Color)">
            <summary>
            Converts a <see cref="T:System.Drawing.Color"/> to a float[4] with components in the [0,1] range.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Utility.MmToInches(System.Double)">
            <summary>
            Converts Millimeters to Inches.
            </summary>
            <param name="mm">The distance in Millimeters</param>
            <returns>The distance in inches.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.InchesToMm(System.Double)">
            <summary>
            Converts Inches to Millimeters.
            </summary>
            <param name="inches">The distance in Inches</param>
            <returns>The distance in Millimeters.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.EvaluateCurvature(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D@,devDept.Geometry.Vector3D@)">
            <summary>
            	<para>Evaluates unit tangent and curvature from first and second derivatives.</para>
            	<para>T = D1 / |D1|</para>
            	<para>K = ( D2 - (D2 o T)*T )/( D1 o D1)</para>
            </summary>
            <param name="D1">First derivative</param>
            <param name="D2">Second derivative</param>
            <param name="T">Unit tangent returned here</param>
            <param name="K">Curvature returned here</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ReverseArray``1(System.Collections.Generic.IList{``0})">
            <summary>
            Reverses the order of the elements in the array.
            </summary>
            <typeparam name="T">Items type</typeparam>
            <param name="array">The one-dimensional array to reverse</param>
        </member>
        <member name="M:devDept.Geometry.Utility.DoublesToPointArray2D(System.Double[])">
            <summary>
            Convert a list of double values to a 2D point array.
            </summary>
            <param name="listOfDoubles">An array of double values</param>
            <returns>A list of 3D points.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoublesToPointArray3D(System.Double[])">
            <summary>
            Converts an array of doubles to a an array of 3D points.
            </summary>
            <param name="listOfDoubles">An array of doubles</param>
            <returns>The 3D point array.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.DoublesToPointArray4D(System.Double[])">
            <summary>
            Converts an array of doubles to a an array of 4D points (only the XYZ members are converted). 
            </summary>
            <param name="listOfDoubles">An array of doubles</param>
            <returns>The 4D point array.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.Append(System.Double[0:,0:],System.Double[0:,0:])">
            <summary>
            Appends the second array at the end of first one.
            </summary>
            <param name="first">First rectangular array</param>
            <param name="second">Second rectangular array</param>
            <returns>A single array containing first and second.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.InvertMatrixd(System.Double[],System.Double[])">
            <summary>
            Inverts a matrix.
            </summary>
            <param name="m">The matrix to invert</param>
            <param name="invOut">The inverted matrix</param>
            <returns>True if successful, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetPointsOnPlane(devDept.Geometry.Plane,System.Collections.Generic.IList{devDept.Geometry.Point2D})">
            <summary>
            Gets the array of Point3D from a 2D profile.
            </summary>
            <param name="sketchPlane">The sketch plane</param>
            <param name="contour">the 2D contour</param>
            <returns>The Point3D array.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetTrianglesPlane(System.Collections.Generic.IList{devDept.Geometry.IndexTriangle},System.Collections.Generic.IList{devDept.Geometry.Point3D})">
            <summary>
            Gets the first valid plane found from a collection of triangles. 
            </summary>
            <param name="triangles">The collection of triangles</param>
            <param name="vertices">The collection of vertices</param>
            <returns>The first valid plane found.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PolygonArea``1(System.Collections.Generic.IList{``0})">
            <summary>
            Computes the signed area of a polygon (the points are always projected on XY plane).
            </summary>
            <param name="polygon">The list of 2D points</param>
            <returns>Depending on the polygon direction will return a positive or negative area.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.NumberOfSegments(System.Double,System.Double,System.Double)">
            <summary>
            Computes the number of arc subdivisions according to specified chordal error.
            </summary>
            <param name="radius">The arc radius</param>
            <param name="deltaInRadians">The arc span angle (in radians)</param>
            <param name="chordalErr">The chordal error</param>
            <returns>The number of segments.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.NumberOfSegments(System.Double,System.Double)">
            <summary>
            Computes the number of circle subdivisions according to specified chordal error.
            </summary>
            <param name="radius">The circle radius</param>
            <param name="chordalErr">The chordal error</param>
            <returns>The number of segments.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.Swap``1(``0@,``0@)">
            <summary>
            Swaps two values.
            </summary>
            <typeparam name="T">The type of values to swap</typeparam>
            <param name="first">First value</param>
            <param name="second">Second value</param>
        </member>
        <member name="M:devDept.Geometry.Utility.VectorsAngle(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns the angle in degrees between two vectors.
            </summary>
            <param name="v1">First Vector</param>
            <param name="v2">Second Vector</param>
            <param name="rotAxis">Roation Axis</param>
            <returns>The angle in degrees between the vectors</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.IsInFrustum(devDept.Geometry.PlaneEquation[],devDept.Geometry.Point3D,System.Double)">
            <summary>
            Tells if a hypothetical sphere with the specified center and radius is inside the given frustum planes.
            </summary>
            <param name="frustum">Frustum planes</param>
            <param name="center">Center of the sphere</param>
            <param name="radius">Radius of the sphere</param>
            <returns>True if the hypothetical sphere is inside the planes.</returns>
            <remarks>Useful for bounding box testing.</remarks>
        </member>
        <member name="M:devDept.Geometry.Utility.IsPointOnSegment(devDept.Geometry.Point2D,devDept.Geometry.Point2D,devDept.Geometry.Point2D,System.Double)">
            <summary>
            Determines if a point in on a segment. First it checks if the parameter t for the 
            projected point is between 0 and 1, then it checks if the test point is close enough
            to the segment. 
            </summary>
        </member>
        <member name="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicates(System.Collections.Generic.IList{devDept.Geometry.IndexTriangle},System.Int32)">
            <summary>
            Gets a list of edges without duplicates from a mesh of triangles.
            </summary>
            <param name="polygons">Polygon list definition, each row can have indipendently 3 or 4 indices.</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <returns>The rectangular array of the resulting - unique - edges. First and second 
            indices are the edge vertex indices, third and fourth are the parent triangle indices. Fourth 
            index can be -1 for edges with only one parent triangle.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicates(System.Int32[][],System.Int32,System.Collections.Generic.LinkedList{devDept.Geometry.SharedEdge}[]@)">
            <summary>
            Gets a list of edges without duplicates from a mesh of polygons (3 or 4 sided mixed).
            </summary>
            <param name="polygons">Polygon list definition, each row can have indipendently 3 or 4 indices.</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <param name="edgesPerVertex">An array of linked list of - unique - edges propagating from the same vertex.
            This is an intermediate result.</param>
            <returns>The rectangular array of the resulting - unique - edges. First and second 
            indices are the edge vertex indices, third and fourth are the parent triangle indices. Fourth 
            index can be -1 for edges with only one parent triangle.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicates(System.Int32[0:,0:],System.Int32)">
            <summary>
            Gets a list of edges without duplicates from a mesh of triangles or quads.
            </summary>
            <param name="polygons">Polygon list definition, dimensions can be [n,3] or [n,4].</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <returns>The rectangular array of the resulting - unique - edges. First and second 
            indices are the edge vertex indices, third and fourth are the parent triangle indices. Fourth 
            index can be -1 for edges with only one parent triangle.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicates(System.Int32[0:,0:],System.Int32,System.Collections.Generic.LinkedList{devDept.Geometry.SharedEdge}[]@)">
            <summary>
            Gets a list of edges without duplicates from a mesh of triangles or quads.
            </summary>
            <param name="polygons">Polygon list definition, dimensions can be [n,3] or [n,4].</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <param name="edgesPerVertex">An array of linked list of - unique - edges propagating from the same vertex.
            This is an intermediate result.</param>
            <returns>The rectangular array of the resulting - unique - edges. First and second 
            indices are the edge vertex indices, third and fourth are the parent triangle indices. Fourth 
            index can be -1 for edges with only one parent triangle.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicatesInternal(System.Int32[0:,0:],System.Int32,System.Collections.Generic.LinkedList{devDept.Geometry.SharedEdge}[]@)">
            <summary>
            Gets a list of edges without duplicates from a mesh of triangles or quads.
            </summary>
            <param name="polygons">Polygon list definition, dimensions can be [n,3] or [n,4].</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <param name="edgesPerVertex">An array of linked list of - unique - edges propagating from the same vertex.
            This is an intermediate result.</param>
            <returns>The number of edges.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetSkinFaces(System.Int32[][],System.Int32,System.Collections.Generic.LinkedList{devDept.Geometry.SharedFace}[]@)">
            <summary>
            Gets a list of faces without duplicates from a mesh of triangles or quads.
            </summary>
            <param name="faces">Polygon list definition, dimensions can be [n,3] or [n,4].</param>
            <param name="numVerts">Number of vertices in the mesh</param>
            <param name="facesPerVertex">An array of linked list of - unique - faces propagating from the same vertex.
            This is an intermediate result.</param>
            <returns>The rectangular array of the resulting - unique - faces. First, second and third
            indices are the face vertex indices, third and fourth are the parent objects indices. Fourth 
            index can be -1 for faces with only one parent object.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.LinePlaneIntersection(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.PlaneEquation,devDept.Geometry.Point3D@)">
            <summary>
            Intersects the infinite line with a plane.
            </summary>
            <param name="p0">First point of the line</param>
            <param name="p1">Second point of the line</param>
            <param name="pe">The plane equation</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.MultMatrixd(System.Double[],System.Double[])">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">first matrix</param>
            <param name="b">second matrix</param>
            <returns>The matrix a x b.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.MultMatrixf(System.Single[],System.Single[])">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="a">first matrix</param>
            <param name="b">second matrix</param>
            <returns>The matrix a x b.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.MultMatrixVecd(System.Double[],System.Double[])">
            <summary>
            Multiplies a matrix by a vector.
            </summary>
            <param name="matrix">The matrix</param>
            <param name="vector">The vector</param>
            <returns>The vector "matrix x vect"</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetOuterIndex(System.Collections.Generic.IList{devDept.Geometry.Polygon2D})">
            <summary>
            Returns the outer loop index.
            </summary>
            <typeparam name="T">The point type</typeparam>
            <param name="loops">The list of 2D contours</param>
            <returns>The outer loop index, -1 if the loops aren't nested.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetOuterIndex``1(System.Collections.Generic.IList{System.Collections.Generic.IList{``0}})">
            <summary>
            Returns the outer loop index.
            </summary>
            <typeparam name="T">The point type</typeparam>
            <param name="loops">The list of 2D contours</param>
            <returns>The outer loop index</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetOuterIndex(System.Collections.Generic.IList{devDept.Geometry.Polygon2D},System.Double)">
            <summary>
            Returns the outer contour index.
            </summary>
            <param name="loops">The list of 2D contours</param>
            <param name="tolerance">The tolerance used to tessellate contours</param>
            <returns>The outer loop index</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.RemoveDuplicates``1(System.Collections.Generic.IList{``0})">
            <summary>
            Removes contiguous duplicated points from the list.
            </summary>
            <typeparam name="T">A point type</typeparam>
            <param name="pointList">The list of points to be analyzed</param>
            <returns>The cleaned array of points.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.RemoveDuplicates``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{System.Int32}@)">
            <summary>
            Removes contiguous duplicated points from the list.
            </summary>
            <typeparam name="T">A point type</typeparam>
            <param name="pointList">The list of points to be analyzed</param>
            <param name="indices">The indices in the <see cref="!:pointList"/> list of the returned points</param>
            <returns>The cleaned array of points.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.RemoveDuplicates``1(System.Collections.Generic.IList{``0},System.Boolean,System.Collections.Generic.IList{System.Int32}@)">
            <summary>
            Removes contiguous duplicated points from the list.
            </summary>
            <typeparam name="T">A point type</typeparam>
            <param name="pointList">The list of points to be analyzed</param>
            <param name="getIndices">If true, computes also the indices of the final points</param>
            <param name="indices">The indices in the <see cref="!:pointList"/> of the returned points</param>
            <returns>The cleaned array of points.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetOrientationTransformation(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Gets the transformation to orient an entity built on the X-Axis on the given direction.
            </summary>
            <param name="position">The point where the entity must be positioned</param>
            <param name="direction">The orientation desired</param>
            <returns>The transformation to orient the entity.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.InsideOrCrossingFrustum(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.PlaneEquation[])">
            <summary>
            Checks whether the triangle is inside or crossing the frustum defined by the given planes.
            </summary>
            <param name="pt1">The first  triangle vertex</param>
            <param name="pt2">The second triangle vertex</param>
            <param name="pt3">The third triangle vertex </param>
            <param name="frustum">The frustum planes equations</param>
            <returns>True if the triangle is inside or is crossing the frustum.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.IsSegmentInsideOrCrossing(devDept.Geometry.PlaneEquation[],devDept.Geometry.Segment3D)">
            <summary>
            Tells if a segment is inside or crossing the given frustum.
            </summary>
            <param name="frustum">The camera frustum</param>
            <param name="segment">The segment</param>
            <returns>True if the segment intersects or is inside the given camera frustum.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.TransformNormals(devDept.Geometry.Transformation,devDept.Geometry.Vector3D[])">
            <summary>
            Transforms the collection of normals with the given transformation.
            </summary>
            <param name="transform">The transformation</param>
            <param name="normals">The collection of normals vectors</param>
            <remarks>The normals are transformed by the inverse transpose of the upper 3x3 matrix.</remarks>
        </member>
        <member name="M:devDept.Geometry.Utility.GetMatrixForNormals(devDept.Geometry.Transformation)">
            <summary>
            Gets the matrix needed for normals transformation.
            </summary>
            <param name="transform">The transformation</param>
            <returns>The inverse transpose of the upper 3x3 matrix.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.Translated(System.Double,System.Double,System.Double,System.Double[]@)">
            <summary>
            Craetes a translation matrix and muliplies the original matrix by it.
            </summary>
            <param name="dx">The X translation coefficient</param>
            <param name="dy">The Y translation coefficient</param>
            <param name="dz">The Z translation coefficient</param>
            <param name="original">The matrix to multiply</param>
        </member>
        <member name="M:devDept.Geometry.Utility.Scaled(System.Double,System.Double,System.Double,System.Double[]@)">
            <summary>
            Craetes a scaling matrix and muliplies the original matrix by it.
            </summary>
            <param name="sx">The X scaling coefficient</param>
            <param name="sy">The Y scaling coefficient</param>
            <param name="sz">The Z scaling coefficient</param>
            <param name="original">The matrix to multiply</param>
        </member>
        <member name="M:devDept.Geometry.Utility.PrevItem``1(System.Collections.Generic.IList{``0},System.Int32)">
            <summary>
            Return the cyclic previous item in a list.
            </summary>
            <typeparam name="T">The item type</typeparam>
            <param name="list">The list</param>
            <param name="itemIndex">The item index</param>
            <returns>The previous item or the last item of the list in the case that itemIndex is equal to zero.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.NextItem``1(System.Collections.Generic.IList{``0},System.Int32)">
            <summary>
            Return the cyclic next item in a list.
            </summary>
            <typeparam name="T">The item type</typeparam>
            <param name="list">The list</param>
            <param name="itemIndex">The item index</param>
            <returns>The next item or the first item of the list in the case that itemIndex is equal to the list length less one.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.NormalInterpolation(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Returns the interpolated normal at the point p somewhere in the middle of the 3D segment defined by the points p1 and p2.
            </summary>
            <param name="p1">The segment start point</param>
            <param name="n1">The segment start normal (unit length)</param>
            <param name="p2">The segment end point</param>
            <param name="n2">The segment end normal (unit length)</param>
            <param name="p">The point</param>
            <returns>The 3D normal vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.NormalInterpolation(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns the interpolated normal at the point p somewhere in the middle of the 3D rectangular face defined by the points p1, p2, p3 and p4.
            </summary>
            <param name="p1">The face first corner point</param>
            <param name="n1">The face first corner normal (unit length)</param>
            <param name="p2">The face second corner point</param>
            <param name="n2">The face second corner (unit length)</param>
            <param name="p3">The face third corner point</param>
            <param name="n3">The face third corner (unit length)</param>
            <param name="p4">The face fourth corner point</param>
            <param name="n4">The face fourth corner (unit length)</param>
            <param name="p">The point</param>
            <param name="splittingPlaneNormal">A 3D vector used for face splitting. A 3D vector perpendicular to the 3D face is not allowed.</param>
            <returns>The 3D normal vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.IsClosedProfile``1(System.Collections.Generic.IList{``0})">
            <summary>
            Tells if a profile is closed, depending on a tolerance computed from its size.
            </summary>
            <typeparam name="T">The type of the elements of the profile, must be derived from <see cref="T:devDept.Geometry.Point2D"/></typeparam>
            <param name="profile">The list of vertices of the profile</param>
            <returns></returns>
        </member>
        <member name="M:devDept.Geometry.Utility.HermiteSpline(devDept.Geometry.Point2D,devDept.Geometry.Vector2D,devDept.Geometry.Point2D,devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Computes a point on the Hermite Spline.
            </summary>
            <param name="p0">Start point</param>
            <param name="m0">Start tangent</param>
            <param name="p1">End point</param>
            <param name="m1">End tangent</param>
            <param name="t">Evaluation parameter</param>
            <returns>The 2D point on the curve.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.GetSliceVerticesAndNormals(System.Int32,System.Double,System.Int32,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D[],devDept.Geometry.Point3D@,devDept.Geometry.Point3D@,devDept.Geometry.Point3D@,devDept.Geometry.Point3D@,devDept.Geometry.Vector3D@,devDept.Geometry.Vector3D@,devDept.Geometry.Vector3D@,devDept.Geometry.Vector3D@)">
            <summary>
            Quad strip generation for Bar entity. Born for Bar entity, now used also for Fem Truss elements
            </summary>
        </member>
        <member name="M:devDept.Geometry.Utility.InvalidOGLPoint(devDept.Geometry.Point3D)">
            <summary>
            Tells if the point has valid coordinates for the OpenGL flaot precision.
            </summary>
            <param name="pt">The point</param>
            <returns>True if the point is within the OpenGL float precision, else otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.IsOrientedClockwise``1(System.Collections.Generic.IList{``0})">
            <summary>
            Detects polygon orientation (the points are always projected on XY plane).
            </summary>
            <param name="polygon">The polygon to check</param>
            <returns>True if the polygon orientation is clockwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.PolygonOrientation``1(System.Collections.Generic.IList{``0})">
            <summary>
            Computes the signed area of a polygon (the points are always projected on XY plane).
            </summary>
            <param name="polygon">The list of points</param>
            <returns>&gt;0 for counterclockwise 
            =0 for none (degenerate)
            lt;0 for clockwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.RotateLeft``1(``0[])">
            <summary>
            Rotates the array left.
            </summary>
            <typeparam name="T">The array items type</typeparam>
            <param name="array">The array</param>
        </member>
        <member name="M:devDept.Geometry.Utility.GetRotationAxisAndAngle(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D@,System.Double@)">
            <summary>
            Returns the rotation axis and the angle to rotate from one vector to another. 
            </summary>
            <param name="vector1">First vector</param>
            <param name="vector2">Second vector</param>
            <param name="rotAxis">The rotation axis</param>
            <param name="angle">The angle in degrees</param>
        </member>
        <member name="M:devDept.Geometry.Utility.AreEqual(System.Collections.IList,System.Collections.IList)">
            <summary>
            Checks if two generic lists contain the same elements.
            </summary>
            <param name="first">The first generic list</param>
            <param name="second">The second generic list</param>
            <returns>True if the elements of the two generic lists are the same.</returns>
        </member>
        <member name="M:devDept.Geometry.Utility.Intersect3DLines(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,System.Double@,System.Double@,devDept.Geometry.Point3D@)">
            <summary>
            Traces two lines in 3D.
            x0(s) = p0 + s * t0
            x1(t) = p1 + t * t1
            </summary>
            <param name="p0">Point on the first line</param>
            <param name="t0">First line direction</param>
            <param name="p1">Point on the second line</param>
            <param name="t1">Second line direction</param>
            <param name="s">Value of s at the intersection</param>
            <param name="t">Value of t at the intersection</param>
            <param name="i">Intersection point, x0(s) = i = x1(t)</param>
        </member>
        <member name="M:devDept.Geometry.Utility.ArcTanProblem(System.Double,System.Double)">
            <summary>
            See: http://hyperphysics.phy-astr.gsu.edu/hbase/ttrig.html
            </summary>
            <param name="x"></param>
            <param name="y"></param>
            <returns>The angle in radians</returns>
        </member>
        <member name="T:devDept.Geometry.IndexLineComparer">
            <summary>
            Compares two <see cref="T:devDept.Geometry.IndexLine"/> objects. 
            </summary>
        </member>
        <member name="T:devDept.Geometry.Equation">
            <summary>
            Matrix equation definition.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.nonZeroStart">
            <summary>
            Non zero values starting position.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.nonZeroEnd">
            <summary>
            Non zero values ending position.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.elements">
            <summary>
            List of elements with something to do with this dof.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.restrained">
            <summary>
            Is this dof restrained? </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.fixedDispl">
            <summary>
            Fixed displacement
            </summary>
        </member>
        <member name="F:devDept.Geometry.Equation.coefficients">
            <summary>
            Coefficients.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Coefficient">
            <summary>
            Matrix non zero term definition.
            </summary>
        </member>
        <member name="T:devDept.Geometry.PointUv">
            <summary>
            Surface point definition.
            </summary>
        </member>
        <member name="T:devDept.Geometry.PointU">
            <summary>
            Curve point definition.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Point3D">
            <summary>
            Defines a 3D point. 
            </summary>
        </member>
        <member name="T:devDept.Geometry.Point2D">
            <summary>
            Defines a 2D point. 
            </summary>
        </member>
        <member name="T:devDept.Geometry.IVertex">
            <summary>
            Common properties of vertices.
            </summary>
        </member>
        <member name="M:devDept.Geometry.IVertex.ToArray">
            <summary>
            Gets the vertex position as a double array.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point2D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point2D.#ctor(System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
        </member>
        <member name="M:devDept.Geometry.Point2D.#ctor(System.Double[])">
            <summary>
            Double array constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point2D.Clone">
            <summary>
            Creates a deep copy of this 2D point.
            </summary>
            <returns>The new 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.ToArray">
            <summary>
            Returns an array of point's coordinates.
            </summary>
            <returns>The double array.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.IsValid">
            <summary>
            Returns true if the point's coordinates are resonable values.
            </summary>
            <returns>True if the point is valid, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.op_Addition(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Addition between two 2D points.
            </summary>
            <param name="a">First 2D point</param>
            <param name="b">Second 2D point</param>
            <returns>The resulting 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.op_Subtraction(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Subtraction between two 2D points.
            </summary>
            <param name="a">First 2D point</param>
            <param name="b">Second 2D point</param>
            <returns>The resulting 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.op_Multiply(System.Double,devDept.Geometry.Point2D)">
            <summary>
            Product between a scalar value and a 2D point.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The 2D point</param>
            <returns>The resulting 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.op_Multiply(devDept.Geometry.Point2D,System.Double)">
            <summary>
            Product between a 2D point and a scalar value.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The 2D point</param>
            <returns>The resulting 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.op_Division(devDept.Geometry.Point2D,System.Double)">
            <summary>
            Division between a 2D point and a scalar value.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The 2D point</param>
            <returns>The resulting 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.ProjectTo(devDept.Geometry.Segment2D)">
            <summary>
            Project this point onto a 2D segment.
            </summary>
            <param name="seg">The 2D segment</param>
            <returns>The projected point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.DistanceTo(devDept.Geometry.Segment2D)">
            <summary>
            Computes the point-line distance.
            </summary>
            <param name="seg">The line</param>
            <returns>The distance between this 2D point and its projection on the line.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.ToString">
            <summary>
            Converts this 2D point to a human readable string.
            </summary>
            <returns>A string that represents this 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.ToStringXml">
            <summary>
            Converts this 2D point to a human readable string.
            </summary>
            <returns>A string that represents this 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.Distance(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Computes the distance between two 2D points.
            </summary>
            <param name="a">First point</param>
            <param name="b">Second point</param>
            <returns>The distance between a and b.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.DistanceSquared(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Computes the squared distance between two 2D points.
            </summary>
            <param name="a">First point</param>
            <param name="b">Second point</param>
            <returns>The squared distance between p1 and p2.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.DistanceTo(devDept.Geometry.Point2D)">
            <summary>
            Computes the distance to 2D point b.
            </summary>
            <param name="b">The other point</param>
            <returns>The distance between this 2D point and b.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.AreEqual(devDept.Geometry.Point2D,devDept.Geometry.Point2D,System.Double)">
            <summary>
            Compares two 2D points in the given domain.
            </summary>
            <param name="p1">First point</param>
            <param name="p2">Second point</param>
            <param name="domainSize">The 2D diagonal length of your model.</param>
            <returns>True if the two point are coincident, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Point2D.DrawGL">
            <summary>
            Calls glVertex2d(X, Y)
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point2D.TransformBy(devDept.Geometry.Transformation)">
            <summary>
            Transforms the 2D point by the specified transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="P:devDept.Geometry.Point2D.X">
            <summary>
            X coordinate value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point2D.Y">
            <summary>
            Y coordinate value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point2D.MaximumCoordinate">
            <summary>
            Gets the absolute value of maximum coordinate.
            </summary>
            <returns>The absolute value of maximum coordinate.</returns>
        </member>
        <member name="P:devDept.Geometry.Point2D.Origin">
            <summary>
            Returns a 2D point at origin.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point2D.MinValue">
            <summary>
            Returns a 2D point with coordinates at double.MinValue.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point2D.MaxValue">
            <summary>
            Returns a 2D point with coordinates at double.MaxValue.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point3D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
            <param name="x">X coordinate value</param>
            <param name="y">Y coordinate value</param>
            <param name="z">Z coordinate value</param>
        </member>
        <member name="M:devDept.Geometry.Point3D.#ctor(System.Double,System.Double)">
            <summary>
            2D point constructor
            </summary>
            <param name="x">X coordinate value</param>
            <param name="y">Y coordinate value</param>
        </member>
        <member name="M:devDept.Geometry.Point3D.#ctor(System.Double[])">
            <summary>
            Double array constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point3D.Clone">
            <summary>
            Creates a deep copy of this 3D point.
            </summary>
            <returns>The new 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.ToArray">
            <summary>
            Returns an array of point's coordinates.
            </summary>
            <returns>The double array.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.DistanceTo(devDept.Geometry.Point3D)">
            <summary>
            Computes the distance to 3D point b.
            </summary>
            <param name="b">The other point</param>
            <returns>The distance between this 3D point and b.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.Distance(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Computes the distance between two 3D points.
            </summary>
            <param name="a">First 3D point</param>
            <param name="b">Second 3D point</param>
            <returns>The distance between a and b.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.ProjectTo(devDept.Geometry.Segment3D)">
            <summary>
            Project this point onto a 3D segment.
            </summary>
            <param name="seg">The 3D segment</param>
            <returns>The projected point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.DistanceTo(devDept.Geometry.Segment3D)">
            <summary>
            Computes the point-line distance.
            </summary>
            <param name="seg">The line</param>
            <returns>The distance between this 3D point and its projection on the line.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.DistanceSquared(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Computes the squared distance between two 3D points.
            </summary>
            <param name="a">First point</param>
            <param name="b">Second point</param>
            <returns>The squared distance between a and b.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.DistanceTo(devDept.Geometry.Plane)">
            <summary>
            Computes the point-plane distance.
            </summary>
            <param name="plane">The plane</param>
            <returns>The distance between this 3D point and its projection on the plane.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Subtraction(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Subtraction between two 3D points.
            </summary>
            <param name="a">First 3D point</param>
            <param name="b">Second 3D point</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Multiply(System.Double,devDept.Geometry.Point3D)">
            <summary>
            Product between a 3D point and a scalar s.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The point</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Multiply(devDept.Geometry.Point3D,System.Double)">
            <summary>
            Product between a 3D point and a scalar s.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The point</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Division(devDept.Geometry.Point3D,System.Double)">
            <summary>
            Division between a 3D point and a scalar s.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The point</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Addition(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Addition between a 3D point and a 3D vector.
            </summary>
            <param name="a">The 3D point</param>
            <param name="b">The 3D vector</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Subtraction(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Subtraction between a 3D point and a 3D vector.
            </summary>
            <param name="a">The 3D point</param>
            <param name="b">The 3D vector</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.op_Addition(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Addition between two 3D points.
            </summary>
            <param name="a">First 3D point</param>
            <param name="b">Second 3D point</param>
            <returns>The resulting 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.AreEqual(devDept.Geometry.Point3D,devDept.Geometry.Point3D,System.Double)">
            <summary>
            Compares two 3D points in the given domain.
            </summary>
            <param name="p1">First point</param>
            <param name="p2">Second point</param>
            <param name="domainSize">The 3D diagonal length of your model.</param>
            <returns>True if the two point are coincident, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.ToString">
            <summary>
            Converts this 3D point to a human readable string.
            </summary>
            <returns>A string that represents this 3d point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.ToStringXml">
            <summary>
            Converts this 3D point to a human readable string.
            </summary>
            <returns>A string that represents this 2D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point3D.DrawGL">
            <summary>
            Calls glVertex3d(X, Y, Z).
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point3D.TransformBy(devDept.Geometry.Transformation)">
            <summary>
            Transforms the 3D point by the specified transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="P:devDept.Geometry.Point3D.Z">
            <summary>
            Z coordinate value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point3D.Origin">
            <summary>
            Returns the (0,0,0) point.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point3D.MinValue">
            <summary>
            Returns a 3D point with coordinates at double.MinValue.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point3D.MaxValue">
            <summary>
            Returns a 3D point with coordinates at double.MaxValue.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointU.U">
            <summary>
            Parametric U value.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointU.Clone">
            <summary>
            Creates a deep copy of this 3D point.
            </summary>
            <returns>The new 3D point.</returns>
        </member>
        <member name="M:devDept.Geometry.PointU.ToString">
            <summary>
            Converts this 3D point to a human readable string.
            </summary>
            <returns>A string that represents this 3D point.</returns>
        </member>
        <member name="F:devDept.Geometry.PointUv.V">
            <summary>
            Parametric V value
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointUv.ToString">
            <summary>
            Converts this 3D point to a human readable string.
            </summary>
            <returns>A string that represents this 3D point.</returns>
        </member>
        <member name="T:devDept.Geometry.PointTangent">
            <summary>
            3D point and tangent definition.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointTangent.Tx">
            <summary>
            Tangent's X component. 
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointTangent.Ty">
            <summary>
            Tangent's Y component.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointTangent.Tz">
            <summary>
            Tangent's Z component
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointTangent.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointTangent.Clone">
            <summary>
            Creates a deep copy of this point.
            </summary>
            <returns>The new intersection point object.</returns>
        </member>
        <member name="P:devDept.Geometry.PointTangent.Tangent">
            <summary>
            Gets or sets the 3D tangent associated to this 3D point.
            </summary>
        </member>
        <member name="T:devDept.Geometry.PointTangentU">
            <summary>
            3D point, tangent and U definition.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointTangentU.U">
            <summary>
            Parametric U value
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointTangentU.Clone">
            <summary>
            Creates a deep copy of this point.
            </summary>
            <returns>The new intersection point object.</returns>
        </member>
        <member name="T:devDept.Geometry.PointNormal">
            <summary>
            Point cloud point definition.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointNormal.Nx">
            <summary>
            Surface's normal X component. 
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointNormal.Ny">
            <summary>
            Surface's normal Y component.
            </summary>
        </member>
        <member name="F:devDept.Geometry.PointNormal.Nz">
            <summary>
            Surface's normal Z component
            </summary>
        </member>
        <member name="T:devDept.Geometry.SharedEdge">
            <summary>
            Shared edge definition.
            </summary>
            <seealso cref="M:devDept.Geometry.Utility.GetEdgesWithoutDuplicates(System.Collections.Generic.IList{devDept.Geometry.IndexTriangle},System.Int32)"/>
        </member>
        <member name="F:devDept.Geometry.SharedEdge.V2">
            <summary>
            Other edge vertex index.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedEdge.Mum">
            <summary>
            Index of the first triangle that shares this edge.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedEdge.Dad">
            <summary>
            Index of the second triangle that shares this edge.
            </summary>
        </member>
        <member name="T:devDept.Geometry.SharedFace">
            <summary>
            Shared face definition.
            </summary>
            <seealso cref="!:GetEdgesWithoutDuplicates"/>
        </member>
        <member name="F:devDept.Geometry.SharedFace.V2">
            <summary>
            Other face second vertex index.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedFace.V3">
            <summary>
            Other face third vertex index.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedFace.V4">
            <summary>
            Other face fourth vertex index.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedFace.Mum">
            <summary>
            Index of the first triangle that shares this edge.
            </summary>
        </member>
        <member name="F:devDept.Geometry.SharedFace.Dad">
            <summary>
            Index of the second triangle that shares this edge.
            </summary>
        </member>
        <member name="T:devDept.Geometry.linearUnitsType">
            <summary>
            Linear (length) unit system type.
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Inches">
            <summary>
            Inches
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Feet">
            <summary>
            Feet
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Miles">
            <summary>
            Miles
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Millimeters">
            <summary>
            Millimeters
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Centimeters">
            <summary>
            Centimeters
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Meters">
            <summary>
            Meters
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Kilometers">
            <summary>
            Kilometers
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.Unitless">
            <summary>
            Unit system not specified
            </summary>
        </member>
        <member name="F:devDept.Geometry.linearUnitsType.NotSupported">
            <summary>
            The unit system of the imported geometry is not supported by Eyeshot
            </summary>
        </member>
        <member name="T:devDept.Geometry.angularUnitsType">
            <summary>
            Angular unit system type.
            </summary>
        </member>
        <member name="F:devDept.Geometry.angularUnitsType.Degrees">
            <summary>
            Degrees
            </summary>
        </member>
        <member name="F:devDept.Geometry.angularUnitsType.Radians">
            <summary>
            Radians
            </summary>
        </member>
        <member name="T:devDept.Geometry.IntPoint">
            <summary>
            2D point with integer coordinates. Optionally can be linked to a <see cref="T:devDept.Geometry.Point3D"/>.
            </summary>
        </member>
        <member name="T:devDept.Geometry.IndexLine">
            <summary>
            Defines an edge using vertex indices
            </summary>
        </member>
        <member name="F:devDept.Geometry.IndexLine.V1">
            <summary>
            First vertex index.
            </summary>
        </member>
        <member name="F:devDept.Geometry.IndexLine.V2">
            <summary>
            Second vertex index.
            </summary>
        </member>
        <member name="M:devDept.Geometry.IndexLine.#ctor">
            <summary>
            Empty constructor
            </summary>
        </member>
        <member name="M:devDept.Geometry.IndexLine.#ctor(System.Int32,System.Int32)">
            <summary>
            Standard constructor
            </summary>
            <param name="v1">Index of the line start vertex</param>
            <param name="v2">Index of the line end vertex</param>
        </member>
        <member name="M:devDept.Geometry.IndexLine.Clone">
            <summary>
            Creates a deep copy of this index line.
            </summary>
            <returns>The new index line.</returns>
        </member>
        <member name="M:devDept.Geometry.IndexLine.ToArray">
            <summary>
            Returns an array of line's vertex indices.
            </summary>
            <returns>The int array.</returns>
        </member>
        <member name="T:devDept.Geometry.IndexTriangle">
            <summary>
            Defines a triangle using vertex indices.
            </summary>
        </member>
        <member name="F:devDept.Geometry.IndexTriangle.V3">
            <summary>
            Third verted index.
            </summary>
        </member>
        <member name="M:devDept.Geometry.IndexTriangle.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.IndexTriangle.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Standard constructor.
            </summary>
            <param name="v1">Index of the first triangle vertex</param>
            <param name="v2">Index of the second triangle vertex</param>
            <param name="v3">Index of the third triangle vertex</param>
        </member>
        <member name="M:devDept.Geometry.IndexTriangle.Clone">
            <summary>
            Creates a deep copy of this IndexTriangle.
            </summary>
            <returns>The new IndexTriangle.</returns>
        </member>
        <member name="M:devDept.Geometry.IndexTriangle.ToArray">
            <summary>
            Returns an array of triangle's vertex indices.
            </summary>
            <returns>The int array.</returns>
        </member>
        <member name="M:devDept.Geometry.IndexTriangle.Quality(System.Collections.Generic.IList{devDept.Geometry.Point3D})">
            <summary>
            Computes the triangle quality.
            </summary>
            <param name="vertices">A collection of 2D points representing the 2D mesh vertices.</param>
            <returns>The triangle quality (from 0 to 1)</returns>
        </member>
        <member name="T:devDept.Geometry.Interval">
            <summary>Interval definition.</summary>
        </member>
        <member name="F:devDept.Geometry.Interval.t0">
            <summary>
            Left interval value.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Interval.t1">
            <summary>
            Right interval value.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Interval.#ctor(System.Double,System.Double)">
            <summary>Standard constructor.</summary>
        </member>
        <member name="M:devDept.Geometry.Interval.#ctor(System.Double[])">
            <summary>Double array constructor.</summary>
        </member>
        <member name="M:devDept.Geometry.Interval.Swap">
            <summary>Swaps t0 and t1.</summary>
        </member>
        <member name="M:devDept.Geometry.Interval.Reverse">
            <summary>Changes interval to [-t1, -t0].</summary>
        </member>
        <member name="M:devDept.Geometry.Interval.ParameterAt(System.Double)">
            <summary>Convert normalized parameter to interval value, or pair of values.</summary>
        </member>
        <member name="M:devDept.Geometry.Interval.Includes(System.Double,System.Boolean)">
            <summary>
            Tests a value t to see if it is inside the interval.
            </summary>
            <param name="t">Value to test</param>
            <param name="bTestOpenInterval">If false, t is tested to see if it satisfies min &lt;= t &lt;= max. If true, t is tested to see if it satisfies min &lt; t &lt; max.</param>
            <returns>True if t is in the interval and false if t is not in the interval.</returns>
        </member>
        <member name="M:devDept.Geometry.Interval.Union(devDept.Geometry.Interval,devDept.Geometry.Interval)">
            <summary>
            Computes the union of the two intervals.
            </summary>
            <param name="a">First interval</param>
            <param name="b">Second interval</param>
            <returns>The resulting interval.</returns>
        </member>
        <member name="M:devDept.Geometry.Interval.ToString">
            <summary>
            Converts this Interval to a human readable string.
            </summary>
            <returns>A string that represents this Interval.</returns>
        </member>
        <member name="P:devDept.Geometry.Interval.Low">
            <summary>
            Gets the left interval value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Left">
            <summary>
            Gets the left interval value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Interval.High">
            <summary>
            Gets the right interval value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Right">
            <summary>
            Gets the right interval value.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Interval.IsDecreasing">
            <summary>Returns true if t0 &gt; t1.</summary>
        </member>
        <member name="P:devDept.Geometry.Interval.IsIncreasing">
            <summary>Returns true if t0 &lt; t1.</summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Length">
            <summary>
            Returns t1 - t0.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Mid">
            <summary>Returns 0.5 * (t0 + t1).</summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Min">
            <summary>Returns smaller of t0 and t1.</summary>
        </member>
        <member name="P:devDept.Geometry.Interval.Max">
            <summary>Returns larger of t0 and t1.</summary>
        </member>
        <member name="P:devDept.Geometry.Interval.IsTwoPI">
            <summary>
            Returns true if the interval length is 2*PI.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Matrix">
            <summary>
            Matrix operations helper class. Provides matrix multiplication, inversion and determinant computation methods.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Matrix.IsIdentity4(System.Double[0:,0:])">
            <summary>
            Returns true when the matrix is Identity.
            </summary>
            <param name="matrix">The matrix</param>
            <returns>True when the matrix is Identity, false otherwise</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply(System.Double,System.Double[0:,0:]@)">
            <summary>
            Scalar by matrix multiplication.
            </summary>
            <param name="scalar">The scalar value</param>
            <param name="matrix">The matrix</param>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply3x(System.Double[0:,0:],System.Double[])">
            <summary>
            3x3 matrix by scalar multiplication.
            </summary>
            <param name="a">The matrix</param>
            <param name="b">The scalar value</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply4x(System.Double[0:,0:],System.Double[])">
            <summary>
            4x4 matrix by scalar multiplication.
            </summary>
            <param name="a">The matrix</param>
            <param name="b">The scalar value</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply(System.Double[0:,0:],System.Double[])">
            <summary>
            Matrix by scalar multiplication.
            </summary>
            <param name="a">The matrix</param>
            <param name="b">The scalar value</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.MultiplyX3(System.Double[],System.Double[0:,0:])">
            <summary>
            3x3 scalar by matrix multiplication.
            </summary>
            <param name="a">The scalar value</param>
            <param name="b">The matrix</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply4x4(System.Double[0:,0:],System.Double[0:,0:])">
            <summary>
            4x4 matrix by matrix multiplication.
            </summary>
            <param name="a">The left matrix</param>
            <param name="b">The right matrix</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply(System.Double[0:,0:],System.Double[0:,0:])">
            <summary>
            Matrix by matrix multiplication.
            </summary>
            <param name="a">The left matrix</param>
            <param name="b">The right matrix</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Multiply3x3(System.Double[0:,0:],System.Double[0:,0:])">
            <summary>
            Matrix by matrix multiplication.
            </summary>
            <param name="a">The left matrix</param>
            <param name="b">The right matrix</param>
            <returns>The multiplication result.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Transpose(System.Double[0:,0:])">
            <summary>
            Computes the transpose of a matrix.
            </summary>
            <param name="matrix">The left matrix</param>
            <returns>The transposed matrix.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Determinant3(System.Double[0:,0:])">
            <summary>
            Computes the determinant of a 3x3 matrix.
            </summary>
            <param name="matrix">The matrix</param>
            <returns>The matrix determinant.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Determinant2(System.Double[0:,0:])">
            <summary>
            Computes the determinant of a 2x2 matrix.
            </summary>
            <param name="matrix">The matrix</param>
            <returns>The matrix determinant.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Inverse3(System.Double[0:,0:],System.Double[0:,0:]@)">
            <summary>
            Computes the inverse of a 3x3 matrix.
            </summary>
            <param name="matrix">The matrix</param>
            <param name="inverse">The inverse matrix</param>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Determinant4(System.Double[0:,0:])">
            <summary>
            Computes the determinant of a 4x4 matrix.
            </summary>
            <param name="matrix">The matrix</param>
            <returns>The matrix determinant.</returns>
        </member>
        <member name="M:devDept.Geometry.Matrix.Inverse4(System.Double[0:,0:],System.Double[0:,0:]@)">
            <summary>
            Computes the inverse of a 4x4 matrix.
            </summary>
            <param name="matrix">The matrix</param>
            <param name="inverse">The inverse matrix</param>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="T:devDept.Geometry.planeIntersectionType">
            <summary>
            Plane intersection type.
            </summary>
        </member>
        <member name="F:devDept.Geometry.planeIntersectionType.Disjoint">
            <summary>
            Disjoint (no intersection)
            </summary>
        </member>
        <member name="F:devDept.Geometry.planeIntersectionType.Coincide">
            <summary>
            The two planes coincide
            </summary>
        </member>
        <member name="F:devDept.Geometry.planeIntersectionType.UniqueLine">
            <summary>
            Intersection in a unique line
            </summary>
        </member>
        <member name="T:devDept.Geometry.Plane">
            <summary>
            Plane definition.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor">
            <summary>
            XY plane constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            3D point and normal vector constructor.
            </summary>
            <param name="P">Point on the plane</param>
            <param name="N">Non-zero normal to the plane</param>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(devDept.Geometry.Vector3D)">
            <summary>
            Normal vector constructor.
            </summary>
            <param name="N">Non-zero normal to the plane</param>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            3D point, and two vectors constructor.
            </summary>
            <param name="P">Point on the plane</param>
            <param name="X">Non-zero vector in plane</param>
            <param name="Y">Another vector in the plane not parallel to X</param>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Three non-colinear 3D points constructor.
            </summary>
            <param name="P">First point (Origin)</param>
            <param name="Q">Second point (X axis)</param>
            <param name="R">Third plane (Y axis</param>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(System.Double[])">
            <summary>
            From equation constructor. Equation form: ax + by + cz + d = 0.
            </summary>
            <param name="e">Equation of plane</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Clone">
            <summary>
            Creates a deep copy of this plane.
            </summary>
            <returns>The new plane obejct.</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.CreateFromPoints(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Creates the plane from three non collinear points.
            </summary>
            <param name="P">First point (Origin)</param>
            <param name="Q">Second point (X axis)</param>
            <param name="R">Third point (Y axis)</param>
        </member>
        <member name="M:devDept.Geometry.Plane.UpdateEquation">
            <summary>
            Updates plane equation.
            </summary>       
        </member>
        <member name="M:devDept.Geometry.Plane.Reflect(devDept.Geometry.Point3D)">
            <summary>
            Reflects a point about this plane.
            </summary>
            <param name="point">Point to reflect</param>
            <returns>The reflected point</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.Reflect(devDept.Geometry.Vector3D)">
            <summary>
            Reflects a point about this plane.
            </summary>
            <param name="vector">Vector to reflect</param>
            <returns>The reflected vector</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.PointAt(devDept.Geometry.Point2D)">
            <summary>Evaluates a point on the plane.</summary>
            <param name="pt">Point position</param>
        </member>
        <member name="M:devDept.Geometry.Plane.PointAt(System.Double,System.Double)">
            <summary>Evaluates a point on the plane.</summary>
            <param name="s">Evaluation parameter</param>
            <param name="t">Evaluation parameter</param>
        </member>
        <member name="M:devDept.Geometry.Plane.PointAt(System.Double,System.Double,System.Double)">
            <summary>Evaluates a point on the plane.</summary>
            <param name="s">Evaluation parameter</param>
            <param name="t">Evaluation parameter</param>
            <param name="c">Elevation parameter</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Intersection(devDept.Geometry.Plane,devDept.Geometry.Plane,devDept.Geometry.Segment3D@)">
            <summary>
            Computes the intersection of two planes.
            </summary>
            <param name="pln1">The first plane</param>
            <param name="pln2">The second plane</param>
            <param name="intSeg">The intersection segment (when it exists)</param>
            <returns>The intersection type.</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.Intersection(devDept.Geometry.Plane,devDept.Geometry.Plane,devDept.Geometry.Point3D@,devDept.Geometry.Vector3D@)">
            <summary>
            Computes the intersection of two planes.
            </summary>
            <param name="pln1">The first plane</param>
            <param name="pln2">The second plane</param>
            <param name="pt">The intersection point (when it exists)</param>
            <param name="u">The intersection direction</param>
            <returns>The intersection type.</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.TransformBy(devDept.Geometry.Transformation)">
            <summary>
             Transforms the plane by the provided transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Offset(System.Double)">
            <summary>
            Returns a new plane with the specified offset from this one.
            </summary>
            <param name="amount">The offset amount</param>
            <returns>The new plane object.</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.Rotate(System.Double,devDept.Geometry.Vector3D)">
            <summary>
            Rotates this plane around an axis passing through world origin.
            </summary>
            <param name="angleInRadians">Rotation angle</param>
            <param name="axis">Rotation axis</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Rotate(System.Double,devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Rotates this plane.
            </summary>
            <param name="angleInRadians">Rotation angle</param>
            <param name="axis">Rotation axis</param>
            <param name="originPoint">Origin point</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Translate(System.Double,System.Double,System.Double)">
            <summary>
            Translates this plane.
            </summary>
            <param name="dx">Delta X</param>
            <param name="dy">Delta Y</param>
            <param name="dz">Delta Z</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Translate(devDept.Geometry.Vector3D)">
            <summary>
            Translates this plane.
            </summary>
            <param name="delta">Delta vector</param>
        </member>
        <member name="M:devDept.Geometry.Plane.DistanceTo(devDept.Geometry.Point3D)">
            <summary>
            Gets signed distance from the plane to a point.
            </summary>
            <returns>The distance</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.Flip">
            <summary>
            Flip plane orientation by swapping X and y axes, reversing the zaxis, and
            updating the equation.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Plane.Project(devDept.Geometry.Point3D,System.Double@,System.Double@)">
            <summary>
            Gets point on plane that is closest to a given point.
            </summary>
            <param name="P">The 3D point</param>
            <param name="s">The s parameter of the closest point on the plane</param>
            <param name="t">The t parameter of the closest point on the plane</param>
        </member>
        <member name="M:devDept.Geometry.Plane.Project(devDept.Geometry.Point3D)">
            <summary>
            Gets point on plane that is closest to a given point.
            </summary>
            <param name="P">The 3D point</param>
            <returns>The closest 2D point on the plane.</returns>
        </member>
        <member name="M:devDept.Geometry.Plane.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Plane.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Plane.ToString">
            <summary>
            Converts this Plane to a human readable string.
            </summary>
            <returns>A string that represents this Plane.</returns>
        </member>
        <member name="P:devDept.Geometry.Plane.XY">
            <summary>
            Gets the XY plane.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.YZ">
            <summary>
            Gets the YZ plane.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.ZX">
            <summary>
            Gets the ZX plane.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.Origin">
            <summary>
            Gets or sets the plane origin.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.AxisX">
            <summary>
            Gets the plane X axis.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.AxisY">
            <summary>
            Gets the plane Y axis.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.AxisZ">
            <summary>
            Gets the plane Z axis.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Plane.Equation">
            <summary>
            Gets the plane equation.
            </summary>
        </member>
        <member name="T:devDept.Geometry.PlaneEquation">
            <summary>
            Plane equation definition.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Vector3D">
            <summary>
            3D Vector definition.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor(System.Double,System.Double)">
            <summary>
            2D constructor.
            </summary>
            <param name="x">Vector's X component</param>
            <param name="y">Vector's Y component</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            3D constructor.
            </summary>
            <param name="x">Vector's X component</param>
            <param name="y">Vector's Y component</param>
            <param name="z">Vector's Z component</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor(System.Double[])">
            <summary>
            Double array constructor.
            </summary>
            <param name="v">The array of doubles</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Two 3D points constructor. A 3D vector with direction from P0 to P1.
            </summary>
            <param name="P0">First point</param>
            <param name="P1">Second point</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Three 3D points constructor. A 3D vector perpendicular to a plane defined by 3 points.
            </summary>
            <param name="P0">Origin point</param>
            <param name="P1">Point along the X axis</param>
            <param name="P2">Point along the Y axis</param>
            <remarks>Check <see cref="P:devDept.Geometry.Vector3D.IsZero"/> before using this 3D vector.</remarks>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Clone">
            <summary>
            Creates a deep copy of this 3D vector.
            </summary>
            <returns>The new 3D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.PerpendicularTo(devDept.Geometry.Vector3D)">
            <summary>
            Sets this vector to be perpendicular to another vector. The result is not normalized.
            </summary>
            <param name="v">The test 3D vector</param>
            <returns> False if input vector is zero, true otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Zero">
            <summary>
            Sets all the vector components to zero.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Subtraction(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Subtraction between two vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Addition(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Addition between two 3D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Add(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Addition between a 3D point and a 3D vector.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Multiply(System.Double,devDept.Geometry.Vector3D)">
            <summary>
            Multiplication between a scalar value and a 3D vector.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Multiply(devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Multiplication between a 3D vector and a scalar s.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Division(devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Division between a 3D vector and a scalar s.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Normalize">
            <summary>
            Resizes the 3D vector to unit length.
            </summary>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Dot(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Dot product between two 3D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.op_Multiply(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Dot product between two 3D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Dot(devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Dot product between a 3D vector and a 3D point.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Dot(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Dot product between a 3D point and a 3D vector.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Subtract(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Subtraction between two 3D points.
            </summary>
            <param name="a">The first 3D point</param>
            <param name="b">The second 3D point</param>
            <returns>The resulting 3D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Add(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Addition between two 3D points.
            </summary>
            <param name="a">The first 3D point</param>
            <param name="b">The second 3D point</param>
            <returns>The resulting 3D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Cross(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Cross product between two 3D vectors.
            </summary>
            <returns>The resulting 3D vector, <b>not</b> normalized.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Cross(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>Cross product between two 3D points.</summary>
            <returns>The resulting 3D vector, <b>not</b> normalized.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AngleBetween(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>Computes the angle between two vectors.</summary>
            <returns>The angle in radians in the range 0 &lt; angle &lt; PI.</returns>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.ToString">
            <summary>Converts this 3D vector to a human readable string.</summary>
            <returns>A string that represents this 3D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector3D.Negate">
            <summary>Reverses the 3D vector direction.</summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreCoincident(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns true if the angle between the two 3D vectors is zero.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreCoincident(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Returns true if the angle between the two 3D vectors is zero or almost zero.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreOpposite(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns true if the angle between the two 3D vectors is PI.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreOpposite(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Returns true if the angle between the two 3D vectors is PI or almost PI.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreParallel(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns true if the angle between the two 3D vectors is 0 or PI.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreParallel(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Returns true if the angle between the two 3D vectors is zero or PI or almost zero or almost PI.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreOrthogonal(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Returns true if the angle between the two 3D vectors is PI/2.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.AreOrthogonal(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Returns true if the angle between the two 3D vectors is PI/2 or almost PI/2.
            </summary>
            <param name="u">First 3D vector (unit length)</param>
            <param name="v">Second 3D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector3D.DrawGL">
            <summary>
            Calls glNormal3d(X, Y, Z)
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector3D.TransformBy(devDept.Geometry.Transformation)">
            <summary>
            Transforms the 3D vector by the specified transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="P:devDept.Geometry.Vector3D.AxisX">
            <summary>
            Returns the X axis vector.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.AxisY">
            <summary>
            Returns the Y axis vector.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.AxisZ">
            <summary>
            Returns the the Z axis vector.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.IsZero">
            <summary>
            <b>True</b> if the vector has length equal to zero.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.IsUnit">
            <summary>
            <b>True</b> if the vector has length equal to one.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.Length">
            <summary>
            Gets or sets the 3D vector length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.LengthSquared">
            <summary>
            Gets or sets the vector length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector3D.AngleInXY">
            <summary>
            Gets the angle between the X-axis and the vector projection on the XY plane.
            </summary>
            <returns>The angle in radians.</returns>
        </member>
        <member name="P:devDept.Geometry.Vector3D.AngleFromXY">
            <summary>Gets the angle between the vector and the XY plane.</summary>
            <returns>The angle in radians.</returns>
        </member>
        <member name="F:devDept.Geometry.PlaneEquation.D">
            <summary>
            D term.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            3D point and 3D normal constructor.
            </summary>
            <param name="P">3D point on the plane</param>
            <param name="N">3D vector perpendicular to the plane</param>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.Create(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Creates a plane equation from a 3D point and 3D normal vector. It sets (X,Y,Z) to a unitized N, then sets D = -(X*P.X + y*P.Y + Z*P.Z).
            </summary>
            <param name="P">3D point on the plane</param>
            <param name="N">3D vector perpendicular to the plane</param>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Plane's coefficients constructor. Equation form: ax + by + cz + d = 0.
            </summary>
            <param name="a">First coefficient</param>
            <param name="b">Second coefficient</param>
            <param name="c">Third coefficient</param>
            <param name="d">Fourth coefficient</param>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.Clone">
            <summary>
            Creates a deep copy of this plane equation.
            </summary>
            <returns>The new plane equation object.</returns>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.ValueAt(devDept.Geometry.Point3D)">
            <summary>
            Evaluate the plane at a point.
            </summary>
            <param name="P">The point</param>
            <returns>x*P.x + y*P.y + z*P.z + d</returns>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.ValueAt(System.Double,System.Double,System.Double)">
            <summary>
            Evaluate the plane at a point.
            </summary>
            <param name="x">The x coordinate</param>
            <param name="y">The y coordinate</param>
            <param name="z">The z coordinate</param>
            <returns>X*x + Y*y + Z*z + D</returns>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.IsValid">
            <summary>
            Checks if this plane equation is valid.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.ToString">
            <summary>Converts this planar equation to a human readable string.</summary>
            <returns>A string that represents this planar equation.</returns>
        </member>
        <member name="M:devDept.Geometry.PlaneEquation.ToArray">
            <summary>
            Returns an array of plane equation's coefficients.
            </summary>
            <returns>The double array.</returns>
        </member>
        <member name="T:devDept.Geometry.Point4D">
            <summary>
            Defines a point in homogeneous coordinates. 
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor(System.Double,System.Double)">
            <summary>
            2D euclidean point constructor (Z=0, W=1).
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            3D euclidean point constructor (W=1).
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
            <param name="z">Point's Z coordinate</param>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Homogeneous point constructor.
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
            <param name="z">Point's Z coordinate</param>
            <param name="w">Point's W coordinate</param>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor(System.Double[])">
            <summary>
            Double array constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Point4D.#ctor(devDept.Geometry.Point3D)">
            <summary>
            3D point constructor.
            </summary>
            <param name="pt">The 3D point</param>
        </member>
        <member name="M:devDept.Geometry.Point4D.Clone">
            <summary>
            Creates a deep copy of this point.
            </summary>
            <returns>The new 4D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.ToArray">
            <summary>
            Returns an array of point's coordinates.
            </summary>
            <returns>The double array.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.op_Multiply(System.Double,devDept.Geometry.Point4D)">
            <summary>
            Product between a scalar value and a 4D point.
            </summary>
            <param name="value">Scalar value</param>
            <param name="p">The 4D point</param>
            <returns>The resulting 4D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.op_Division(devDept.Geometry.Point4D,System.Double)">
            <summary>
            Division between a 4D point and a scalar s.
            </summary>
            <param name="s">Scalar value</param>
            <param name="p">The 4D point</param>
            <returns>The resulting 4D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.op_Addition(devDept.Geometry.Point4D,devDept.Geometry.Point4D)">
            <summary>
            Addition between two 4D points.
            </summary>
            <param name="a">First 4D point</param>
            <param name="b">Second 4D point</param>
            <returns>The resulting 4D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.op_Subtraction(devDept.Geometry.Point4D,devDept.Geometry.Point4D)">
            <summary>
            Subtraction between two 4D points.
            </summary>
            <param name="a">First 4D point</param>
            <param name="b">Second 4D point</param>
            <returns>The resulting 4D point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.Distance(devDept.Geometry.Point4D,devDept.Geometry.Point4D)">
            <summary>
            Computes the 4D distance. 
            </summary>
            <param name="a">First 4D point</param>
            <param name="b">Second 4D point</param>
            <returns>The distance. The weights are treated as ordinary coordinates.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.ToString">
            <summary>
            Converts this 4D point to a human readable string.
            </summary>
            <returns>A string that represents this point.</returns>
        </member>
        <member name="M:devDept.Geometry.Point4D.TransformBy(devDept.Geometry.Transformation)">
            <summary>
            Transforms the homogeneous point by the specified transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="P:devDept.Geometry.Point4D.W">
            <summary>
            W term.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Point4D.Euclid">
            <summary>
            Gets or sets the Euclidean representation for this homogeneous point.
            </summary>
        </member>
        <member name="T:devDept.Geometry.PointRGB">
            <summary>
            Colored 3D point definition.
            </summary>
        </member>
        <member name="M:devDept.Geometry.PointRGB.#ctor(System.Double,System.Double,System.Double,System.Drawing.Color)">
            <summary>
            Color constructor.
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
            <param name="z">Point's Z coordinate</param>
            <param name="color">Point's color</param>
        </member>
        <member name="M:devDept.Geometry.PointRGB.#ctor(System.Double,System.Double,System.Double,System.Byte,System.Byte,System.Byte)">
            <summary>
            Individual color components constructor.
            </summary>
            <param name="x">Point's X coordinate</param>
            <param name="y">Point's Y coordinate</param>
            <param name="z">Point's Z coordinate</param>
            <param name="red">Point's color red component</param>
            <param name="green">Point's color green component</param>
            <param name="blue">Point's color blue component</param>
        </member>
        <member name="M:devDept.Geometry.PointRGB.Clone">
            <summary>
            Creates a deep copy of this RGB point.
            </summary>
            <returns>The new RBG point object.</returns>
        </member>
        <member name="P:devDept.Geometry.PointRGB.R">
            <summary>
            Red component.
            </summary>
        </member>
        <member name="P:devDept.Geometry.PointRGB.G">
            <summary>
            Green component.
            </summary>
        </member>
        <member name="P:devDept.Geometry.PointRGB.B">
            <summary>
            Blue component.
            </summary>
        </member>
        <member name="T:devDept.Geometry.polygonStatusType">
            <summary>
            Polygon status type. 
            </summary>
            <example>
             
                        Over
                        +--------------+   On
                        |   Clip    +--+----+
                        |   o-------+--o    |
                        |   |  In   |  |    |
                        |   |  +----+--+    |
                        |   |  |    +--+----+
                        |   |  |       |
                        |   |  +-------+
                        |   |          |
                        |   o----------o
                        +--------------+
                Out
                +---------+    
                |         |
                +---------+
             
            </example>
        </member>
        <member name="F:devDept.Geometry.polygonStatusType.In">
            <summary>
            The subject polygon is inside the clip one
            </summary>
        </member>
        <member name="F:devDept.Geometry.polygonStatusType.Out">
            <summary>
            The subject polygon is outside the clip one
            </summary>
        </member>
        <member name="F:devDept.Geometry.polygonStatusType.On">
            <summary>
            The subject polygon intersects the clip one
            </summary>
        </member>
        <member name="F:devDept.Geometry.polygonStatusType.Over">
            <summary>
            The clip polygon is inside the subject one
            </summary>
        </member>
        <member name="T:devDept.Geometry.pointStatusType">
            <summary>
            Point status type.
            </summary>
        </member>
        <member name="F:devDept.Geometry.pointStatusType.Outside">
            <summary>
            Outside
            </summary>
        </member>
        <member name="F:devDept.Geometry.pointStatusType.Inside">
            <summary>
            Inside
            </summary>
        </member>
        <member name="F:devDept.Geometry.pointStatusType.Onto">
            <summary>
            Onto the polygon perimeter
            </summary>
        </member>
        <member name="T:devDept.Geometry.Polygon2D">
            <summary>
            Closed 2D polygon definition.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Polygon2D.Min">
            <summary>
            Polygon's bounding rectangle min point.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Polygon2D.Max">
            <summary>
            Polygon's bounding rectangle max point
            </summary>
        </member>
        <member name="F:devDept.Geometry.Polygon2D.Points">
            <summary>
            Polygon's points.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.#ctor(System.Int32)">
            <summary>
            Points only constructor.
            </summary>
            <param name="numPoints">The number of 2D points</param>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.#ctor(System.Collections.Generic.IList{devDept.Geometry.Point2D})">
            <summary>
            Points only constructor.
            </summary>
            <param name="points">The list of 2D points</param>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.#ctor(devDept.Geometry.Point2D[],devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Points and bounding rectangle corners constructor.
            </summary>
            <param name="points">The list of 2D points</param>
            <param name="min">The polygon's bounding rectangle min point</param>
            <param name="max">The polygon's bounding rectangle max point</param>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.UpdateBoundingRect">
            <summary>
            Update/initialize the polygon min and max 2D points.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.IsValid">
            <summary>
            Checks that Min and Max are not null/Nothing and that the polygon is closed.
            </summary>
            <returns></returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.PointInsideBoundingRect(devDept.Geometry.Point2D)">
            <summary>
            Checks if the provided 2D point is inside the 2D polygon bounding rectangle.
            </summary>
            <param name="testPoint">The 2D point</param>
            <returns>True if the 2D point is inside the bounding rectangle of the 2D polygon, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.PointInsideOrOntoBoundingRect(devDept.Geometry.Point2D)">
            <summary>
            Checks if the provided 2D point is inside or onto the 2D polygon bounding rectangle.
            </summary>
            <param name="testPoint">The 2D point</param>
            <returns>True if the 2D point is inside or onto the bounding rectangle of the 2D polygon, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.PointInsideOrOntoBoundingRect(devDept.Geometry.Point2D,System.Double)">
            <summary>
            Checks if the provided 2D point is inside or onto the 2D polygon bounding rectangle.
            </summary>
            <param name="testPoint">The 2D point</param>
            <param name="domainSize">The domain size</param>
            <returns>True if the 2D point is inside or onto the bounding rectangle of the 2D polygon, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.IsPointInside(devDept.Geometry.Point2D)">
            <summary>
            Tests if a 2D point is inside the 2D polygon.
            </summary>
            <param name="testPoint">The test 2D point</param>
            <returns>True if the 2D point is inside, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.IsPointInside(devDept.Geometry.Point2D,System.Double)">
            <summary>
            Tests if a 2D point is inside or onto the 2D polygon.
            </summary>
            <param name="testPoint">The test 2D point</param>
            <param name="domainSize">The maximum size of the problem</param>
            <returns>The point status.</returns>
        </member>
        <member name="M:devDept.Geometry.Polygon2D.IsPolygonInside(devDept.Geometry.Polygon2D,System.Double)">
            <summary>
            Check the status of the subject polygon against the clip one.
            </summary>
            <param name="subject">Second polygon</param>
            <param name="domainSize">The 2D domain diagonal</param>
            <returns>The subject polygon status.</returns>
        </member>
        <member name="P:devDept.Geometry.Polygon2D.VertexCount">
            <summary>
            Gets Points.Count
            </summary>
        </member>
        <member name="T:devDept.Geometry.Quaternion">
            <summary>
            Defines a rotation in three dimensions.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Quaternion.X">
            <summary>
            X term of this quaternion.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Quaternion.Y">
            <summary>
            Y term of this quaternion.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Quaternion.Z">
            <summary>
            Z term of this quaternion.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Quaternion.W">
            <summary>
            W term of this quaternion.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Quaternion.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Quaternion components constructor.
            </summary>
            <param name="x">The X component of this quaternion</param>
            <param name="y">The Y component of this quaternion</param>
            <param name="z">The Z component of this quaternion</param>
            <param name="w">The W component of this quaternion</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.#ctor(devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Axis and angle constructor.
            </summary>
            <param name="rotAxis">The rotation axis (normalized)</param>
            <param name="rotAngleInDegrees">The rotation angle in degrees</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Creates a new Quaternion from specified yaw, pitch, and roll angles. 
            </summary>
            <param name="yaw">The yaw angle, in radians, around the y-axis.</param>
            <param name="pitch">The pitch angle, in radians, around the x-axis.</param>
            <param name="roll">The roll angle, in radians, around the z-axis.</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.Clone">
            <summary>
            Creates a deep copy of this quaternion.
            </summary>
            <returns>The new quaternion object.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.FromAxisAngle(devDept.Geometry.Vector3D,System.Double)">
            <summary>
            Resets this Quaternion to the rotation specified.
            </summary>
            <param name="rotAxis">The rotation axis (normalized)</param>
            <param name="rotAngleInDegrees">The rotation angle in degrees</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.ToAxisAngle(devDept.Geometry.Vector3D@,System.Double@)">
            <summary>
            Gets current rotation.
            </summary>
            <param name="rotAxis">The rotation axis</param>
            <param name="rotAngleInDegrees">The rotation angle in degrees</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.ToMatrix(System.Double[0:,0:]@)">
            <summary>
            Gets current rotation.
            </summary>
            <param name="matrix">Rotation matrix</param>
        </member>
        <member name="M:devDept.Geometry.Quaternion.ToMatrixInverse(System.Double[0:,0:]@)">
            <summary>
            Gets current inverse rotation.
            </summary>
            <param name="matrix">Inverse rotation matrix</param>
            <remarks>Used internally to rotate the camera because it must move in the opposite direction.</remarks>
        </member>
        <member name="M:devDept.Geometry.Quaternion.Normalize">
            <summary>
            Normalizes this Quaternion. 
            </summary>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.op_Multiply(devDept.Geometry.Quaternion,devDept.Geometry.Quaternion)">
            <summary>
            Multiplies the specified quaternion by another.
            </summary>
            <param name="left">First quaternion</param>
            <param name="right">Second quaternion</param>
            <returns>The Quaternion that is the product of multiplication.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.op_Multiply(devDept.Geometry.Quaternion,System.Double)">
            <summary>
            Multiplies the specified quaternion by a scalar.
            </summary>
            <param name="left">Quaternion</param>
            <param name="s">Scalar value</param>
            <returns>The Quaternion that is the product of multiplication.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.op_Multiply(System.Double,devDept.Geometry.Quaternion)">
            <summary>
            Multiplies the specified quaternion by a scalar.
            </summary>
            <param name="s">Scalar value</param>
            <param name="right">Quaternion</param>
            <returns>The Quaternion that is the product of multiplication.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.op_Addition(devDept.Geometry.Quaternion,devDept.Geometry.Quaternion)">
            <summary>
            Adds two quaternions.
            </summary>
            <param name="left">First quaternion</param>
            <param name="right">Second quaternion</param>
            <returns>The Quaternion resulted from the sum.</returns>
        </member>
        <member name="M:devDept.Geometry.Quaternion.ToString">
            <summary>
            Converts this Quaternion to a human readable string.
            </summary>
            <returns>A string that represents this Quaternion.</returns>
        </member>
        <member name="P:devDept.Geometry.Quaternion.Identity">
            <summary>
            Gets the identity Quaternion.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Segment2D">
            <summary>
            Defines a 2D segment.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Segment2D.P0">
            <summary>
            Start point.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Segment2D.P1">
            <summary>
            End point.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Segment2D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Segment2D.#ctor(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Point2D constructor.
            </summary>
            <param name="p0">Start point</param>
            <param name="p1">End point</param>
        </member>
        <member name="M:devDept.Geometry.Segment2D.#ctor(System.Drawing.Point,System.Drawing.Point)">
            <summary>
            System.Drawing.Point constructor.
            </summary>
            <param name="p0">Start point</param>
            <param name="p1">End point</param>
        </member>
        <member name="M:devDept.Geometry.Segment2D.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Individual coordinates constructor.
            </summary>
            <param name="x0">The X value of start point</param>
            <param name="y0">The Y value of start point</param>
            <param name="x1">The X value of end point</param>
            <param name="y1">The Y value of end point</param>
        </member>
        <member name="M:devDept.Geometry.Segment2D.Clone">
            <summary>
            Creates a deep copy of this 2D segment.
            </summary>
            <returns>The new 2D segment.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.Project(devDept.Geometry.Point2D)">
            <summary>
            Finds the point on the (infinite) line that is closest to given point.
            </summary>
            <param name="pt">Test point</param>
            <returns>The parameter of the point on the line that is closest to test point.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.ClosestPointTo(devDept.Geometry.Point2D)">
            <summary>
            Finds the point inside the segment that is closest to given point.
            </summary>
            <param name="pt">Test point</param>
            <returns>The parameter of the point on the line that is closest to test point.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.PointAt(System.Double)">
            <summary>
            Evaluates a point on (infinite) segment.
            </summary>
            <param name="t">Evaluation parameter</param>
            <returns>(1-t)*start + t*end</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.Intersection(devDept.Geometry.Segment2D,devDept.Geometry.Segment2D,devDept.Geometry.Point2D@,devDept.Geometry.Point2D@,System.Double)">
            <summary>
            Computes the intersection of two 2D segments.
            </summary>
            <param name="s1">First segement</param>
            <param name="s2">Second segment</param>
            <param name="i0">Intersection point (when it exists)</param>
            <param name="i1">Endpoint of the intersect segment [i0, i1] (when it exists)</param>
            <param name="domainSize">The maximum diagonal size of the domain</param>
            <returns>The intersection type.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.IntersectionLine(devDept.Geometry.Segment2D,devDept.Geometry.Segment2D,devDept.Geometry.Point2D@)">
            <summary>
            Computes the intersection of two infinite 2D lines.
            </summary>
            <param name="s1">First line</param>
            <param name="s2">Second line</param>
            <param name="i0">Intersection point (when it exists)</param>
            <returns>True if the intersection exists, false otherwise (parallel lines).</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.Intersection(devDept.Geometry.Segment2D,devDept.Geometry.Segment2D,devDept.Geometry.Point2D@)">
            <summary>
            Computes the intersection of two 2D segments.
            </summary>
            <param name="s1">First line</param>
            <param name="s2">Second line</param>
            <param name="i0">Intersection point (when it exists)</param>
            <returns>True if the intersection exists, false otherwise (parallel or disjoint).</returns>
            <remarks>If return value is true and i0 is null, the segments are collinear and overlapping.</remarks>
        </member>
        <member name="M:devDept.Geometry.Segment2D.IntersectionAndT(devDept.Geometry.Segment2D,devDept.Geometry.Segment2D,devDept.Geometry.Point2D@)">
            <summary>
            Computes the intersection of two 2D segments.
            </summary>
            <param name="s1">First line</param>
            <param name="s2">Second line</param>
            <param name="i0">Intersection point (when it exists)</param>
            <returns>True if the intersection exists, false otherwise (parallel or disjoint).</returns>
            <remarks>Here we return true even when the intersection is on the boundary of one of the two segments.</remarks>
        </member>
        <member name="M:devDept.Geometry.Segment2D.ToString">
            <summary>
            Converts this 2D segment to a human readable string.
            </summary>
            <returns>A string that represents this 2D segment.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment2D.ExtendBy(System.Double,System.Double)">
            <summary>
            Extends the segment of the amount provided.
            </summary>
            <param name="atStart">Extension amount at segment start</param>
            <param name="atEnd">Extension amount at segment end</param>
        </member>
        <member name="M:devDept.Geometry.Segment2D.AreCollinear(devDept.Geometry.Segment2D,devDept.Geometry.Segment2D)">
            <summary>
            Returns true if the two segments are collinear.
            </summary>
            <param name="s1">The first segment</param>
            <param name="s2">The second segment</param>
        </member>
        <member name="P:devDept.Geometry.Segment2D.MidPoint">
            <summary>
            Gets the segment mid point.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment2D.Length">
            <summary>
            Gets the 2D segment length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment2D.Normal">
            <summary>
            Gets the 2D segment normal vector (not normalized).
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment2D.IsPoint">
            <summary>
            If true, the segment is a degenerated one (a point).
            </summary>
        </member>
        <member name="T:devDept.Geometry.segmentIntersectionType">
            <summary>
            2D segment intersection type.
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.Disjoint">
            <summary>
            Disjoint
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.EndPointTouch">
            <summary>
            The two segments touch at end points (are contiguous)
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.Touch">
            <summary>
            The intersection point is the end point of one of the segments
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.Cross">
            <summary>
            Intersect in unique point i0
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.OverlapInSegment">
            <summary>
            Overlap in segment from i0 to i1
            </summary>
        </member>
        <member name="F:devDept.Geometry.segmentIntersectionType.CollinearEndPointTouch">
            <summary>
            The two segments touch at end points and are collinear
            </summary>
        </member>
        <member name="T:devDept.Geometry.Segment3D">
            <summary>
            Defines a 3D segment.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Segment3D.P0">
            <summary>
            Start point.
            </summary>
        </member>
        <member name="F:devDept.Geometry.Segment3D.P1">
            <summary>
            End point.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Segment3D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Segment3D.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Point3D constructor.
            </summary>
            <param name="p0">Start point</param>
            <param name="p1">End point</param>
        </member>
        <member name="M:devDept.Geometry.Segment3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Individual coordinates constructor.
            </summary>
            <param name="x0">The X value of start point</param>
            <param name="y0">The Y value of start point</param>
            <param name="z0">The Z value of start point</param>
            <param name="x1">The X value of end point</param>
            <param name="y1">The Y value of end point</param>
            <param name="z1">The Z value of end point</param>
        </member>
        <member name="M:devDept.Geometry.Segment3D.Clone">
            <summary>
            Creates a deep copy of this 3D segment.
            </summary>
            <returns>The new 3D segment.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.ExtendTo(devDept.Geometry.Point3D)">
            <summary>
            Extends (if necessary) the segment to the provided 3D point.
            </summary>
            <param name="extPt">The extension point</param>
        </member>
        <member name="M:devDept.Geometry.Segment3D.Project(devDept.Geometry.Point3D)">
            <summary>
            Finds the point on the (infinite) line that is closest to given point.
            </summary>
            <param name="pt">Test point</param>
            <returns>The parameter of the point on the line that is closest to test point.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.ClosestPointTo(devDept.Geometry.Point3D)">
            <summary>
            Finds the point inside the segment that is closest to given point.
            </summary>
            <param name="pt">Test point</param>
            <returns>The parameter of the point on the segment that is closest to test point.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.PointAt(System.Double)">
            <summary>
            Evaluates a point on (infinite) segment.
            </summary>
            <param name="t">Evaluation parameter</param>
            <returns>(1-t)*start + t*end</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.Plane,devDept.Geometry.Point3D@)">
            <summary>
            Intersects a 3D segment with a plane.
            </summary>
            <param name="plane">The plane</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.Plane,System.Boolean,devDept.Geometry.Point3D@)">
            <summary>
            Intersects a 3D segment with a plane.
            </summary>
            <param name="plane">The plane</param>
            <param name="infinite">If true, the Segment3D is treated as an infinite line</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.PlaneEquation)">
            <summary>
            Intersects the 3D segment with a plane.
            </summary>
            <param name="pe">The plane equation</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.PlaneEquation,System.Boolean)">
            <summary>
            Intersects the 3D segment with a plane.
            </summary>
            <param name="pe">The plane equation</param>
            <param name="infinite">If true, the Segment3D is treated as an infinite line</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.PlaneEquation,devDept.Geometry.Point3D@)">
            <summary>
            Intersects the 3D segment with a plane.
            </summary>
            <param name="pe">The plane equation</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.PlaneEquation,System.Boolean,devDept.Geometry.Point3D@)">
            <summary>
            Intersects the 3D segment with a plane.
            </summary>
            <param name="pe">The plane equation</param>
            <param name="infinite">If true, the Segment3D is treated as an infinite line</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D@)">
            <summary>
            Intersects the 3D segment with a triangle.
            </summary>
            <param name="p1">First triangle vertex</param>
            <param name="p2">Second triangle vertex</param>
            <param name="p3">Third triangle vertex</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.IntersectWith(devDept.Geometry.Point3D,devDept.Geometry.Point3D,devDept.Geometry.Point3D,System.Boolean,devDept.Geometry.Point3D@,System.Double@,System.Double@)">
            <summary>
            Intersects the 3D segment with a triangle.
            </summary>
            <param name="p1">First triangle vertex</param>
            <param name="p2">Second triangle vertex</param>
            <param name="p3">Third triangle vertex</param>
            <param name="ray">When true, it considers a ray starting from P0 to infinite</param>
            <param name="intPoint">The intersection point (if exists)</param>
            <param name="s">The triangle s coordinate</param>
            <param name="t">The triangle t coordinate</param>
            <returns>True if the intersection was found, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.ToString">
            <summary>
            Converts this 3D segment to a human readable string.
            </summary>
            <returns>A string that represents this 3D segment.</returns>
        </member>
        <member name="M:devDept.Geometry.Segment3D.AreCollinear(devDept.Geometry.Segment3D,devDept.Geometry.Segment3D)">
            <summary>
            Returns true if the two segments are collinear.
            </summary>
            <param name="s1">The first segment</param>
            <param name="s2">The second segment</param>
        </member>
        <member name="P:devDept.Geometry.Segment3D.IsPoint">
            <summary>
            If true, the segment is a degenerated one (a point).
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment3D.MidPoint">
            <summary>
            Gets the 3D segment middle point.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment3D.Length">
            <summary>
            Gets the 3D segment length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Segment3D.LengthSquared">
            <summary>
            Gets the 3D segment length squared.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Size2D">
            <summary>
            Defines a 2D size. 
            </summary>
        </member>
        <member name="M:devDept.Geometry.Size2D.#ctor(System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Size2D.#ctor(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Two 2D points constructor.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size2D.Diagonal">
            <summary>
            Returns the rectangle diagonal length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size2D.Min">
            <summary>
            Gets the minimum rectangle dimension.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size2D.Max">
            <summary>
            Gets the maximum rectangle dimension.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Size3D">
            <summary>
            Defines a 3D size. 
            </summary>
        </member>
        <member name="M:devDept.Geometry.Size3D.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Size3D.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Two 3D points constructor.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size3D.Diagonal">
            <summary>
            Gets the box diagonal length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size3D.Min">
            <summary>
            Gets the minimum box dimension.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Size3D.Max">
            <summary>
            Gets the maximum box dimension.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Transformation">
            <summary>4x4 transformation matrix.</summary>
            <example>
            Usage example.
            	<code lang="CS" title="[New Example]">
            Transformation tra = new Transformation();
            tra.Translation(10, 0, 0);
             
            Transformation rot = new Transformation();
            rot.Rotation(Math.PI/6, Vector3D.AxisY); // angle in radians
             
            Transformation xform = tra * rot; // combines the two transformations (order matters)
             
            Point3D pt = new (10, 20, 30);
             
            Point3D newPt = xForm * p; // transforms the point pt
            </code>
            	<code lang="VB" title="[New Example]">
            Dim tra As Transformation = New Transformation()
            tra.Translation(10, 0, 0)
             
            Dim rot As Transformation = New Transformation()
            rot.Rotation(Math.PI/6, Vector3D.AxisY) ' angle In radians
             
            Dim xform As Transformation = tra * rot ' combines the two transformations (order matters)
             
            Dim pt As Point3D = New (10, 20, 30)
             
            Dim ptNew As Point3D = xForm * p ' transforms the point pt
            </code>
            </example>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor">
            <summary>
            Zero matrix constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor(System.Double)">
            <summary>
            Diagonal matrix constructor.
            </summary>
            <param name="d">Diagonal value</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor(System.Double[0:,0:])">
            <summary>4x4 square array of doubles constructor.</summary>
            <param name="m">The matrix (deeply copied)</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor(System.Double[])">
            <summary>16x array of doubles constructor.</summary>
            <param name="m">The matrix as an array of 16 doubles (deeply copied) ordered by row</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.IsIdentity(System.Double)">
            <summary>
            Check if the transformation is the 'Identity' one.
            1 0 0 0
            0 1 0 0
            0 0 1 0
            0 0 0 1
            </summary>
            <param name="zeroTolerance">Test tolerance</param>
            <returns>Returns true if matrix is the identity transformation.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.IsIdentity">
            <summary>
            Check if the transformation is the 'Identity' one.
            1 0 0 0
            0 1 0 0
            0 0 1 0
            0 0 0 1
            </summary>
            <returns>Returns true if matrix is the identity transformation.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            As frame constructor.
            </summary>
            <param name="P">3D point</param>
            <param name="X">X axis vector (unit length)</param>
            <param name="Y">Y axis vector (unit length)</param>
            <param name="Z">Z axis vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Clone">
            <summary>
            Creates a deep copy of this transformation.
            </summary>
            <returns>The new transformation object.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.Zero">
            <summary>
            All zeros.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.Identity">
            <summary>
            Diagonal is (1,1,1,1).
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.Diagonal(System.Double)">
            <summary>
            Diagonal 3x3 with bottom row = 0,0,0,1.
            </summary>
            <param name="d">Diagonal value</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Scale(System.Double,System.Double,System.Double)">
            <summary>
            Creates non-uniform scale transformation with the origin as a fixed point.
            </summary>
            <param name="sx">Scale factor along X</param>
            <param name="sy">Scale factor along Y</param>
            <param name="sz">Scale factor along Z</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Scale(devDept.Geometry.Vector3D)">
            <summary>
            Creates non-uniform scale transformation with the origin as a fixed point.
            </summary>
            <param name="sv">Scale vector</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Scale(devDept.Geometry.Point3D,System.Double)">
            <summary>
            Create uniform scale transformation with a specified fixed point.
            </summary>
            <param name="fixedPoint">Fixed point</param>
            <param name="scaleFactor">Scale factor</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Scale(devDept.Geometry.Point3D,System.Double,System.Double,System.Double)">
            <summary>
            Create a non-uniform scale transformation with a specified fixed point.
            </summary>
            <param name="fixedPoint">Fixed point</param>
            <param name="sx">Scale factor along X</param>
            <param name="sy">Scale factor along Y</param>
            <param name="sz">Scale factor along Z</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Translation(System.Double,System.Double,System.Double)">
            <summary>
            Right column is (dx, dy, dz, 1).
            </summary>
            <param name="x">Delta X</param>
            <param name="y">Delta y</param>
            <param name="z">Delta Z</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Translation(devDept.Geometry.Vector3D)">
            <summary>
            Right column is (v.X, v.Y, v.Z, 1).
            </summary>
            <param name="v">Delta vector</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.PlanarProjection(devDept.Geometry.Plane)">
            <summary>
            Get transformation that projects to a plane. This transformation maps a 3D point P to the point plane.ClosestPointTo(Q).
            </summary>
            <param name="plane">Plane to project to</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.Point2D)">
            <summary>
            Applies transformation to a 2D point.
            </summary>
            <param name="t">The transformation</param>
            <param name="p">The point</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.IVertex)">
            <summary>
            Applies transformation to a 2D point.
            </summary>
            <param name="t">The transformation</param>
            <param name="v">The vertex</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.Point3D)">
            <summary>
            Applies transformation to a 3D point.
            </summary>
            <param name="t">The transformation</param>
            <param name="p">The point</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.PointRGB)">
            <summary>
            Applies transformation to a RGB point.
            </summary>
            <param name="t">The transformation</param>
            <param name="p">The point</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.Point4D)">
            <summary>
            Applies transformation to a 4D point.
            </summary>
            <param name="t">The transformation</param>
            <param name="h">The point</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.Vector2D)">
            <summary>
            Applies transformation to a 2D vector.
            </summary>
            <param name="t">The transformation</param>
            <param name="v">The point</param>
            <returns>The transformed vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Multiply(devDept.Geometry.Transformation,devDept.Geometry.Vector3D)">
            <summary>
            Applies transformation to a 3D vector.
            </summary>
            <param name="t">The transformation</param>
            <param name="v">The point</param>
            <returns>The transformed vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.Transpose">
            <summary>
            Transposes the 4x4 matrix.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.Invert">
            <summary>
            Inverts the 4x4 matrix.
            </summary>
            <returns>True if matrix is non-singular, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(System.Double,devDept.Geometry.Vector3D)">
            <summary>
            Rotation transformation.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axis">Rotation axis</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(System.Double,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Rotation transformation.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axisStart">Axis start point</param>
            <param name="axisEnd">Axis end point</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(System.Double,devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Rotation transformation.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axis">Rotation axis</param>
            <param name="center">Center point</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Rotation transformation.
            </summary>
            <param name="startDir">StartPoint direction</param>
            <param name="endDir">End direction</param>
            <param name="center">Center point</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            	<para>Rotation transformation.</para>
            	<para>The frames should be right hand orthonormal frames (unit vectors with Z = X X
                Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X,
                initial Y to final Y, and initial Z to final Z.</para>
            </summary>
            <param name="X0">First frame X axis</param>
            <param name="Y0">First frame Y axis</param>
            <param name="Z0">First frame Z axis</param>
            <param name="X1">Second frame X axis</param>
            <param name="Y1">Second frame Y axis</param>
            <param name="Z1">Second frame Z axis</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(devDept.Geometry.Plane,devDept.Geometry.Plane)">
            <summary>
            	<para>Rotation transformation.</para>
            	<para>The frames should be right hand orthonormal frames (unit vectors with Z = X X
                Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X,
                initial Y to final Y, and initial Z to final Z.</para>
            	<para>If the initial and final center are equal, then that center point is the
                fixed point of the rotation. If the initial and final point differ, then the
                resulting transform is the composition of a rotation fixing P0 and translation from
                P0 to P1. The resulting transformation maps P0 to P1, P0+X0 to P1+X1, ...</para>
            </summary>
            <param name="plane0">First frame</param>
            <param name="plane1">Second frame</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Rotation(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            	<para>Rotation transformation.</para>
            	<para>The frames should be right hand orthonormal frames (unit vectors with Z = X X
                Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X,
                initial Y to final Y, and initial Z to final Z.</para>
            	<para>If the initial and final center are equal, then that center point is the
                fixed point of the rotation. If the initial and final point differ, then the
                resulting transform is the composition of a rotation fixing P0 and translation from
                P0 to P1. The resulting transformation maps P0 to P1, P0+X0 to P1+X1, ...</para>
            </summary>
            <param name="P0">First frame Origin</param>
            <param name="X0">First frame X axis</param>
            <param name="Y0">First frame Y axis</param>
            <param name="Z0">First frame Z axis</param>
            <param name="P1">Second frame Origin</param> 
            <param name="X1">Second frame X axis</param>
            <param name="Y1">Second frame Y axis</param>
            <param name="Z1">Second frame Z axis</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Mirror(devDept.Geometry.Plane)">
            <summary>
            Mirror transformation.
            </summary>
            <param name="plane">Mirror plane</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.Mirror(devDept.Geometry.Point3D,devDept.Geometry.Vector3D)">
            <summary>
            Mirror transformation.
            </summary>
            <param name="P">Point on mirror plane</param>
            <param name="N">AxisZ of mirror plane</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Addition(devDept.Geometry.Transformation,devDept.Geometry.Transformation)">
            <summary>
            Adds two transformations.
            </summary>
            <param name="left">Left one</param>
            <param name="right">Right one</param>
            <returns>The resulting transformation</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.op_Subtraction(devDept.Geometry.Transformation,devDept.Geometry.Transformation)">
            <summary>
            Subtract two transformations.
            </summary>
            <param name="left">Left one</param>
            <param name="right">Right one</param>
            <returns>The resulting transformation</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.ChangeBasis(devDept.Geometry.Plane,devDept.Geometry.Plane)">
            <summary>
             Computes a change of basis transformation.
             </summary>
            <remarks>
            	<para>If you have points defined with respect to planes, the version of
                ChangeBasis() that takes two planes computes the transformation to change
                coordinates from one plane to another. The predefined world plane Plane.XY can be
                used as an argument.</para>
            	<para>If P = plane0.Evaluate(a0, b0, c0)</para>
            	<para>and (a1,b1,c1) = ChangeBasis(plane0, plane1) * new Point3D(a0, b0, c0)</para>
            	<para>then P = plane1.Evaluate(a1, b1, c1)</para>
            	<para>The version of ChangeBasis() that takes six vectors maps (a0, b0, c0) to (a1,
                b1, c1) where a0*X0 + b0*Y0 + c0*Z0 = a1*X1 + b1*Y1 + c1*Z1.</para>
            	<para>The version of ChangeBasis() that takes six vectors with center points maps
                (a0, b0, c0) to (a1, b1, c1) where P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1
                + c1*Z1.</para>
            	<para>The change of basis transformation is not the same as the rotation
                transformation that rotates one orthonormal frame to another. See the Rotation()
                method.</para>
            </remarks>
            <returns>True if the operation succeeded, false otherwise</returns>
            <param name="initial">Initial plane</param>
            <param name="final">Final plane</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.ChangeBasis(devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Computes a change of basis transformation.
            </summary>
            <param name="X0">Initial frame X (X,Y,Z = arbitrary basis)</param>
            <param name="Y0">Initial frame Y</param>
            <param name="Z0">Initial frame Z</param>
            <param name="X1">Final frame X (X,Y,Z = arbitrary basis)</param>
            <param name="Y1">Final frame Y</param>
            <param name="Z1">Final frame Z</param>
            <returns>True if the operation succeeded, false otherwise</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.ChangeBasis(devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Point3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D,devDept.Geometry.Vector3D)">
            <summary>
            Computes a change of basis transformation. 
            </summary>
            <remarks>
            Change of basis transformations and rotation transformations
            are often confused.  This is a change of basis transformation.
            If Q = P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1 + c1*Z1
            then this transform will map the point (a0,b0,c0) to (a1,b1,c1)
            </remarks>
            <param name="P0">Initial frame center</param>
            <param name="X0">Initial frame X (X,Y,Z = arbitrary basis)</param>
            <param name="Y0">Initial frame Y</param>
            <param name="Z0">Initial frame Z</param>
            <param name="P1">Final frame center</param>
            <param name="X1">Final frame X (X,Y,Z = arbitrary basis)</param>
            <param name="Y1">Final frame Y</param>
            <param name="Z1">Final frame Z</param>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Transformation.IsScaleFactorUniform">
            <summary>
            True if the scale factor of the transformation is the same in the X, Y and Z directions.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.Dump">
            <summary>
            Dumps the matrix on Console window.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Transformation.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Transformation.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="P:devDept.Geometry.Transformation.Item(System.Int32,System.Int32)">
            <summary>Direct access on matrix values.</summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.Matrix">
            <summary>
            Gets or sets the 4x4 matrix.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.MatrixAsVectorByRow">
            <summary>Gets the 4x4 matrix as an array of doubles ordered by row.</summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.MatrixAsVectorByColumn">
            <summary>Gets the 4x4 matrix as an array of doubles ordered by column.</summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.ScaleFactorX">
            <summary>
            Gets the scale factor along X.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.ScaleFactorY">
            <summary>
            Gets the scale factor along Y.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Transformation.ScaleFactorZ">
            <summary>
            Gets the scale factor along Z.
            </summary>
        </member>
        <member name="T:devDept.Geometry.Identity">
            <summary>
            Identity transformation.
            </summary>
            <seealso cref="T:devDept.Geometry.Transformation">Transformation Class</seealso>
        </member>
        <member name="M:devDept.Geometry.Identity.#ctor">
            <summary>
            Standard constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Identity.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="T:devDept.Geometry.Translation">
            <summary>
            Translation transformation.
            </summary>
            <seealso cref="T:devDept.Geometry.Transformation">Transformation Class</seealso>
        </member>
        <member name="M:devDept.Geometry.Translation.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
            <param name="x">Delta X</param>
            <param name="y">Delta y</param>
            <param name="z">Delta Z</param>
        </member>
        <member name="M:devDept.Geometry.Translation.#ctor(devDept.Geometry.Vector3D)">
            <summary>
            3D vector constructor.
            </summary>
            <param name="v">Delta vector</param>
        </member>
        <member name="M:devDept.Geometry.Translation.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Translation.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="T:devDept.Geometry.Rotation">
            <summary>
            Rotation transformation.
            </summary>
            <seealso cref="T:devDept.Geometry.Transformation"/>
        </member>
        <member name="M:devDept.Geometry.Rotation.#ctor(System.Double,devDept.Geometry.Vector3D)">
            <summary>
            Angle and axis constructor.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axis">Rotation axis passign through origin</param>
        </member>
        <member name="M:devDept.Geometry.Rotation.#ctor(System.Double,devDept.Geometry.Vector3D,devDept.Geometry.Point3D)">
            <summary>
            Angle, axis and center point constructor.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axis">Rotation axis</param>
            <param name="center">Center point</param>
        </member>
        <member name="M:devDept.Geometry.Rotation.#ctor(System.Double,devDept.Geometry.Point3D,devDept.Geometry.Point3D)">
            <summary>
            Angle, axis start point and end point constructor.
            </summary>
            <param name="angleInRadians">Angle in radians</param>
            <param name="axisStart">Axis start point</param>
            <param name="axisEnd">Axis end point</param>
        </member>
        <member name="M:devDept.Geometry.Rotation.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Rotation.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="T:devDept.Geometry.Scale">
            <summary>
            Scale transformation.
            </summary>
            <seealso cref="T:devDept.Geometry.Transformation"/>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(System.Double)">
            <summary>
            Uniform scale factor constructor.
            </summary>
            <param name="scaleFactor">Scale factor</param>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Non-uniform scale factor constructor.
            </summary>
            <param name="sx">Scale factor along X</param>
            <param name="sy">Scale factor along Y</param>
            <param name="sz">Scale factor along Z</param>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(devDept.Geometry.Vector3D)">
            <summary>
            3D vector constructor.
            </summary>
            <param name="sv">Scale vector</param>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(devDept.Geometry.Point3D,System.Double)">
            <summary>
            3D point and scale factor constructor.
            </summary>
            <param name="fixedPoint">Fixed point</param>
            <param name="scaleFactor">Scale factor</param>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(devDept.Geometry.Point3D,System.Double,System.Double,System.Double)">
            <summary>
            3D point and scale factors constructor.
            </summary>
            <param name="fixedPoint">Fixed point</param>
            <param name="sx">Scale factor along X</param>
            <param name="sy">Scale factor along Y</param>
            <param name="sz">Scale factor along Z</param>
        </member>
        <member name="M:devDept.Geometry.Scale.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Scale.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="T:devDept.Geometry.Mirror">
            <summary>
            Mirror transformation.
            </summary>
            <seealso cref="T:devDept.Geometry.Transformation"/>
        </member>
        <member name="M:devDept.Geometry.Mirror.#ctor(devDept.Geometry.Plane)">
            <summary>
            Standard constructor.
            </summary>
            <param name="plane">Mirror plane</param>
        </member>
        <member name="M:devDept.Geometry.Mirror.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor for deserializing objects.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="M:devDept.Geometry.Mirror.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data needed to serialize the target object.
            </summary>
            <param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance that defines the serialized data.</param>
            <param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> instance that contains the serialized data.</param>
        </member>
        <member name="T:devDept.Geometry.Vector2D">
            <summary>
            Defines a 2D vector.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.#ctor">
            <summary>
            Empty constructor.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.#ctor(System.Double,System.Double)">
            <summary>
            Standard constructor.
            </summary>
            <param name="x">Vector's X component</param>
            <param name="y">Vector's Y component</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.#ctor(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Two 2D points constructor. A 2D vector with direction from P0 to P1.
            </summary>
            <param name="P0">First point</param>
            <param name="P1">Second point</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.#ctor(System.Double[])">
            <summary>
            Double array constructor.
            </summary>
            <param name="v">The array of doubles</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Clone">
            <summary>
            Creates a deep copy of this 2D vector.
            </summary>
            <returns>The new 2D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.op_Multiply(System.Double,devDept.Geometry.Vector2D)">
            <summary>
            Multiplication between a scalar value and a 2D vector.
            </summary>
            <param name="s">Scalar value</param>
            <param name="v">The 2D vector</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.op_Multiply(devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Multiplication between a scalar value and a 2D vector.
            </summary>
            <param name="s">Scalar value</param>
            <param name="v">The 2D vector</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Subtract(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Subtraction between two 2D points.
            </summary>
            <param name="a">The first 2D point</param>
            <param name="b">The second 2D point</param>
            <returns>The resulting 2D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Add(devDept.Geometry.Point2D,devDept.Geometry.Point2D)">
            <summary>
            Addition between two 2D points.
            </summary>
            <param name="a">The first 2D point</param>
            <param name="b">The second 2D point</param>
            <returns>The resulting 2D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Normalize">
            <summary>
            Resizes the 2D vector to unit length.
            </summary>
            <returns>True if the operation succeeded, false otherwise.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Reverse">
            <summary>
            Inverts the 2D vector direction.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AngleBetween(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>Computes the angle between two 2D vectors.</summary>
            <returns>The angle in radians in the range 0 &lt; angle &lt; PI.</returns>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.SignedAngleBetween(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>Computes the angle between two 2D vectors.</summary>
            <returns>The angle in radians in the range -PI &lt; angle &lt; +PI.</returns>
            <param name="u">First 2D vector</param>
            <param name="v">Second 2D vector</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.PerpDotProduct(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Perpendicular dot product.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
            <returns>The perpendicular dot product value.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.op_Subtraction(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Subtraction between two 2D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.op_Addition(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Addition between two vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Dot(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Dot product between two 2D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.op_Multiply(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Dot product between two 2D vectors.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Dot(devDept.Geometry.Vector2D,devDept.Geometry.Point2D)">
            <summary>
            Dot product between a 2D vector and a 2D point.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Dot(devDept.Geometry.Point2D,devDept.Geometry.Vector2D)">
            <summary>
            Dot product between a 2D point and a 2D vector.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Zero">
            <summary>
            Sets all the vector components to zero.
            </summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreCoincident(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Returns true if the angle between the two 2D vectors is zero.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreCoincident(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Returns true if the angle between the two 2D vectors is zero or almost zero.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreOpposite(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Returns true if the angle between the two 2D vectors is PI.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreOpposite(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Returns true if the angle between the two 2D vectors is PI or almost PI.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreParallel(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Returns true if the angle between the two 2D vectors is 0 or PI.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreParallel(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Returns true if the angle between the two 2D vectors is zero or PI or almost zero or almost PI.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreOrthogonal(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D)">
            <summary>
            Returns true if the angle between the two 2D vectors is PI/2.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.AreOrthogonal(devDept.Geometry.Vector2D,devDept.Geometry.Vector2D,System.Double)">
            <summary>
            Returns true if the angle between the two 2D vectors is PI/2 or almost PI/2.
            </summary>
            <param name="u">First 2D vector (unit length)</param>
            <param name="v">Second 2D vector (unit length)</param>
            <param name="tol">Dot product comparison tolerance</param>
        </member>
        <member name="M:devDept.Geometry.Vector2D.ToString">
            <summary>
            Converts this 2D vector to a human readable string.
            </summary>
            <returns>A string that represents this 2D vector.</returns>
        </member>
        <member name="M:devDept.Geometry.Vector2D.Negate">
            <summary>Reverses the 2D vector direction.</summary>
        </member>
        <member name="M:devDept.Geometry.Vector2D.TransformBy(devDept.Geometry.Transformation)">
            <summary>
            Transforms the 2D vector by the specified transformation.
            </summary>
            <param name="xform">The transformation to be applied</param>
        </member>
        <member name="P:devDept.Geometry.Vector2D.IsUnit">
            <summary>
            <b>True</b> if the vector has length equal to one.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.IsZero">
            <summary>
            <b>True</b> if the vector has length equal to zero.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.Length">
            <summary>
            Gets or sets the 2D vector length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.LengthSquared">
            <summary>
            Gets the 2D vector squared length.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.AxisX">
            <summary>
            Returns the X axis vector.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.AxisY">
            <summary>
            Returns the Y axis vector.
            </summary>
        </member>
        <member name="P:devDept.Geometry.Vector2D.Angle">
            <summary>
            Gets the angle between the X-axis and the 2D vector.
            </summary>
            <returns>The angle in radians.</returns>
        </member>
    </members>
</doc>
