I'm fairly new to eyeshot so if I'm missing something obvious please say.
I have a blended surface that I intersect with a plane to try and get "grid" lines on my surface. The trouble is the curves only show on the inside of the surface, where I want them to be visible on both sides.
Is there a tweak to my approach that would work, or is there fundamentally a better approach to achieve what I want please?
Generalised code example below.
// Define lists to hold curves and points
List<devDept.Eyeshot.Entities.ICurve> curveList = new List<devDept.Eyeshot.Entities.ICurve>();
List<devDept.Geometry.Point3D> points = new List<devDept.Geometry.Point3D>();
// Add points to a new curve
points.Add(new devDept.Geometry.Point3D(0, 0, -1));
points.Add(new devDept.Geometry.Point3D(0, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Add points to a second new curve
points.Clear();
points.Add(new devDept.Geometry.Point3D(1, 0, -1));
points.Add(new devDept.Geometry.Point3D(1, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Create the surface
devDept.Eyeshot.Entities.Surface loft1 = devDept.Eyeshot.Entities.Surface.Loft(curveList, 3)[0];
// Generate a list of entities to render
devDept.Eyeshot.EntityList entities = new devDept.Eyeshot.EntityList();
entities.Add(loft1, Color.PeachPuff);
// Intersect the surface with a horizontal plane at z == 0
List<ICurve> sectionLine1 = loft1.IntersectWith(new Plane(new devDept.Geometry.Point3D(0, 0, 0), new Vector3D(0, 0, 1)), 1e-1).ToList();
entities.Add((Entity)sectionLine1[index], Color.Black);
// Show in the Eyeshot model
modelVisualiser.Clear();
modelVisualiser.Entities.AddRange(preview);
modelVisualiser.Invalidate();
I would try the approach described in this article: https://devdept.zendesk.com/hc/en-us/articles/360015256013-How-do-I-draw-a-Line-entity-that-would-be-shown-above-all-other-entities-