Helix3d ツールキットを使用してモデルをインポートします。次に、3Dmodel でヒット テストを実行します。次に、rayMeshResult.Meshit から MeshGeometry3D 情報を取得します。最後に、頂点の位置情報と、MeshGeometry3D からの tripleIndices を取得します。ここで、LinesVisual3D からポイントを複製してから、triangleIndices/頂点情報を複製にフィードします。最後に、クローンのポイント データを LinesVisual3D.Points にコピーし、ビューポートにラインを追加します。
リンクの図からわかるように、立方体のすべてのエッジが描画されているわけではありませんが、すべての点がそこにあります。
http://www.freeimagehosting.net/fhws5
GeometryModel3D hitgeo = rayMeshResult.ModelHit as GeometryModel3D;
MeshGeometry3D newGeom = rayMeshResult.MeshHit as MeshGeometry3D;
Point3DCollection srtpnt = modelLines.Points.Clone();
for (int i = 0; i < newGeom.TriangleIndices.Count; i ++)
{
srtpnt.Add(newGeom.Positions[newGeom.TriangleIndices[i]]);
textBlock4.Text += newGeom.Positions[newGeom.TriangleIndices[i]].ToString() + "\n";
}
modelLines.Points = srtpnt;
modelPoints.Points = srtpnt;
modelPoints.Color = Colors.Red;
modelPoints.Size = 15;
modelLines.Thickness = 6;
modelLines.Color = Colors.Blue;
MainViewport.ClearChildren();
MainViewport.Children.Add(modelLines);
MainViewport.Children.Add(modelPoints);
UpdateResultInfo(rayMeshResult);