Проблема с расширением 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;
    }
}

Если вы используете любую другую форму тела, вам нужно будет вручную создать каждую грань.

Другие вопросы по тегам