示例#1
0
        public static void DrawInstanceObject(this DisplayPipeline display, InstanceObject instanceObject, Transform xForm, bool highlight)
        {
            instanceObject.Explode(false, out var pieces, out _,
                                   out var pieceTransforms);
            var geo = instanceObject.Geometry;

            for (int i = 0; i < pieces.Length; i++)
            {
                if (highlight)
                {
                    display.DrawObjectHighlighted(pieces[i], xForm * pieceTransforms[i]);
                }
                else
                {
                    display.DrawObject(pieces[i], xForm * pieceTransforms[i]);
                }
            }
        }
示例#2
0
        public static void DrawObjectHighlighted(this DisplayPipeline display, RhinoObject rhinoObject, Transform xForm)
        {
            // get old color and color source
            var objColor       = rhinoObject.Attributes.ObjectColor;
            var objColorSource = rhinoObject.Attributes.ColorSource;

            // modify
            rhinoObject.Attributes.ObjectColor = Rhino.ApplicationSettings.AppearanceSettings.SelectedObjectColor;
            rhinoObject.Attributes.ColorSource = ObjectColorSource.ColorFromObject;
            rhinoObject.CommitChanges();

            // draw
            display.DrawObject(rhinoObject, xForm);

            // restore old settings
            rhinoObject.Attributes.ObjectColor = objColor;
            rhinoObject.Attributes.ColorSource = objColorSource;
            rhinoObject.CommitChanges();
        }