From 9246bd6c4169013567d28c46f9d26fd591f52bfa Mon Sep 17 00:00:00 2001 From: iambossTC Date: Sun, 13 Apr 2025 00:19:09 +0800 Subject: [PATCH] add docfx samples. --- Disp/DemoCylindroid.cs | 48 +++++ Disp/DemoDiscreteRgb.cs | 40 ++++ Disp/DemoDrawing.cs | 177 ++++++++++++++++++ Disp/DemoPick1.cs | 43 +++++ Disp/DemoPick2.cs | 67 +++++++ Disp/DemoPickable.cs | 47 +++++ Disp/DemoSatellite.cs | 50 +++++ Disp/DemoStl.cs | 49 +++++ Disp/DemoUtil.cs | 32 ++++ Disp/chamfer_cube.stl | Bin 0 -> 3084 bytes Disp/cubic.stl | 86 +++++++++ Hi.Sample.Wpf.csproj | 21 ++- ...ingMachiningProcessAndStripPosSelection.cs | 3 +- 13 files changed, 652 insertions(+), 11 deletions(-) create mode 100644 Disp/DemoCylindroid.cs create mode 100644 Disp/DemoDiscreteRgb.cs create mode 100644 Disp/DemoDrawing.cs create mode 100644 Disp/DemoPick1.cs create mode 100644 Disp/DemoPick2.cs create mode 100644 Disp/DemoPickable.cs create mode 100644 Disp/DemoSatellite.cs create mode 100644 Disp/DemoStl.cs create mode 100644 Disp/DemoUtil.cs create mode 100644 Disp/chamfer_cube.stl create mode 100644 Disp/cubic.stl diff --git a/Disp/DemoCylindroid.cs b/Disp/DemoCylindroid.cs new file mode 100644 index 0000000..d1a4683 --- /dev/null +++ b/Disp/DemoCylindroid.cs @@ -0,0 +1,48 @@ +using Hi.Disp; +using Hi.Geom; +using System; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoCylindroid.cs)] + /// + public static class DemoCylindroid + { + internal static void BuildCylindorid() + { + Cylindroid cylindroid = new Cylindroid(24, + new PairZr(0, 1), + new PairZr(1, 1), + new PairZr(1, 2), + new PairZr(2, 2), + new PairZr(8, 3)); + + DispEngine.Init(); + DemoUtil.RunApplication("BuildCylindorid", cylindroid.ToFaceDrawing()); + } + + internal static void TestCylindoridXml() + { + Cylindroid cylindroid = new Cylindroid(24, + new PairZr(0, 1), + new PairZr(1, 1), + new PairZr(1, 2), + new PairZr(2, 2), + new PairZr(4, 3)); + var xmlElement = cylindroid.MakeXmlSource(null, null); + Console.WriteLine("XML:" + xmlElement); + + cylindroid = new Cylindroid(xmlElement); + DispEngine.Init(); + DemoUtil.RunApplication("BuildCylindorid", cylindroid.ToFaceDrawing()); + } + + static void Main() + { + BuildCylindorid(); + //TestCylindoridXml(); + } + } +} diff --git a/Disp/DemoDiscreteRgb.cs b/Disp/DemoDiscreteRgb.cs new file mode 100644 index 0000000..2a1fa40 --- /dev/null +++ b/Disp/DemoDiscreteRgb.cs @@ -0,0 +1,40 @@ +using Hi.Disp; +using Hi.Disp.Flag; +using Hi.Geom; +using Hi.Coloring; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoDiscreteRgb.cs)] + /// + public class DemoDiscreteRgb : IDisplayee + { + /// + public void Display(Bind bind) + { + bind.RGB = ColorUtil.GetDiscreteRGB_Env(); + new Box3d(0, 0, 0, 1, 1, 1).ToDraw_Face().Display(bind); + + bind.RGB = ColorUtil.GetDiscreteRGB_Env(); + new Box3d(1, 0, 0, 2, 1, 1).ToDraw_Face().Display(bind); + + bind.RGB = ColorUtil.GetDiscreteRGB_Env(); + new Box3d(2, 0, 0, 3, 1, 1).ToDraw_Face().Display(bind); + } + /// + public void ExpandToBox3d(Box3d dst) + { + dst.Expand(new Vec3d(0, 0, 0)); + dst.Expand(new Vec3d(3, 1, 1)); + } + + static void Main() + { + DemoUtil.RunApplication("Demo Discrete I", + new DispList(new CoordinateDrawing(), new DemoDiscreteRgb())); + } + + } +} diff --git a/Disp/DemoDrawing.cs b/Disp/DemoDrawing.cs new file mode 100644 index 0000000..f076a2d --- /dev/null +++ b/Disp/DemoDrawing.cs @@ -0,0 +1,177 @@ +using Hi.Geom; +using Hi.Disp; +using System.Collections.Generic; +using Hi.Disp.Treat; +using Hi.Coloring; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoDrawing.cs)] + /// + public static class DemoDrawing + { + public static void FreeDrawing() + { + #region DocSite.FreeDrawing + double[] vs = + {0,0,0 + ,1,0,0 + ,0,0,1}; + DemoUtil.RunApplication("EasyDraw" + , new Drawing(vs, Stamp.V, GL.GL_LINE_STRIP)); + #endregion + } + + public static void DrawLines() + { + List ps; + double[] vs; + int n = 10; //vertex num + + ////create drawPoints + ps = new List(n); + for (int i = 0; i < n; i++) + ps.Add(new Vec3d(i, 0, 0)); + vs = new double[ps.Count * 3]; + for (int i = 0; i < ps.Count; i++) + { + vs[3 * i] = ps[i].x; + vs[3 * i + 1] = ps[i].y; + vs[3 * i + 2] = ps[i].z; + } + + //V means Vertex + Drawing drawPoints = new Drawing(vs, Stamp.V, GL.GL_POINTS); + + ////create drawLineStrip + vs = new double[ps.Count * 3]; + for (int i = 0; i < ps.Count; i++) + { + vs[3 * i] = i; + vs[3 * i + 1] = 0; + vs[3 * i + 2] = 1; + } + Drawing drawLineStrip = new Drawing(vs, Stamp.V, GL.GL_LINE_STRIP); + + ////create drawLineStripWithNormal + //the content of vs is Nx,Ny,Nz,Vx,Vy,Vz, Nx,Ny,Nz,Vx,Vy,Vz, ... + vs = new double[n * 6]; + for (int i = 0; i < n; i++) + { + //nx,ny,nz + vs[6 * i] = 1; + vs[6 * i + 1] = 0; + vs[6 * i + 2] = 0; + //x,y,z + vs[6 * i + 3] = i; + vs[6 * i + 4] = 0; + vs[6 * i + 5] = 2; + } + //V means Vertex; N means Normal + Drawing drawLineStripWithNormal = + new Drawing(vs, Stamp.NV, GL.GL_LINE_STRIP); + + ////create drawColorLines + vs = new double[n * 6]; + for (int i = 0; i < n; i++) + { + //the rgb values set casually. + //r,g,b + vs[6 * i] = i % 3 / 2D; + vs[6 * i + 1] = i % 5 / 4D; + vs[6 * i + 2] = i % 7 / 6D; + //x,y,z + vs[6 * i + 3] = i; + vs[6 * i + 4] = 0; + vs[6 * i + 5] = 3; + } + //V means Vertex; C means Color + Drawing drawLineStripWithColor = new Drawing(vs, Stamp.CV, GL.GL_LINE_STRIP); + + DemoUtil.RunApplication("DrawLines", + new DispList(drawPoints, drawLineStrip + , drawLineStripWithNormal, drawLineStripWithColor)); + } + + public static void DrawTrianglesByPrimitives() + { + int n = 10;// triangle num + double[] vs; + + ////create drawTrisCV + //each triangle has 3 point; each point has r,g,b,x,y,z, totally 6 doubles. + vs = new double[n * 3 * 6]; + for (int i = 0, k = 0; i < n; i++) + { + //the rgb values set as casual. + Vec3d rgb = ColorUtil.GetDiscreteRgb(i); + Tri3d tri = new Tri3d(new Vec3d(i, 0, 0), new Vec3d(i + 1, 0, 0), new Vec3d(i + 0.5, 0, 1)); + for (int j = 0; j < 3; j++) + { + vs[k++] = rgb.x; + vs[k++] = rgb.y; + vs[k++] = rgb.z; + vs[k++] = tri.ps[j].x; + vs[k++] = tri.ps[j].y; + vs[k++] = tri.ps[j].z; + } + } + //V means Vertex; C means Color + Drawing drawTrisCV = new Drawing(vs, Stamp.CV, GL.GL_TRIANGLES); + + ////create drawTrisCNV + /////each triangle has 3 point; each point has r,g,b,nx,ny,nz,x,y,z, totally 6 doubles. + vs = new double[n * 3 * 9]; + for (int i = 0, k = 0; i < n; i++) + { + //the rgb values set as casual. + Vec3d rgb = ColorUtil.GetDiscreteRgb(i); + Tri3d tri = new Tri3d(new Vec3d(i, 0, 3), new Vec3d(i + 1, 0, 3), new Vec3d(i + 0.5, 0, 4)); + Vec3d nn = tri.GetNormal(); + for (int j = 0; j < 3; j++) + { + vs[k++] = rgb.x; + vs[k++] = rgb.y; + vs[k++] = rgb.z; + vs[k++] = nn.x; + vs[k++] = nn.y; + vs[k++] = nn.z; + vs[k++] = tri.ps[j].x; + vs[k++] = tri.ps[j].y; + vs[k++] = tri.ps[j].z; + } + } + //V means Vertex; C means Color; N means Normal + Drawing drawTrisCNV = new Drawing(vs, Stamp.CNV, GL.GL_TRIANGLES); + + //the color of colorTrisDraw is not influence by outer color setting. + DemoUtil.RunApplication("DrawTrianglesByPrimitives", + new DispList(new RgbTreat(1, 0, 0), drawTrisCV, drawTrisCNV)); + } + + public static void DrawTri3d() + { + int n = 10; + List tris = new List(n); + for (int i = 0; i < n; i++) + tris.Add(new Tri3d(new Vec3d(i, 0, 0), new Vec3d(i + 1, 0, 0), new Vec3d(i + 0.5, 0, 1))); + + Drawing faceDraw = tris.GetFaceDrawing(); + Drawing linesDraw = tris.GetLineDrawing(); + + DemoUtil.RunApplication("DrawTri3d", + new DispList(new RgbTreat(0, 0, 1), linesDraw + , new RgbTreat(1, 0, 0), faceDraw)); + } + + static void Main() + { + //FreeDrawing(); + //DrawLines(); + //DrawTrianglesByPrimitives(); + DrawTri3d(); + } + } +} diff --git a/Disp/DemoPick1.cs b/Disp/DemoPick1.cs new file mode 100644 index 0000000..ded202e --- /dev/null +++ b/Disp/DemoPick1.cs @@ -0,0 +1,43 @@ +using Hi.Geom; +using Hi.Disp; +using Hi.Native; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPick1.cs)] + /// + public class DemoPick1 : Pickable, IDisplayee + { + bool isMouseOver = false; + /// + public void Display(Bind bind) + { + bind.PickID = PickingID; + bind.RGB = new Vec3d(isMouseOver ? 0 : 1, 1, 1); + new Box3d(0, 0, 0, 1, 1, 1).DisplayFace(bind); + bind.PickID = 0; + } + /// + public void ExpandToBox3d(Box3d dst) + { + dst.Expand(new Vec3d(0, 0, 0)); + dst.Expand(new Vec3d(1, 1, 1)); + } + /// + public override void OnMouseEnter(ui_event_type e, panel_state_t state) + { + isMouseOver = true; + } + /// + public override void OnMouseLeave(ui_event_type e, panel_state_t state) + { + isMouseOver = false; + } + public static void Main() + { + DemoUtil.RunApplication("DemoPick1", new DemoPick1()); + } + } +} diff --git a/Disp/DemoPick2.cs b/Disp/DemoPick2.cs new file mode 100644 index 0000000..6c583dc --- /dev/null +++ b/Disp/DemoPick2.cs @@ -0,0 +1,67 @@ +using Hi.Geom; +using Hi.Disp; +using System; +using Hi.Coloring; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPick2.cs)] + /// + public class DemoPick2 : IDisplayee, IDisposable + { + readonly Pickable pickableA = new ShowEventPickable { Tag = "A" }; + readonly Pickable pickableB = new ShowEventPickable { Tag = "B" }; + readonly Pickable pickableC = new ShowEventPickable { Tag = "C" }; + /// + public void Display(Bind bind) + { + bind.PickID = pickableA.PickingID; + bind.RGB = ColorUtil.GetDiscreteRgb(1); + new Box3d(0, 0, 0, 1, 1, 1).DisplayFace(bind); + + bind.PickID = pickableB.PickingID; + bind.RGB = ColorUtil.GetDiscreteRgb(2); + new Box3d(0, 0, 1, 1, 1, 2).DisplayFace(bind); + + bind.PickID = pickableC.PickingID; + bind.RGB = ColorUtil.GetDiscreteRgb(3); + new Box3d(0, 0, 2, 1, 1, 3).DisplayFace(bind); + + bind.PickID = 0; + } + /// + public void ExpandToBox3d(Box3d dst) + { + dst.Expand(new Vec3d(0, 0, 0)); + dst.Expand(new Vec3d(1, 1, 3)); + } + #region IDisposable Support + private bool disposedValue = false; // To detect redundant calls + /// + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + pickableA.Dispose(); + pickableB.Dispose(); + pickableC.Dispose(); + } + disposedValue = true; + } + } + /// + public void Dispose() + { + Dispose(true); + } + #endregion + public static void Main() + { + DemoUtil.RunApplication("DemoPick2", new DemoPick2()); + } + } +} diff --git a/Disp/DemoPickable.cs b/Disp/DemoPickable.cs new file mode 100644 index 0000000..bd832ff --- /dev/null +++ b/Disp/DemoPickable.cs @@ -0,0 +1,47 @@ +using Hi.Disp; +using Hi.Geom; +using System; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoPickable.cs)] + /// + public class DemoPickable : IDisplayee + { + private readonly Drawing draw; + private readonly ShowEventPickable pickable; + + public DemoPickable() + { + pickable = new ShowEventPickable(); + double pid = pickable.PickingID; + double[] vs = new double[] { + //pickID, x,y,z + pid, 0,0.1,0.1, + pid, 0.1,0,0, + pid, 0.1,0,0.1 + }; + draw = new Drawing(vs, Stamp.PV, GL.GL_TRIANGLES); + } + /// + public void Display(Bind bind) + { + draw.Display(bind); + } + /// + public void ExpandToBox3d(Box3d dst) + { + draw.ExpandToBox3d(dst); + } + + [STAThread] + public static void Main() + { + DemoUtil.RunApplication("DemoPickable", new DemoPickable()); + } + } + + +} diff --git a/Disp/DemoSatellite.cs b/Disp/DemoSatellite.cs new file mode 100644 index 0000000..e7d12cb --- /dev/null +++ b/Disp/DemoSatellite.cs @@ -0,0 +1,50 @@ +using Hi.Geom; +using Hi.Disp; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoSatellite.cs)] + /// + public class DemoSatellite : IDisplayee + { + Drawing sun; + Drawing earth; + Drawing moon; + double angle_earth; + double angle_moon; + DemoSatellite() + { + sun = Box3d.CenterUnitBox.ScaleFromCenter(4).ToDraw_Face(); + earth = Box3d.CenterUnitBox.ScaleFromCenter(2).ToDraw_Face(); + moon = Box3d.CenterUnitBox.ToDraw_Face(); + } + /// + public void Display(Bind bind) + { + sun.Display(bind); + bind.ModelMatStack.Push(); + bind.ModelMatStack.Mul(new Mat4d(new AxisAngle4d(new Vec3d(0, 0, 1), angle_earth += 0.03))); + bind.ModelMatStack.Mul(new Mat4d(new Vec3d(12, 0, 0))); + earth.Display(bind); + bind.ModelMatStack.Push(); + bind.ModelMatStack.Mul(new Mat4d(new AxisAngle4d(new Vec3d(0, 0, 1), angle_moon += 0.02))); + bind.ModelMatStack.Mul(new Mat4d(new Vec3d(4, 0, 0))); + moon.Display(bind); + bind.ModelMatStack.Pop(); + bind.ModelMatStack.Pop(); + } + /// + public void ExpandToBox3d(Box3d dst) + { + dst.Expand(new Vec3d(-14, -14, -2)); + dst.Expand(new Vec3d(14, 14, 2)); + } + + static void Main() + { + DemoUtil.RunApplication("DemoSatellite", new DemoSatellite()); + } + } +} diff --git a/Disp/DemoStl.cs b/Disp/DemoStl.cs new file mode 100644 index 0000000..7c64b7b --- /dev/null +++ b/Disp/DemoStl.cs @@ -0,0 +1,49 @@ +using Hi.Geom; +using System; +using Hi.Disp; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoStl.cs)] + /// + public static class DemoStl + { + internal static void TransformStl() + { + #region DocSite.TransformStl + Stl stl; + + stl = new Stl("Demo/cubic.stl"); + //scale the stl to 100x. + stl.Transform(new Mat4d(100)); + //create a new stl file. + stl.WriteBin("big_cubic.stl"); + + stl = new Stl("Demo/cubic.stl"); + //move the stl by (100,0,0) + stl.Transform(new Mat4d(new Vec3d(100, 0, 0))); + //create a new stl file. + stl.WriteBin("offset_x100_cubic.stl"); + #endregion + } + + internal static void DemoCommonUsage() + { + #region DocSite.CommonUsage + Stl stl = new Stl("Disp/cubic.stl"); + Box3d bouindingbox = new Box3d(stl); + Console.WriteLine("bouindingbox.Min: " + bouindingbox.Min); + Console.WriteLine("bouindingbox.Max: " + bouindingbox.Max); + Console.WriteLine("bouindingbox.Center: " + bouindingbox.Center); + DispUtil.CallRenderingFrame("DemoForm", stl.ToFaceDrawing()); + #endregion + } + + static void Main() + { + DemoCommonUsage(); + } + } +} diff --git a/Disp/DemoUtil.cs b/Disp/DemoUtil.cs new file mode 100644 index 0000000..10602a4 --- /dev/null +++ b/Disp/DemoUtil.cs @@ -0,0 +1,32 @@ +using Hi.Disp; +using Hi.Licenses; +using Hi.MongoUtils; +using Hi.Wpf.Disp; +using System.Windows; + +namespace Sample.Disp +{ + /// + /// ### Source Code + /// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)] + /// + public static class DemoUtil + { + public static void RunApplication(string title, IDisplayee displayee) + { + Application app = new Application(); + app.Exit += (o, e) => + { + if(MongoServer.IsDefaultInit) + MongoServer.Default.Dispose(); + DispEngine.FinishDisp(); + License.LogOutAll(); + }; + app.Run(new RenderingWindow() + { + Title = title, + Displayee = displayee + }); + } + } +} diff --git a/Disp/chamfer_cube.stl b/Disp/chamfer_cube.stl new file mode 100644 index 0000000000000000000000000000000000000000..55a639da884dad6c13bc85779dba4b8a3793c6e9 GIT binary patch literal 3084 zcmaJ@v5Hes5PgNUo&6(%2#TFxAp}B%$XW;yY+XrKg1cGRL`AFDx@_wgsFkHyFQgIw zz%Q`T&L42j%sua(dAoQa`)2RVIdf*_-j{5S4_Ax!`D(p?^0u8ndDI@993QoF-+i!n zvAo^RSIeX2dec5!FJ5i7h&n#lzS%!nwvS(L+r#bRP9y8S*?+IxJ;$eRcjKm+?wSVA zcb~J}SzJai3LY%{uQr(W_Fj(iE_qKUfkG5*pff@}nvXWn*VZ>jMcMezt@p+YFVud6 zBDdp-+{p3c*^M5NJvE;)xl-_;U-mqm1b5TqsEWRb@Ey;7Run=>WpcmmM2?|$<|{0w zp>(=OWDon(nPTk%=N)wbGld$k*a8Z6H?H}B`10$+^+2en8~=PdF*KJl#U7*K!BPZ$ z;c2>fx`IBtY7d)C1!a$}%sf0ArRW-8tBaGN6Ab&Z9GDcV)hI>h9ND9Du1tQT#^1mG z{uJHSlK~q_;*>CVAdo2#%B4A!36b_GGv*n^&0&<<$d?g}3MEmc+CbZ~v(q4tJ+t2%1Dc4c9ZJ}%=}wst&()$NjMLg>Ohq>XIm(V2_B5 zoUPYj=;>gZ;Aak<+VIXNRS7|lb~iIYzvaLi$ey)Vu%oUrXFvVCQP5wI09#I;@LCgd z$0@9cGgRu;<~OIFE8|8TC5L+SBr1~yqYm74uY=l$)2zQshlu3qYZ`O`s!9%IXXUt2 vSiDg_(VcJg2tB*`7Acec7X64C;)8P)Ttl>Td)MW+s8wE-1Tuat=PvvMPaT(b literal 0 HcmV?d00001 diff --git a/Disp/cubic.stl b/Disp/cubic.stl new file mode 100644 index 0000000..2f5c8a9 --- /dev/null +++ b/Disp/cubic.stl @@ -0,0 +1,86 @@ +solid cubic.stl + facet normal -1 -1.18178e-014 0 + outer loop + vertex 0 0 1 + vertex 0 1 1 + vertex 0 0 0 + endloop + endfacet + facet normal -1 -1.18178e-014 0 + outer loop + vertex 0 0 0 + vertex 0 1 1 + vertex 0 1 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1 0 1 + vertex 0 0 1 + vertex 1 0 0 + endloop + endfacet + facet normal 0 -1 0 + outer loop + vertex 1 0 0 + vertex 0 0 1 + vertex 0 0 0 + endloop + endfacet + facet normal 1 1.0842e-016 0 + outer loop + vertex 1 1 1 + vertex 1 0 1 + vertex 1 1 0 + endloop + endfacet + facet normal 1 1.0842e-016 0 + outer loop + vertex 1 1 0 + vertex 1 0 1 + vertex 1 0 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 0 1 1 + vertex 1 1 1 + vertex 0 1 0 + endloop + endfacet + facet normal 0 1 0 + outer loop + vertex 0 1 0 + vertex 1 1 1 + vertex 1 1 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1 0 1 + vertex 1 1 1 + vertex 0 0 1 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 0 0 1 + vertex 1 1 1 + vertex 0 1 1 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1 1 0 + vertex 1 0 0 + vertex 0 1 0 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0 1 0 + vertex 1 0 0 + vertex 0 0 0 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/Hi.Sample.Wpf.csproj b/Hi.Sample.Wpf.csproj index 68c04aa..db509cd 100644 --- a/Hi.Sample.Wpf.csproj +++ b/Hi.Sample.Wpf.csproj @@ -3,18 +3,21 @@ Exe net9.0-windows - x64 true - Demo;Maintenance + x64 Hi.Sample.Wpf - Sample.Wpf + Sample + true + Debug;Release + 0 + 1.4.$(VersionBuild) + $(AssemblyName) + bin\$(Platform).$(Configuration)\ + DEBUG;TRACE + Sample.Machining.DemoRenderingMachiningProcessAndStripPosSelection - - - - - + @@ -24,7 +27,7 @@ - + diff --git a/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs b/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs index 5d54970..5a989da 100644 --- a/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs +++ b/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs @@ -8,9 +8,8 @@ using Hi.MillingSteps; using System.Windows; using Hi.Disp; -namespace Sample.Wpf.Machining +namespace Sample.Machining { - /// /// This example demonstrates how to integrate HiAPI's machining visualization capabilities into a WPF application. It utilizes the Hi.Wpf.Disp namespace to render machining processes in a 3D environment and implement user interaction features like strip position selection. The sample shows how to set up the rendering pipeline, handle camera controls, and connect machining data with the visualization system. This example is essential for developers building interactive CAM applications that require both rich visualization capabilities and user interaction with the machining model. ///