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); }
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); }