Ich habe einen Quader, dessen Abmessungen aus XML importiert werden, also muss ich sicher sein, dass egal welche Größe das Modell hat, die Kamera immer alles sehen kann. Dies dient der Vorschau. Ich werde wahrscheinlich eine Bildunterschrift über dem oberen Rand der Skala für Klarheit darstellen.WPF 3D - ModellVisual3D in das Sichtfeld der Kamera einfügen?
Ich glaube, ich eine Funktion benötigen, das mir sagen wird, ob der ModelVisual3D paßt in den Grenzen der FieldOfView
der Kamera oder vielleicht den Viewport3D selbst.
Bisher habe ich den statischen Rückruf (die Dimension Eigenschaften sind DependencyProperty
s), wenn Dimensionen Eigenschaften ändern wie folgt definieren. Es ist im Moment ziemlich grob, aber Sie bekommen die Idee, die ich mir ansehe. Der Kommentar gesetzt Abschnitt zeigt etwa, welche Art von Logik, die ich suche
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;
}
}
Wenn jemand weiß, was gehen sollte, wo der kommentierten Herausgleitabschnittes ist würde ich ewig dankbar sein.
Vielen Dank im Voraus.
Dies ist die gleiche wie http://stackoverflow.com/questions/709368/wpf-3d-detirmine-whether-a-modelvisual3d-is-being-clipped-inside-its-viewport3 ist, ist es nicht ? – ChrisF