Advertisement
FactoryDefault

Untitled

Oct 30th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. //xaml
  2.  
  3. <Grid Grid.Column="1">
  4. <Border Name="ViewportBorder" Background="Transparent">
  5. <hx:Viewport3DX
  6. x:Name="view"
  7. Panel.ZIndex="0"
  8. AllowUpDownRotation="True"
  9. BackgroundColor="#595959"
  10. BelongsToParentWindow="True"
  11. CameraMode="Inspect"
  12. CameraRotationMode="Trackball"
  13. EffectsManager="{Binding EffectsManager}"
  14. EnableSwapChainRendering="True"
  15. FXAALevel="Low"
  16. IsChangeFieldOfViewEnabled="False"
  17. IsHitTestVisible="False"
  18. IsManipulationEnabled="True"
  19. IsMoveEnabled="False"
  20. IsPanEnabled="False"
  21. IsPinchZoomEnabled="False"
  22. IsRotationEnabled="False"
  23. IsThreeFingerPanningEnabled="False"
  24. IsTouchRotateEnabled="False"
  25. IsViewCubeMoverEnabled="False"
  26. IsZoomEnabled="False">
  27.  
  28. <hx:AmbientLight3D Color="#363636" />
  29. <hx:DirectionalLight3D Direction="{Binding positionCamera.LookDirection}" Color="#D6D6D6" />
  30. <hx:EnvironmentMap3D IsRendering="{Binding RenderEnvironmentMap}" Texture="{Binding EnvironmentMap}" />
  31. <hx:Element3DPresenter Content="{Binding GroupModel}" />
  32. <hx:PostEffectMeshBorderHighlight EffectName="highlight" />
  33. <hx:SceneNodeGroupModel3D />
  34. <hx:MeshGeometryModel3D
  35. x:Name="model1"
  36. Geometry="{Binding Model}"
  37. Material="{Binding RedMaterial}"
  38. Transform="{Binding Model1Transform}" />
  39. <hx:MeshGeometryModel3D
  40. x:Name="model2"
  41. Geometry="{Binding Model}"
  42. Material="{Binding GreenMaterial}"
  43. Transform="{Binding Model2Transform}" />
  44. <hx:MeshGeometryModel3D
  45. x:Name="model3"
  46. Geometry="{Binding Model}"
  47. Material="{Binding BlueMaterial}"
  48. Transform="{Binding Model3Transform}" />
  49. <hx:LineGeometryModel3D
  50. x:Name="lines"
  51. Geometry="{Binding Lines}"
  52. Thickness="1.5"
  53. Transform="{Binding Model1Transform}"
  54. Color="Black" />
  55. <hx:MeshGeometryModel3D
  56. CullMode="Back"
  57. DepthBias="-5"
  58. Geometry="{Binding TextModel}"
  59. Material="{Binding BlueMaterial}"
  60. Transform="{Binding Model4Transform}" />
  61. </hx:Viewport3DX>
  62. </Border>
  63.  
  64. <cameras:TargetPositionCamera
  65. x:Name="Camera1"
  66. Attitude="-15"
  67. Bank="0"
  68. Distance="9"
  69. Heading="30"
  70. TargetViewport3D="{Binding ElementName=view}" />
  71. <controls:MouseCameraController
  72. x:Name="MouseCameraController1"
  73. EventsSourceElement="{Binding ElementName=ViewportBorder}"
  74. MoveCameraConditions="RightMouseButtonPressed, ControlKey"
  75. RotateAroundMousePosition="True"
  76. RotateCameraConditions="RightMouseButtonPressed"
  77. ShowRotationCenterMarker="True"
  78. TargetCamera="{Binding ElementName=Camera1}"
  79. ZoomMode="MousePosition" />
  80. </Grid>
  81.  
  82. //event Subscribtion
  83. protected virtual void SubscribeEvents(FrameworkElement newEventsSourceElement)
  84. {
  85. if (EventsSourceElement != null)
  86. {
  87. newEventsSourceElement.MouseMove += EventsSourceElement_MouseMove;
  88. newEventsSourceElement.MouseWheel += EventsSourceElement_MouseWheel;
  89. newEventsSourceElement.MouseDown += EventsSourceElement_MouseDown;
  90. newEventsSourceElement.MouseUp += EventsSourceElement_MouseUp;
  91. newEventsSourceElement.ManipulationDelta += OnManipulationDelta;
  92. newEventsSourceElement.ManipulationStarted += OnManipulationStarted;
  93. newEventsSourceElement.ManipulationCompleted += OnManipulationCompleted;
  94. newEventsSourceElement.IsManipulationEnabled = true;
  95. subscribedEventsSourceElement = newEventsSourceElement;
  96. buv();
  97. }
  98. }
  99. private void buv()
  100. {
  101. if (EventsSourceElement != null)
  102. {
  103. if (base.IsEnabled && IsRotateCursorShownOnMouseOver && (UsedMouseButton == MouseButton.Left || RotateCameraConditions == MouseAndKeyboardConditions.LeftMouseButtonPressed))
  104. {
  105. EventsSourceElement.Cursor = RotationCursor;
  106. }
  107. else if (EventsSourceElement.Cursor == RotationCursor)
  108. {
  109. EventsSourceElement.Cursor = null;
  110. }
  111. }
  112. }
  113.  
  114.  
  115.  
  116. private void EventsSourceElement_MouseDown(object sender, MouseButtonEventArgs e)
  117. {
  118. //breaks only with left click
  119. Point mousePosition = buz(e);
  120. bool handled = OnMouseButtonDown(mousePosition, Mouse.LeftButton == MouseButtonState.Pressed, Mouse.MiddleButton == MouseButtonState.Pressed, Mouse.RightButton == MouseButtonState.Pressed, Keyboard.Modifiers);
  121. e.Handled = handled;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement