ちょっと私は WPF 3D シーンを使用しており、いくつかの .stl モデルを正常にロードしました。ウィンドウ内のマウスの位置に基づいて、これらのオブジェクトを選択および選択解除する方法を基本的に使用しています。
private void UIElement_OnMouseDown(object sender, MouseButtonEventArgs e)
{
var viewport = (HelixViewport3D)sender;
var firstHit = viewport.Viewport.FindHits(e.GetPosition(viewport)).FirstOrDefault();
if (firstHit != null)
{
this.viewModel.Select(firstHit.Visual);
}
else
{
this.viewModel.Select(null);
}
}
だから私は選択したModelVisual3Dを持っていて、それを保存することができました. ただし、主な問題は次のとおりです。
私のモデルは、特定のデータと関連する .stl モデルに基づいて生成されます。基本的に、.stl モデルをインポートして 3D シーンに表示しますが、他のデータをモデルに接続する方法がわからないという問題があります。
たとえば、ビジュアルを選択すると、材料、寸法、会社などの情報を含む別のウィンドウを表示したいと考えています。
しかし、現時点でどの一意の ModelVisual3D オブジェクトが選択されているかを判断する方法がわかりません。次のような利点を得るために使用できるプロパティはないようです。
ModelImporter tr = new ModelImporter();
var model = tr.Load("C:\\Users\\...\\Pictures\\a.stl");
ModelVisual3D test = new ModelVisual3D();
test.Content = model;
//Here I would like to save the id of my visual model to identify and
//associate it with my other data later
int myUniqueModelID=test.Properties.UNIQUEID