private static void DrawAxis(IGraphicsContainer3D axesGraphicsContainer3D, IPoint axisFromPoint, IPoint axisToPoint, IColor axisColor, esriSimple3DLineStyle axisStyle, double axisWidth) { IPointCollection axisPointCollection = new PolylineClass(); axisPointCollection.AddPoint(axisFromPoint, ref _missing, ref _missing); axisPointCollection.AddPoint(axisToPoint, ref _missing, ref _missing); GeometryUtilities.MakeZAware(axisPointCollection as IGeometry); GraphicsLayer3DUtilities.AddAxisToGraphicsLayer3D(axesGraphicsContainer3D, axisPointCollection as IGeometry, axisColor, axisStyle, axisWidth); }
public static void DrawMultiPatch(IGraphicsContainer3D multiPatchGraphicsContainer3D, IGeometry geometry) { const int Yellow_R = 255; const int Yellow_G = 255; const int Yellow_B = 0; IColor multiPatchColor = ColorUtilities.GetColor(Yellow_R, Yellow_G, Yellow_B); multiPatchGraphicsContainer3D.DeleteAllElements(); GraphicsLayer3DUtilities.AddMultiPatchToGraphicsLayer3D(multiPatchGraphicsContainer3D, geometry, multiPatchColor); }
public static void DrawOutline(IGraphicsContainer3D outlineGraphicsContainer3D, IGeometry geometry) { const esriSimple3DLineStyle OutlineStyle = esriSimple3DLineStyle.esriS3DLSTube; const double OutlineWidth = 0.1; const int Black_R = 0; const int Black_G = 0; const int Black_B = 0; IColor outlineColor = ColorUtilities.GetColor(Black_R, Black_G, Black_B); outlineGraphicsContainer3D.DeleteAllElements(); GraphicsLayer3DUtilities.AddOutlineToGraphicsLayer3D(outlineGraphicsContainer3D, GeometryUtilities.ConstructMultiPatchOutline(geometry), outlineColor, OutlineStyle, OutlineWidth); }
private void Initialize() { _axesGraphicsContainer3D = GraphicsLayer3DUtilities.ConstructGraphicsLayer3D("Axes"); _multiPatchGraphicsContainer3D = GraphicsLayer3DUtilities.ConstructGraphicsLayer3D("MultiPatch"); _outlineGraphicsContainer3D = GraphicsLayer3DUtilities.ConstructGraphicsLayer3D("Outline"); GraphicsLayer3DUtilities.DisableLighting(_multiPatchGraphicsContainer3D); axSceneControl.Scene.AddLayer(_axesGraphicsContainer3D as ILayer, true); axSceneControl.Scene.AddLayer(_multiPatchGraphicsContainer3D as ILayer, true); axSceneControl.Scene.AddLayer(_outlineGraphicsContainer3D as ILayer, true); DrawUtilities.DrawAxes(_axesGraphicsContainer3D); axSceneControl.SceneGraph.RefreshViewers(); }
private static void DrawEnd(IGraphicsContainer3D endGraphicsContainer3D, IPoint endPoint, IVector3D axisOfRotationVector3D, double degreesOfRotation, IColor endColor, double endRadius) { IGeometry endGeometry = Vector3DExamples.GetExample2(); ITransform3D transform3D = endGeometry as ITransform3D; IPoint originPoint = GeometryUtilities.ConstructPoint3D(0, 0, 0); transform3D.Scale3D(originPoint, endRadius, endRadius, 2 * endRadius); if (degreesOfRotation != 0) { double angleOfRotationInRadians = GeometryUtilities.GetRadians(degreesOfRotation); transform3D.RotateVector3D(axisOfRotationVector3D, angleOfRotationInRadians); } transform3D.Move3D(endPoint.X - originPoint.X, endPoint.Y - originPoint.Y, endPoint.Z - originPoint.Z); GraphicsLayer3DUtilities.AddMultiPatchToGraphicsLayer3D(endGraphicsContainer3D, endGeometry, endColor); }