Show / Hide Table of Contents

Class BSpline2D

Inheritance
System.Object
GeneralCurve2D
BSpline2D
Implements
ICurve2D
IQuadTreeInsertable
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
IExplicitPCurve2D
Inherited Members
GeneralCurve2D.PositionAtLength(Double)
GeneralCurve2D.GetAreaFromPoint(GeoPoint2D)
GeneralCurve2D.Distance(GeoPoint2D)
GeneralCurve2D.MinDistance(ICurve2D)
GeneralCurve2D.MinDistance(GeoPoint2D)
GeneralCurve2D.IsParameterOnCurve(Double)
GeneralCurve2D.GetExtendedHitTest()
GeneralCurve2D.ReinterpretParameter(Double)
GeneralCurve2D.GetInflectionPoints()
GeneralCurve2D.Approximate(Boolean, Double)
GeneralCurve2D.IsClosed
GeneralCurve2D.UserData
GeneralCurve2D.ReferencedObject
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: CADability.Curve2D
Assembly: CADability.dll
Syntax
[Serializable]
public class BSpline2D : GeneralCurve2D, ICurve2D, IQuadTreeInsertable, I2DIntersectable, ISerializable, IDeserializationCallback, IDebuggerVisualizer, IExplicitPCurve2D

Constructors

| Improve this Doc View Source

BSpline2D(GeoPoint2D[], GeoVector2D[], Int32, Boolean)

Declaration
public BSpline2D(GeoPoint2D[] throughpoints, GeoVector2D[] throughdirections, int degree, bool periodic)
Parameters
Type Name Description
GeoPoint2D[] throughpoints
GeoVector2D[] throughdirections
System.Int32 degree
System.Boolean periodic
| Improve this Doc View Source

BSpline2D(GeoPoint2D[], Double[], Double[], Int32[], Int32, Boolean, Double, Double)

Constructs a BSpline2D (NURBS) from its main data

Declaration
public BSpline2D(GeoPoint2D[] poles, double[] weights, double[] knots, int[] multiplicities, int degree, bool periodic, double startParam, double endParam)
Parameters
Type Name Description
GeoPoint2D[] poles

the poles

System.Double[] weights

the weigts or null if not rational

System.Double[] knots

the knot vector

System.Int32[] multiplicities

the multiplicities vector for the knot vector (same size)

System.Int32 degree

the degree

System.Boolean periodic

true for periodic (closed) false otherwise

System.Double startParam

startparameter

System.Double endParam

endparameter

| Improve this Doc View Source

BSpline2D(GeoPoint2D[], Int32, Boolean)

Constructs a BSpline2D (NURBS) by a set of points, that will be interpolated.

Declaration
public BSpline2D(GeoPoint2D[] throughpoints, int degree, bool periodic)
Parameters
Type Name Description
GeoPoint2D[] throughpoints

the points to be interpolated

System.Int32 degree

the degree of the BSpline2D

System.Boolean periodic

true for periodic (closed) false otherwise

| Improve this Doc View Source

BSpline2D(SerializationInfo, StreamingContext)

Constructor required by deserialization

