protected override void SolveInstance(IGH_DataAccess DA) { var meshes = new List <Mesh>(); string file = string.Empty; DA.GetDataList(0, meshes); DA.GetData(1, ref file); var outMeshes = RenderExtensions.BitmapFromSolidColoredMeshes(meshes, file); var joinedMesh = new Mesh(); foreach (var mesh in outMeshes) { joinedMesh.Append(mesh); } var material = new DisplayMaterial(); material.SetBitmapTexture(file, true); var display = new DisplayGeometry(joinedMesh, material); DA.SetData(0, new GH_DisplayGeometry(display)); }
protected override void SolveInstance(IGH_DataAccess DA) { Mesh mesh = new Mesh(); string file = string.Empty; DA.GetData(0, ref mesh); DA.GetData(1, ref file); Mesh outMesh = RenderExtensions.BitmapFromVertexColors(mesh, file); var material = new DisplayMaterial(); material.SetBitmapTexture(file, true); var display = new DisplayGeometry(outMesh, material); DA.SetData(0, new GH_DisplayGeometry(display)); }
protected override void SolveInstance(IGH_DataAccess DA) { IGH_GeometricGoo geometry = null; DisplayMaterial material = null; string layer = ""; if (!DA.GetData(0, ref geometry)) { return; } DA.GetData(1, ref material); DA.GetData(2, ref layer); var target = GH_Convert.ToGeometryBase(geometry); var displayStyle = new DisplayGeometry(target, material, layer); DA.SetData(0, new GH_DisplayGeometry(displayStyle)); }
private void CreateLedGeometry() { switch (Led.RgbLed.Shape) { case Shape.Custom: if (Led.RgbLed.Device.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || Led.RgbLed.Device.DeviceInfo.DeviceType == RGBDeviceType.Keypad) { CreateCustomGeometry(2.0); } else { CreateCustomGeometry(1.0); } break; case Shape.Rectangle: if (Led.RgbLed.Device.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || Led.RgbLed.Device.DeviceInfo.DeviceType == RGBDeviceType.Keypad) { CreateKeyCapGeometry(); } else { CreateRectangleGeometry(); } break; case Shape.Circle: CreateCircleGeometry(); break; default: throw new ArgumentOutOfRangeException(); } // Stroke geometry is the display geometry excluding the inner geometry StrokeGeometry = DisplayGeometry.GetWidenedPathGeometry(new Pen(null, 1.0), 0.1, ToleranceType.Absolute); DisplayGeometry.Freeze(); StrokeGeometry.Freeze(); }
public void CommitChanges() { isCommiting = true; geoPathGeometry = DisplayGeometry.Clone(); for (int f = 0; f < DisplayGeometry.Figures.Count; f++) { PathFigure figureGeo = geoPathGeometry.Figures[f]; PathFigure figureDisplay = DisplayGeometry.Figures[f]; figureGeo.StartPoint = FromCanvasMercatorToLatLng(figureDisplay.StartPoint); PathSegmentCollection segmentsGeo = figureGeo.Segments; PathSegmentCollection segmentsDisplay = figureDisplay.Segments; for (int s = 0; s < segmentsDisplay.Count; s++) { PointCollection pointsGeo = (segmentsGeo[s] as PolyLineSegment).Points; PointCollection pointsDisplay = (segmentsDisplay[s] as PolyLineSegment).Points; for (int p = 0; p < pointsDisplay.Count; p++) { pointsGeo[p] = FromCanvasMercatorToLatLng(pointsDisplay[p]); } } } Geometry = geometryReader.Read(geoPathGeometry); isCommiting = false; }