using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.Intrinsics.Arm; using System.Xml.Serialization; using WebWindowConfigurator.Json; using static WebWindowConfigurator.Json.WindowConst; namespace WebWindowConfigurator { public class FrameDimension { private bool m_bIsLen = false; private int m_nIndex; public int nIndex { get { return m_nIndex; } } private string m_sName; public string sName { get { return m_sName; } } private double m_dValue; public double dValue { get { return m_dValue; } set { m_dValue = value; } } public FrameDimension(int nIndex, string sName, double dValue, bool bIsLen) { m_nIndex = nIndex; m_sName = sName; m_dValue = dValue; m_bIsLen = bIsLen; } internal JsonFrameDimension Serialize() { JsonFrameDimension JsonFrameDimension = new JsonFrameDimension(m_nIndex, m_sName, m_dValue); return JsonFrameDimension; } } public class Window { private String m_sProfilePath; public string sProfilePath { get { return m_sProfilePath; } set { m_sProfilePath = value; } } private ObservableCollection m_AreaList = new ObservableCollection(); public ObservableCollection AreaList { get { return m_AreaList; } set { m_AreaList = value; } } internal JsonWindow Serialize() { JsonWindow JsonWindow = new JsonWindow(sProfilePath); foreach (var Area in AreaList) JsonWindow.AreaList.Add(Area.Serialize()); return JsonWindow; } } public abstract class Area { protected int m_nAreaId = -1; public int nAreaId { get { return m_nAreaId; } set { m_nAreaId = value; } } private List m_AreaList = new List(); public List AreaList { get { return m_AreaList; } set { m_AreaList = value; } } private AreaTypes m_AreaType; public AreaTypes AreaType { get { return m_AreaType; } set { m_AreaType = value; //m_delDrawWindow(); } } internal void SetAreaType(AreaTypes AreaType) { m_AreaType = AreaType; } private Area m_ParentArea; public Area ParentArea { get { return m_ParentArea; } } internal void SetParentArea(Area ParentArea) { m_ParentArea = ParentArea; } public Area(Area ParentArea) { m_ParentArea = ParentArea; } internal abstract JsonArea Serialize(); } public class Frame : Area { private ObservableCollection m_ShapeList = new ObservableCollection { new IdNameStruct((int)Shapes.RECTANGLE, "Rectangle"), new IdNameStruct((int)Shapes.RIGHTCHAMFER, "Right Chamfer"), new IdNameStruct((int)Shapes.LEFTCHAMFER, "Left Chamfer"), new IdNameStruct((int)Shapes.DOUBLECHAMFER, "Double Chamfer"), new IdNameStruct((int)Shapes.ARC, "Arc"), new IdNameStruct((int)Shapes.ARC_FULL, "Arc Full"), new IdNameStruct((int)Shapes.DOUBLEARC, "Double Arc"), new IdNameStruct((int)Shapes.TRIANGLE, "Triangle") }; public ObservableCollection ShapeList { get { return m_ShapeList; } } private Shapes m_Shape; public Shapes Shape { get { return m_Shape; } } internal void SetSelShape(Shapes Value) { DimensionList.Clear(); // aggiungo Dimension switch (Value) { case Shapes.RECTANGLE: case Shapes.ARC_FULL: { DimensionList.Add(new FrameDimension(1, "Width", 1500, true)); DimensionList.Add(new FrameDimension(2, "Height", 1800, true)); break; } case Shapes.RIGHTCHAMFER: { DimensionList.Add(new FrameDimension(1, "Width", 1500, true)); DimensionList.Add(new FrameDimension(2, "Left Height", 1800, true)); DimensionList.Add(new FrameDimension(3, "Right Height", 1500, true)); break; } case Shapes.LEFTCHAMFER: { DimensionList.Add(new FrameDimension(1, "Width", 1500, true)); DimensionList.Add(new FrameDimension(2, "Left Height", 1500, true)); DimensionList.Add(new FrameDimension(3, "Right Height", 1800, true)); break; } case Shapes.DOUBLECHAMFER: case Shapes.ARC: { DimensionList.Add(new FrameDimension(1, "Width", 1500, true)); DimensionList.Add(new FrameDimension(2, "Height", 1500, true)); DimensionList.Add(new FrameDimension(3, "Full Height", 1800, true)); break; } case Shapes.DOUBLEARC: { DimensionList.Add(new FrameDimension(1, "Width", 1500, true)); DimensionList.Add(new FrameDimension(2, "Height", 1500, true)); DimensionList.Add(new FrameDimension(3, "Full Height", 2400, true)); break; } case Shapes.TRIANGLE: { DimensionList.Add(new FrameDimension(1, "Width", 2000, true)); DimensionList.Add(new FrameDimension(2, "Height", 1500, true)); DimensionList.Add(new FrameDimension(3, "Height projection", 0, true)); break; } case Shapes.CUSTOM: { DimensionList.Clear(); break; } } // aggiungo Joint int nJointQty = 4; switch (Value) { case Shapes.RECTANGLE: case Shapes.RIGHTCHAMFER: case Shapes.LEFTCHAMFER: case Shapes.DOUBLECHAMFER: case Shapes.ARC: case Shapes.DOUBLEARC: { JointList.Add(new Joint(1, Joints.FULL_H)); JointList.Add(new Joint(2, Joints.FULL_H)); JointList.Add(new Joint(3, Joints.FULL_H)); JointList.Add(new Joint(4, Joints.FULL_H)); break; } case Shapes.ARC_FULL: { JointList.Add(new Joint(1, Joints.FULL_H)); JointList.Add(new Joint(2, Joints.FULL_H)); JointList.Add(new Joint(3, Joints.ANGLED)); JointList.Add(new Joint(4, Joints.ANGLED)); break; } case Shapes.TRIANGLE: { JointList.Add(new Joint(1, Joints.FULL_H)); JointList.Add(new Joint(2, Joints.FULL_H)); JointList.Add(new Joint(3, Joints.ANGLED)); break; } case Shapes.CUSTOM: { JointList.Clear(); break; } } m_Shape = Value; } private ObservableCollection m_DimensionList = new ObservableCollection(); public ObservableCollection DimensionList { get { return m_DimensionList; } } private ObservableCollection m_JointList = new ObservableCollection(); public ObservableCollection JointList { get { return m_JointList; } set { m_JointList = value; } } private bool m_bBottomRail; public bool BottomRail { get { return m_bBottomRail; } set { m_bBottomRail = value; } } internal void SetBottomRail(bool bBottomRail) { m_bBottomRail = bBottomRail; } private int m_nBottomRailQty = 0; public int BottomRailQty { get { return m_nBottomRailQty; } set { m_nBottomRailQty = value; } } internal void SetBottomRailQty(int nBottomRailQty) { m_nBottomRailQty = nBottomRailQty; } private ObservableCollection m_Outline; public ObservableCollection Outline { get { return m_Outline; } set { m_Outline = value; } } public Frame(Area ParentArea) : base(ParentArea) { } internal static Area CreateFrame(Window Window) { Frame NewFrame = new Frame(null/* TODO Change to default(_) if this is not a reference type */); NewFrame.SetAreaType(AreaTypes.FRAME); NewFrame.SetSelShape(Shapes.RECTANGLE); NewFrame.SetBottomRail(false); NewFrame.SetBottomRailQty(0); return NewFrame; } private LuaShapes ConvertShape(Shapes value) { switch (value) { case Shapes.RECTANGLE: { return LuaShapes.RECT; } case Shapes.RIGHTCHAMFER: { return LuaShapes.CHAMFER_SIDE; } case Shapes.LEFTCHAMFER: { return LuaShapes.CHAMFER_SIDE; } case Shapes.DOUBLECHAMFER: { return LuaShapes.CHAMFER; } case Shapes.ARC: { return LuaShapes.SEGMENTAL_ARC; } case Shapes.ARC_FULL: { return LuaShapes.ROUND_ARC; } case Shapes.DOUBLEARC: { return LuaShapes.POINTED_ARC; } case Shapes.TRIANGLE: { return LuaShapes.TRIANGLE; } default: { return LuaShapes.RECT; } } } internal override JsonArea Serialize() { JsonFrame JsonFrame = new JsonFrame(m_Shape, m_bBottomRail, m_nBottomRailQty); foreach (var Dimension in DimensionList) JsonFrame.DimensionList.Add(Dimension.Serialize()); foreach (var Joint in JointList) JsonFrame.JointList.Add(Joint.Serialize()); foreach (var Area in AreaList) JsonFrame.AreaList.Add(Area.Serialize()); return JsonFrame; } } // class Sash : Area // { // public int nSashQty // { // get // { // return m_SashList.Count > 0 ? m_SashList.Count : 1; // } // set // { // if (value > m_SashList.Count) // { // // recupero larghezza ultimo // double dLastDimension = 100; // double dNewDimension = 100; // if (m_SashList.Count > 0) // { // dLastDimension = m_SashList(m_SashList.Count - 1).dDimension; // dNewDimension = dLastDimension / (value + 1 - nSashQty); // m_SashList(m_SashList.Count - 1).SetDimension(dNewDimension); // } // else // dNewDimension = dLastDimension / (value + 1 - nSashQty); // // aggiungo area Sash di default // for (var SplitIndex = m_SashList.Count; SplitIndex <= value - 1; SplitIndex++) // SashList.Add(new SashDimension(dNewDimension, true, this)); // } // else if (value < m_SashList.Count) // { // double dLastDimension = 0; // for (var SplitIndex = m_SashList.Count - 1; SplitIndex >= value; SplitIndex += -1) // { // dLastDimension += m_SashList(SplitIndex).dDimension; // SashList.RemoveAt(SplitIndex); // } // dLastDimension += m_SashList(SashList.Count - 1).dDimension; // ;/* Cannot convert ExpressionStatementSyntax, System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1069 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045 // at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext() // at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() // at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes) // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitMemberAccessExpression(MemberAccessExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 977 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1431 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.MethodBodyVisitor.VisitExpressionStatement(ExpressionStatementSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/MethodBodyVisitor.cs:line 97 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingMethodBodyVisitor.cs:line 27 //Input: // SashList(SashList.Count - 1).SetDimension(dLastDimension) // */ // } // RefreshHardwareList(); // RefreshHardwareOptionList(); // SetFirstHardware(); // } // } // internal void SetSashQty(int Qty, bool NotifyProperty = false) // { // if (Qty > m_SashList.Count) // { // // recupero larghezza ultimo // double dLastDimension = 100; // double dNewDimension = 100; // if (m_SashList.Count > 0) // { // dLastDimension = m_SashList(m_SashList.Count - 1).dDimension; // dNewDimension = dLastDimension / (Qty + 1 - nSashQty); // m_SashList(m_SashList.Count - 1).dDimension = dNewDimension; // } // else // dNewDimension = dLastDimension / (Qty + 1 - nSashQty); // // aggiungo area Sash di default // for (var SplitIndex = m_SashList.Count; SplitIndex <= Qty - 1; SplitIndex++) // SashList.Add(new SashDimension(dNewDimension, true, this)); // } // else if (Qty < m_SashList.Count) // { // for (var SplitIndex = m_SashList.Count - 1; SplitIndex >= Qty; SplitIndex += -1) // SashList.RemoveAt(SplitIndex); // } // if (NotifyProperty) // NotifyPropertyChanged(nameof(nSashQty)); // } // private bool m_bIsSashVertical; // public bool bIsSashVertical // { // get // { // return m_bIsSashVertical; // } // set // { // m_bIsSashVertical = value; // } // } // internal void SetIsSashVertical(bool IsSashVertical, bool NotifyProperty = false) // { // m_bIsSashVertical = IsSashVertical; // if (NotifyProperty) // NotifyPropertyChanged(nameof(bIsSashVertical)); // } // private bool m_bIsMeasureGlass; // public bool bIsMeasureGlass // { // get // { // return m_bIsMeasureGlass; // } // set // { // m_bIsMeasureGlass = value; // } // } // internal void SetIsMeasureGlass(bool IsMeasureGlass, bool NotifyProperty = false) // { // m_bIsMeasureGlass = IsMeasureGlass; // if (NotifyProperty) // NotifyPropertyChanged(nameof(bIsMeasureGlass)); // } // private ObservableCollection m_SashList = new ObservableCollection(); // public ObservableCollection SashList // { // get // { // return m_SashList; // } // set // { // m_SashList = value; // } // } // private SashTypes m_SashType; // public SashTypes SashType // { // get // { // return m_SashType; // } // set // { // m_SashType = value; // } // } // internal void SetSashType(SashTypes SashType) // { // m_SashType = SashType; // } // private ObservableCollection m_JointList = new ObservableCollection(); // public ObservableCollection JointList // { // get // { // return m_JointList; // } // set // { // m_JointList = value; // } // } // private bool m_bBottomRail; // public bool BottomRail // { // get // { // return m_bBottomRail; // } // set // { // m_bBottomRail = value; // } // } // internal void SetBottomRail(bool bBottomRail) // { // m_bBottomRail = bBottomRail; // } // private int m_nBottomRailQty = 0; // public int BottomRailQty // { // get // { // return m_nBottomRailQty; // } // set // { // m_nBottomRailQty = value; // } // } // internal void SetBottomRailQty(int nBottomRailQty) // { // m_nBottomRailQty = nBottomRailQty; // } // private bool m_bIsPercentage = true; // public bool bIsPercentage // { // get // { // return m_bIsPercentage; // } // } // private ObservableCollection m_HardwareList = new ObservableCollection(); // public ObservableCollection HardwareList // { // get // { // return m_HardwareList; // } // } // private Hardware m_SelHardware; // public Hardware SelHardware // { // get // { // return m_SelHardware; // } // set // { // m_SelHardware = value; // if (!IsNothing(m_SelHardware) && m_SelHardware.sId != "000000") // { // string sHwdOptPath = ""; // var gf = EgtLuaCreateGlobTable("WDG"); // var tft = EgtLuaSetGlobIntVar("WDG.AREAID", m_nAreaId); // var tfy = EgtLuaSetGlobStringVar("WDG.HDWFAVOURITE", value.sId); // SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle); // string sHandle = "Dx"; // switch (GetOpeningSide(HandleSash.OpeningType)) // { // case object _ when OpeningSides.LEFT: // { // sHandle = "Sx"; // break; // } // case object _ when OpeningSides.RIGHT: // { // sHandle = "Dx"; // break; // } // } // var tfd = EgtLuaSetGlobStringVar("WDG.HDWHANDLE", sHandle); // var tlt = EgtLuaCallFunction("WinCreate_GetHardwareOptionPath"); // var tltf = EgtLuaGetGlobStringVar("WDG.HWDOPTPATH", sHwdOptPath); // if (!string.IsNullOrWhiteSpace(sHwdOptPath)) // { // XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni)); // ParametriOpzioni HwdOptions = null/* TODO Change to default(_) if this is not a reference type */; // string sHdwOptPath = Path.ChangeExtension(sHwdOptPath, ".opt"); // bool bHdwOptFound = false; // for (var WaitIndex = 0; WaitIndex <= 100; WaitIndex++) // { // if (File.Exists(sHdwOptPath)) // { // bHdwOptFound = true; // break; // } // System.Threading.Thread.Sleep(100); // } // if (bHdwOptFound) // { // string sHwdOptText = ""; // try // { // sHwdOptText = File.ReadAllText(sHdwOptPath); // } // catch (Exception ex) // { // EgtOutLog("Hardware file opt not found or read!"); // } // if (!string.IsNullOrWhiteSpace(sHwdOptText)) // { // using (TextReader reader = new StringReader(sHwdOptText)) // { // HwdOptions = serializer.Deserialize(reader); // } // if (!IsNothing(HwdOptions)) // { // m_HwdOptionList.Clear(); // foreach (var HdwOption in HwdOptions.Items) // m_HwdOptionList.Add(new AGBOption(HdwOption)); // NotifyPropertyChanged(nameof(HwdOptionList)); // } // } // } // var ud = EgtLuaResetGlobVar("WDG"); // } // } // } // } // internal void SetSelHardware(Hardware value) // { // m_SelHardware = value; // NotifyPropertyChanged(nameof(SelHardware)); // } // internal void SetSelHardwareFromId(string sId) // { // m_SelHardware = m_HardwareList.FirstOrDefault(x => x.sId == sId); // if (IsNothing(m_SelHardware)) // m_SelHardware = m_HardwareList(0); // NotifyPropertyChanged(nameof(SelHardware)); // } // internal void SetFirstHardware() // { // if (m_HardwareList.Count > 0) // { // m_SelHardware = m_HardwareList(0); // NotifyPropertyChanged(nameof(SelHardware)); // } // } // private ObservableCollection m_HwdOptionList = new ObservableCollection(); // public ObservableCollection HwdOptionList // { // get // { // return m_HwdOptionList; // } // } // public Sash(Area ParentArea) : base(ParentArea) // { // } // internal static Sash CreateSash(Area Area) // { // Sash NewSash = new Sash(Area); // NewSash.SetAreaType(AreaTypes.SASH); // NewSash.SetSashQty(1); // NewSash.SetIsSashVertical(true); // // recupero numero di lati dell'area contenitore // int nOutlineLayerId = EgtGetFirstNameInGroup(Area.nAreaId, WIN_OUTLINE); // int nJointQty = EgtGetGroupObjs(nOutlineLayerId); // for (var JointIndex = 0; JointIndex <= nJointQty - 1; JointIndex++) // NewSash.JointList.Add(new Joint(JointIndex + 1, Joints.FULL_H)); // NewSash.SetBottomRail(false); // NewSash.SetBottomRailQty(0); // NewSash.RefreshHardwareList(); // NewSash.RefreshHardwareOptionList(); // NewSash.SetFirstHardware(); // return NewSash; // } // private string FindSashShape() // { // // Return "R" // // se non ancora creato, recupero area precedente // int nAreaId = m_nAreaId; // if (m_nAreaId == GDB_ID.NULL) // nAreaId = ParentArea.nAreaId; // int nOutlineLayerId = EgtGetFirstNameInGroup(nAreaId, WIN_OUTLINE); // List OutlineIdList = new List(); // int nOutlineId = EgtGetFirstInGroup(nOutlineLayerId); // while (nOutlineId != GDB_ID.NULL) // { // OutlineIdList.Add(nOutlineId); // nOutlineId = EgtGetNext(nOutlineId); // } // int nTempLayerId = EgtCreateGroup(nAreaId); // int nCompoOutlineId = EgtCreateCurveCompo(nTempLayerId, OutlineIdList.ToArray(), false); // Point3d ptP; // Vector3d vtL1; // Vector3d vtL2; // Vector3d vtB1; // Vector3d vtB2; // Vector3d vtN; // double dRad; // bool bCCW; // if (EgtCurveIsARectangle(nCompoOutlineId, 0.001, ptP, vtL1, vtL2)) // return "R"; // else if (EgtCurveIsACircle(nCompoOutlineId, ptP, vtN, dRad, bCCW)) // return "C"; // else if (EgtCurveIsATrapezoid(nCompoOutlineId, ptP, vtB1, vtL1, vtB2)) // return "T"; // else // for (var nOutlineIndex = 0; nOutlineIndex <= OutlineIdList.Count - 1; nOutlineIndex++) // { // if (EgtGetType(OutlineIdList[nOutlineIndex]) == GDB_TY.CRV_ARC) // { // Vector3d vtStart; // EgtStartVector(OutlineIdList[nOutlineIndex], GDB_ID.ROOT, vtStart); // Vector3d vtEnd; // EgtEndVector(OutlineIdList[nOutlineIndex], GDB_ID.ROOT, vtEnd); // int nPrevOutlineId = nOutlineId > 0 ? OutlineIdList[nOutlineIndex - 1] : OutlineIdList[OutlineIdList.Count - 1]; // int dPrevLen; // EgtCurveLength(nPrevOutlineId, dPrevLen); // Vector3d vtPrev; // EgtStartVector(nPrevOutlineId, vtPrev); // int nNextOutlineId = nOutlineId < OutlineIdList.Count - 1 ? OutlineIdList[nOutlineIndex + 1] : OutlineIdList[0]; // int dNextLen; // EgtCurveLength(nNextOutlineId, dNextLen); // Vector3d vtNext; // EgtEndVector(nNextOutlineId, vtNext); // if (Math.Abs(dPrevLen - dNextLen) < 10 * EPS_SMALL) // { // if (AreSameVectorApprox(vtEnd, vtNext)) // return "AS"; // else // return "AR"; // } // else if (AreSameVectorApprox(vtEnd, vtNext)) // return "SS"; // else // return "SR"; // } // } // return "R"; // } // internal OpeningTypes GetOpeningType(Openings OpeningType) // { // switch (OpeningType) // { // case object _ when Openings.TURNONLY_LEFT: // case object _ when Openings.TURNONLY_RIGHT: // { // return OpeningTypes.TURNONLY; // } // case object _ when Openings.TILTTURN_LEFT: // case object _ when Openings.TILTTURN_RIGHT: // { // return OpeningTypes.TILTTURN; // } // case object _ when Openings.TILTONLY_TOP: // case object _ when Openings.TILTONLY_BOTTOM: // { // return OpeningTypes.TILTONLY; // } // case object _ when Openings.PIVOT: // { // return OpeningTypes.PIVOT; // } // case object _ when Openings.FIXED: // { // return OpeningTypes.FIXED; // } // case object _ when Openings.COMPLANARSLIDE_LEFT: // case object _ when Openings.COMPLANARSLIDE_RIGHT: // { // return OpeningTypes.COMPLANARSLIDE; // } // case object _ when Openings.LIFTSLIDE_LEFT: // case object _ when Openings.LIFTSLIDE_RIGHT: // { // return OpeningTypes.LIFTSLIDE; // } // default: // { // return OpeningTypes.NULL; // } // } // } // private void ConvertOpeningType() // { // if (m_SashList.Any(x => GetOpeningType(x.OpeningType) == OpeningTypes.TILTTURN)) // return "AR"; // else // switch (GetOpeningType(m_SashList(0).OpeningType)) // { // case object _ when OpeningTypes.TURNONLY: // { // return "AB"; // } // case object _ when OpeningTypes.TILTONLY: // { // return "VA"; // } // case object _ when OpeningTypes.PIVOT: // { // return "BI"; // } // case object _ when OpeningTypes.COMPLANARSLIDE: // { // return "CO"; // } // case object _ when OpeningTypes.LIFTSLIDE: // { // return "AS"; // } // default: // { // return ""; // } // } // } // internal void RefreshHardwareList() // { // m_HardwareList.Clear(); // string sSashShape = FindSashShape(); // string sOpeningType = ConvertOpeningType(); // m_HardwareList = new ObservableCollection(from Hardware in Map.refManageWindowVM.HardwareList // where Hardware.sId == "000000" || (Hardware.nSashQty == nSashQty && Hardware.sShape == sSashShape && Hardware.sOpeningType == sOpeningType) // select Hardware); // NotifyPropertyChanged(nameof(HardwareList)); // } // internal void RefreshHardwareOptionList() // { // m_HwdOptionList.Clear(); // NotifyPropertyChanged(nameof(HwdOptionList)); // } // internal OpeningSides GetOpeningSide(Openings OpeningType) // { // switch (OpeningType) // { // case object _ when Openings.TURNONLY_LEFT: // case object _ when Openings.TILTTURN_LEFT: // case object _ when Openings.TILTONLY_TOP: // case object _ when Openings.COMPLANARSLIDE_LEFT: // case object _ when Openings.LIFTSLIDE_LEFT: // { // return OpeningSides.LEFT; // } // case object _ when Openings.TURNONLY_RIGHT: // case object _ when Openings.TILTTURN_RIGHT: // case object _ when Openings.TILTONLY_BOTTOM: // case object _ when Openings.COMPLANARSLIDE_RIGHT: // case object _ when Openings.LIFTSLIDE_RIGHT: // { // return OpeningSides.RIGHT; // } // default: // { // return OpeningSides.NULL; // } // } // } // internal override bool DrawArea(Area Area, int nAreaId) // { // // verifico se applicata // if (!bApplied) // return true; // // verifico che esista area sash con info corrette // if (IsNothing(m_JointList) || m_JointList.Count < 3 || IsNothing(m_SashType)) // return false; // // se un'anta // if (nSashQty == 1) // { // // creo anta // var tf = EgtLuaSetGlobIntVar("WDG.AREAID", nAreaId); // var tg = EgtLuaSetGlobIntVar("WDG.JOINTBL", m_JointList(0).SelJointType); // var th = EgtLuaSetGlobIntVar("WDG.JOINTBR", m_JointList(1).SelJointType); // var tj = EgtLuaSetGlobIntVar("WDG.JOINTTR", m_JointList(2).SelJointType); // var tkt = EgtLuaSetGlobIntVar("WDG.JOINTTL", m_JointList(3).SelJointType); // var tft = EgtLuaSetGlobIntVar("WDG.SASHTYPE", m_SashType); // var tfr = EgtLuaSetGlobIntVar("WDG.OPENINGTYPE", m_SashList(0).SelOpeningType.Id); // var tlt = EgtLuaCallFunction("WinCreate_AddSash"); // var tltf = EgtLuaGetGlobIntVar("WDG.AREAID", m_nAreaId); // nAreaId = m_nAreaId; // if (m_nAreaId == GDB_ID.NULL) // return false; // // aggiungo BottomRail se necessario // if (m_bBottomRail) // { // EgtLuaSetGlobIntVar("WDG.NBR", m_nBottomRailQty); // var tdlt = EgtLuaCallFunction("WinCreate_AddBottomRail"); // } // } // else // { // // se piu' di un'anta // // creo split // EgtLuaSetGlobIntVar("WDG.AREAID", nAreaId); // EgtLuaSetGlobIntVar("WDG.SPLITORIENTATION", m_bIsSashVertical ? SplitShapes.VERTICAL : SplitShapes.HORIZONTAL); // EgtLuaSetGlobIntVar("WDG.SPLITTYPE", LuaSplitTypes.FRENCH); // EgtLuaSetGlobIntVar("WDG.MEASURETYPE", 3); // for (var PositionIndex = 0; PositionIndex <= SashList.Count - 2; PositionIndex++) // ;/* Cannot convert ExpressionStatementSyntax, System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1069 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045 // at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext() // at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() // at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes) // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitMemberAccessExpression(MemberAccessExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 977 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitBinaryExpression(BinaryExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1398 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitTernaryConditionalExpression(TernaryConditionalExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1339 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitSimpleArgument(SimpleArgumentSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1060 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.<>c__DisplayClass83_0.b__0(ArgumentSyntax a, Int32 i) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1045 // at System.Linq.Enumerable.SelectIterator[TSource,TResult](IEnumerable`1 source, Func`3 selector)+MoveNext() // at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() // at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes) // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitArgumentList(ArgumentListSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1022 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.NodesVisitor.VisitInvocationExpression(InvocationExpressionSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/NodesVisitor.cs:line 1422 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingNodesVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingNodesVisitor.cs:line 28 // at ICSharpCode.CodeConverter.CSharp.VisualBasicConverter.MethodBodyVisitor.VisitExpressionStatement(ExpressionStatementSyntax node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/MethodBodyVisitor.cs:line 97 // at Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxVisitor`1.Visit(SyntaxNode node) // at ICSharpCode.CodeConverter.CSharp.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node) in /home/runner/work/CodeConverter/CodeConverter/.temp/codeconverter/ICSharpCode.CodeConverter/CSharp/CommentConvertingMethodBodyVisitor.cs:line 27 //Input: // EgtLuaSetGlobNumVar("WDG.POSITION" & PositionIndex + 1, If(m_SashList(PositionIndex).bIsRelative, SashList(PositionIndex).dDimension / 100, SashList(PositionIndex).dDimension)) // */ // EgtLuaSetGlobNumVar("WDG.PROPORTION", SashList.Sum(x => x.dDimension / (double)100)); // EgtLuaCallFunction("WinCreate_AddSplits"); // int AreaIndex = 1; // int NewAreaId = GDB_ID.NULL; // while (EgtLuaGetGlobIntVar("WDG.AREAID" + AreaIndex, NewAreaId)) // { // if (NewAreaId != GDB_ID.NULL) // { // Area.AreaList(AreaIndex - 1).nAreaId = NewAreaId; // AreaIndex += 1; // } // else // break; // } // EgtLuaGetGlobIntVar("WDG.AREAID", Area.nAreaId); // // calcolo OpeningSide e OpeningType // int nHandleIndex = SashList.IndexOf(SashList.FirstOrDefault(x => x.bHasHandle)); // SashTypes[] SashTypeList = new SashTypes[m_SashList.Count - 1 + 1]; // SashTypes[] FinalSashTypeList = new SashTypes[m_SashList.Count - 1 + 1]; // for (var nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++) // { // // se active // if (GetOpeningSide(m_SashList(nSashIndex).OpeningType) == GetOpeningSide(m_SashList(nHandleIndex).OpeningType)) // SashTypeList[nSashIndex] = SashTypes.ACTIVE; // else // // altrimenti inactive // SashTypeList[nSashIndex] = SashTypes.INACTIVE; // } // for (nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++) // { // if (nSashIndex == 0) // { // if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex + 1]) // { // if (SashTypeList[nSashIndex] == SashTypes.ACTIVE) // FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_OUT; // else // FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_OUT; // } // else // // rimane come e' // FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex]; // } // else if (nSashIndex == m_SashList.Count - 1) // { // if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex - 1]) // { // if (SashTypeList[nSashIndex] == SashTypes.ACTIVE) // FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_OUT; // else // FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_OUT; // } // else // // rimane come e' // FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex]; // } // else if (SashTypeList[nSashIndex] == SashTypeList[nSashIndex + 1] || SashTypeList[nSashIndex] == SashTypeList[nSashIndex - 1]) // { // if (SashTypeList[nSashIndex] == SashTypes.ACTIVE) // FinalSashTypeList[nSashIndex] = SashTypes.ACTIVE_IN; // else // FinalSashTypeList[nSashIndex] = SashTypes.INACTIVE_IN; // } // else // // rimane come e' // FinalSashTypeList[nSashIndex] = SashTypeList[nSashIndex]; // } // // creo ante // for (nSashIndex = 0; nSashIndex <= m_SashList.Count - 1; nSashIndex++) // { // var tf = EgtLuaSetGlobIntVar("WDG.AREAID", Area.AreaList(nSashIndex).nAreaId); // var tg = EgtLuaSetGlobIntVar("WDG.JOINTBL", m_JointList(0).SelJointType); // var th = EgtLuaSetGlobIntVar("WDG.JOINTBR", m_JointList(1).SelJointType); // var tj = EgtLuaSetGlobIntVar("WDG.JOINTTR", m_JointList(2).SelJointType); // var tkt = EgtLuaSetGlobIntVar("WDG.JOINTTL", m_JointList(3).SelJointType); // var tft = EgtLuaSetGlobIntVar("WDG.SASHTYPE", FinalSashTypeList[nSashIndex]); // var tfr = EgtLuaSetGlobIntVar("WDG.OPENINGTYPE", m_SashList(nSashIndex).SelOpeningType.Id); // var tlt = EgtLuaCallFunction("WinCreate_AddSash"); // int nNewAreaId = GDB_ID.NULL; // var tltf = EgtLuaGetGlobIntVar("WDG.AREAID", nNewAreaId); // Area.AreaList(nSashIndex).nAreaId = nNewAreaId; // if (nNewAreaId == GDB_ID.NULL) // return false; // // aggiungo BottomRail se necessario // if (m_bBottomRail) // { // EgtLuaSetGlobIntVar("WDG.NBR", m_nBottomRailQty); // var tdlt = EgtLuaCallFunction("WinCreate_AddBottomRail"); // } // } // } // // aggiungo ferramenta // if (!IsNothing(m_SelHardware)) // { // EgtSetInfo(m_nAreaId, LUA_WIN_HDW_FAVOURITE, m_SelHardware.sId); // SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle); // string sHandle = "Dx"; // switch (GetOpeningSide(HandleSash.OpeningType)) // { // case object _ when OpeningSides.LEFT: // { // sHandle = "Sx"; // break; // } // case object _ when OpeningSides.RIGHT: // { // sHandle = "Dx"; // break; // } // } // EgtSetInfo(m_nAreaId, LUA_WIN_HDW_HANDLE, sHandle); // string sOptions = ""; // for (var OptionIndex = 0; OptionIndex <= m_HwdOptionList.Count - 1; OptionIndex++) // { // var HdwOption = m_HwdOptionList(OptionIndex); // sOptions += HdwOption.sName + "=" + HdwOption.sValue.sValue + OptionIndex < m_HwdOptionList.Count - 1 ? "," : ""; // } // EgtSetInfo(m_nAreaId, LUA_WIN_HDW_OPTIONS, sOptions); // } // // lancio disegno delle sotto aree // foreach (var Area in AreaList) // { // if (!Area.DrawArea(Area, nAreaId)) // return false; // } // return true; // } // internal override bool GetSelectionArea() // { // if (nSashQty == 1) // { // int nSelLayerId = EgtGetFirstNameInGroup(m_nAreaId, WIN_SELECTION); // if (nSelLayerId != GDB_ID.NULL) // SetSelectionGeomId(nSelLayerId); // } // else if (nSashQty > 1) // { // var nSplitIndex = 0; // int nArea1Id = GDB_ID.NULL; // int nArea2Id = GDB_ID.NULL; // int nSplitAreaId = m_nAreaId; // while (nSplitIndex < nSashQty - 1) // { // nArea1Id = EgtGetFirstNameInGroup(nSplitAreaId, WIN_AREA + 1); // nArea2Id = EgtGetFirstNameInGroup(nSplitAreaId, WIN_AREA + 2); // int nSashId = EgtGetFirstNameInGroup(nArea1Id, WIN_AREA + "*"); // int nSashSelId = EgtGetFirstNameInGroup(nSashId, WIN_SELECTION); // SelectionGeomIds(nSplitIndex) = nSashSelId; // nSplitAreaId = nArea2Id; // nSplitIndex += 1; // } // nArea2Id = EgtGetFirstNameInGroup(EgtGetParent(nArea1Id), WIN_AREA + 2); // int nSash2Id = EgtGetFirstNameInGroup(nArea2Id, WIN_AREA + "*"); // int nSash2SelId = EgtGetFirstNameInGroup(nSash2Id, WIN_SELECTION); // SelectionGeomIds(nSplitIndex) = nSash2SelId; // } // // lancio recupero area di selezione delle sotto aree // foreach (var Area in AreaList) // { // if (!Area.GetSelectionArea()) // return false; // } // return true; // } // internal override JsonArea Serialize() // { // JsonSash JsonSash = new JsonSash(m_bIsSashVertical, m_SashType, m_SelHardware.sId); // foreach (var SashDimension in SashList) // JsonSash.SashList.Add(SashDimension.Serialize()); // foreach (var Joint in JointList) // JsonSash.JointList.Add(Joint.Serialize()); // foreach (var Area in AreaList) // JsonSash.AreaList.Add(Area.Serialize()); // return JsonSash; // } // } public class Joint { private int m_nIndex; public int nIndex { get { return m_nIndex; } } private List m_JointTypeList = new List { new IdNameStruct((int)Joints.ANGLED, "Angled"), new IdNameStruct((int)Joints.FULL_H, "Full H"), new IdNameStruct((int)Joints.FULL_V, "Full V") }; public List JointTypeList { get { return m_JointTypeList; } } private Joints m_SelJointType; public int SelJointTypeIndex { get { return IdNameStruct.IndFromId((int)m_SelJointType, m_JointTypeList); } set { m_SelJointType = (Joints)IdNameStruct.IdFromInd(value, m_JointTypeList); } } public Joints SelJointType { get { return m_SelJointType; } set { m_SelJointType = value; } } internal void SetSelJointType(Joints value) { m_SelJointType = value; //NotifyPropertyChanged(nameof(SelJointTypeIndex)); } public Joint(int nIndex, Joints SelJointType) { m_nIndex = nIndex; m_SelJointType = SelJointType; } internal JsonJoint Serialize() { JsonJoint JsonJoint = new JsonJoint(m_nIndex, m_SelJointType); return JsonJoint; } } public class Curve { private GDB_TY m_CurveType; public GDB_TY CurveType { get { return m_CurveType; } set { m_CurveType = value; } } private Point3d m_ptStart; public Point3d ptStart { get { return m_ptStart; } set { m_ptStart = value; } } private Point3d m_ptEnd; public Point3d ptEnd { get { return m_ptEnd; } set { m_ptEnd = value; } } } // public class SashDimension // { // // reference // private Sash m_Parent; // private bool m_bIsRelative = false; // public bool bIsRelative // { // get // { // return m_bIsRelative; // } // } // private List m_OpeningTypeList = new List // { // new IdNameStruct((int)Openings.TURNONLY_LEFT, ">"), // new IdNameStruct((int)Openings.TURNONLY_RIGHT, "<"), // new IdNameStruct((int)Openings.TILTTURN_LEFT, ">*"), // new IdNameStruct((int)Openings.TILTTURN_RIGHT, "<*"), // new IdNameStruct((int)Openings.TILTONLY_TOP, "˄"), // new IdNameStruct((int)Openings.TILTONLY_BOTTOM, "˅"), // new IdNameStruct((int)Openings.PIVOT, "◊"), // new IdNameStruct((int)Openings.FIXED, "X"), // new IdNameStruct((int)Openings.COMPLANARSLIDE_LEFT, "-→"), // new IdNameStruct((int)Openings.COMPLANARSLIDE_RIGHT, "←-"), // new IdNameStruct((int)Openings.LIFTSLIDE_LEFT, "┌→"), // new IdNameStruct((int)Openings.LIFTSLIDE_RIGHT, "←┐") // }; // public List OpeningTypeList // { // get // { // return m_OpeningTypeList; // } // } // // private IdNameStruct m_SelOpeningType; // // public IdNameStruct SelOpeningType // // { // // get // // { // // return m_SelOpeningType; // // } // // set // // { // // m_SelOpeningType = value; // // m_Parent.RefreshHardwareList(); // // m_Parent.RefreshHardwareOptionList(); // // m_Parent.SetFirstHardware(); // // } // // } // // public Openings OpeningType // // { // // get // // { // // return m_SelOpeningType.Id; // // } // // } // //internal void SetOpeningType(Openings value) // //{ // // m_SelOpeningType = m_OpeningTypeList.FirstOrDefault(x => x.Id == value); // // NotifyPropertyChanged(nameof(SelOpeningType)); // //} // //private bool m_bHasHandle; // //public bool bHasHandle // //{ // // get // // { // // return m_bHasHandle; // // } // // set // // { // // m_bHasHandle = value; // // } // //} // //internal void SetHasHandle(bool value) // //{ // // m_bHasHandle = value; // // NotifyPropertyChanged(nameof(bHasHandle)); // //} // //private double m_dDimension; // //public double dDimension // //{ // // get // // { // // return m_dDimension; // // } // // set // // { // // // se sono in percentuale // // if (m_bIsRelative) // // { // // // verifico se ci sono assoluti // // List RelativeDimList = m_Parent.SashList.Where(x => x.bIsRelative).ToList(); // // if (RelativeDimList.Count > 0) // // { // // if (m_Parent.bIsPercentage) // // { // // int nIndex = RelativeDimList.IndexOf(this); // // if (value < m_dDimension) // // { // // if (nIndex < RelativeDimList.Count - 1) // // RelativeDimList[nIndex + 1].SetDimension(RelativeDimList[nIndex + 1].dDimension + (m_dDimension - value)); // // else if (RelativeDimList.Count > 1) // // RelativeDimList[nIndex - 1].SetDimension(RelativeDimList[nIndex - 1].dDimension + (m_dDimension - value)); // // else // // { // // m_dDimension = 100; // // return; // // } // // } // // else // // { // // double dRes = value; // // if (nIndex < RelativeDimList.Count - 1) // // { // // for (var nInd = 0; nInd <= nIndex - 1; nInd++) // // dRes += RelativeDimList[nInd].dDimension; // // dRes = (100 - dRes) / (RelativeDimList.Count - nIndex - 1); // // for (var Ind = nIndex + 1; Ind <= RelativeDimList.Count - 1; Ind++) // // RelativeDimList[Ind].SetDimension(dRes); // // } // // else if (RelativeDimList.Count > 1) // // { // // for (var Ind = nIndex + 1; Ind <= RelativeDimList.Count - 1; Ind++) // // dRes += RelativeDimList[Ind].dDimension; // // dRes = (100 - dRes) / (nIndex - 1); // // for (var nInd = 0; nInd <= nIndex - 1; nInd++) // // RelativeDimList[nInd].SetDimension(dRes); // // } // // else // // { // // m_dDimension = 100; // // return; // // } // // } // // } // // else // // { // // } // // } // // } // // m_dDimension = value; // // } // //} // //internal void SetDimension(double dValue) // //{ // // m_dDimension = dValue; // // NotifyPropertyChanged(nameof(dDimension)); // //} // //public SashDimension(double dDimension, bool bIsRelative, Sash Parent) // //{ // // m_dDimension = dDimension; // // m_bIsRelative = bIsRelative; // // m_Parent = Parent; // // // assengno maniglia // // if (Parent.SashList.Count == 0 || !Parent.SashList.Any(x => x.bHasHandle)) // // m_bHasHandle = true; // // // assegno tipo di anta // // if (Parent.SashList.Count == 0) // // SetOpeningType(Openings.TILTTURN_LEFT); // // else if (Parent.SashList.Count == 1) // // { // // switch (Parent.SashList(0).OpeningType) // // { // // case object _ when Openings.TURNONLY_LEFT: // // { // // SetOpeningType(Openings.TURNONLY_RIGHT); // // break; // // } // // case object _ when Openings.TURNONLY_RIGHT: // // { // // SetOpeningType(Openings.TURNONLY_LEFT); // // break; // // } // // case object _ when Openings.TILTTURN_LEFT: // // { // // SetOpeningType(Openings.TILTTURN_RIGHT); // // break; // // } // // case object _ when Openings.TILTTURN_RIGHT: // // { // // SetOpeningType(Openings.TILTTURN_LEFT); // // break; // // } // // case object _ when Openings.TILTONLY_TOP: // // { // // SetOpeningType(Openings.TILTONLY_BOTTOM); // // break; // // } // // case object _ when Openings.TILTONLY_BOTTOM: // // { // // SetOpeningType(Openings.TILTONLY_TOP); // // break; // // } // // case object _ when Openings.COMPLANARSLIDE_LEFT: // // { // // SetOpeningType(Openings.COMPLANARSLIDE_RIGHT); // // break; // // } // // case object _ when Openings.COMPLANARSLIDE_RIGHT: // // { // // SetOpeningType(Openings.COMPLANARSLIDE_LEFT); // // break; // // } // // case object _ when Openings.LIFTSLIDE_LEFT: // // { // // SetOpeningType(Openings.LIFTSLIDE_RIGHT); // // break; // // } // // case object _ when Openings.LIFTSLIDE_RIGHT: // // { // // SetOpeningType(Openings.LIFTSLIDE_LEFT); // // break; // // } // // } // // } // // else // // SetOpeningType(Parent.SashList(Parent.SashList.Count - 1).OpeningType); // //} // //internal JsonSashDimension Serialize() // //{ // // JsonSashDimension JsonSashDimension = new JsonSashDimension(OpeningType, m_bHasHandle, m_dDimension); // // return JsonSashDimension; // //} //} public struct IdNameStruct { private int m_Id; private string m_Name; public int Id { get { return m_Id; } set { m_Id = value; } } public string Name { get { return m_Name; } set { m_Name = value; } } public IdNameStruct(int Id, string Name) { this = default(IdNameStruct); m_Id = Id; m_Name = Name; } public override string ToString() { return Name; } public static int IndFromId(int Id, ObservableCollection List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (List[i].Id == Id) { return i; } } return 0; } } public static int IndFromId(int Id, List List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (List[i].Id == Id) { return i; } } return 0; } } public static int IdFromInd(int Ind, ObservableCollection List) { return List[Ind].Id; } public static int IdFromInd(int Ind, List List) { return List[Ind].Id; } public static int IndFromId(int Id, ObservableCollection List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (List[i] is IdNameStruct && ((IdNameStruct)List[i]).Id == Id) { return i; } } return 0; } } public static int IndFromId(int Id, List List) { checked { int num = List.Count - 1; for (int i = 0; i <= num; i++) { if (List[i] is IdNameStruct && ((IdNameStruct)List[i]).Id == Id) { return i; } } return 0; } } public static int IdFromInd(int Ind, ObservableCollection List) { if (List[Ind] is IdNameStruct) { return ((IdNameStruct)List[Ind]).Id; } return 0; } public static int IdFromInd(int Ind, List List) { if (List[Ind] is IdNameStruct) { return ((IdNameStruct)List[Ind]).Id; } return 0; } //public static int IdFromName(string Name, ObservableCollection List) //{ // checked // { // int num = List.Count - 1; // for (int i = 0; i <= num; i++) // { // if (Operators.CompareString(((IdNameStruct)List[i]).Name, Name, TextCompare: false) == 0) // { // return ((IdNameStruct)List[i]).Id; // } // } // return 0; // } //} //public static int IdFromName(string Name, List List) //{ // checked // { // int num = List.Count - 1; // for (int i = 0; i <= num; i++) // { // if (Operators.CompareString(((IdNameStruct)List[i]).Name, Name, TextCompare: false) == 0) // { // return ((IdNameStruct)List[i]).Id; // } // } // return 0; // } //} } }