Merge from branch giga
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user