Ciao a tutti,
ho costruito un modello 3d a partire da un file .3ds
L'ho esportato in XAML e funziona: risulta essere composto da una serie di GeometryModel3D.
Poi ho referenziato la libreria 3DTools (vedi codeplex), in modo che posso ruotare l'oggetto con il mouse (ho usato il TrackballDecorator).
Fin qui tutto ok.
Ora pero' ho bisogno che quando clicco su un punto del modello, mi venga restituito il nome del GeometryModel3D sul quale ho cliccato.
Ho provato quindi a riempire la GeometryModel3D con una Image ed ho associato a quest un evento MouseDown.
Questo evento viene sollevato solo a volte, nel senso che funziona solo per certe zone del modello... E' un bug ? dove sbaglio ? Naturalmente, ho fatto diverse ricerche ma non ho ottenuto nulla. C'è una soluzione che evita l'uso di 3DTools ?
Grazie per l'aiuto
Franco
Posto il codice:
<Window x:Class="Wpf3DCubeWindow.WindowTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dd="clr-namespace:_3DTools;assembly=3DTools"
Title="WindowTest" Height="768" Width="1024">
<dd:TrackballDecorator >
<dd:Interactive3DDecorator >
<Viewport3D xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="MainViewport3D">
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0.170683893091676,4.75535362630984 " LookDirection="0,0.0871557427476582,-0.996194698091746 " UpDirection="0,0.996194698091746,0.0871557427476582 "/>
</Viewport3D.Camera>
<dd:InteractiveVisual3D x:Name="hh" >
<dd:InteractiveVisual3D.Geometry >
<!-- questa è la riga icriminata: se cambio i numeri, funziona... -->
<MeshGeometry3D Positions="-0.8341064453125,0.718420624732971,..." TriangleIndices="0 1 ..."/> <!-- ho cancellato un sacco di numeri per facilitare la lettura-->
</dd:InteractiveVisual3D.Geometry>
<dd:InteractiveVisual3D.Visual>
<Image Source="/Wpf3DCubeWindow;component/images/Desert.jpg" IsEnabled="True"
dd:InteractiveVisual3D.IsInteractiveMaterial="True" MouseDown="Image_MouseDown" ToolTip="hh "/>
</dd:InteractiveVisual3D.Visual>
</dd:InteractiveVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Direction="0,0.0871557427476582,-0.996194698091746 " Color="#FFFFFFFF"/>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</dd:Interactive3DDecorator >
</dd:TrackballDecorator>
</Window>