Enhanced C#
Language of your choice: library documentation
Classes | Typedefs | Enumerations
Loyc.Geometry Namespace Reference

Contains math code and data types for processing geometry (points, lines, polygons, etc.). Basic geometry stuff is in Loyc.Essentials.dll, while more advanced algorithms are found in Loyc.Utilities.dll. More...

Classes

class  BoundingBox
 Holds a mutable 2D bounding rectangle. More...
 
class  BoundingBoxExt
 Extension methods for BoundingBox<T>. More...
 
class  BoundingBoxMath
 Math and extension methods for BoundingBox<T>. More...
 
interface  INewPoint
 This interface exists to work around a limitation of C#; see IPoint<T>. More...
 
interface  INewPoint3
 This interface exists to work around a limitation of C#; see IPoint<T> and IPoint3<T>. More...
 
interface  INewRectangle
 This interface exists to work around a limitation of C#; see IRectangle<T>. More...
 
interface  INewRectangle3
 This interface exists to work around a limitation of C#; see IRectangle3<T>. More...
 
interface  IPoint
 A mutable 2D point with X and Y coordinates. More...
 
interface  IPoint3
 A mutable 3D point with X, Y, and Z coordinates. More...
 
interface  IPoint3Base
 This interface exists to work around a limitation of C#; use IPoint<T> instead. More...
 
interface  IPoint3Reader
 Interface for reading the coordinates of a 3D point. More...
 
interface  IPointBase
 This interface exists to work around a limitation of C#; use IPoint<T> instead. More...
 
interface  IPointReader
 Interface for reading the coordinates of a 2D point. More...
 
interface  IRectangle
 Represents a mutable 2D rectangle. More...
 
interface  IRectangle3
 Represents a mutable 3D rectangle. More...
 
interface  IRectangle3Base
 Represents a mutable 3D rectangular prism. More...
 
interface  IRectangle3Reader
 Represents a read-only 3D rectangular prism. More...
 
interface  IRectangleBase
 Represents a mutable 2D rectangle. More...
 
interface  IRectangleReader
 Represents a read-only 2D rectangle. More...
 
interface  ISize3Reader
 Interface for reading the size of a 3D object. More...
 
interface  ISizeReader
 Interface for reading the size of a 2D object. More...
 
class  LineMath
 Contains algorithms that operate on lines. More...
 
struct  LineSegment
 Holds a 2D line segment. More...
 
struct  LineSegment3
 Holds a 3D line segment. More...
 
struct  Point
 A 2D point (X-Y pair) structure. More...
 
struct  Point3
 A 3D point (X-Y-Z triplet) structure. More...
 
class  PointExt
 Contains methods for manipulating points in generic code. More...
 
class  PointMath
 Math and extension methods for Point<T>. More...
 
class  PolygonMath
 Contains useful basic polygon algorithms: hit testing, area calculation, orientation detection. More...
 
class  Rectangle3Ext
 Contains methods to manipulate rectangles. More...
 
class  RectangleExt
 Contains methods to manipulate rectangles. More...
 
struct  Vector
 Represents a two-dimensional vector, i.e. a magnitude and direction or the difference between two points, stored as X and Y components. More...
 
struct  Vector3
 Represents a three-dimensional vector, i.e. a magnitude and direction or the difference between two points, stored as X, Y and Z components. More...
 
struct  Vector3Math
 Implementation of IAdditionGroup<T> for Vector<T>. More...
 
class  VectorExt
 Extension methods for vectors. TODO: reconsider distribution of methods between this class and PointMath in Loyc.Utilities. More...
 
struct  VectorMath
 An implementation of IAdditionGroup<T> for Vector<T>. More...
 

Typedefs

using T = System.Int32
 
using BoundingBox = BoundingBox< int >
 
using LineSegment = LineSegment< float >
 
using Point = Point< float >
 
using Vector = Vector< float >
 
using Point3 = Point3< int >
 
using Vector3 = Vector3< int >
 

Enumerations

enum  LineType { Segment, Ray, Infinite }
 Indicates how a LineSegment<T> should be treated in a math algorithm: as a segment (the default), as a ray originating at A (extending B infinitely), or as an line that is infinite in both directions. More...
 

Detailed Description

Contains math code and data types for processing geometry (points, lines, polygons, etc.). Basic geometry stuff is in Loyc.Essentials.dll, while more advanced algorithms are found in Loyc.Utilities.dll.

Enumeration Type Documentation

Indicates how a LineSegment<T> should be treated in a math algorithm: as a segment (the default), as a ray originating at A (extending B infinitely), or as an line that is infinite in both directions.