void glLightedView_DrawGlContent(object sender, EventArgs e) { if (rootUnion != null) { RenderCsgToGl.Render(rootUnion); } if (meshToRender != null) { RenderMeshToGl.Render(meshToRender, RGBA_Bytes.Gray); } }
private void trackballTumbleWidget_DrawGlContent(object sender, EventArgs e) { for (int groupIndex = 0; groupIndex < MeshGroups.Count; groupIndex++) { MeshGroup meshGroupToRender = MeshGroups[groupIndex]; int part = 0; foreach (Mesh meshToRender in meshGroupToRender.Meshes) { MeshMaterialData meshData = MeshMaterialData.Get(meshToRender); RGBA_Bytes drawColor = GetMaterialColor(meshData.MaterialIndex); if (meshGroupToRender == SelectedMeshGroup) { drawColor = GetSelectedMaterialColor(meshData.MaterialIndex); } RenderMeshToGl.Render(meshToRender, drawColor, MeshGroupTransforms[groupIndex].TotalTransform, RenderType); part++; } } foreach (InteractionVolume interactionVolume in interactionVolumes) { interactionVolume.DrawGlContent(e); } // we don't want to render the bed or bulid volume before we load a model. if (MeshGroups.Count > 0 || AllowBedRenderingWhenEmpty) { if (RenderBed) { RenderMeshToGl.Render(printerBed, this.BedColor); } if (buildVolume != null && RenderBuildVolume) { RenderMeshToGl.Render(buildVolume, this.BuildVolumeColor); } if (false) // this is code to draw a small axis indicator { double big = 10; double small = 1; Mesh xAxis = PlatonicSolids.CreateCube(big, small, small); RenderMeshToGl.Render(xAxis, RGBA_Bytes.Red); Mesh yAxis = PlatonicSolids.CreateCube(small, big, small); RenderMeshToGl.Render(yAxis, RGBA_Bytes.Green); Mesh zAxis = PlatonicSolids.CreateCube(small, small, big); RenderMeshToGl.Render(zAxis, RGBA_Bytes.Blue); } } }
public override void DrawGlContent(EventArgs e) { if (MeshViewerToDrawWith.SelectedMeshGroup != null) { // draw the bounds on the bed AxisAlignedBoundingBox selectedBounds = MeshViewerToDrawWith.GetBoundsForSelection(); Mesh bottomBounds = PlatonicSolids.CreateCube(selectedBounds.XSize, selectedBounds.YSize, .1); RenderMeshToGl.Render(bottomBounds, new RGBA_Bytes(22, 80, 220, 30), TotalTransform, RenderTypes.Shaded); } base.DrawGlContent(e); }
public static void Render() { MatterHackers.PolygonMesh.Mesh mesh = new MatterHackers.PolygonMesh.Mesh(); var v0 = mesh.CreateVertex(new Vector3(1, 0, 1)); // V0 var v1 = mesh.CreateVertex(new Vector3(1, 0, -1)); // V1 var v2 = mesh.CreateVertex(new Vector3(-1, 0, -1)); // V2 var v3 = mesh.CreateVertex(new Vector3(-1, 0, 1)); // V3 var v4 = mesh.CreateVertex(new Vector3(0, 1, 0)); // V4 mesh.CreateFace(new Vertex[] { v0, v1, v2, v3 }); mesh.CreateFace(new Vertex[] { v3, v0, v4 }); mesh.CreateFace(new Vertex[] { v0, v1, v4 }); mesh.CreateFace(new Vertex[] { v1, v2, v4 }); mesh.CreateFace(new Vertex[] { v2, v3, v4 }); RenderMeshToGl.Render(mesh, new RGBA_Floats(.3, .8, 7)); }
void trackballTumbleWidget_DrawGlContent(object sender, EventArgs e) { foreach (Mesh meshToRender in meshsToRender) { if (ShowWireFrame) { RenderMeshToGl.Render(meshToRender, PartColor, true); } else { RenderMeshToGl.Render(meshToRender, PartColor); } } if (RenderBed && meshsToRender.Count > 0) { RGBA_Floats bedColor = new RGBA_Floats(.8, .8, .8, .5); RenderMeshToGl.Render(printerBed, bedColor); } }
private void RenderLine(Matrix4X4 transform, Vector3 start, Vector3 end, RGBA_Bytes color, bool zBuffered = true) { Vector3 lineCenter = (start + end) / 2; Vector3 delta = start - end; Matrix4X4 rotateTransform = Matrix4X4.CreateRotation(new Quaternion(Vector3.UnitX + new Vector3(.0001, -.00001, .00002), delta.GetNormal())); Matrix4X4 scaleTransform = Matrix4X4.CreateScale((end - start).Length, 1, 1); Matrix4X4 lineTransform = scaleTransform * rotateTransform * Matrix4X4.CreateTranslation(lineCenter) * transform; if (zBuffered) { RenderMeshToGl.Render(lineMesh, RGBA_Bytes.Black, lineTransform, RenderTypes.Shaded); //drawEvent.graphics2D.Line(cornerPositionScreen, cornerPositionCcwScreen, RGBA_Bytes.Gray); } else { // render on top of everything very lightly RenderMeshToGl.Render(lineMesh, new RGBA_Bytes(RGBA_Bytes.Black, 5), lineTransform, RenderTypes.Shaded); } }
void trackballTumbleWidget_DrawGlContent(object sender, EventArgs e) { for (int groupIndex = 0; groupIndex < MeshGroups.Count; groupIndex++) { MeshGroup meshGroupToRender = MeshGroups[groupIndex]; int part = 0; foreach (Mesh meshToRender in meshGroupToRender.Meshes) { MeshMaterialData meshData = MeshMaterialData.Get(meshToRender); RGBA_Bytes drawColor = GetMaterialColor(meshData.MaterialIndex); if (meshGroupToRender == SelectedMeshGroup) { drawColor = GetSelectedMaterialColor(meshData.MaterialIndex); } RenderMeshToGl.Render(meshToRender, drawColor, MeshGroupTransforms[groupIndex].TotalTransform, RenderType); part++; } } foreach (InteractionVolume interactionVolume in interactionVolumes) { interactionVolume.DrawGlContent(e); } // we don't want to render the bed or bulid volume before we load a model. if (MeshGroups.Count > 0 || AllowBedRenderingWhenEmpty) { if (RenderBed) { RenderMeshToGl.Render(printerBed, this.BedColor); } if (buildVolume != null && RenderBuildVolume) { RenderMeshToGl.Render(buildVolume, this.BuildVolumeColor); } } }
public override void DrawGlContent(EventArgs e) { if (MeshViewerToDrawWith.SelectedMeshGroup != null) { if (MouseOver) { RenderMeshToGl.Render(upArrow, RGBA_Bytes.Red, TotalTransform, RenderTypes.Shaded); // draw the hight from the bottom to the bed AxisAlignedBoundingBox selectedBounds = MeshViewerToDrawWith.GetBoundsForSelection(); Vector3 bottomRight = new Vector3(selectedBounds.maxXYZ.x, selectedBounds.maxXYZ.y, selectedBounds.minXYZ.z); Vector2 bottomRightScreenPosition = MeshViewerToDrawWith.TrackballTumbleWidget.GetScreenPosition(bottomRight); } else { RenderMeshToGl.Render(upArrow, RGBA_Bytes.Black, TotalTransform, RenderTypes.Shaded); } } base.DrawGlContent(e); }
public override void DrawGlContent(EventArgs e) { bool shouldDrawScaleControls = true; if (MeshViewerToDrawWith.SelectedInteractionVolume != null && MeshViewerToDrawWith.SelectedInteractionVolume as UpArrow3D == null) { shouldDrawScaleControls = false; } if (MeshViewerToDrawWith.SelectedMeshGroup != null && shouldDrawScaleControls) { if (MouseOver) { RenderMeshToGl.Render(upArrow, RGBA_Bytes.Red, TotalTransform, RenderTypes.Shaded); } else { RenderMeshToGl.Render(upArrow, RGBA_Bytes.Black, TotalTransform, RenderTypes.Shaded); } } base.DrawGlContent(e); }