| 388 |
} |
} |
| 389 |
|
|
| 390 |
_previousPosition3D = currentPosition3D; |
_previousPosition3D = currentPosition3D; |
| 391 |
|
|
| 392 |
} |
} |
| 393 |
|
|
| 394 |
private void RotateObject(Matrix3D mat,Visual3D visual) |
private void RotateObject(Matrix3D mat,Visual3D visual) |
| 434 |
double scalex = currentPosition.X - _previousPosition2D.X; |
double scalex = currentPosition.X - _previousPosition2D.X; |
| 435 |
|
|
| 436 |
Vector3D vector3D = GetTranslationVector3D(visul3d, _previousPosition2D, currentPosition); |
Vector3D vector3D = GetTranslationVector3D(visul3d, _previousPosition2D, currentPosition); |
| 437 |
|
Point3D cPos = _camera.Position; |
| 438 |
|
|
| 439 |
|
cPos += Math.Abs(scalex) * vector3D; |
| 440 |
|
|
| 441 |
_camera.Position += Math.Abs(scalex) * vector3D; |
if (OncameraPositionChanged != null) |
| 442 |
|
OncameraPositionChanged(_camera.Position, cPos); |
| 443 |
|
|
| 444 |
|
_camera.Position = cPos; |
| 445 |
} |
} |
| 446 |
|
|
| 447 |
private void PanObject(Point currentPosition) |
private void PanObject(Point currentPosition) |
| 525 |
Matrix3D matrixRoateCamera = new Matrix3D(); |
Matrix3D matrixRoateCamera = new Matrix3D(); |
| 526 |
matrixRoateCamera.RotateAt(new Quaternion(new Vector3D(0, 0, 1), axisAngle), _cameraLookPoint); |
matrixRoateCamera.RotateAt(new Quaternion(new Vector3D(0, 0, 1), axisAngle), _cameraLookPoint); |
| 527 |
|
|
| 528 |
_camera.Position = Point3D.Multiply(_camera.Position, matrixRoateCamera); |
Point3D pos = Point3D.Multiply(_camera.Position, matrixRoateCamera); |
| 529 |
|
if (OncameraPositionChanged != null) |
| 530 |
|
OncameraPositionChanged(_camera.Position, pos); |
| 531 |
|
_camera.Position = pos; |
| 532 |
|
|
| 533 |
_camera.LookDirection = Point3D.Subtract(_cameraLookPoint, _camera.Position); |
_camera.LookDirection = Point3D.Subtract(_cameraLookPoint, _camera.Position); |
| 534 |
} |
} |
| 535 |
|
|
| 551 |
{ |
{ |
| 552 |
} |
} |
| 553 |
else |
else |
| 554 |
|
{ |
| 555 |
|
if (OncameraPositionChanged != null) |
| 556 |
|
OncameraPositionChanged(camera.Position, cameraPos); |
| 557 |
|
|
| 558 |
camera.Position = cameraPos; |
camera.Position = cameraPos; |
| 559 |
} |
} |
| 560 |
|
|
| 561 |
|
} |
| 562 |
//get the clicked 3d position |
//get the clicked 3d position |
| 563 |
public HitTestResultBehavior HitTestCallback(HitTestResult result) |
public HitTestResultBehavior HitTestCallback(HitTestResult result) |
| 564 |
{ |
{ |