J'ai un parallélépipède qui ses dimensions sont importées de XML, alors je dois être sûr que quelle que soit la taille du modèle, la caméra peut toujours voir tout cela. Ceci est à des fins de prévisualisation. Je vais probablement rendre une légende sur le dessus montrant l'échelle pour plus de clarté.WPF 3D - Adapter ModelVisual3D au champ de vision de la caméra?
Je pense que je dois une fonction qui me dire si le ModelVisual3D correspond à l'intérieur des limites de la FieldOfView
de l'appareil photo ou peut-être le Viewport3D lui-même. Jusqu'à présent, j'ai le rappel statique (les propriétés de la cote sont DependencyProperty
s) lorsque les propriétés des dimensions changent comme indiqué ci-dessous. C'est assez grossier en ce moment mais vous avez l'idée que je regarde. La section commentée montre à peu près quel genre de logique que je cherche
private static void OnCubeDimensionsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (!valueSemaphore)
{
//while(mainModel.WillClip(mainCamera))
//{
// mainCamera.FieldOfView--;
//}
valueSemaphore = true;
double propertyValue = 0.0;
Product3D p = d as Product3D;
switch (e.Property.Name)
{
case "CubeHeight":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 8;
p.CubeHeight = propertyValue;
break;
case "CubeWidth":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 5.3;
p.CubeWidth = propertyValue;
break;
case "CubeDepth":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 2.6;
p.CubeDepth = propertyValue;
break;
}
valueSemaphore = false;
}
}
Si quelqu'un sait ce qui devrait aller où la section en commentaire est que je serais éternellement reconnaissant.
Merci d'avance.
C'est le même que http://stackoverflow.com/questions/709368/wpf-3d-detirmine-whether-a-modelvisual3d-is-being-clipped-inside-its-viewport3 est pas ? – ChrisF