예제 #1
0
 bool geoObjectInputFace(ConstructAction.GeoObjectInput sender, IGeoObject[] TheGeoObjects, bool up)
 {   // ... nur die sinnvollen Kurven verwenden
     // TODO: evtl Mehrfachanwahl ermöglichen
     if (up)
     {
         if (TheGeoObjects.Length == 0)
         {
             sender.SetGeoObject(TheGeoObjects, null);                            // ...die werden jetzt im ControlCenter dargestellt (nur bei up)
         }
         else
         {
             sender.SetGeoObject(TheGeoObjects, TheGeoObjects[0]);
         }
     }
     if (TheGeoObjects.Length > 0)
     {   // er hat was gewählt
         selectedObjectsList.Clear();
         base.FeedBack.ClearSelected();
         selectedObjectsList.Add(TheGeoObjects[0]); // das eine in die Liste
         ListDefault(1);                            // die Listen löschen und mit "1" vorbesetzen
         if (makeFaceOrg())
         {
             return(true);
         }
     }
     base.ShowActiveObject = false;
     base.FeedBack.ClearSelected();
     return(false);
 }
예제 #2
0
        bool geoObjectInputPath2(ConstructAction.GeoObjectInput sender, IGeoObject[] TheGeoObjects, bool up)
        {   // ... nur die sinnvollen Kurven verwenden
            //            objectPoint = base.CurrentMousePosition;
            bool      createdFromModel;
            ArrayList usableObjects = new ArrayList();

            for (int i = 0; i < TheGeoObjects.Length; ++i)
            {
                p2 = findPath(TheGeoObjects[i], base.Frame.ActiveView.Model, out createdFromModel);
                if (p2 != null)
                {
                    //                    if (geoObjectInput1.Fixed)
                    if (p1 != null) // anderer Pfad schon bestimmt
                    {
                        if (ruledFaceOrg())
                        {
                            usableObjects.Add(TheGeoObjects[i]);
                        }
                    }
                    else
                    {
                        usableObjects.Add(TheGeoObjects[i]);
                    }
                }
            }
            // ...hier wird der ursprüngliche Parameter überschrieben. Hat ja keine Auswirkung nach außen.
            TheGeoObjects = (IGeoObject[])usableObjects.ToArray(typeof(IGeoObject));
            if (up)
            {
                if (TheGeoObjects.Length == 0)
                {
                    sender.SetGeoObject(TheGeoObjects, null);                            // ...die werden jetzt im ControlCenter dargestellt (nur bei up)
                }
                else
                {
                    sender.SetGeoObject(TheGeoObjects, TheGeoObjects[0]);
                }
            }
            if (TheGeoObjects.Length > 0)
            {   // er hat was gewählt
                p2 = findPath(TheGeoObjects[0], base.Frame.ActiveView.Model, out createdFromModel);
                if (p2 != null)
                {
                    iGeoObjectOrg2 = TheGeoObjects[0];       // zum Weglöschen des Originals in onDone
                    owner2         = TheGeoObjects[0].Owner; // owner merken für löschen
                    if (createdFromModel)
                    {
                        iGeoObjectOrg2        = null; // zum nicht Weglöschen des Originals in onDone
                        pathCreatedFromModel2 = p2;   // kopie merken für onDone
                    }
                    if (p1 != null)                   // anderer Pfad schon bestimmt
                    {
                        return(ruledFaceOrg());
                    }
                    else
                    {
                        return(true);
                    }
                }
            }
            p2 = null;
            base.ShowActiveObject = false;
            return(false);
        }