We're writing an SDK for a CAD program and have run into a slight disagreement regarding a specific type of function (not just disagreement between different people, also disagreement between my two brain-halves).
Imagine there's a lot of classes for specific curve types (ellipse, circle, arc, line, bezier etc.). All of these classes can be represented by a Nurbs curve. So should we put the Circle->Nurbs function on Circle:
public NurbsCurve Circle.ToNurbsCurve()
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
or should it be a static on NurbsCurve:
public static NurbsCurve NurbsCurve.CreateFromCircle(Circle)
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}