10 #ifndef SPRK_STD_OPERATORS_H
11 #define SPRK_STD_OPERATORS_H
21 # define SPRK_API __declspec (dllexport)
23 # define SPRK_API __declspec (dllimport)
28 # if defined(LINUX_SYSTEM) && defined(SPROCKETS)
30 # define SPRK_API __attribute__ ((visibility ("default")))
65 virtual bool OnMouseDown(
MouseState const & in_state);
70 virtual bool OnMouseUp(
MouseState const & in_state);
75 virtual bool OnMouseMove(
MouseState const & in_state);
81 virtual bool OnTouchDown(
TouchState const & in_state);
86 virtual bool OnTouchUp(
TouchState const & in_state);
91 virtual bool OnTouchMove(
TouchState const & in_state);
104 float zoom_start_field_width;
105 float zoom_start_field_height;
107 size_t current_touches;
110 void UpdateZoom(
float zoom_factor);
111 void UpdateZoomLimit();
134 virtual bool OnMouseDown(
MouseState const & in_state);
139 virtual bool OnMouseUp(
MouseState const & in_state);
144 virtual bool OnMouseMove(
MouseState const & in_state);
150 virtual bool OnTouchDown(
TouchState const & in_state);
155 virtual bool OnTouchUp(
TouchState const & in_state);
160 virtual bool OnTouchMove(
TouchState const & in_state);
165 bool operator_active;
166 HPS::TouchID tracked_touch_ID;
188 virtual bool OnMouseDown(
MouseState const & in_state);
193 virtual bool OnMouseUp(
MouseState const & in_state);
198 virtual bool OnMouseMove(
MouseState const & in_state);
204 virtual bool OnTouchDown(
TouchState const & in_state);
209 virtual bool OnTouchUp(
TouchState const & in_state);
214 virtual bool OnTouchMove(
TouchState const & in_state);
219 bool operator_active;
220 HPS::TouchID tracked_touch_ID;
239 virtual bool OnMouseDown(
MouseState const & in_state);
240 virtual bool OnMouseUp(
MouseState const & in_state);
241 virtual bool OnMouseMove(
MouseState const & in_state);
243 virtual bool OnTouchDown(
TouchState const & in_state);
244 virtual bool OnTouchUp(
TouchState const & in_state);
245 virtual bool OnTouchMove(
TouchState const & in_state);
253 bool operator_active;
254 HPS::TouchID tracked_touch_ID;
278 virtual bool OnMouseDown(
MouseState const & in_state);
283 virtual bool OnMouseUp(
MouseState const & in_state);
288 virtual bool OnMouseMove(
MouseState const & in_state);
294 virtual bool OnTouchDown(
TouchState const & in_state);
299 virtual bool OnTouchMove(
TouchState const & in_state);
302 bool operator_active;
303 HPS::TouchID tracked_touch_ID;
309 float zoom_start_field_width;
310 float zoom_start_field_height;
315 void UpdateZoom(
float zoom_factor);
316 void UpdateZoomLimit();
326 virtual void OnViewAttached();
328 virtual bool OnMouseDown(
MouseState const & in_state);
329 virtual bool OnMouseUp(
MouseState const & in_state);
330 virtual bool OnMouseMove(
MouseState const & in_state);
332 virtual bool OnTouchDown(
TouchState const & in_state);
333 virtual bool OnTouchUp(
TouchState const & in_state);
334 virtual bool OnTouchMove(
TouchState const & in_state);
336 bool IsRectangleValid()
const {
return is_rect_valid; }
342 bool ConstructRectCommon(
WindowPoint const & in_loc);
343 void SetupConstructionSegment();
346 bool use_center_marker;
348 bool operator_active;
355 HPS::TouchID tracked_touch_ID;
364 virtual bool OnMouseUp(
MouseState const & in_state);
365 virtual bool OnTouchUp(
TouchState const & in_state);
400 virtual void OnViewAttached();
402 virtual bool OnMouseUp(
MouseState const & in_state);
403 virtual bool OnTouchUp(
TouchState const & in_state);
444 virtual void OnViewAttached();
446 virtual bool OnMouseUp(
MouseState const & in_state);
447 virtual bool OnTouchUp(
TouchState const & in_state);
497 virtual bool OnMouseDown(
MouseState const & in_state);
498 virtual bool OnTouchDown(
TouchState const & in_state);
535 virtual bool OnMouseDown(
MouseState const & in_state);
536 virtual bool OnTouchDown(
TouchState const & in_state);
572 void UpdateZoomLimit();
576 virtual void OnModelAttached();
578 virtual void OnViewAttached();
609 virtual bool OnMouseDown(
MouseState const & in_state);
614 virtual bool OnMouseUp(
MouseState const & in_state);
619 virtual bool OnMouseMove(
MouseState const & in_state);
624 virtual bool OnMouseWheel(
MouseState const & in_state);
631 virtual bool OnTouchDown(
TouchState const & in_state);
636 virtual bool OnTouchUp(
TouchState const & in_state);
642 virtual bool OnTouchMove(
TouchState const & in_state);
648 bool operator_active;
649 bool center_point_set;
651 HPS::TouchID tracked_touch_ID;
672 virtual bool OnTouchDown(
TouchState const & in_state);
677 virtual bool OnTouchUp(
TouchState const & in_state);
680 HPS::TouchID tracked_touch_ID;
736 virtual bool OnMouseDown(
MouseState const & in_state);
740 virtual bool OnMouseUp(
MouseState const & in_state);
745 virtual bool OnMouseMove(
MouseState const & in_state);
751 virtual bool OnMouseWheel(
MouseState const & in_state);
757 virtual bool OnTouchDown(
TouchState const & in_state);
761 virtual bool OnTouchUp(
TouchState const & in_state);
766 virtual bool OnTouchMove(
TouchState const & in_state);
774 virtual void OnModelAttached();
775 virtual void OnViewAttached();
776 virtual void OnViewDetached();
779 void InvertXAxis() { invert_x_axis = !invert_x_axis;}
780 void InvertYAxis() { invert_y_axis = !invert_y_axis;}
781 bool IsXAxisInverted() {
return invert_x_axis; }
782 bool IsYAxisInverted() {
return invert_y_axis; }
786 float GetKeyboardSensitivity() {
return keyboard_sensitivity; }
787 void SetKeyboardSensitivity(
float in_keyboard_sensitivity) { keyboard_sensitivity = in_keyboard_sensitivity; }
790 float GetMouseSensitivity() {
return mouse_sensitivity; }
791 void SetMouseSensitivity(
float in_mouse_sensitivity) { mouse_sensitivity = in_mouse_sensitivity; }
794 float GetLeftJoystickSensitivity() {
return left_joystick_sensitivity; }
795 void SetLeftJoystickSensitivity(
float in_left_joystick_sensitivity) { left_joystick_sensitivity = in_left_joystick_sensitivity; }
798 float GetRightJoystickSensitivity() {
return right_joystick_sensitivity; }
799 void SetRightJoystickSensitivity(
float right_joystick_sensitivity) { right_joystick_sensitivity = right_joystick_sensitivity; }
805 float GetJoystickDeadZone() {
return joystick_dead_zone; }
806 void SetJoystickDeadZone(
float in_dead_zone) { joystick_dead_zone = in_dead_zone; }
812 no_movement = 0x0000,
813 moving_forward = 0x0001,
814 moving_back = 0x0002,
815 moving_left = 0x0004,
816 moving_right = 0x0008,
818 moving_down = 0x0020,
822 move_with_touch = 0x0200,
823 rotate_with_touch = 0x0400
826 unsigned int movement_flags;
842 enum class TouchPosition
850 HPS::TouchID left_side_touch;
851 HPS::TouchID right_side_touch;
852 HPS::TouchID second_right_touch;
866 float joystick_dead_zone;
869 float keyboard_sensitivity;
870 float old_keyboard_sensitivity;
871 float left_joystick_sensitivity;
872 float old_left_joystick_sensitivity;
873 float right_joystick_sensitivity;
874 float old_right_joystick_sensitivity;
875 float mouse_sensitivity;
878 bool two_right_fingers_down;
889 void UpdateKeyboardState(KeyboardState
const & in_state);
890 void ComputeReasonableStepLength();
891 void CreateJoystick(
HPS::TouchState const & in_state, TouchPosition touch_position);
933 virtual void OnViewAttached();
942 void SetGroundPlane(
HPS::Plane const & in_plane) { ground = in_plane; }
943 HPS::Plane GetGroundPlane() {
return ground; }
946 void SetWalkerHeight(
float height) { height_off_ground = height; }
947 float GetWalkerHeight() {
return height_off_ground; }
952 float height_off_ground;
954 void CalculateGroundPlane();
994 virtual bool OnMouseDown(
MouseState const & in_state);
999 virtual bool OnMouseMove(
MouseState const & in_state);
1003 virtual bool OnMouseUp(
MouseState const & in_state);
1110 virtual void OnModelAttached();
1111 virtual void OnViewAttached();
1112 virtual void OnViewDetached();
1118 void SetPlanes(PlaneArray
const & in_planes);
1122 PlaneArray GetPlanes();
1129 virtual bool OnMouseDown(
MouseState const & in_state);
1134 virtual bool OnMouseUp(
MouseState const & in_state);
1141 virtual bool OnMouseMove(
MouseState const & in_state);
1148 virtual bool OnTouchDown(
TouchState const & in_state);
1153 virtual bool OnTouchUp(
TouchState const & in_state);
1159 virtual bool OnTouchMove(
TouchState const & in_state);
1197 void SetMouseOverHighlighting(
bool in_enable_mouse_over_highlighting) { enable_mouse_over_highlighting = in_enable_mouse_over_highlighting; }
1202 void SetSectioning(
bool in_sectioning);
1211 void SetIndicatorVisibility(
bool in_use_indicator);
1215 bool GetIndicatorVisibility() {
return (op_state == OpState::Uninitialized || op_state == OpState::FacePicking) ?
true :
false; }
1220 void SetPlaneVisibility(
bool in_visibility);
1224 bool GetPlaneVisibility();
1228 void SetupOperatorSegment();
1229 void InsertNormalIndicator(
float scale);
1230 ShellKey InsertCuttingPlaneGeometry();
1231 void MouseOverHighlighting(
MouseState const & in_state);
1232 void TranslateCuttingPlane(
KeyPath const & in_event_path,
WindowPoint const & in_event_location);
1233 bool HandleMouseAndTouchDown(
WindowKey const & in_event_source,
int in_number_of_clicks,
1235 void ViewAlignSectionPlanes(HPS::PlaneArray & in_out_planes)
const;
1236 typedef std::pair<CuttingSectionKey, std::vector<ShellKey>> SectionInfo;
1237 typedef std::vector<SectionInfo> SectionArray;
1238 SectionArray sections;
1246 size_t translating_plane_offset;
1247 ShellKey translating_plane_representation;
1249 TouchID tracked_touch_ID;
1256 float indicator_scale;
1258 bool plane_normal_valid;
1263 bool last_skipped_highlight_state_valid;
1265 bool is_plane_highlighted;
1269 bool enable_mouse_over_highlighting;
1270 bool skip_mouse_overs;
1273 KeyArray navigation_keys;
Handedness
Definition: hps.h:1276
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:495
virtual bool OnMouseWheel(MouseState const &in_state)
Definition: sprk_ops.h:988
bool GetSectioning()
Definition: sprk_ops.h:1206
Definition: sprk_ops.h:968
Definition: sprk_ops.h:267
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:182
HPS::HighlightOptionsKit GetHighlightOptions() const
Definition: sprk_ops.h:459
Definition: sprk_ops.h:381
HPS::SelectionOptionsKit GetSelectionOptions() const
Definition: sprk_ops.h:514
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:974
Definition: sprk_ops.h:54
ZoomType
Definition: sprk_ops.h:557
void SetIndicatorScale(float in_scale)
Definition: sprk_ops.h:1173
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:237
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:442
HPS::SelectionOptionsKit GetSelectionOptions() const
Definition: sprk_ops.h:421
Definition: sprk_ops.h:597
virtual bool OnTouchDown(TouchState const &in_state)
Definition: sprk_ops.h:1009
void SetPlaneHighlightOptions(HighlightOptionsKit const &in_highlight_options)
Definition: sprk_ops.h:1189
Definition: sprk_ops.h:478
Definition: sprk_ops.h:177
Definition: sprk_ops.h:320
Definition: sprk_ops.h:661
virtual bool OnTouchMove(TouchState const &in_state)
Definition: sprk_ops.h:1014
void SetSelectionOptions(HPS::SelectionOptionsKit const &in_options)
Definition: sprk_ops.h:509
Definition: sprk_ops.h:1093
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:324
Definition: sprk_ops.h:705
Definition: sprk_ops.h:431
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:398
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:569
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:931
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:128
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:666
bool GetIndicatorVisibility()
Definition: sprk_ops.h:1215
virtual bool OnTouchUp(TouchState const &in_state)
Definition: sprk_ops.h:1018
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:362
Definition: sprk_ops.h:524
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:1108
bool GetMouseOverHighlighting() const
Definition: sprk_ops.h:1193
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:533
HPS::Rectangle GetRectangle() const
Definition: sprk_ops.h:339
void SetSelectionOptions(HPS::SelectionOptionsKit const &in_options)
Definition: sprk_ops.h:416
virtual bool OnKeyDown(KeyboardState const &in_state)
Definition: sprk_ops.h:979
void SetMouseOverHighlighting(bool in_enable_mouse_over_highlighting)
Definition: sprk_ops.h:1197
Definition: sprk_ops.h:226
void SetHighlightOptions(HPS::HighlightOptionsKit const &in_options)
Definition: sprk_ops.h:454
float GetIndicatorScale() const
Definition: sprk_ops.h:1169
HPS::HighlightOptionsKit GetHighlightOptions() const
Definition: sprk_ops.h:546
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:272
Definition: sprk_ops.h:554
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:602
Definition: sprk_ops.h:925
static ModifierKeys KeyControl()
Definition: hps.h:41204
MaterialMappingKit GetPlaneMaterial() const
Definition: sprk_ops.h:1177
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:59
virtual HPS::UTF8 GetName() const
Definition: sprk_ops.h:710
Definition: sprk_ops.h:123
virtual bool OnKeyUp(KeyboardState const &in_state)
Definition: sprk_ops.h:983
HighlightOptionsKit GetPlaneHighlightOptions() const
Definition: sprk_ops.h:1185
void SetHighlightOptions(HPS::HighlightOptionsKit const &in_options)
Definition: sprk_ops.h:541
Definition: sprk_ops.h:358