sprk_exchange.h
67 typedef std::vector<BIMRelationshipEntity, HPS::Allocator<BIMRelationshipEntity>> BIMRelationshipEntityArray;
187 TranslationNotifier Translate(Units in_units, TranslationOptionsKit const & in_translation_options);
195 ReloadNotifier Reload(TessellationOptionsKit const & in_tessellation_options = TessellationOptionsKit(), TranslationOptionsKit const & in_translation_options = TranslationOptionsKit());
527 BIMRelationshipEntityArray GetRelatingEntities(HPS::Exchange::Component const & in_component, BIMRelationshipType in_relationship_type) const;
533 BIMRelationshipEntityArray GetRelatedEntities(HPS::Exchange::Component const & in_component, BIMRelationshipType in_relationship_type) const;
687 ReloadNotifier Reload(TessellationOptionsKit const & in_options = TessellationOptionsKit(), TranslationOptionsKit const & in_translation_options = TranslationOptionsKit());
882 static Component CreateComponent(HPS::Component const & in_owner, HPS::Component::ComponentType in_type, A3DEntity * in_entity = nullptr);
889 static CADModel CreateCADModel(Model const & in_model = HPS::Factory::CreateModel(), A3DAsmModelFile * in_entity = nullptr, bool in_owns_entity = false);
902 static Capture CreateCapture(HPS::Component const & in_owner, A3DEntity * in_entity = nullptr, bool in_is_default = false);
1470 Configuration(char const * in_name, size_t in_count, Configuration const in_subconfigurations[]);
1608 static void GetInformation(const char * in_file_name, Format & out_format, UTF8 & out_model_name, UTF8 & out_version, UTF8 & out_author, UTF8 & out_organization, UTF8 & out_time_stamp);
1631 static ImportNotifier Import(A3DAsmModelFile const * in_model_file, ModelFileImportOptionsKit const & in_options);
1640 static ImportNotifier Import(size_t in_byte_count, byte const in_prc_data[], ModelFileImportOptionsKit const & in_options);
1648 static ImportNotifier Import(ByteArray const & in_prc_data, ModelFileImportOptionsKit const & in_options);
1657 static TranslationNotifier Translate(char const * in_file_name, ImportOptionsKit const & in_options, TranslationOptionsKit const & in_translation_options);
1664 static ExportNotifier Export3MF(CADModel const & in_cad_model, char const * in_file_name, Export3MFOptionsKit const & in_options);
1671 static ExportNotifier Export3MF(KeyPathArray const & in_source, char const * in_file_name, Export3MFOptionsKit const & in_options);
1679 static ExportNotifier Export3MF(size_t in_count, KeyPath const in_source[], char const * in_file_name, Export3MFOptionsKit const & in_options);
1686 static ExportNotifier Export3MF(KeyPath in_source, char const * in_file_name, Export3MFOptionsKit const & in_options);
1692 static void ExportFBX(CADModel const & in_cad_model, char const * in_file_name, ExportFBXOptionsKit const & in_options);
1698 static void ExportACIS(CADModel const & in_cad_model, char const * in_file_name, ExportACISOptionsKit const & in_options);
1704 static void ExportJT(CADModel const & in_cad_model, char const * in_file_name, ExportJTOptionsKit const & in_options);
1711 static ExportNotifier ExportPRC(CADModel const & in_cad_model, char const * in_file_name, ExportPRCOptionsKit const & in_options);
1718 static ExportNotifier ExportPRC(KeyPathArray const & in_source, char const * in_file_name, bool in_compress_tessellation = false);
1726 static ExportNotifier ExportPRC(size_t in_count, KeyPath const in_source [], char const * in_file_name, bool in_compress_tessellation = false);
1733 static ExportNotifier ExportPRC(KeyPath const & in_source, char const * in_file_name, bool in_compress_tessellation = false);
1755 static void ExportSTL(CADModel const & in_cad_model, char const * in_file_name, ExportSTLOptionsKit const & in_options);
1761 static void ExportOBJ(CADModel const & in_cad_model, char const * in_file_name, ExportOBJOptionsKit const & in_options);
1767 static void ExportU3D(CADModel const & in_cad_model, char const * in_file_name, ExportU3DOptionsKit const & in_options);
1778 static void ExportXML(CADModel const & in_cad_model, char const * in_file_name, ExportXMLOptionsKit const & in_options);
1784 static void ExportGLTF(CADModel const & in_cad_model, char const * in_file_name, ExportGLTFOptionsKit const & in_options);
1793 static void ExportIGES(CADModel const & in_cad_model, char const * in_file_name, ExportIGESOptionsKit const & in_options);
1799 static void ExportParasolid(CADModel const & in_cad_model, char const * in_file_name, ExportParasolidOptionsKit const & in_options);
1805 static void ExportSTEP(CADModel const & in_cad_model, char const * in_file_name, ExportSTEPOptionsKit const & in_options);
1892 NURBSConversionOptionsKit & SetUVCurvesComputation(bool in_state, bool in_allow_cross_seam_curves);
1931 NURBSConversionOptionsKit & SetAllowedSurfaces(size_t in_count, SurfaceType const in_allowed_surfaces []);
1946 NURBSConversionOptionsKit & SetAllowedCurves(size_t in_count, CurveType const in_allowed_curves []);
2225 ImportOptionsKit & SetPMISubstitutionFont(char const * in_font_name, bool in_always_substitute = false);
2274 ImportOptionsKit & SetPMIDefaultColor(RGBColor const & in_color, bool in_override_color = false);
2297 ImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
2310 ImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true, bool in_accurate_surface_curvatures = false, double in_accurate_grid_maximum_stitch_length = 0.0);
2345 ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], bool const in_recurse_flags[]);
2352 ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, BoolArray const & in_recurse_flags);
2362 ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], UTF8 const in_logical_names[], bool const in_recurse_flags[]);
2372 ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, UTF8Array const & in_logical_names, BoolArray const & in_recurse_flags);
2451 ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(size_t in_count, UTF8 const in_reference_sets[], bool in_apply_to_all_levels);
2459 ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(UTF8Array const & in_reference_sets, bool in_apply_to_all_levels);
2711 ImportOptionsKit & SetRevitPhysicalProperties(Revit::PhysicalProperties in_physical_properties);
2729 ImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
2762 ImportOptionsKit & SetIncrementalComponentPaths(size_t in_count, HPS::ComponentPath const in_paths[]);
2775 ImportOptionsKit & SetNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit const & in_nurbs_conversion_options);
3225 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
3233 bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals, bool & out_accurate_surface_curvatures, double & out_accurate_grid_maximum_stitch_length) const;
3275 bool ShowSearchDirectories(UTF8Array & out_directories, UTF8Array & out_logical_names, BoolArray & out_recurse_flags) const;
3318 bool ShowUnigraphicsPreferredReferenceSets(UTF8Array & out_reference_sets, bool & out_apply_to_all_levels) const;
3514 bool ShowNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit & out_nurbs_conversion_options) const;
3927 ModelFileImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
3940 ModelFileImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true, bool in_accurate_surface_curvatures = false, double accurate_grid_maximum_stitch_length = 0.0);
3988 ModelFileImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
4008 ModelFileImportOptionsKit & SetNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit const & in_nurbs_conversion_options);
4091 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
4099 bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals, bool & out_accurate_surface_curvatures, double & out_accurate_grid_maximum_stitch_length) const;
4151 bool ShowNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit & out_nurbs_conversion_options) const;
4238 Export3MFOptionsKit & SetAdditionalKeyPaths(size_t in_count, KeyPath const in_additional_key_paths[]);
4253 Export3MFOptionsKit & SetCurrentTessellationRetention(bool in_state, TessellationOptionsKit const & in_tessellation_kit = TessellationOptionsKit());
4263 bool ShowCurrentTessellationRetention(bool & out_state, Exchange::TessellationOptionsKit & out_tessellation_kit) const;
4756 ExportPRCOptionsKit & SetAdditionalKeyPaths(size_t in_count, KeyPath const in_additional_key_paths []);
4894 ExportSTLOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
4971 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
6050 TessellationOptionsKit & SetLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
6062 TessellationOptionsKit & SetAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true, bool in_accurate_surface_curvatures = false, double in_accurate_grid_maximum_stitch_length = 0.0);
6104 bool ShowLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
6112 bool ShowAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals, bool & out_accurate_surface_curvatures, double & out_accurate_grid_maximum_stitch_length) const;
6146 CommonMeasurementOperator(Exchange::CADModel const & in_cad_model, MouseButtons in_mouse_trigger = MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger = ModifierKeys());
6197 MeasurementInsertedEvent(HPS::Key const & in_measurement_key, HPS::View const & in_view) : Event()
6243 MeasurementDeletedEvent(HPS::UTF8 const & in_measurement_name, HPS::View const & in_view) : Event()
6305 void PositionLinearMeasurementGeometry(WindowPoint const & window_cursor_location, KeyPath const & event_path, LineKey & leader_line_one, LineKey & leader_line_two,
6306 LineKey & measurement_line, LineKey & line_to_cursor, Point & original_point_one, Point & original_point_two, TextKey & text, UTF8 const & text_string,
6307 Point & distance_point_one, Point & distance_point_two, SegmentKey & current_measurement_segment, Plane const & measurement_plane = Plane(), Vector const & explicit_direction = Vector());
6309 void SetMaterialsOnMeasurementSegment(HPS::SegmentKey const & set_materials_here, HPS::MaterialMappingKit const & materials_to_apply);
6377 MeasurementOperator(Exchange::CADModel const & in_cad_model, MouseButtons in_mouse_trigger = MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger = ModifierKeys());
6441 void SetMouseOverHighlighting(bool in_highlighting, HighlightOptionsKit const & in_highlight_options_kit);
6459 enum class EdgeType //used to determine the type of edge measured when using the EdgeAndRadius measurement type
6466 class Surface //helper class containing surfaces properties. Used for the FeatureToFeature measurement type
6481 LineKey normal_points; //the line representing the center line of surfaces of type Cylinder or Cone
6513 bool use_explicit_direction; //if true, we are moving the measurement along a specific vector, called explicit_direction
6537 bool inverted_measurement; //the smallest of the two possible angles is always chosen. If the user wants the other angle, the measurement is marked as 'inverted'
6549 bool highlight_on_mouse_over; //whether measurable geometry should be highlighted on mouse over
6550 HighlightOptionsKit mouse_over_highlight_options; //the options used for mouse over highlighting
6551 HighlightOptionsKit edit_measurement_highlight_options; //the options used for highlighting measurements while editing them
6552 UpdateNotifier highlight_update_notifier; //notifier used to know if the last highlight update has completed
6554 bool disable_highlighting; //in some situation we temporarily disable highlighting to improve performance
6555 bool Highlight(MeasurementType in_measurement_type, WindowPoint const & in_location, WindowKey & in_window, KeyPath const & in_path);
6558 bool InputDown(WindowPoint const & in_location, WindowKey & in_window, KeyPath const & in_path, size_t number_of_clicks);
6565 bool InsertEdgeRadiusMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_edge_key);
6566 bool InsertFeatureToFeatureMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_face_key, WindowKey & in_window);
6567 void InsertFeatureToFeatureGeometry(Point const & point_one, Point const & point_two, float distance);
6568 bool InsertAngleMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_face_key, WindowKey & in_window, SelectionResults const & in_selection_results);
6596 float LineSegmentDistance(Point & p0, Point & p1, Point & q0, Point & q1, LineKey & normal_one, LineKey & normal_two, Point & out_point_on_edge, Point & out_point_on_center_line, bool clamp = true);
6597 Point ClosestPointOnTriangleToPoint(Point const & p, Point const & a, Point const & b, Point const & c);
6598 float ClosestPointSegmentSegment(Point const & p1, Point const & q1, Point const & p2, Point const & q2, Point & c1, Point & c2);
6600 Point GetPlaneIntersection(Plane const & in_plane, KeyPath const & in_key_path, WindowPoint const & in_window_point);
Definition: hps.h:6514
Definition: hps.h:85
Definition: sprk_exchange.h:4654
HPS::Type ObjectType() const
Definition: sprk_exchange.h:364
Definition: sprk_exchange.h:44
Definition: sprk_exchange.h:6233
Definition: sprk_exchange.h:1357
Definition: sprk.h:1102
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5654
Definition: sprk_exchange.h:1540
Definition: sprk_exchange.h:6130
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5012
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5315
An InvalidSpecificationException is thrown when a method is called with non-sensical or contradictory...
Definition: hps.h:6118
Definition: sprk.h:68
Definition: sprk.h:936
virtual HPS::UTF8 GetName() const override
Definition: sprk_exchange.h:6149
Definition: sprk_exchange.h:982
Definition: sprk_exchange.h:3841
Definition: sprk_exchange.h:1253
Definition: sprk_exchange.h:1083
Definition: hps.h:1838
Definition: sprk_exchange.h:5178
Definition: sprk.h:1071
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5991
std::vector< KeyPath, Allocator< KeyPath > > KeyPathArray
Array of type HPS::KeyPath.
Definition: hps.h:6980
std::vector< byte, Allocator< byte > > ByteArray
Array of type HPS::byte.
Definition: hps.h:6956
Definition: hps.h:49288
Definition: hps.h:8044
std::vector< bool, Allocator< bool > > BoolArray
Array of type bool.
Definition: hps.h:6950
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4183
Definition: hps.h:16810
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1494
Definition: sprk_exchange.h:782
Definition: sprk_exchange.h:921
Definition: sprk_exchange.h:602
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1837
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5195
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5094
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4330
HPS::Type ObjectType() const
Definition: sprk_exchange.h:258
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1112
MeasurementInsertedEvent(Event const &in_event)
Definition: sprk_exchange.h:6207
Definition: sprk_exchange.h:5868
Definition: sprk_exchange.h:1814
Definition: sprk_exchange.h:541
Definition: sprk_exchange.h:6187
HPS::Type ObjectType() const
Definition: sprk_exchange.h:950
Definition: sprk_exchange.h:4520
Definition: sprk_exchange.h:1439
Definition: sprk_exchange.h:4995
Definition: hps.h:49186
Definition: hps.h:42550
Definition: sprk_exchange.h:4418
Definition: sprk_exchange.h:3574
Definition: sprk_exchange.h:360
Event * Clone() const
Definition: sprk_exchange.h:6269
Definition: hps.h:4697
MeasurementInsertedEvent()
Definition: sprk_exchange.h:6191
Definition: sprk_exchange.h:473
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3864
Definition: sprk_exchange.h:1229
Definition: sprk_exchange.h:4811
Definition: sprk_exchange.h:135
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5885
Definition: sprk_exchange.h:1329
Definition: sprk_exchange.h:4313
Definition: hps.h:4636
HPS::Type ObjectType() const
Definition: sprk_exchange.h:306
Definition: hps.h:7396
Definition: hps.h:48657
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4435
Definition: sprk_exchange.h:731
Definition: hps.h:44563
Definition: hps.h:49073
Definition: sprk_dwg.h:43
Definition: sprk_exchange.h:5077
Definition: sprk_exchange.h:1293
Definition: hps.h:16183
Definition: sprk_exchange.h:1422
Definition: sprk.h:2654
Definition: hps.h:49395
Definition: hps.h:45771
Definition: hps.h:48164
Definition: sprk_exchange.h:875
Definition: hps.h:6598
Definition: hps.h:14431
std::vector< UTF8, Allocator< UTF8 > > UTF8Array
Array of type HPS::UTF8.
Definition: hps.h:6948
Definition: sprk_exchange.h:6364
Definition: sprk.h:1317
HPS::Type ObjectType() const
Definition: sprk_exchange.h:5493
Definition: sprk_parasolid.h:39
Definition: sprk.h:3026
Definition: sprk_exchange.h:4166
Definition: sprk_exchange.h:5298
MeasurementDeletedEvent(Event const &in_event)
Definition: sprk_exchange.h:6253
Definition: sprk_exchange.h:828
Definition: sprk.h:3732
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4828
Definition: sprk_exchange.h:2039
Definition: sprk.h:3832
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4537
Definition: sprk_exchange.h:302
virtual HPS::UTF8 GetName() const override
Definition: sprk_exchange.h:6380
Event * Clone() const
Definition: sprk_exchange.h:6223
Definition: hps.h:7962
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1011
Definition: sprk_exchange.h:1376
Definition: hps.h:9675
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1065
Definition: sprk_exchange.h:1036
Definition: hps.h:25090
Definition: sprk.h:3919
Definition: hps.h:31523
Definition: sprk_exchange.h:1456
Definition: hps.h:586
Definition: sprk.h:1945
Definition: sprk_exchange.h:3529
MeasurementDeletedEvent()
Definition: sprk_exchange.h:6237
static Model CreateModel(char const *in_name="")
Definition: sprk_exchange.h:5476
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2062
Definition: sprk_exchange.h:225
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3597
Definition: hps.h:42046
Definition: sprk_exchange.h:5974
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4671
Definition: hps.h:43181
Definition: sprk_exchange.h:416
Definition: sprk_exchange.h:5637