public void snaps_begin_grab(SceneObject so)
        {
            if (EnableSnapping == false)
            {
                return;
            }

            Snaps.IgnoreSet.Add(so);
            Snaps.AddToActive(cockpit.Scene.Selected);
            Snaps.AddToActive(cockpit.Scene.Find((x) => x is PivotSO));
            cockpit.Scene.AddUIElement(SnapHelper);
        }
Exemple #2
0
        // update snaps
        private void Scene_SelectionChangedEvent(object sender, EventArgs e)
        {
            // update active snap set based on new selection
            var selected = scene.Selected;

            Snaps.ClearActive();
            foreach (SceneObject so in selected)
            {
                if (so is PivotSO || Snaps.IgnoreSet.Contains(so))
                {
                    continue;
                }
                Snaps.AddToActive(so);
            }
            Snaps.AddToActive(scene.Find((x) => x is PivotSO));
        }
Exemple #3
0
        override protected void OnUpdateCapture(Ray3f worldRay, Standard3DWidget w)
        {
            SceneObject hitSO = null;
            SORayHit    hit;
            IEnumerable <SceneObject> targetSOs = this.targets;

            if (parentScene.FindSORayIntersection(worldRay, out hit, (x) => ((x is PivotSO) == false) && (targetSOs.Contains(x) == false)))
            {
                hitSO = hit.hitSO;
            }
            if (hitSO != null && hitSO != curActiveSO)
            {
                Snaps.RemoveFromActive(curActiveSO);
                Snaps.AddToActive(hitSO);
                curActiveSO = hitSO;
            }
        }