Добавление нескольких экземпляров Model3DGroup в ModelVisual3D

Я работаю над созданием графической модели в WPF, которая в конечном итоге должна представлять собой трехмерную ферму. Я создаю один объект как Model3DGroup. Затем я добавляю эту Model3DGroup в ModelVisual3D.

В настоящее время я объявляю в своем файле *.xaml.cs private ModelVisual3D mGeometry; вверху. Затем создается новая группа Model3DGroup, в которую добавляются несколько моделей точечных треугольников. Затем для добавления этого в ModelVisual3D используется следующий код:

mGeometry.Content = prism; // where prism is the Model3D Group with added triangle points
mGeometry.Transform = new Transform3DGroup();
this.viewport.Children.Add(mGeometry);

У меня вопрос: как добавить несколько разных экземпляров Model3DGroup в один ModelVisual3D? В конце концов я хочу построить ферму, состоящую из нескольких разных Model3DGroups, и отобразить ее на экране.

Я не против изменить то, как я это делаю, так как я не уверен, что это лучший способ. В настоящее время я могу отображать только один объект.


person Jake    schedule 30.10.2014    source источник


Ответы (1)


Каждый ModelVisual3D может содержать только 1 Model3D, но также может содержать и другие Visual3D. В этом случае вы можете просто добавить больше ModelVisual3D в свойство Children вашего ModelVisual3D:

mGeometry.Content = prism;
var moreModelVisual3D = new ModelVisual3D();
moreModelVisual3D.Content = prism2; //your other Model3DGroup
mGeometry.Children.Add(moreModelVisual3D);
//create more if you want ...

Также обратите внимание, что каждый Model3DGroup может содержать другие Model3DGroup. Если вы считаете, что это может быть применено в вашем случае, пожалуйста, подумайте об этом.

person King King    schedule 30.10.2014