Declaration
protected BSpline2D(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
System.Runtime.Serialization.SerializationInfo info

SerializationInfo

System.Runtime.Serialization.StreamingContext context

StreamingContext

Properties

| Improve this Doc View Source

Degree

Gets the degree of the BSpline (NURBS)

Declaration
public int Degree { get; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

EndDirection

Declaration
public override GeoVector2D EndDirection { get; }
Property Value
Type Description
GeoVector2D
Overrides
GeneralCurve2D.EndDirection
| Improve this Doc View Source

EndParam

Declaration
public double EndParam { get; }
Property Value
Type Description
System.Double
| Improve this Doc View Source

EndPoint

Declaration
public override GeoPoint2D EndPoint { get; set; }
Property Value
Type Description
GeoPoint2D
Overrides
GeneralCurve2D.EndPoint
| Improve this Doc View Source

Knots

Gets a copy of the knots defining the BSpline (NURBS)

Declaration
public double[] Knots { get; }
Property Value
Type Description
System.Double[]
| Improve this Doc View Source

Length

Declaration
public override double Length { get; }
Property Value
Type Description
System.Double
Overrides
GeneralCurve2D.Length
| Improve this Doc View Source

MiddleDirection

Declaration
public override GeoVector2D MiddleDirection { get; }
Property Value
Type Description
GeoVector2D
Overrides
GeneralCurve2D.MiddleDirection
| Improve this Doc View Source

Multiplicities

Gets a copy of the multiplicities defining the BSpline (NURBS)

Declaration
public int[] Multiplicities { get; }
Property Value
Type Description
System.Int32[]
| Improve this Doc View Source

Poles

Gets a copy of the poles defining the BSpline (NURBS)

Declaration
public GeoPoint2D[] Poles { get; }
Property Value
Type Description
GeoPoint2D[]
| Improve this Doc View Source

StartDirection

Declaration
public override GeoVector2D StartDirection { get; }
Property Value
Type Description
GeoVector2D
Overrides
GeneralCurve2D.StartDirection
| Improve this Doc View Source

StartParam

Declaration
public double StartParam { get; }
Property Value
Type Description
System.Double
| Improve this Doc View Source

StartPoint

Declaration
public override GeoPoint2D StartPoint { get; set; }
Property Value
Type Description
GeoPoint2D
Overrides
GeneralCurve2D.StartPoint
| Improve this Doc View Source

Sweep

Declaration
public override double Sweep { get; }
Property Value
Type Description
System.Double
Overrides
GeneralCurve2D.Sweep
| Improve this Doc View Source

Weights

Gets a copy of the weights defining the BSpline (NURBS)

Declaration
public double[] Weights { get; }
Property Value
Type Description
System.Double[]

Methods

| Improve this Doc View Source

AddToGraphicsPath(GraphicsPath, Boolean)

Overrides AddToGraphicsPath(GraphicsPath, Boolean)

Declaration
public override void AddToGraphicsPath(GraphicsPath path, bool forward)
Parameters
Type Name Description
System.Drawing.Drawing2D.GraphicsPath path
System.Boolean forward
Overrides
GeneralCurve2D.AddToGraphicsPath(GraphicsPath, Boolean)
| Improve this Doc View Source

AdjustPeriodic(GeoPoint2D[], Double, Double)

Declaration
public static void AdjustPeriodic(GeoPoint2D[] points, double xPeriod, double yPeriod)
Parameters
Type Name Description
GeoPoint2D[] points
System.Double xPeriod
System.Double yPeriod
| Improve this Doc View Source

ApproximateWithArcs(Double)

Declaration
public Path2D ApproximateWithArcs(double maxError)
Parameters
Type Name Description
System.Double maxError
Returns
Type Description
Path2D
| Improve this Doc View Source

Clone()

Overrides Clone()

Declaration
public override ICurve2D Clone()
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.Clone()
| Improve this Doc View Source

CloneReverse(Boolean)

Overrides CloneReverse(Boolean)

Declaration
public override ICurve2D CloneReverse(bool reverse)
Parameters
Type Name Description
System.Boolean reverse
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.CloneReverse(Boolean)
| Improve this Doc View Source

Copy(ICurve2D)

Overrides Copy(ICurve2D)

Declaration
public override void Copy(ICurve2D toCopyFrom)
Parameters
Type Name Description
ICurve2D toCopyFrom
Overrides
GeneralCurve2D.Copy(ICurve2D)
| Improve this Doc View Source

DirectionAt(Double)

Overrides DirectionAt(Double)

Declaration
public override GeoVector2D DirectionAt(double Position)
Parameters
Type Name Description
System.Double Position
Returns
Type Description
GeoVector2D
Overrides
GeneralCurve2D.DirectionAt(Double)
| Improve this Doc View Source

GetArea()

Declaration
public override double GetArea()
Returns
Type Description
System.Double
Overrides
GeneralCurve2D.GetArea()
| Improve this Doc View Source

GetExtent()

Overrides GetExtent()

Declaration
public override BoundingRect GetExtent()
Returns
Type Description
BoundingRect
Overrides
GeneralCurve2D.GetExtent()
| Improve this Doc View Source

GetFused(ICurve2D, Double)

Overrides GetFused(ICurve2D, Double)

Declaration
public override ICurve2D GetFused(ICurve2D toFuseWith, double precision)
Parameters
Type Name Description
ICurve2D toFuseWith
System.Double precision
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.GetFused(ICurve2D, Double)
| Improve this Doc View Source

GetModified(ModOp2D)

Overrides GetModified(ModOp2D)

Declaration
public override ICurve2D GetModified(ModOp2D m)
Parameters
Type Name Description
ModOp2D m
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.GetModified(ModOp2D)
| Improve this Doc View Source

GetObjectData(SerializationInfo, StreamingContext)

Implements System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)

Declaration
public void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
System.Runtime.Serialization.SerializationInfo info

The System.Runtime.Serialization.SerializationInfo to populate with data.

System.Runtime.Serialization.StreamingContext context

The destination (System.Runtime.Serialization.StreamingContext) for this serialization.

| Improve this Doc View Source

GetSelfIntersections()

Overrides GetSelfIntersections()

Declaration
public override double[] GetSelfIntersections()
Returns
Type Description
System.Double[]
Overrides
GeneralCurve2D.GetSelfIntersections()
| Improve this Doc View Source

GetSimpleCurve(Double, out ICurve2D)

Declaration
public bool GetSimpleCurve(double precison, out ICurve2D simpleCurve)
Parameters
Type Name Description
System.Double precison
ICurve2D simpleCurve
Returns
Type Description
System.Boolean
| Improve this Doc View Source

HitTest(ref BoundingRect, Boolean)

Overrides HitTest(ref BoundingRect, Boolean)

Declaration
public override bool HitTest(ref BoundingRect Rect, bool IncludeControlPoints)
Parameters
Type Name Description
BoundingRect Rect
System.Boolean IncludeControlPoints
Returns
Type Description
System.Boolean
Overrides
GeneralCurve2D.HitTest(ref BoundingRect, Boolean)
| Improve this Doc View Source

Intersect(ICurve2D)

Overrides Intersect(ICurve2D)

Declaration
public override GeoPoint2DWithParameter[] Intersect(ICurve2D IntersectWith)
Parameters
Type Name Description
ICurve2D IntersectWith
Returns
Type Description
GeoPoint2DWithParameter[]
Overrides
GeneralCurve2D.Intersect(ICurve2D)
| Improve this Doc View Source

Intersect(GeoPoint2D, GeoPoint2D)

Overrides Intersect(GeoPoint2D, GeoPoint2D)

Declaration
public override GeoPoint2DWithParameter[] Intersect(GeoPoint2D StartPoint, GeoPoint2D EndPoint)
Parameters
Type Name Description
GeoPoint2D StartPoint
GeoPoint2D EndPoint
Returns
Type Description
GeoPoint2DWithParameter[]
Overrides
GeneralCurve2D.Intersect(GeoPoint2D, GeoPoint2D)
| Improve this Doc View Source

IsPartOf(Double, ICurve2D)

Declaration
public ICurve2D IsPartOf(double precision, ICurve2D simpleCurve)
Parameters
Type Name Description
System.Double precision
ICurve2D simpleCurve
Returns
Type Description
ICurve2D
| Improve this Doc View Source

IsValidParameter(Double)

Overrides IsValidParameter(Double)

Declaration
public override bool IsValidParameter(double par)
Parameters
Type Name Description
System.Double par
Returns
Type Description
System.Boolean
Overrides
GeneralCurve2D.IsValidParameter(Double)
| Improve this Doc View Source

MakeCircle(GeoPoint2D, Double)

Declaration
public static BSpline2D MakeCircle(GeoPoint2D center, double radius)
Parameters
Type Name Description
GeoPoint2D center
System.Double radius
Returns
Type Description
BSpline2D
| Improve this Doc View Source

MakeGeoObject(Plane)

Overrides MakeGeoObject(Plane)

Declaration
public override IGeoObject MakeGeoObject(Plane p)
Parameters
Type Name Description
Plane p
Returns
Type Description
IGeoObject
Overrides
GeneralCurve2D.MakeGeoObject(Plane)
| Improve this Doc View Source

MakeHyperbola(GeoPoint2D, GeoPoint2D, GeoPoint2D, GeoPoint2D)

Creates a (segment of a) hyperbola defined by its endpoints (startPoint, endPoint), the intersectionpoint of the tangents at the endpoints and a point located on the hyperbola where the hyperbola intersects with the line [midpoint(startPoint, endPoint), tangentIntersectionPoint]

Declaration
public static BSpline2D MakeHyperbola(GeoPoint2D startPoint, GeoPoint2D endPoint, GeoPoint2D midPoint, GeoPoint2D tangentIntersectionPoint)
Parameters
Type Name Description
GeoPoint2D startPoint
GeoPoint2D endPoint
GeoPoint2D midPoint
GeoPoint2D tangentIntersectionPoint
Returns
Type Description
BSpline2D
| Improve this Doc View Source

MakeSpiral(GeoPoint2D, Double, Int32)

Declaration
public static BSpline2D MakeSpiral(GeoPoint2D center, double offset, int turns)
Parameters
Type Name Description
GeoPoint2D center
System.Double offset
System.Int32 turns
Returns
Type Description
BSpline2D
| Improve this Doc View Source

Move(Double, Double)

Overrides Move(Double, Double)

Declaration
public override void Move(double dx, double dy)
Parameters
Type Name Description
System.Double dx
System.Double dy
Overrides
GeneralCurve2D.Move(Double, Double)
| Improve this Doc View Source

Parallel(Double, Boolean, Double, Double)

Overrides Parallel(Double, Boolean, Double, Double)

Declaration
public override ICurve2D Parallel(double Dist, bool approxSpline, double precision, double roundAngle)
Parameters
Type Name Description
System.Double Dist
System.Boolean approxSpline
System.Double precision
System.Double roundAngle
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.Parallel(Double, Boolean, Double, Double)
| Improve this Doc View Source

PerpendicularFoot(GeoPoint2D)

Overrides PerpendicularFoot(GeoPoint2D)

Declaration
public override GeoPoint2D[] PerpendicularFoot(GeoPoint2D FromHere)
Parameters
Type Name Description
GeoPoint2D FromHere
Returns
Type Description
GeoPoint2D[]
Overrides
GeneralCurve2D.PerpendicularFoot(GeoPoint2D)
| Improve this Doc View Source

PointAt(Double)

Overrides PointAt(Double)

Declaration
public override GeoPoint2D PointAt(double Position)
Parameters
Type Name Description
System.Double Position
Returns
Type Description
GeoPoint2D
Overrides
GeneralCurve2D.PointAt(Double)
| Improve this Doc View Source

PositionOf(GeoPoint2D)

Overrides PositionOf(GeoPoint2D)

Declaration
public override double PositionOf(GeoPoint2D p)
Parameters
Type Name Description
GeoPoint2D p
Returns
Type Description
System.Double
Overrides
GeneralCurve2D.PositionOf(GeoPoint2D)
| Improve this Doc View Source

Project(Plane, Plane)

Overrides Project(Plane, Plane)

Declaration
public override ICurve2D Project(Plane fromPlane, Plane toPlane)
Parameters
Type Name Description
Plane fromPlane
Plane toPlane
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.Project(Plane, Plane)
| Improve this Doc View Source

Reverse()

Overrides Reverse()

Declaration
public override void Reverse()
Overrides
GeneralCurve2D.Reverse()
| Improve this Doc View Source

Split(Double)

Overrides Split(Double)

Declaration
public override ICurve2D[] Split(double Position)
Parameters
Type Name Description
System.Double Position
Returns
Type Description
ICurve2D[]
Overrides
GeneralCurve2D.Split(Double)
| Improve this Doc View Source

TangentPoints(GeoPoint2D, GeoPoint2D)

Overrides TangentPoints(GeoPoint2D, GeoPoint2D)

Declaration
public override GeoPoint2D[] TangentPoints(GeoPoint2D FromHere, GeoPoint2D CloseTo)
Parameters
Type Name Description
GeoPoint2D FromHere
GeoPoint2D CloseTo
Returns
Type Description
GeoPoint2D[]
Overrides
GeneralCurve2D.TangentPoints(GeoPoint2D, GeoPoint2D)
| Improve this Doc View Source

TangentPointsToAngle(Angle, GeoPoint2D)

Overrides TangentPointsToAngle(Angle, GeoPoint2D)

Declaration
public override GeoPoint2D[] TangentPointsToAngle(Angle ang, GeoPoint2D CloseTo)
Parameters
Type Name Description
Angle ang
GeoPoint2D CloseTo
Returns
Type Description
GeoPoint2D[]
Overrides
GeneralCurve2D.TangentPointsToAngle(Angle, GeoPoint2D)
| Improve this Doc View Source

TangentPointsToAngle(GeoVector2D)

Overrides TangentPointsToAngle(GeoVector2D)

Declaration
public override double[] TangentPointsToAngle(GeoVector2D direction)
Parameters
Type Name Description
GeoVector2D direction
Returns
Type Description
System.Double[]
Overrides
GeneralCurve2D.TangentPointsToAngle(GeoVector2D)
| Improve this Doc View Source

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String
Overrides
System.Object.ToString()
| Improve this Doc View Source

Trim(Double, Double)

Overrides Trim(Double, Double)

Declaration
public override ICurve2D Trim(double StartPos, double EndPos)
Parameters
Type Name Description
System.Double StartPos
System.Double EndPos
Returns
Type Description
ICurve2D
Overrides
GeneralCurve2D.Trim(Double, Double)
| Improve this Doc View Source

TrimParam(Double, Double)

Declaration
public bool TrimParam(double startPar, double endPar)
Parameters
Type Name Description
System.Double startPar
System.Double endPar
Returns
Type Description
System.Boolean
| Improve this Doc View Source

TryPointDeriv2At(Double, out GeoPoint2D, out GeoVector2D, out GeoVector2D)

Overrides TryPointDeriv2At(Double, out GeoPoint2D, out GeoVector2D, out GeoVector2D)

Declaration
public override bool TryPointDeriv2At(double position, out GeoPoint2D point, out GeoVector2D deriv1, out GeoVector2D deriv2)
Parameters
Type Name Description
System.Double position
GeoPoint2D point
GeoVector2D deriv1
GeoVector2D deriv2
Returns
Type Description
System.Boolean
Overrides
GeneralCurve2D.TryPointDeriv2At(Double, out GeoPoint2D, out GeoVector2D, out GeoVector2D)

Explicit Interface Implementations

| Improve this Doc View Source

IExplicitPCurve2D.GetExplicitPCurve2D()

Declaration
ExplicitPCurve2D IExplicitPCurve2D.GetExplicitPCurve2D()
Returns
Type Description
ExplicitPCurve2D
| Improve this Doc View Source

IDeserializationCallback.OnDeserialization(Object)

Declaration
void IDeserializationCallback.OnDeserialization(object sender)
Parameters
Type Name Description
System.Object sender

Implements

ICurve2D
IQuadTreeInsertable
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
IExplicitPCurve2D
  • Improve this Doc
  • View Source
In This Article
Back to top Generated by DocFX