To synchronize the camera movements between two Designs (or two Viewports of the same Design), you need to subscribe to the CameraChanged event of both Design and use the SaveView() and RestoreView() to properly assign the camera:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
design1.AnimateCamera = false;
design2.AnimateCamera = false;
design1.CameraChangedFrequency = 200;
design2.CameraChangedFrequency = 200;
design1.CameraChanged += CameraChanged;
design2.CameraChanged += CameraChanged;
}
private void CameraChanged(object sender, devDept.Eyeshot.Control.CameraMoveEventArgs e)
{
if (sender == design1)
SyncCamera(design1, design2);
else
SyncCamera(design2, design1);
}
private void SyncCamera(Design designMovedCamera, Design designCameraToMove)
{
Camera savedCamera;
designMovedCamera.SaveView(out savedCamera);
// restores the camera to the other model
designCameraToMove.RestoreView(savedCamera);
designCameraToMove.AdjustNearAndFarPlanes();
designCameraToMove.Invalidate();
}
}
Comments
Please sign in to leave a comment.