Merge from branch giga

This commit is contained in:
Nitload
2025-08-31 10:42:51 +08:00
parent 1fc687f7d0
commit 1a0ccdd8cb
1619 changed files with 2812 additions and 733136 deletions
+20 -28
View File
@@ -28,28 +28,29 @@
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharp.Model.Step;
using StgSharp.Script;
using StgSharp.Script.Express;
using System;
using System.Collections.Generic;
namespace StgSharp.Modeling.Items
namespace StgSharp.Model.Step
{
public class StepEdgeCurve : StepEdge
public class StepEdgeCurve : StepEdge, IExpConvertableFrom<StepEdgeCurve>
{
private StepCurve _edgeGeometry;
private StepEdgeCurve() : base() { }
private StepEdgeCurve( StepModel model ) : base( model ) { }
public StepEdgeCurve(
string name,
StepModel model,
StepVertex edgeStart,
StepVertex edgeEnd,
StepCurve edgeGeometry,
bool isSameSense )
: base( name, edgeStart, edgeEnd )
: base( model, edgeStart, edgeEnd )
{
EdgeGeometry = edgeGeometry;
IsSameSense = isSameSense;
@@ -62,39 +63,30 @@ namespace StgSharp.Modeling.Items
get { return _edgeGeometry; }
set
{
if( value == null ) {
throw new ArgumentNullException();
}
ArgumentNullException.ThrowIfNull( value );
_edgeGeometry = value;
}
}
public override StepItemType ItemType => StepItemType.EdgeCurve;
internal static StepEdgeCurve CreateFromSyntaxList( StepBinder binder, ExpNode syntaxList )
public void FromInstance( StepEdgeCurve entity )
{
ExpNodeNextEnumerator enumerator = new ExpNodeNextEnumerator( syntaxList );
StepEdgeCurve edgeCurve = new StepEdgeCurve();
enumerator.AssertEnumeratorCount( 5 );
edgeCurve.Name = enumerator.Values[ 0 ].CodeConvertTemplate;
binder.BindValue(
enumerator.Values[ 1 ], v => edgeCurve.EdgeStart = v.AsType<StepVertex>() );
binder.BindValue(
enumerator.Values[ 2 ], v => edgeCurve.EdgeEnd = v.AsType<StepVertex>() );
binder.BindValue(
enumerator.Values[ 3 ], v => edgeCurve.EdgeGeometry = v.AsType<StepCurve>() );
edgeCurve.IsSameSense = ( enumerator.Values[ 4 ]as ExpBoolNode )!.Value;
return edgeCurve;
base.FromInstance( entity );
EdgeGeometry = entity.EdgeGeometry;
}
internal override IEnumerable<StepRepresentationItem> GetReferencedItems()
internal static StepEdgeCurve FromSyntax( StepModel binder, ExpSyntaxNode syntaxList )
{
foreach( StepRepresentationItem item in base.GetReferencedItems() ) {
yield return item;
}
yield return EdgeGeometry;
ExpNodePresidentEnumerator enumerator = new ExpNodePresidentEnumerator( syntaxList );
StepEdgeCurve edgeCurve = new StepEdgeCurve( binder );
enumerator.AssertEnumeratorCount( 5 );
edgeCurve.Name = ( enumerator[ 0 ]as ExpStringNode )!.Value;
edgeCurve.EdgeStart = binder[ enumerator[ 1 ] ] as StepVertex;
edgeCurve.EdgeEnd = binder[ enumerator[ 2 ] ] as StepVertex;
edgeCurve.EdgeGeometry = binder[ enumerator[ 3 ] ] as StepCurve;
edgeCurve.IsSameSense = ( enumerator[ 4 ]as ExpBoolNode )!.Value;
return edgeCurve;
}
}