21 # pragma warning(disable: 4251) //Not an issue as long as debug and release libraries aren't mixed
24 # define SPRK_API __declspec (dllexport)
26 # define SPRK_API __declspec (dllimport)
31 # if defined(LINUX_SYSTEM) && defined(SPROCKETS)
33 # define SPRK_API __attribute__ ((visibility ("default")))
55 class OperatorControl;
56 class NavigationCubeControl;
57 class AxisTriadControl;
60 class ComponentHighlightEvent;
84 typedef std::shared_ptr<Operator> OperatorPtr;
86 typedef std::vector<OperatorPtr, Allocator<OperatorPtr> > OperatorPtrArray;
88 typedef std::vector<Canvas, Allocator<Canvas> > CanvasArray;
89 typedef std::vector<Layout, Allocator<Layout> > LayoutArray;
90 typedef std::vector<View, Allocator<View> > ViewArray;
91 typedef std::vector<Model, Allocator<Model> > ModelArray;
93 typedef std::vector<Component, Allocator<Component> > ComponentArray;
94 typedef std::vector<Metadata, Allocator<Metadata> > MetadataArray;
95 typedef std::vector<Filter, Allocator<Filter> > FilterArray;
96 typedef std::vector<Capture, Allocator<Capture> > CaptureArray;
97 typedef std::vector<CADModel, Allocator<CADModel> > CADModelArray;
98 typedef std::vector<ReferenceKeyArray, Allocator<ReferenceKeyArray>> ReferenceKeyArrayArray;
99 typedef std::vector<ComponentPath, Allocator<ComponentPath>> ComponentPathArray;
118 void Assign(
Canvas const & in_that);
120 bool Equals(
Canvas const & in_that)
const;
121 bool operator!= (
Canvas const & in_that)
const;
122 bool operator== (
Canvas const & in_that)
const;
125 UTF8 GetName()
const;
130 void AttachLayout(
Layout const & in_layout);
135 void AttachViewAsLayout(
View const & in_view);
141 Layout GetAttachedLayout()
const;
144 IncludeKey GetAttachedLayoutIncludeLink()
const;
147 View GetFrontView()
const;
161 void Update(HPS::Sprocket::UpdateType in_update_type = Sprocket::UpdateType::Asynchronous)
const;
181 void SetFrameRate(
float in_frame_rate=20);
186 float GetFrameRate()
const;
215 HPS::Type
ObjectType()
const {
return HPS::Type::SprocketControl;}
230 this->Object::operator=(std::move(in_that));
251 View & operator=(
View const & in_that);
252 void Assign(
View const & in_that);
254 bool Equals(
View const & in_that)
const;
255 bool operator!= (
View const & in_that)
const;
256 bool operator== (
View const & in_that)
const;
259 UTF8 GetName()
const;
317 void AttachModel(
Model const & in_model);
323 Model GetAttachedModel()
const;
326 IncludeKey GetAttachedModelIncludeLink()
const;
338 OperatorPtrArray GetOperators()
const;
342 void SetOperators(OperatorPtrArray & in_operators);
347 void SetOperators(
size_t in_count, OperatorPtr in_operators []);
351 void SetOperator(OperatorPtr
const & in_operator);
355 void SetOperator(
Operator * in_operator);
377 SegmentKey const GetModelOverrideSegmentKey()
const;
389 void SetSimpleShadow(
bool in_state,
float in_percent_offset = 5.0f);
392 bool GetSimpleShadow();
398 void SetSimpleReflection(
bool in_state,
float in_percent_offset = 5.0f);
401 bool GetSimpleReflection();
404 void Update(HPS::Sprocket::UpdateType in_update_type = Sprocket::UpdateType::Asynchronous)
const;
414 void SmoothTransition(
HPS::CameraKit const & in_camera_kit, HPS::Time in_duration = 0.5);
416 static UTF8 GetHideStyleName();
417 static UTF8 GetShowStyleName();
420 KeyArray
const GetNavigationKeys();
423 LayoutArray GetOwningLayouts();
424 LayoutArray
const GetOwningLayouts()
const;
443 void Assign(
Model const & in_that);
445 bool Equals(
Model const & in_that)
const;
446 bool operator!= (
Model const & in_that)
const;
447 bool operator== (
Model const & in_that)
const;
450 UTF8 GetName()
const;
474 HPS::ViewArray GetOwningViews();
475 HPS::ViewArray
const GetOwningViews()
const;
486 void Update(HPS::Sprocket::UpdateType in_update_type = Sprocket::UpdateType::Asynchronous)
const;
510 void Assign(
Layout const & in_that);
512 bool Equals(
Layout const & in_that)
const;
513 bool operator!= (
Layout const & in_that)
const;
514 bool operator== (
Layout const & in_that)
const;
517 UTF8 GetName()
const;
520 size_t GetLayerCount()
const;
533 void DetachLayer(
size_t in_layer);
537 void DetachView(
View const & in_view);
541 void BringToFront(
size_t in_layer);
546 void ReassignLayer(
size_t in_layer,
HPS::View in_view);
551 void RepositionLayer(
size_t in_layer,
HPS::Rectangle const & in_position);
554 View GetFrontView()
const;
559 View GetAttachedView(
size_t in_layer = 0)
const;
564 Rectangle GetPosition(
size_t in_layer)
const;
567 IncludeKey GetAttachedViewIncludeLink(
size_t in_layer)
const;
570 SegmentKey GetLayerSegmentKey(
size_t in_layer)
const;
588 CanvasArray GetOwningCanvases();
589 CanvasArray
const GetOwningCanvases()
const;
592 void Update(HPS::Sprocket::UpdateType in_update_type = Sprocket::UpdateType::Asynchronous)
const;
606 channel = GetClassID();
611 :
Event(), canvas(in_canvas)
613 channel = GetClassID();
621 if (in_event.
GetChannel() == Object::ClassID<CanvasDeletedEvent>())
624 canvas = that.canvas;
649 channel = GetClassID();
654 :
Event(), canvas(in_canvas), layout(in_layout)
656 channel = GetClassID();
664 if (in_event.
GetChannel() == Object::ClassID<LayoutDetachedEvent>())
667 canvas = that.canvas;
668 layout = that.layout;
694 channel = GetClassID();
699 :
Event(), layout(in_layout)
701 channel = GetClassID();
709 if (in_event.
GetChannel() == Object::ClassID<LayoutDeletedEvent>())
712 layout = that.layout;
744 channel = GetClassID();
749 :
Event(), layout(in_layout), action(Action::SpecificLayer), layer(in_layer), view(in_view)
751 channel = GetClassID();
755 ViewDetachedEvent(Layout
const & in_layout, View
const & in_view)
756 : Event(), layout(in_layout), action(Action::AllLayers), layer(std::numeric_limits<size_t>::max()), view(in_view)
758 channel = GetClassID();
766 if (in_event.
GetChannel() == Object::ClassID<ViewDetachedEvent>())
769 layout = that.layout;
770 action = that.action;
800 channel = GetClassID();
805 :
Event(), view(in_view)
807 channel = GetClassID();
815 if (in_event.
GetChannel() == Object::ClassID<ViewDeletedEvent>())
843 channel = GetClassID();
848 :
Event(), view(in_view), model(in_model)
850 channel = GetClassID();
858 if (in_event.
GetChannel() == Object::ClassID<ModelDetachedEvent>())
888 channel = GetClassID();
893 :
Event(), model(in_model)
895 channel = GetClassID();
903 if (in_event.
GetChannel() == Object::ClassID<ModelDeletedEvent>())
937 HPS::Type
ObjectType()
const {
return HPS::Type::SprocketPath; }
953 View GetView()
const;
956 Model GetModel()
const;
981 virtual void Assign(
Operator const & in_that);
984 virtual bool Equals(
Operator const & in_that)
const;
987 virtual bool operator!= (
Operator const & in_that)
const;
990 virtual bool operator== (
Operator const & in_that)
const;
996 View GetAttachedView()
const;
1130 HPS::Type
ObjectType()
const {
return HPS::Type::OperatorControl;};
1141 size_t GetCount(Operator::Priority in_priority);
1149 OperatorControl & Push(OperatorPtr
const & in_operator, Operator::Priority in_priority = Operator::Priority::Normal);
1161 bool Pop(Operator::Priority in_priority = Operator::Priority::Normal);
1167 bool Pop(OperatorPtr & out_operator);
1174 bool Pop(Operator::Priority in_priority, OperatorPtr & out_operator);
1182 OperatorControl & Set(OperatorPtr
const & in_operator, Operator::Priority in_priority = Operator::Priority::Normal);
1196 OperatorControl & Set(OperatorPtrArray & in_operators, Operator::Priority in_priority = Operator::Priority::Normal);
1204 OperatorControl & Set(
size_t in_count, OperatorPtr in_operators [], Operator::Priority in_priority = Operator::Priority::Normal);
1210 OperatorControl & UnsetTop(Operator::Priority in_priority = Operator::Priority::Normal);
1225 bool ShowTop(OperatorPtr & out_operator)
const;
1231 bool ShowTop(Operator::Priority in_priority, OperatorPtr & out_operator)
const;
1236 bool Show(OperatorPtrArray & out_operators)
const;
1242 bool Show(Operator::Priority in_priority, OperatorPtrArray & out_operators)
const;
1283 HPS::Type
ObjectType()
const {
return HPS::Type::NavigationCubeControl;};
1298 Location GetLocation()
const;
1317 bool GetVisibility()
const;
1326 bool GetTextVisibility()
const;
1360 bool GetInteractivity()
const;
1370 float GetSize()
const;
1418 HPS::Type
ObjectType()
const {
return HPS::Type::AxisTriadControl;};
1433 Location GetLocation()
const;
1452 bool GetVisibility()
const;
1461 bool GetTextVisibility()
const;
1487 bool GetInteractivity()
const;
1497 float GetSize()
const;
1520 GenericMask = 0xfffff000,
1522 ExchangeComponentMask = 0x00001000,
1523 ExchangeModelFile = 0x00001001,
1524 ExchangeProductOccurrence = 0x00001002,
1525 ExchangePartDefinition = 0x00001003,
1527 ExchangeView = 0x00001004,
1528 ExchangeFilter = 0x00001005,
1530 ExchangeRepresentationItemMask = 0x00003000,
1531 ExchangeRIBRepModel = 0x00003001,
1532 ExchangeRICurve = 0x00003002,
1533 ExchangeRIDirection = 0x00003003,
1534 ExchangeRIPlane = 0x00003004,
1535 ExchangeRIPointSet = 0x00003005,
1536 ExchangeRIPolyBRepModel = 0x00003006,
1537 ExchangeRIPolyWire = 0x00003007,
1538 ExchangeRISet = 0x00003008,
1539 ExchangeRICoordinateSystem = 0x00003009,
1541 ExchangeTopologyMask = 0x00005000,
1542 ExchangeTopoBody = 0x00005001,
1543 ExchangeTopoConnex = 0x00005002,
1544 ExchangeTopoShell = 0x00005003,
1545 ExchangeTopoFace = 0x00005004,
1546 ExchangeTopoLoop = 0x00005005,
1547 ExchangeTopoCoEdge = 0x00005006,
1548 ExchangeTopoEdge = 0x00005007,
1549 ExchangeTopoVertex = 0x00005008,
1550 ExchangeTopoSingleWireBody = 0x00005009,
1551 ExchangeTopoWireEdge = 0x0000500a,
1553 ExchangeDrawingMask = 0x00006000,
1554 ExchangeDrawingModel = 0x00006001,
1555 ExchangeDrawingView = 0x00006002,
1556 ExchangeDrawingSheet = 0x00006003,
1557 ExchangeBasicDrawingBlock = 0x00006004,
1558 ExchangeOperatorDrawingBlock = 0x00006005,
1560 ExchangePMIMask = 0x00009000,
1561 ExchangePMI = ExchangePMIMask,
1562 ExchangePMIText = 0x00009100,
1563 ExchangePMIRichText = 0x00009200,
1564 ExchangePMIRoughness = 0x00009300,
1565 ExchangePMIGDT = 0x00009400,
1566 ExchangePMIDatum = 0x00009500,
1567 ExchangePMILineWelding = 0x00009600,
1568 ExchangePMISpotWelding = 0x00009700,
1569 ExchangePMIDimension = 0x00009800,
1570 ExchangePMIBalloon = 0x00009900,
1571 ExchangePMICoordinate = 0x00009a00,
1572 ExchangePMIFastener = 0x00009b00,
1573 ExchangePMILocator = 0x00009c00,
1574 ExchangePMIMeasurementPoint = 0x00009d00,
1577 ParasolidComponentMask = 0x00010000,
1579 ParasolidModelFile = 0x00010001,
1580 ParasolidAssembly = 0x00010002,
1582 ParasolidTopologyMask = 0x00050000,
1583 ParasolidTopoBody = 0x00050001,
1584 ParasolidTopoRegion = 0x00050002,
1585 ParasolidTopoShell = 0x00050003,
1586 ParasolidTopoFace = 0x00050004,
1587 ParasolidTopoLoop = 0x00050005,
1588 ParasolidTopoFin = 0x00050006,
1589 ParasolidTopoEdge = 0x00050007,
1590 ParasolidTopoVertex = 0x00050008,
1593 DWGComponentMask = 0x00100000,
1594 DWGModelFile = 0x00100001,
1595 DWGLayout = 0x00100002,
1596 DWGBlockTable = 0x00100003,
1597 DWGBlockTableRecord = 0x00100004,
1598 DWGEntity = 0x00100005,
1599 DWGLayerTable = 0x00100006,
1600 DWGLayer = 0x00100007,
1634 virtual void Assign(
Component const & in_that);
1639 bool Equals(
Component const & in_that)
const;
1644 bool operator!=(
Component const & in_that)
const;
1649 bool operator==(
Component const & in_that)
const;
1654 ComponentType GetComponentType()
const;
1659 bool HasComponentType(ComponentType in_mask)
const;
1668 void AddKey(
Key const & in_key);
1672 KeyArray GetKeys()
const;
1685 ComponentArray GetOwners()
const;
1689 ComponentArray GetSubcomponents()
const;
1695 ComponentArray GetAllSubcomponents(ComponentType in_type)
const;
1701 void AddReference(
Component & in_reference);
1705 ComponentArray GetReferrers()
const;
1710 ComponentArray GetReferences()
const;
1716 MetadataArray GetAllMetadata()
const;
1721 Metadata GetMetadata(
char const * in_name)
const;
1739 static KeyPathArray GetKeyPath(
Component const & in_component);
1750 static KeyPathArray GetKeyPath(
size_t in_count,
Component const in_components[]);
1760 static KeyPathArray GetKeyPath(ComponentArray
const & in_components);
1796 HPS::Type
ObjectType()
const {
return HPS::Type::ComponentPath; }
1811 ComponentPath & operator+=(ComponentArray
const & in_components);
1826 ComponentPath & Append(ComponentArray
const & in_components);
1861 ComponentPath & SetComponents(ComponentArray
const & in_components);
1871 ComponentArray GetComponents()
const;
1876 KeyPathArray GetKeyPaths()
const;
1882 KeyPathArray GetKeyPaths(
Canvas const & in_canvas,
size_t in_layer = 0)
const;
1911 void Hide(
Canvas const & in_canvas,
size_t in_layer = 0);
1916 void Show(
Canvas const & in_canvas,
size_t in_layer = 0);
1923 bool IsHidden(
Canvas const & in_canvas,
size_t in_layer = 0);
1928 void Isolate(
Canvas const & in_canvas,
size_t in_layer = 0);
1930 static void Isolate(HPS::ComponentPathArray & in_components_to_be_isolated,
Canvas const & in_canvas,
size_t in_layer = 0);
1938 inline ComponentPath operator+(Component
const & in_lhs, Component
const & in_rhs)
1947 inline ComponentPath operator+(Component
const & in_lhs, ComponentArray
const & in_rhs)
1956 inline ComponentPath operator+(Component
const & in_lhs, ComponentPath
const & in_rhs)
1965 inline ComponentPath operator+(ComponentArray
const & in_lhs, Component
const & in_rhs)
1974 inline ComponentPath operator+(ComponentArray
const & in_lhs, ComponentArray
const & in_rhs)
1983 inline ComponentPath operator+(ComponentArray
const & in_lhs, ComponentPath
const & in_rhs)
1992 inline ComponentPath operator+(ComponentPath
const & in_lhs, Component
const & in_rhs)
2001 inline ComponentPath operator+(ComponentPath
const & in_lhs, ComponentArray
const & in_rhs)
2010 inline ComponentPath operator+(ComponentPath
const & in_lhs, ComponentPath
const & in_rhs)
2030 channel = GetClassID();
2032 action = Action::None;
2038 :
Event(), action(in_action), path(in_path), options(in_options)
2040 channel = GetClassID();
2048 if (in_event.
GetChannel() == Object::ClassID<ComponentHighlightEvent>())
2051 action = that.action;
2053 options = that.options;
2111 void Activate(
View const & in_view);
2115 void Deactivate(
View const & in_view);
2132 channel = GetClassID();
2138 channel = GetClassID();
2146 if (in_event.
GetChannel() == Object::ClassID<FilterActivationEvent>())
2149 filter = that.filter;
2150 action = that.action;
2220 channel = GetClassID();
2226 channel = GetClassID();
2234 if (in_event.
GetChannel() == Object::ClassID<CaptureActivationEvent>())
2237 capture = that.capture;
2300 Component GetComponentFromKey(
Key const & in_key)
const;
2318 Model GetModel()
const;
2322 FilterArray GetAllFilters()
const;
2326 CaptureArray GetAllCaptures()
const;
2331 FilterArray GetActiveFilters(
View const & in_view)
const;
2337 View ActivateDefaultCapture();
2347 void ResetVisibility(
Canvas & in_canvas,
size_t in_layer = 0);
2390 virtual void Assign(
Metadata const & in_that);
2395 bool Equals(
Metadata const & in_that)
const;
2400 bool operator!=(
Metadata const & in_that)
const;
2405 bool operator==(
Metadata const & in_that)
const;
2414 void SetName(
char const * in_name);
2444 HPS::Type
ObjectType()
const {
return HPS::Type::IntegerMetadata; }
2458 int GetValue()
const;
2462 void SetValue(
int in_value);
2492 HPS::Type
ObjectType()
const {
return HPS::Type::UnsignedIntegerMetadata; }
2506 unsigned int GetValue()
const;
2510 void SetValue(
unsigned int in_value);
2540 HPS::Type
ObjectType()
const {
return HPS::Type::DoubleMetadata; }
2554 double GetValue()
const;
2558 void SetValue(
double in_value);
2588 HPS::Type
ObjectType()
const {
return HPS::Type::StringMetadata; }
2602 UTF8 GetValue()
const;
2606 void SetValue(
char const * in_value);
2632 TimeMetadata(
char const * in_name,
unsigned int in_value);
2650 unsigned int GetValue()
const;
2658 void SetValue(
unsigned int in_value);
2689 HPS::Type
ObjectType()
const {
return HPS::Type::BooleanMetadata; }
2703 bool GetValue()
const;
2707 void SetValue(
bool in_value);
2719 static CanvasArray GetCanvases();
2723 static LayoutArray GetLayouts();
2727 static ViewArray GetViews();
2731 static ModelArray GetModels();
2735 static CADModelArray GetCADModels();
2760 static Layout CreateLayout(
char const * in_name =
"");
2765 static View CreateView(
char const * in_name =
"");
2770 static Model CreateModel(
char const * in_name =
"");
2797 virtual bool OnMouseDown(
MouseState const & in_state);
2802 virtual bool OnMouseUp(
MouseState const & in_state);
2807 virtual bool OnMouseMove(
MouseState const & in_state);
2813 virtual bool OnTouchDown(
TouchState const & in_state);
2818 virtual bool OnTouchUp(
TouchState const & in_state);
2823 virtual bool OnTouchMove(
TouchState const & in_state);
2825 virtual void OnViewAttached();
2826 virtual void OnViewDetached();
2833 bool IsEventRelevant(
HPS::Point const & event_location);
2835 bool operator_active;
2838 float axis_subwindow_width;
2839 float axis_subwindow_height;
2840 HPS::TouchID tracked_touch_ID;
2857 { channel = HPS::Object::ClassID<SmoothTransitionCompleteEvent>(); }
2872 HPS_UNREFERENCED(in_that_event);
2901 virtual bool OnMouseDown(
MouseState const & in_state);
2906 virtual bool OnMouseUp(
MouseState const & in_state);
2911 virtual bool OnMouseMove(
MouseState const & in_state);
2916 virtual bool OnTouchDown(
TouchState const & in_state);
2921 virtual bool OnTouchUp(
TouchState const & in_state);
2926 virtual bool OnTouchMove(
TouchState const & in_state);
2928 virtual void OnViewAttached();
2929 virtual void OnViewDetached();
2931 virtual void OnModelAttached();
2933 void UpdateHighlightColor();
2944 void SetReferenceSegment(HPS::SegmentKeyArray
const & in_segments);
2949 HPS::SegmentKeyArray ShowReferenceSegment();
2955 bool IsEventRelevant(
HPS::Point const & event_location);
2958 bool operator_active;
2959 HPS::TouchID tracked_touch_ID;
2963 HPS::SegmentKeyArray reference_segments;
2968 HPS::ReferenceKeyArrayArray groups;
2974 float nav_cube_subwindow_width;
2975 float nav_cube_subwindow_height;
2977 int highlighted_group;
2981 class SmoothTransitionCompleteEventHandler :
public EventHandler
2984 SmoothTransitionCompleteEventHandler(
View const & in_view,
bool & in_moving)
2985 : handler_view(in_view), handler_moving(&in_moving) {}
2987 ~SmoothTransitionCompleteEventHandler() { Shutdown(); }
2989 virtual HandleResult Handle(
HPS::Event const * in_event);
2993 bool * handler_moving;
2996 SmoothTransitionCompleteEventHandler * handler;
3002 class SceneTreeItem;
3003 typedef std::shared_ptr<SceneTreeItem> SceneTreeItemPtr;
3005 typedef std::shared_ptr<SceneTree> SceneTreePtr;
3017 GenericMask = 0xffff0000,
3019 Segment = 0x00000001,
3020 Include = 0x00000002,
3021 ConditionalExpression = 0x00000003,
3022 StaticModelSegment = 0x00000004,
3023 AttributeFilter = 0x00000005,
3025 Geometry = 0x00010000,
3030 NURBSSurface = 0x00010005,
3033 Polygon = 0x00010008,
3034 Circle = 0x00010009,
3035 CircularWedge = 0x0001000a,
3036 Ellipse = 0x0001000b,
3038 NURBSCurve = 0x0001000d,
3039 CircularArc = 0x0001000e,
3040 EllipticalArc = 0x0001000f,
3042 InfiniteRay = 0x00010011,
3045 Reference = 0x00010014,
3046 DistantLight = 0x00010015,
3049 Attribute = 0x00020000,
3050 Portfolio = 0x00020001,
3051 SegmentStyle = 0x00020002,
3052 NamedStyle = 0x00020003,
3053 MaterialPalette = 0x00020004,
3054 Priority = 0x00020005,
3057 ModellingMatrix = 0x00020008,
3058 UserData = 0x00020009,
3059 TextureMatrix = 0x0002000a,
3060 Culling = 0x0002000b,
3061 CurveAttribute = 0x0002000c,
3062 CylinderAttribute = 0x0002000d,
3063 EdgeAttribute = 0x0002000e,
3064 LightingAttribute = 0x0002000f,
3065 LineAttribute = 0x00020010,
3066 MarkerAttribute = 0x00020011,
3067 SurfaceAttribute = 0x00020012,
3069 SphereAttribute = 0x00020014,
3071 TextAttribute = 0x00020016,
3073 Visibility = 0x00020018,
3074 VisualEffects = 0x00020019,
3076 DrawingAttribute = 0x00020021,
3077 HiddenLineAttribute = 0x00020022,
3082 TransformMask = 0x00020027,
3083 ColorInterpolation = 0x00020028,
3084 CuttingSectionAttribute = 0x00020029,
3087 Debugging = 0x00020030,
3089 SelectionOptions = 0x00020032,
3090 UpdateOptions = 0x00020033,
3103 SegmentGroup = 0x00080100,
3104 GeometryGroup = 0x00080200,
3105 AttributeGroup = 0x00080300,
3106 PortfolioGroup = 0x00080400,
3107 StyleGroup = 0x00080500,
3108 IncludeGroup = 0x00080600,
3109 DefinitionGroup = 0x00180000,
3110 NamedStyleDefinitionGroup = 0x00180700,
3111 TextureDefinitionGroup = 0x00180800,
3112 LinePatternDefinitionGroup = 0x00180900,
3113 GlyphDefinitionGroup = 0x00180a00,
3114 CubeMapDefinitionGroup = 0x00180b00,
3115 ImageDefinitionGroup = 0x00180c00,
3116 MaterialPaletteDefinitionGroup = 0x00180d00,
3117 ShaderDefinitionGroup = 0x00180e00,
3118 CuttingSectionGroup = 0x00080001,
3119 ShellGroup = 0x00080002,
3120 MeshGroup = 0x00080003,
3121 GridGroup = 0x00080004,
3122 NURBSSurfaceGroup = 0x00080005,
3123 CylinderGroup = 0x00080006,
3124 SphereGroup = 0x00080007,
3125 PolygonGroup = 0x00080008,
3126 CircleGroup = 0x00080009,
3127 CircularWedgeGroup = 0x0008000a,
3128 EllipseGroup = 0x0008000b,
3129 LineGroup = 0x0008000c,
3130 NURBSCurveGroup = 0x0008000d,
3131 CircularArcGroup = 0x0008000e,
3132 EllipticalArcGroup = 0x0008000f,
3133 InfiniteLineGroup = 0x00080010,
3134 InfiniteRayGroup = 0x00080011,
3135 MarkerGroup = 0x00080012,
3136 TextGroup = 0x00080013,
3137 ReferenceGroup = 0x00080014,
3138 DistantLightGroup = 0x00080015,
3139 SpotlightGroup = 0x00080016,
3159 virtual HPS::Type
ObjectType()
const {
return HPS::Type::SceneTree; }
3174 virtual void Assign(
SceneTree const & in_that);
3179 bool Equals(
SceneTree const & in_that)
const;
3184 bool operator!=(
SceneTree const & in_that)
const;
3189 bool operator==(
SceneTree const & in_that)
const;
3210 void SetGroupingLimit(
size_t in_limit);
3214 size_t GetGroupingLimit()
const;
3223 void SetRoot(SceneTreeItemPtr
const & in_root);
3227 SceneTreeItemPtr GetRoot()
const;
3232 virtual void Flush();
3291 HPS::Type
ObjectType()
const {
return HPS::Type::SceneTreeItem; }
3326 SceneTreePtr GetTree()
const;
3330 UTF8 GetTitle()
const;
3347 bool HasChildren()
const;
3358 virtual SceneTreeItemPtr AddChild(
Key const & in_key,
SceneTree::ItemType in_type,
char const * in_title =
nullptr) = 0;
3363 virtual void Expand();
3367 virtual void Collapse();
3374 bool IsSelected()
const;
3381 virtual void Select();
3388 virtual void Unselect();
3394 bool IsHighlightable()
const;
3401 bool IsHighlighted()
const;
3417 class ComponentTreeItem;
3418 typedef std::shared_ptr<ComponentTreeItem> ComponentTreeItemPtr;
3419 class ComponentTree;
3420 typedef std::shared_ptr<ComponentTree> ComponentTreePtr;
3436 ExchangeAnnotationViewGroup,
3462 virtual HPS::Type
ObjectType()
const {
return HPS::Type::ComponentTree; }
3515 void SetRoot(ComponentTreeItemPtr
const & in_root);
3519 ComponentTreeItemPtr GetRoot()
const;
3524 virtual void Flush();
3561 HPS::Type
ObjectType()
const {
return HPS::Type::ComponentTreeItem; }
3597 ComponentTreePtr GetTree()
const;
3601 UTF8 GetTitle()
const;
3613 bool HasChildren()
const;
3632 virtual void Expand();
3636 virtual void Collapse();
3644 bool IsHighlighted()
const;
3679 bool IsHidden()
const;
3684 virtual void OnHide();
3689 virtual void OnShow();
3709 bool IsExpanded()
const;
HPS::Type ObjectType() const
Definition: sprk.h:437
Event * Clone() const
Definition: sprk.h:678
ComponentHighlightEvent(Event const &in_event)
Definition: sprk.h:2046
HPS::Type ObjectType() const
Definition: sprk.h:246
virtual bool OnTimerTick(HPS::TimerTickEvent const &in_event)
Definition: sprk.h:1059
ComponentHighlightEvent()
Definition: sprk.h:2028
void SetModifierTrigger(ModifierKeys in_modifiers)
Definition: sprk.h:1085
HPS::Type ObjectType() const
Definition: sprk.h:215
HPS::Type ObjectType() const
Definition: sprk.h:976
virtual bool OnKeyDown(KeyboardState const &in_state)
Definition: sprk.h:1049
HPS::Type ObjectType() const
Definition: sprk.h:2097
An InvalidSpecificationException is thrown when a method is called with non-sensical or contradictory...
Definition: hps.h:5530
Location
Definition: sprk.h:1255
ModifierKeys GetModifierTrigger() const
Definition: sprk.h:1088
virtual bool OnKeyUp(KeyboardState const &in_state)
Definition: sprk.h:1054
ItemType
Definition: sprk.h:3429
CaptureActivationEvent()
Definition: sprk.h:2218
virtual bool OnMouseMove(MouseState const &in_state)
Definition: sprk.h:1014
virtual bool OnMouseEnter(MouseState const &in_state)
Definition: sprk.h:1024
HPS::Type ObjectType() const
Definition: sprk.h:2285
HPS::Type ObjectType() const
Definition: sprk.h:1796
ModelDeletedEvent()
Definition: sprk.h:886
SmoothTransitionCompleteEvent(HPS::View const &in_view)
Definition: sprk.h:2856
virtual bool OnTouchUp(TouchState const &in_state)
Definition: sprk.h:1039
MouseButtons GetMouseTrigger() const
Definition: sprk.h:1080
virtual HPS::Type ObjectType() const
Definition: sprk.h:3159
bool HasAll(MouseButtons in_mouse_trigger, ModifierKeys in_modifier_trigger) const
Event * Clone() const
Definition: sprk.h:722
HPS::Type ObjectType() const
Definition: sprk.h:1418
UpdateControl
Definition: hps.h:168
virtual void OnModelDetached()
Definition: sprk.h:1073
void SetMouseTrigger(MouseButtons in_buttons)
Definition: sprk.h:1076
ComponentPath & Append(Component const &in_component)
Event * Clone() const
Definition: sprk.h:828
HPS::Type ObjectType() const
Definition: sprk.h:112
ViewDetachedEvent(Event const &in_event)
Definition: sprk.h:764
virtual void OnViewDetached()
Definition: sprk.h:1065
HPS::Type ObjectType() const
Definition: sprk.h:3291
LayoutDeletedEvent()
Definition: sprk.h:692
Event * Clone() const
Definition: sprk.h:872
virtual void OnViewAttached()
Definition: sprk.h:1062
LayoutDetachedEvent()
Definition: sprk.h:647
virtual bool OnMouseLeave(MouseState const &in_state)
Definition: sprk.h:1029
SmoothTransitionCompleteEvent()
Definition: sprk.h:2851
HPS::Type ObjectType() const
Definition: sprk.h:504
virtual bool OnMouseUp(MouseState const &in_state)
Definition: sprk.h:1009
FilterActivationEvent()
Definition: sprk.h:2130
virtual void OnModelAttached()
Definition: sprk.h:1069
FilterActivationEvent(Event const &in_event)
Definition: sprk.h:2144
ModelDetachedEvent(Event const &in_event)
Definition: sprk.h:856
HPS::Type ObjectType() const
Definition: sprk.h:1283
HPS::Type ObjectType() const
Definition: sprk.h:1618
Location
Definition: sprk.h:1390
HPS::Type ObjectType() const
Definition: sprk.h:1130
SprocketControl & operator=(SprocketControl &&in_that)
Definition: sprk.h:228
virtual UTF8 GetName() const
Definition: sprk.h:999
Event * Clone() const
Definition: sprk.h:2161
CaptureActivationEvent(Event const &in_event)
Definition: sprk.h:2232
virtual bool OnTouchDown(TouchState const &in_state)
Definition: sprk.h:1034
CanvasDeletedEvent()
Definition: sprk.h:604
virtual bool OnMouseWheel(MouseState const &in_state)
Definition: sprk.h:1019
SprocketControl(SprocketControl &&in_that)
Definition: sprk.h:223
Event * Clone() const
Definition: sprk.h:2248
ViewDeletedEvent()
Definition: sprk.h:798
intptr_t GetChannel() const
Definition: hps.h:6145
virtual bool Drop(Event const *in_that_event) const
Definition: sprk.h:2870
virtual HPS::UTF8 GetName() const
Definition: sprk.h:2790
ViewDeletedEvent(Event const &in_event)
Definition: sprk.h:813
ViewDetachedEvent()
Definition: sprk.h:742
Event * Clone() const
Definition: sprk.h:2063
CanvasDeletedEvent(Event const &in_event)
Definition: sprk.h:619
ComponentType
Definition: sprk.h:1517
Event * Clone() const
Definition: sprk.h:634
LayoutDetachedEvent(Event const &in_event)
Definition: sprk.h:662
HPS::Type ObjectType() const
Definition: sprk.h:3561
virtual bool OnMouseDown(MouseState const &in_state)
Definition: sprk.h:1004
ItemType
Definition: sprk.h:3014
virtual HPS::UTF8 GetName() const
Definition: sprk.h:2895
Event * Clone() const
Definition: sprk.h:916
ModelDetachedEvent()
Definition: sprk.h:841
virtual HPS::Type ObjectType() const
Definition: sprk.h:3462
HPS::Type ObjectType() const
Definition: sprk.h:937
virtual bool IsMouseTriggered(MouseState const &in_state)
Definition: sprk.h:1091
Event * Clone() const
Definition: sprk.h:2861
ModelDeletedEvent(Event const &in_event)
Definition: sprk.h:901
Event * Clone() const
Definition: sprk.h:782
LayoutDeletedEvent(Event const &in_event)
Definition: sprk.h:707
virtual bool OnTouchMove(TouchState const &in_state)
Definition: sprk.h:1044
Mode
Definition: sprk.h:194
HPS::Type ObjectType() const
Definition: sprk.h:2195