Проблема с расширением Eyeshot Solid и отображением в ViewportLayout
У меня есть собственный класс (MyBox), который расширяет devDept.Eyeshot.Entities.Solid, и я хочу добавить его в ViewportLayout следующим образом:
MyBox box = new MyBox(10, 20, 30); // length, width, height
EyeViewportLayout.Entities.Add(box);
EyeViewportLayout.ZoomFit();
EyeViewportLayout.Invalidate();
Я заметил, что для визуализации моего класса мне нужно вызвать Solid.CreateBox (длина, ширина, высота), который возвращает новый Solid. Как я могу выполнить ту же работу CreateBox внутри моего пользовательского класса MyBox, чтобы при добавлении его в ViewportLayout.Entities он отображался?
1 ответ
Если вы солидны, на самом деле это всего лишь поле или что-то в этом списке, есть простой способ:
- коробка
- шишка
- цилиндр
- сфера
- весна
- торус
Я предполагаю, что это действительно коробка. Затем создайте свой класс, основанный на
public class MyBox : Solid
{
public double Length {get; private set;} = 0d;
public double Width {get; private set;} = 0d;
public double Height {get; private set;} = 0d;
public MyBox() { }
public MyBox Create(double length, double width, double height)
{
var myBox = Solid.CreateBox<MyBox>(length, width, height);
myBox.Length = length;
myBox.Width = width;
myBox.Height = height;
return myBox;
}
}
Если вы используете любую другую форму тела, вам нужно будет вручную создать каждую грань.