sprk_exchange.h
162 TranslationNotifier Translate(Units in_units, TranslationOptionsKit const & in_translation_options);
170 ReloadNotifier Reload(TessellationOptionsKit const & in_tessellation_options = TessellationOptionsKit(), TranslationOptionsKit const & in_translation_options = TranslationOptionsKit());
362 /* Gets a list of sheets for this CADModel (if any). Only formats which support the concept of sheets can return a non-empty array.
377 ReloadNotifier Reload(TessellationOptionsKit const & in_options = TessellationOptionsKit(), TranslationOptionsKit const & in_translation_options = TranslationOptionsKit());
505 static Component CreateComponent(HPS::Component const & in_owner, HPS::Component::ComponentType in_type, A3DEntity * in_entity = nullptr);
512 static CADModel CreateCADModel(Model const & in_model = HPS::Factory::CreateModel(), A3DAsmModelFile * in_entity = nullptr, bool in_owns_entity = false);
525 static Capture CreateCapture(HPS::Component const & in_owner, A3DEntity * in_entity = nullptr, bool in_is_default = false);
1055 Configuration(char const * in_name, size_t in_count, Configuration const in_subconfigurations[]);
1183 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);
1206 static ImportNotifier Import(A3DAsmModelFile const * in_model_file, ModelFileImportOptionsKit const & in_options);
1215 static ImportNotifier Import(size_t in_byte_count, byte const in_prc_data[], ModelFileImportOptionsKit const & in_options);
1223 static ImportNotifier Import(ByteArray const & in_prc_data, ModelFileImportOptionsKit const & in_options);
1232 static TranslationNotifier Translate(char const * in_file_name, ImportOptionsKit const & in_options, TranslationOptionsKit const & in_translation_options);
1238 static ExportNotifier Export3MF(CADModel const & in_cad_model, char const * in_file_name, Export3MFOptionsKit const & in_options);
1245 static ExportNotifier Export3MF(KeyPathArray const & in_source, char const * in_file_name, Export3MFOptionsKit const & in_options);
1253 static ExportNotifier Export3MF(size_t in_count, KeyPath const in_source[], char const * in_file_name, Export3MFOptionsKit const & in_options);
1260 static ExportNotifier Export3MF(KeyPath in_source, char const * in_file_name, Export3MFOptionsKit const & in_options);
1266 static void ExportACIS(CADModel const & in_cad_model, char const * in_file_name, ExportACISOptionsKit const & in_options);
1272 static void ExportIGES(CADModel const & in_cad_model, char const * in_file_name, ExportIGESOptionsKit const & in_options);
1278 static void ExportJT(CADModel const & in_cad_model, char const * in_file_name, ExportJTOptionsKit const & in_options);
1284 static void ExportParasolid(CADModel const & in_cad_model, char const * in_file_name, ExportParasolidOptionsKit const & in_options);
1291 static ExportNotifier ExportPRC(CADModel const & in_cad_model, char const * in_file_name, ExportPRCOptionsKit const & in_options);
1298 static ExportNotifier ExportPRC(KeyPathArray const & in_source, char const * in_file_name, bool in_compress_tessellation = false);
1306 static ExportNotifier ExportPRC(size_t in_count, KeyPath const in_source [], char const * in_file_name, bool in_compress_tessellation = false);
1314 static ExportNotifier ExportPRC(KeyPath const & in_source, char const * in_file_name, bool in_compress_tessellation = false);
1336 static void ExportSTEP(CADModel const & in_cad_model, char const * in_file_name, ExportSTEPOptionsKit const & in_options);
1342 static void ExportSTL(CADModel const & in_cad_model, char const * in_file_name, ExportSTLOptionsKit const & in_options);
1348 static void ExportU3D(CADModel const & in_cad_model, char const * in_file_name, ExportU3DOptionsKit const & in_options);
1359 static void ExportXML(CADModel const & in_cad_model, char const * in_file_name, ExportXMLOptionsKit const & in_options);
1444 NURBSConversionOptionsKit & SetUVCurvesComputation(bool in_state, bool in_allow_cross_seam_curves);
1483 NURBSConversionOptionsKit & SetAllowedSurfaces(size_t in_count, SurfaceType const in_allowed_surfaces []);
1498 NURBSConversionOptionsKit & SetAllowedCurves(size_t in_count, CurveType const in_allowed_curves []);
1750 ImportOptionsKit & SetPMISubstitutionFont(char const * in_font_name, bool in_always_substitute = false);
1782 ImportOptionsKit & SetPMIDefaultColor(RGBColor const & in_color, bool in_override_color = false);
1804 ImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
1813 ImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
1848 ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], bool const in_recurse_flags[]);
1855 ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, BoolArray const & in_recurse_flags);
1865 ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], UTF8 const in_logical_names[], bool const in_recurse_flags[]);
1875 ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, UTF8Array const & in_logical_names, BoolArray const & in_recurse_flags);
1939 ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(size_t in_count, UTF8 const in_reference_sets[], bool in_apply_to_all_levels);
1947 ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(UTF8Array const & in_reference_sets, bool in_apply_to_all_levels);
2180 ImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
2213 ImportOptionsKit & SetIncrementalComponentPaths(size_t in_count, HPS::ComponentPath const in_paths[]);
2226 ImportOptionsKit & SetNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit const & in_nurbs_conversion_options);
2599 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
2605 bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals) const;
2637 bool ShowSearchDirectories(UTF8Array & out_directories, UTF8Array & out_logical_names, BoolArray & out_recurse_flags) const;
2669 bool ShowUnigraphicsPreferredReferenceSets(UTF8Array & out_reference_sets, bool & out_apply_to_all_levels) const;
2840 bool ShowNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit & out_nurbs_conversion_options) const;
3206 /* Dictates whether Visualize will flip pmi when rotating so that text / symbols remain readable.
3207 * \note If exchange reports that a markup does not contain leader lines, but the tessellation does contain lines that markup will not be
3208 * flipped. This is a precaution for models where the leader line geometry was included as part of the markup tessellation and
3228 ModelFileImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
3237 ModelFileImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
3239 /* Dictates whether Exchange tesselation data will be released from their parent representation items during import.
3240 * \warning Setting this option to true will cause future exports to output without tessellation data.
3285 ModelFileImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
3297 ModelFileImportOptionsKit & SetNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit const & in_nurbs_conversion_options);
3366 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
3372 bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals) const;
3418 bool ShowNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit & out_nurbs_conversion_options) const;
3498 Export3MFOptionsKit & SetAdditionalKeyPaths(size_t in_count, KeyPath const in_additional_key_paths[]);
3513 Export3MFOptionsKit & SetCurrentTessellationRetention(bool in_state, TessellationOptionsKit const & in_tessellation_kit = TessellationOptionsKit());
3523 bool ShowCurrentTessellationRetention(bool & out_state, Exchange::TessellationOptionsKit & out_tessellation_kit) const;
4230 ExportPRCOptionsKit & SetAdditionalKeyPaths(size_t in_count, KeyPath const in_additional_key_paths []);
4569 ExportSTLOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
4631 bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
4939 TessellationOptionsKit & SetLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
4946 TessellationOptionsKit & SetAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
4987 bool ShowLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
5027 CommonMeasurementOperator(Exchange::CADModel const & in_cad_model, MouseButtons in_mouse_trigger = MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger = ModifierKeys());
5078 MeasurementInsertedEvent(HPS::Key const & in_measurement_key, HPS::View const & in_view) : Event()
5124 MeasurementDeletedEvent(HPS::UTF8 const & in_measurement_name, HPS::View const & in_view) : Event()
5186 void PositionLinearMeasurementGeometry(WindowPoint const & window_cursor_location, KeyPath const & event_path, LineKey & leader_line_one, LineKey & leader_line_two,
5187 LineKey & measurement_line, LineKey & line_to_cursor, Point & original_point_one, Point & original_point_two, TextKey & text, UTF8 const & text_string,
5188 Point & distance_point_one, Point & distance_point_two, SegmentKey & current_measurement_segment, Plane const & measurement_plane = Plane(), Vector const & explicit_direction = Vector());
5190 void SetMaterialsOnMeasurementSegment(HPS::SegmentKey const & set_materials_here, HPS::MaterialMappingKit const & materials_to_apply);
5258 MeasurementOperator(Exchange::CADModel const & in_cad_model, MouseButtons in_mouse_trigger = MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger = ModifierKeys());
5316 * \param in_highlighting Whether measurable geometry should be highlighted when mousing over it. */
5320 * \param in_highlighting Whether measurable geometry should be highlighted when mousing over it.
5322 void SetMouseOverHighlighting(bool in_highlighting, HighlightOptionsKit const & in_highlight_options_kit);
5325 * \return <span class='code'>true</span> if measurable geometry is highlighted on mouse over, <span class='code'>false</span> otherwise. */
5333 * \return <span class='code'>true</span> if a measurement is being inserted or manipulated, <span class='code'>false</span> otherwise. */
5337 enum class EdgeType //used to determine the type of edge measured when using the EdgeAndRadius measurement type
5344 class Surface //helper class containing surfaces properties. Used for the FeatureToFeature measurement type
5359 LineKey normal_points; //the line representing the center line of surfaces of type Cylinder or Cone
5391 bool use_explicit_direction; //if true, we are moving the measurement along a specific vector, called explicit_direction
5415 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'
5427 bool highlight_on_mouse_over; //whether measurable geometry should be highlighted on mouse over
5428 HighlightOptionsKit mouse_over_highlight_options; //the options used for mouse over highlighting
5429 HighlightOptionsKit edit_measurement_highlight_options; //the options used for highlighting measurements while editing them
5430 UpdateNotifier highlight_update_notifier; //notifier used to know if the last highlight update has completed
5432 bool disable_highlighting; //in some situation we temporarily disable highlighting to improve performance
5433 bool Highlight(MeasurementType in_measurement_type, WindowPoint const & in_location, WindowKey & in_window, KeyPath const & in_path);
5436 bool InputDown(WindowPoint const & in_location, WindowKey & in_window, KeyPath const & in_path, size_t number_of_clicks);
5443 bool InsertEdgeRadiusMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_edge_key);
5444 bool InsertFeatureToFeatureMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_face_key, WindowKey & in_window);
5445 void InsertFeatureToFeatureGeometry(Point const & point_one, Point const & point_two, float distance);
5446 bool InsertAngleMeasurement(KeyPath const & in_selection_path, WindowPoint & in_selection_position, Key const & in_face_key, WindowKey & in_window, SelectionResults const & in_selection_results);
5475 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);
5476 Point ClosestPointOnTriangleToPoint(Point const & p, Point const & a, Point const & b, Point const & c);
5477 float ClosestPointSegmentSegment(Point const & p1, Point const & q1, Point const & p2, Point const & q2, Point & c1, Point & c2);
5479 Point GetPlaneIntersection(Plane const & in_plane, KeyPath const & in_key_path, WindowPoint const & in_window_point);
Definition: hps.h:6205
Definition: sprk_exchange.h:4129
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3867
Definition: sprk_exchange.h:44
Definition: sprk_exchange.h:5114
Definition: sprk_exchange.h:959
Definition: sprk.h:264
Definition: sprk_exchange.h:1124
Definition: sprk_exchange.h:5011
An InvalidSpecificationException is thrown when a method is called with non-sensical or contradictory...
Definition: hps.h:5685
Definition: sprk.h:66
Definition: sprk.h:100
Definition: sprk_exchange.h:598
Definition: sprk_exchange.h:3144
Definition: sprk_exchange.h:858
Definition: sprk_exchange.h:697
virtual HPS::UTF8 GetName() const OVERRIDE
Definition: sprk_exchange.h:5030
HPS::Type ObjectType() const
Definition: sprk_exchange.h:679
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4766
Definition: hps.h:1683
HPS::Type ObjectType() const
Definition: sprk_exchange.h:725
Definition: sprk_exchange.h:4750
Definition: sprk.h:234
Definition: hps.h:46516
Definition: hps.h:7713
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4145
Definition: hps.h:15928
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3690
Definition: sprk_exchange.h:454
Definition: sprk_exchange.h:538
Definition: sprk_exchange.h:297
virtual HPS::UTF8 GetName() const OVERRIDE
Definition: sprk_exchange.h:5261
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4000
MeasurementInsertedEvent(Event const &in_event)
Definition: sprk_exchange.h:5088
Definition: sprk_exchange.h:1367
Definition: sprk_exchange.h:238
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4504
Definition: sprk_exchange.h:5068
Definition: sprk_exchange.h:3851
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2916
Definition: hps.h:46415
Definition: hps.h:40521
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1078
Definition: sprk_exchange.h:3573
Definition: sprk_exchange.h:2894
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4301
Definition: hps.h:4385
MeasurementInsertedEvent()
Definition: sprk_exchange.h:5072
Definition: sprk_exchange.h:834
Definition: sprk_exchange.h:4488
Definition: sprk_exchange.h:111
Definition: sprk_exchange.h:931
Definition: hps.h:4324
Definition: hps.h:7086
Definition: hps.h:45907
Definition: sprk_exchange.h:409
Definition: hps.h:42478
Definition: hps.h:46303
Definition: sprk_exchange.h:4650
Definition: sprk_exchange.h:896
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3589
Definition: hps.h:15321
Event * Clone() const
Definition: sprk_exchange.h:5150
Definition: sprk_exchange.h:1024
Definition: sprk.h:1724
Definition: hps.h:46622
Definition: hps.h:43558
Definition: hps.h:45426
Definition: sprk_exchange.h:498
Definition: hps.h:6305
Definition: hps.h:13582
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4883
Definition: sprk_exchange.h:5245
Definition: sprk.h:473
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1613
Definition: sprk_parasolid.h:39
Definition: sprk.h:2038
Definition: sprk_exchange.h:3427
Definition: sprk_exchange.h:3674
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1389
MeasurementDeletedEvent(Event const &in_event)
Definition: sprk_exchange.h:5134
Definition: sprk.h:2357
Definition: sprk_exchange.h:1591
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3166
HPS::Type ObjectType() const
Definition: sprk_exchange.h:626
Definition: sprk.h:2456
Definition: hps.h:7632
Definition: sprk_exchange.h:978
Event * Clone() const
Definition: sprk_exchange.h:5104
HPS::Type ObjectType() const
Definition: sprk_exchange.h:4666
Definition: hps.h:9239
HPS::Type ObjectType() const
Definition: sprk_exchange.h:205
Definition: sprk_exchange.h:651
Definition: hps.h:23598
Definition: sprk.h:2542
Definition: hps.h:29924
Definition: sprk_exchange.h:1041
Definition: hps.h:517
Definition: sprk.h:1093
Definition: sprk_exchange.h:2849
MeasurementDeletedEvent()
Definition: sprk_exchange.h:5118
static Model CreateModel(char const *in_name="")
Definition: sprk_exchange.h:3984
Definition: sprk_exchange.h:173
Definition: hps.h:40018
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3443
Definition: sprk_exchange.h:4867
HPS::Type ObjectType() const
Definition: sprk_exchange.h:566
Definition: hps.h:41131
Definition: sprk_exchange.h:4285