52 messaggi dal 26 aprile 2006
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>   
   
    
   
   
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
"k4soft" <k4soft> wrote in message
news:363194@...
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=
Ciao,
stai parlando di una applicazione WPF?

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
52 messaggi dal 26 aprile 2006
esatto, si tratta di un'applicazione WPF.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.