Merge from branch giga
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
//
|
||||
//-----------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
using StgSharp.Model.Step;
|
||||
using StgSharp.Script;
|
||||
using StgSharp.Script.Express;
|
||||
|
||||
@@ -36,7 +37,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace StgSharp.Modeling.Items
|
||||
namespace StgSharp.Model.Step
|
||||
{
|
||||
public enum StepBSplineCurveForm
|
||||
{
|
||||
@@ -50,81 +51,89 @@ namespace StgSharp.Modeling.Items
|
||||
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public abstract class StepBSplineCurve : StepBoundedCurve
|
||||
public static class StepExpEnumValue
|
||||
{
|
||||
|
||||
private const string CIRCULAR_ARC = "CIRCULAR_ARC";
|
||||
private const string ELLIPTIC_ARC = "ELLIPTIC_ARC";
|
||||
private const string HYPERBOLIC_ARC = "HYPERBOLIC_ARC";
|
||||
private const string PARABOLIC_ARC = "PARABOLIC_ARC";
|
||||
internal const string CIRCULAR_ARC = "CIRCULAR_ARC";
|
||||
internal const string ELLIPTIC_ARC = "ELLIPTIC_ARC";
|
||||
internal const string HYPERBOLIC_ARC = "HYPERBOLIC_ARC";
|
||||
internal const string PARABOLIC_ARC = "PARABOLIC_ARC";
|
||||
internal const string POLYLINE_FORM = "POLYLINE_FORM";
|
||||
internal const string UNSPECIFIED = "UNSPECIFIED";
|
||||
|
||||
private const string POLYLINE_FORM = "POLYLINE_FORM";
|
||||
private const string UNSPECIFIED = "UNSPECIFIED";
|
||||
internal static HashSet<string> AllPossibleValue { get; } = [
|
||||
CIRCULAR_ARC,
|
||||
ELLIPTIC_ARC,
|
||||
HYPERBOLIC_ARC,
|
||||
PARABOLIC_ARC,
|
||||
POLYLINE_FORM,
|
||||
UNSPECIFIED,
|
||||
];
|
||||
|
||||
public StepBSplineCurve( string name, IEnumerable<StepCartesianPoint> controlPoints )
|
||||
: base( name )
|
||||
}
|
||||
|
||||
public class StepBSplineCurve : StepBoundedCurve, IExpConvertableFrom<StepBSplineCurve>
|
||||
{
|
||||
|
||||
public StepBSplineCurve( StepModel model, params StepCartesianPoint[] controlPoints )
|
||||
: this( model, ( IEnumerable<StepCartesianPoint> )controlPoints ) { }
|
||||
|
||||
public StepBSplineCurve( StepModel model, IEnumerable<StepCartesianPoint> controlPoints )
|
||||
: base( model )
|
||||
{
|
||||
ControlPointsList.AddRange( controlPoints );
|
||||
}
|
||||
|
||||
public StepBSplineCurve( string name, params StepCartesianPoint[] controlPoints )
|
||||
: this( name, ( IEnumerable<StepCartesianPoint> )controlPoints ) { }
|
||||
|
||||
public bool ClosedCurve { get; set; }
|
||||
|
||||
public bool SelfIntersect { get; set; }
|
||||
|
||||
public int Degree { get; set; }
|
||||
|
||||
public List<StepCartesianPoint> ControlPointsList { get; } = new List<StepCartesianPoint>();
|
||||
public List<StepCartesianPoint> ControlPointsList { get; private set; }
|
||||
= new List<StepCartesianPoint>();
|
||||
|
||||
public StepBSplineCurveForm CurveForm { get; set; } = StepBSplineCurveForm.Unspecified;
|
||||
|
||||
internal override IEnumerable<StepRepresentationItem> GetReferencedItems()
|
||||
public void FromInstance( StepBSplineCurve entity )
|
||||
{
|
||||
return ControlPointsList;
|
||||
base.FromInstance( entity );
|
||||
this.Degree = entity.Degree;
|
||||
this.ClosedCurve = entity.ClosedCurve;
|
||||
this.ControlPointsList = entity.ControlPointsList;
|
||||
this.SelfIntersect = entity.SelfIntersect;
|
||||
}
|
||||
|
||||
public override bool IsConvertableTo( string entityName )
|
||||
{
|
||||
return base.IsConvertableTo( entityName ) || entityName == "StepBSplineCurve";
|
||||
}
|
||||
|
||||
protected static string GetCurveFormString( StepBSplineCurveForm form )
|
||||
{
|
||||
switch( form )
|
||||
return form switch
|
||||
{
|
||||
case StepBSplineCurveForm.Polyline:
|
||||
return POLYLINE_FORM;
|
||||
case StepBSplineCurveForm.CircularArc:
|
||||
return CIRCULAR_ARC;
|
||||
case StepBSplineCurveForm.EllipticalArc:
|
||||
return ELLIPTIC_ARC;
|
||||
case StepBSplineCurveForm.ParabolicArc:
|
||||
return PARABOLIC_ARC;
|
||||
case StepBSplineCurveForm.HyperbolicArc:
|
||||
return HYPERBOLIC_ARC;
|
||||
case StepBSplineCurveForm.Unspecified:
|
||||
return UNSPECIFIED;
|
||||
}
|
||||
|
||||
throw new NotImplementedException();
|
||||
StepBSplineCurveForm.Polyline => StepExpEnumValue.POLYLINE_FORM,
|
||||
StepBSplineCurveForm.CircularArc => StepExpEnumValue.CIRCULAR_ARC,
|
||||
StepBSplineCurveForm.EllipticalArc => StepExpEnumValue.ELLIPTIC_ARC,
|
||||
StepBSplineCurveForm.ParabolicArc => StepExpEnumValue.PARABOLIC_ARC,
|
||||
StepBSplineCurveForm.HyperbolicArc => StepExpEnumValue.HYPERBOLIC_ARC,
|
||||
StepBSplineCurveForm.Unspecified => StepExpEnumValue.UNSPECIFIED,
|
||||
_ => throw new NotImplementedException(),
|
||||
};
|
||||
}
|
||||
|
||||
protected static StepBSplineCurveForm ParseCurveForm( string enumerationValue )
|
||||
{
|
||||
switch( enumerationValue.ToUpperInvariant() )
|
||||
return enumerationValue.ToUpperInvariant() switch
|
||||
{
|
||||
case POLYLINE_FORM:
|
||||
return StepBSplineCurveForm.Polyline;
|
||||
case CIRCULAR_ARC:
|
||||
return StepBSplineCurveForm.CircularArc;
|
||||
case ELLIPTIC_ARC:
|
||||
return StepBSplineCurveForm.EllipticalArc;
|
||||
case PARABOLIC_ARC:
|
||||
return StepBSplineCurveForm.ParabolicArc;
|
||||
case HYPERBOLIC_ARC:
|
||||
return StepBSplineCurveForm.HyperbolicArc;
|
||||
default:
|
||||
return StepBSplineCurveForm.Unspecified;
|
||||
}
|
||||
StepExpEnumValue.POLYLINE_FORM => StepBSplineCurveForm.Polyline,
|
||||
StepExpEnumValue.CIRCULAR_ARC => StepBSplineCurveForm.CircularArc,
|
||||
StepExpEnumValue.ELLIPTIC_ARC => StepBSplineCurveForm.EllipticalArc,
|
||||
StepExpEnumValue.PARABOLIC_ARC => StepBSplineCurveForm.ParabolicArc,
|
||||
StepExpEnumValue.HYPERBOLIC_ARC => StepBSplineCurveForm.HyperbolicArc,
|
||||
_ => StepBSplineCurveForm.Unspecified,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user