|
|
@ -1279,11 +1279,15 @@ public class ViewportHelperPro |
|
|
|
/// <param name="entities"></param> |
|
|
|
/// <param name="entities"></param> |
|
|
|
/// <param name="thickness"></param> |
|
|
|
/// <param name="thickness"></param> |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public static List<LineGeometryModel3D> ShowMeshLines(List<Viewport3DTriangleEntity> entities, double thickness = 1.0) |
|
|
|
public static List<LineGeometryModel3D> ShowMeshLines(List<Viewport3DTriangleEntity> entities, bool isCrown = true, double thickness = 1.0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
moveLines = new(); |
|
|
|
moveLines = new(); |
|
|
|
List<LineGeometryModel3D> lines = new(); |
|
|
|
List<LineGeometryModel3D> lines = new(); |
|
|
|
var Y = -0.01F; |
|
|
|
var Y = -0.01F; |
|
|
|
|
|
|
|
if (!isCrown) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Y = ViewportManager.ModelBounds.Maximum.Y + 0.01f; |
|
|
|
|
|
|
|
} |
|
|
|
var center = ViewportManager.CenterVector; |
|
|
|
var center = ViewportManager.CenterVector; |
|
|
|
center.Y = Y; |
|
|
|
center.Y = Y; |
|
|
|
Viewport3DTriangleEntity firstPoint = entities.Where(x => x.PlaneType == PlaneType.TableFacet).FirstOrDefault(); |
|
|
|
Viewport3DTriangleEntity firstPoint = entities.Where(x => x.PlaneType == PlaneType.TableFacet).FirstOrDefault(); |
|
|
@ -1299,63 +1303,73 @@ public class ViewportHelperPro |
|
|
|
{ |
|
|
|
{ |
|
|
|
r = (float)(v*0.501); |
|
|
|
r = (float)(v*0.501); |
|
|
|
} |
|
|
|
} |
|
|
|
var x1 = r; |
|
|
|
//var x1 = r; |
|
|
|
var z1 = lineCal.calZ(x1); |
|
|
|
//var z1 = lineCal.calZ(x1); |
|
|
|
var x2 = -r; |
|
|
|
//var x2 = -r; |
|
|
|
var z2 = lineCal.calZ(x2); |
|
|
|
//var z2 = lineCal.calZ(x2); |
|
|
|
edgeLines.Add(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2))); |
|
|
|
//edgeLines.Add(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2))); |
|
|
|
|
|
|
|
//lines.Add(DisplayLineModel3D(edgeLines, XlineColor)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
|
|
|
|
var XLine = lineCal.calXline(r); |
|
|
|
|
|
|
|
edgeLines.Add(XLine); |
|
|
|
lines.Add(DisplayLineModel3D(edgeLines, XlineColor)); |
|
|
|
lines.Add(DisplayLineModel3D(edgeLines, XlineColor)); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2)),2)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(XLine, 2)); |
|
|
|
var lineA = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
var lineA = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
lines.Add(lineA); |
|
|
|
lines.Add(lineA); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2)), -2)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(XLine, -2)); |
|
|
|
var lineB = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
var lineB = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
lines.Add(lineB); |
|
|
|
lines.Add(lineB); |
|
|
|
bindingMoveLine(lineA, lineB); |
|
|
|
bindingMoveLine(lineA, lineB); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2)), 4)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(XLine, 4)); |
|
|
|
var lineE = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
var lineE = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
lines.Add(lineE); |
|
|
|
lines.Add(lineE); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x1, Y, z1), new Vector3(x2, Y, z2)), -4)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(XLine, -4)); |
|
|
|
var lineF = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
var lineF = DisplayLineModel3D(edgeLines, XlineColor); |
|
|
|
lines.Add(lineF); |
|
|
|
lines.Add(lineF); |
|
|
|
bindingMoveLine(lineE, lineF); |
|
|
|
bindingMoveLine(lineE, lineF); |
|
|
|
|
|
|
|
|
|
|
|
Color4 YlineColor = new Color4(0F, 80f, 0f, 1f); |
|
|
|
Color4 YlineColor = new Color4(0F, 80f, 0f, 1f); |
|
|
|
var x3 = r; |
|
|
|
//var x3 = r; |
|
|
|
var z3 = lineCal.calZVertical(x3); |
|
|
|
//var z3 = lineCal.calZVertical(x3); |
|
|
|
var x4 = -r; |
|
|
|
//var x4 = -r; |
|
|
|
var z4 = lineCal.calZVertical(x4); |
|
|
|
//var z4 = lineCal.calZVertical(x4); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
|
|
|
|
//edgeLines.Add(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4))); |
|
|
|
|
|
|
|
//lines.Add(DisplayLineModel3D(edgeLines, YlineColor)); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4))); |
|
|
|
var YLine = lineCal.calYline(r); |
|
|
|
|
|
|
|
edgeLines.Add(YLine); |
|
|
|
lines.Add(DisplayLineModel3D(edgeLines, YlineColor)); |
|
|
|
lines.Add(DisplayLineModel3D(edgeLines, YlineColor)); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4)), 2)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(YLine, 2)); |
|
|
|
var lineC = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
var lineC = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
lines.Add(lineC); |
|
|
|
lines.Add(lineC); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4)), -2)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(YLine, -2)); |
|
|
|
var lineD = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
var lineD = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
lines.Add(lineD); |
|
|
|
lines.Add(lineD); |
|
|
|
bindingMoveLine(lineC, lineD); |
|
|
|
bindingMoveLine(lineC, lineD); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4)), 4)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(YLine, 4)); |
|
|
|
var lineG = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
var lineG = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
lines.Add(lineG); |
|
|
|
lines.Add(lineG); |
|
|
|
|
|
|
|
|
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines = new List<Tuple<Vector3, Vector3>>(); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(new Tuple<Vector3, Vector3>(new Vector3(x3, Y, z3), new Vector3(x4, Y, z4)), -4)); |
|
|
|
edgeLines.Add(lineCal.calLineOfOffset(YLine, -4)); |
|
|
|
var lineH = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
var lineH = DisplayLineModel3D(edgeLines, YlineColor); |
|
|
|
lines.Add(lineH); |
|
|
|
lines.Add(lineH); |
|
|
|
bindingMoveLine(lineG, lineH); |
|
|
|
bindingMoveLine(lineG, lineH); |
|
|
@ -1482,9 +1496,13 @@ public class ViewportHelperPro |
|
|
|
/// <param name="radius"></param> |
|
|
|
/// <param name="radius"></param> |
|
|
|
/// <param name="thickness"></param> |
|
|
|
/// <param name="thickness"></param> |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public static LineGeometryModel3D ShowCircleLine(double radius = 1.0, double thickness = 1.0) |
|
|
|
public static LineGeometryModel3D ShowCircleLine(bool isCrown = true, double radius = 1.0, double thickness = 1.0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var Y = -0.01F; |
|
|
|
var Y = -0.01F; |
|
|
|
|
|
|
|
if (!isCrown) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Y = ViewportManager.ModelBounds.Maximum.Y + 0.01f; |
|
|
|
|
|
|
|
} |
|
|
|
var center = ViewportManager.CenterVector; |
|
|
|
var center = ViewportManager.CenterVector; |
|
|
|
center.Y = Y; |
|
|
|
center.Y = Y; |
|
|
|
return UpdateCircleGeometry(center, initialRadius); |
|
|
|
return UpdateCircleGeometry(center, initialRadius); |
|
|
|