/// <summary> /// Constructor to duplicate a coordinate system while changing its origin to /// a new position /// </summary> /// <param name="other">Another coordinate system to copy axis directions from</param> /// <param name="newOrigin">The origin point of the new coordinate system</param> public CartesianCoordinateSystem(CartesianCoordinateSystem other, Vector newOrigin) { Origin = newOrigin; X = other.X; Y = other.Y; Z = other.Z; }
/// <summary> /// Duplication constructor /// </summary> /// <param name="other">Another coordinate system to copy values from</param> public CartesianCoordinateSystem(CartesianCoordinateSystem other) { Origin = other.Origin; X = other.X; Y = other.Y; Z = other.Z; }
/// <summary> /// Plane constructor. Creates a cylindrical coordinate system by specifying /// the reference plane. The longitudinal axis will be taken as the local /// z-axis of the plane, the polar as the local x and the origin set to the /// plane's origin. /// </summary> /// <param name="plane"></param> public CylindricalCoordinateSystem(CartesianCoordinateSystem plane) { Origin = plane.Origin; L = plane.Z; A = plane.X; }
/// <summary> /// Initialise a new plane aligned with the XY plane of the specified coordinate system positioned /// at a new origin point /// </summary> /// <param name="cSystem">The coordinate system (or plane) to copy orientation from</param> /// <param name="newOrigin">The origin point of the new plane</param> public Plane(CartesianCoordinateSystem cSystem, Vector newOrigin) : base(cSystem, newOrigin) { }
/// <summary> /// Constructor creating a plane from the XY plane of the specified coordinate system /// </summary> /// <param name="cSystem"></param> public Plane(CartesianCoordinateSystem cSystem) : base(cSystem) { }
/// <summary> /// Radius, Coordinate System constructor. /// Creates a circle on the XY plane of the given coordinate system with the specified radius. /// </summary> /// <param name="radius"></param> /// <param name="cSystem"></param> public Circle(double radius, CartesianCoordinateSystem cSystem) : base(cSystem) { Radius = radius; }