コード例 #1
0
        public override void RecreateFromXml(LayerEditor parentLayer, XElement xml)
        {
            base.RecreateFromXml(parentLayer, xml);
            _editorMode = ItemEditorMode.Created;
            ParentLayer = parentLayer;
            _properties = xml.Element(@"ConvexHullProperties").DeserializedAs <ConvexHullProperties>( );

            WhenUpdatedByUi(  );
        }
コード例 #2
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition;

            _properties = new ConvexHullProperties
            {
                Visible     = true,
                Position    = mouseWorldPos,
                WorldPoints = new List <Vector2>(),
                LocalPoints = new List <Vector2>(),
                Opacity     = 1f,
            };

            ParentLayer = parentLayer;

            var shapeSelectionForm = new ShapeSelectionForm(
                v =>
            {
                _properties.WorldPoints.Clear( );
                _properties.LocalPoints.Clear( );

                v.ForEach(vt => addWorldPoint(mouseWorldPos + vt));

                WhenUpdatedByUi( );
            })
            {
                TopLevel = true
            };

            shapeSelectionForm.FormClosed +=
                (s, e) =>
            {
                if (shapeSelectionForm.Action == DialogResult.OK)
                {
                    _editorMode = ItemEditorMode.Created;

                    PreviewEndedReadyForCreation(this, EventArgs.Empty);
                }
            };

            shapeSelectionForm.Show();

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.PreShapedHull_Entered);
        }
コード例 #3
0
        public static void ProcessLayer(ObjectLayer layer)
        {
            foreach (var io in layer.Objects)
            {
                var correspondingEllipse = CorrespondingEllipse.FromContour(io.Contour);
                io.SetFeature("MajorAxisOfCorrespondingEllipse", new MajorAxisOfCorrespondingEllipse(correspondingEllipse).Value);
                io.SetFeature("MinorAxisOfCorrespondingEllipse", new MinorAxisOfCorrespondingEllipse(correspondingEllipse).Value);

                ConvexHull           ch  = ConvexHull.FromContour(io.Contour);
                ConvexHullProperties chp = ConvexHullProperties.FromConvexHull(ch);
                ContourProperties    cp  = ContourProperties.FromContour(io.Contour);
                AreaOfContour        ac  = new AreaOfContour(cp);
                AreaOfConvexHull     ach = new AreaOfConvexHull(chp);
                io.SetFeature("FormFactor", cp.FormFactor);
                io.SetFeature("Area", cp.Area);
                io.SetFeature("Convexity", cp.Convexity);
                io.SetFeature("AreaHull", ach.Value);
                io.SetFeature("AreaDiv", ach.Value / cp.Area);
                io.SetFeature("FormFactorOfConvexHull", new FormFactorOfConvexHull(chp).Value);
            }
        }
コード例 #4
0
        public override void CreateInDesignMode(LayerEditor parentLayer, IEntityCreationProperties creationProperties)
        {
            _editorMode = ItemEditorMode.Creating;

            Vector2 mouseWorldPos = MouseStatus.WorldPosition;

            _properties = new ConvexHullProperties
            {
                Visible     = true,
                Position    = mouseWorldPos,
                WorldPoints = new List <Vector2>(),
                LocalPoints = new List <Vector2>(),
                Opacity     = 1f,
            };

            addWorldPoint(mouseWorldPos);

            summonMainForm(  ).SetToolStripStatusLabel1(Resource1.Path_Entered);

            ParentLayer = parentLayer;

            WhenUpdatedByUi(  );
        }
コード例 #5
0
 public ConvexHullEditor( )
 {
     _properties = new ConvexHullProperties(  );
 }
コード例 #6
0
 public PreShapedConvexHullEditor( )
 {
     _properties = new ConvexHullProperties(  );
 }