sprk_exchange.h
1 // Copyright (c) Tech Soft 3D, Inc.
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
10 #ifndef SPRK_EXCHANGE_H
11 #define SPRK_EXCHANGE_H
12 
13 #include "sprk.h"
14 
15 typedef void A3DEntity;
16 typedef void A3DAsmModelFile;
17 
18 #ifdef _MSC_VER
19 #ifndef STATIC_APP
20 # ifdef SPROCKETS
21 # define EXCHANGE_API __declspec (dllexport)
22 # else
23 # define EXCHANGE_API __declspec (dllimport)
24 # endif
25 #endif
26 #else
27 # include <stddef.h>
28 # if defined(LINUX_SYSTEM) && defined(SPROCKETS)
29 # ifndef STATIC_APP
30 # define EXCHANGE_API __attribute__ ((visibility ("default")))
31 # endif
32 # endif
33 #endif
34 
35 #ifndef EXCHANGE_API
36 # define EXCHANGE_API
37 #endif
38 
39 namespace HPS
40 {
41 
43 class EXCHANGE_API Exchange
44 {
45 public:
46 
47  class Component;
48  class Configuration;
49  class Sheet;
51  class TranslationNotifier;
54  class ReloadNotifier;
55 
56  typedef std::vector<Configuration, HPS::Allocator<Configuration> > ConfigurationArray;
57  typedef std::vector<Sheet, HPS::Allocator<Sheet> > SheetArray;
58  typedef HPS::IntArray ParasolidEntityArray;
59 
62  enum class Units
63  {
64  Unknown,
65  Point,
66  Inch,
67  Millimeter,
68  Centimeter,
69  Pica,
70  Foot,
71  Yard,
72  Meter,
73  Kilometer,
74  Mile
75  };
76 
79  class EXCHANGE_API Component : public HPS::Component
80  {
81  public:
83  Component();
84 
88  Component(HPS::Component const & in_that);
89 
92  Component(Exchange::Component const & in_that);
93 
96  Component(Exchange::Component && in_that);
97 
98  virtual ~Component();
99 
100  HPS::Type ObjectType() const { return HPS::Type::ExchangeComponent; }
101 
102 #if !defined(_MSC_VER) || _MSC_VER >= 1900
103  Component & operator=(Component const & in_that) = default;
104 #endif
105 
109  Component & operator=(Exchange::Component && in_that);
110 
111 
114  A3DEntity * GetExchangeEntity() const;
115 
116 
122  void Tessellate(TessellationOptionsKit const & in_options);
123 
130  TranslationNotifier Translate(Units in_units, TranslationOptionsKit const & in_translation_options);
131 
135  ReloadNotifier Reload(TessellationOptionsKit const & in_options = TessellationOptionsKit());
136  };
137 
138  class EXCHANGE_API ProductOccurrence : public Exchange::Component
139  {
140  public:
143 
147  ProductOccurrence(HPS::Component const & in_that);
148 
152  ProductOccurrence(Component const & in_that);
153 
156  ProductOccurrence(ProductOccurrence const & in_sheet);
157 
162 
166  ProductOccurrence & operator=(ProductOccurrence && in_that);
167 
168  virtual ~ProductOccurrence();
169 
170  HPS::Type ObjectType() const { return HPS::Type::ExchangeProductOccurrence; }
171 
175  bool Equals(ProductOccurrence const & in_kit) const;
176 
180  bool operator==(ProductOccurrence const & in_kit) const;
181 
185  bool operator!=(ProductOccurrence const & in_kit) const;
186  };
187 
189  class EXCHANGE_API Sheet : public Exchange::Component
190  {
191  public:
193  Sheet();
194 
198  Sheet(HPS::Component const & in_that);
199 
203  Sheet(Component const & in_that);
204 
207  Sheet(Sheet const & in_sheet);
208 
212  Sheet(Sheet && in_that);
213 
217  Sheet & operator=(Sheet && in_that);
218 
219  virtual ~Sheet();
220 
221  HPS::Type ObjectType() const { return HPS::Type::ExchangeSheet; }
222 
226  bool Equals(Sheet const & in_kit) const;
227 
228 #if !defined(_MSC_VER) || _MSC_VER >= 1900
229  Sheet & operator=(Sheet const & in_that) = default;
230 #endif
231 
235  bool operator==(Sheet const & in_kit) const;
236 
240  bool operator!=(Sheet const & in_kit) const;
241 
242  /* Activates this sheet */
243  HPS::View Activate();
244  };
245 
248  class EXCHANGE_API CADModel : public HPS::CADModel
249  {
250  public:
252  CADModel();
253 
257  CADModel(Component const & in_that);
258 
262  CADModel(HPS::CADModel const & in_that);
263 
266  CADModel(Exchange::CADModel const & in_that);
267 
270  CADModel(Exchange::CADModel && in_that);
271 
272  virtual ~CADModel();
273 
274  HPS::Type ObjectType() const { return HPS::Type::ExchangeCADModel; }
275 
276 #if !defined(_MSC_VER) || _MSC_VER >= 1900
277  CADModel & operator=(Exchange::CADModel const & in_that) = default;
278 #endif
279 
283  CADModel & operator=(Exchange::CADModel && in_that);
284 
285 
288  A3DEntity * GetExchangeEntity() const;
289 
295  bool GetEntityOwnership() const;
296 
297 
301  UTF8Array GetCurrentConfiguration() const;
302 
306  ConfigurationArray GetConfigurations() const;
307 
308  /* Gets a list of sheets for this CADModel (if any). Only formats which support the concept of sheets can return a non-empty array.
309  * \return The list of sheets for this CADModel */
310  SheetArray GetSheets() const;
311 
317  TranslationNotifier Translate(TranslationOptionsKit const & in_translation_options);
318 
321  ReloadNotifier Reload(TessellationOptionsKit const & in_options = TessellationOptionsKit());
322  };
323 
326  class EXCHANGE_API Capture : public HPS::Capture
327  {
328  public:
330  Capture();
331 
335  Capture(Component const & in_that);
336 
340  Capture(HPS::Capture const & in_that);
341 
344  Capture(Exchange::Capture const & in_that);
345 
348  Capture(Exchange::Capture && in_that);
349 
350  virtual ~Capture();
351 
352  HPS::Type ObjectType() const { return HPS::Type::ExchangeCapture; }
353 
354 #if !defined(_MSC_VER) || _MSC_VER >= 1900
355  Capture & operator=(Exchange::Capture const & in_that) = default;
356 #endif
357 
361  Capture & operator=(Exchange::Capture && in_that);
362 
363 
366  A3DEntity * GetExchangeEntity() const;
367  };
368 
371  class EXCHANGE_API Filter : public HPS::Filter
372  {
373  public:
375  Filter();
376 
380  Filter(Component const & in_that);
381 
385  Filter(HPS::Filter const & in_that);
386 
389  Filter(Exchange::Filter const & in_that);
390 
393  Filter(Exchange::Filter && in_that);
394 
395  virtual ~Filter();
396 
397  HPS::Type ObjectType() const { return HPS::Type::ExchangeFilter; }
398 
399 #if !defined(_MSC_VER) || _MSC_VER >= 1900
400  Filter & operator=(Exchange::Filter const & in_that) = default;
401 #endif
402 
406  Filter & operator=(Exchange::Filter && in_that);
407 
408 
411  A3DEntity * GetExchangeEntity() const;
412  };
413 
415  class EXCHANGE_API Factory : public Sprocket
416  {
417  public:
422  static Component CreateComponent(HPS::Component const & in_owner, HPS::Component::ComponentType in_type, A3DEntity * in_entity = nullptr);
423 
429  static CADModel CreateCADModel(Model const & in_model = HPS::Factory::CreateModel(), A3DAsmModelFile * in_entity = nullptr, bool in_owns_entity = false);
430 
434  static Filter CreateFilter(HPS::Component const & in_owner, A3DEntity * in_entity = nullptr);
435 
442  static Capture CreateCapture(HPS::Component const & in_owner, A3DEntity * in_entity = nullptr, bool in_is_default = false);
443 
447  static Sheet CreateSheet(HPS::Component const & in_owner, A3DEntity * in_entity = nullptr);
448 
449  private:
451  Factory();
452  };
453 
455  class EXCHANGE_API ImportNotifier : public IONotifier
456  {
457  public:
459  ImportNotifier();
460 
463  ImportNotifier(ImportNotifier const & in_that);
464 
469  ImportNotifier(IONotifier const & in_that);
470 
474  ImportNotifier(ImportNotifier && in_that);
475 
479  ImportNotifier & operator=(ImportNotifier && in_that);
480 
481  virtual ~ImportNotifier();
482 
483  HPS::Type ObjectType() const { return HPS::Type::ExchangeImportNotifier; };
484 
488  ImportNotifier & operator=(ImportNotifier const & in_that);
489 
492  void Assign(ImportNotifier const & in_that);
493 
496  Exchange::CADModel GetCADModel() const;
497 
500  Time GetImportTime() const;
501 
504  Time GetParseTime() const;
505  };
506 
508  class EXCHANGE_API TranslationNotifier : public IONotifier
509  {
510  public:
513 
516  TranslationNotifier(TranslationNotifier const & in_that);
517 
522  TranslationNotifier(IONotifier const & in_that);
523 
528 
532  TranslationNotifier & operator=(TranslationNotifier && in_that);
533 
534  virtual ~TranslationNotifier();
535 
536  HPS::Type ObjectType() const { return HPS::Type::ExchangeTranslationNotifier; };
537 
541  TranslationNotifier & operator=(TranslationNotifier const & in_that);
542 
545  void Assign(TranslationNotifier const & in_that);
546 
549  Exchange::ParasolidEntityArray GetParasolidParts() const;
550 
553  HPS::Time GetImportTime() const;
554 
557  HPS::Time GetTranslationTime() const;
558  };
559 
561  class EXCHANGE_API ExportNotifier : public IONotifier
562  {
563  public:
565  ExportNotifier();
566 
569  ExportNotifier(ExportNotifier const & in_that);
570 
575  ExportNotifier(IONotifier const & in_that);
576 
580  ExportNotifier(ExportNotifier && in_that);
581 
585  ExportNotifier & operator=(ExportNotifier && in_that);
586 
587  virtual ~ExportNotifier();
588 
589  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportNotifier; };
590 
594  ExportNotifier & operator=(ExportNotifier const & in_that);
595 
598  void Assign(ExportNotifier const & in_that);
599 
603  A3DAsmModelFile * GetModelFile() const;
604  };
605 
607  class EXCHANGE_API ReloadNotifier : public IONotifier
608  {
609  public:
611  ReloadNotifier();
612 
615  ReloadNotifier(ReloadNotifier const & in_that);
616 
621  ReloadNotifier(IONotifier const & in_that);
622 
626  ReloadNotifier(ReloadNotifier && in_that);
627 
631  ReloadNotifier & operator=(ReloadNotifier && in_that);
632 
633  virtual ~ReloadNotifier();
634 
635  HPS::Type ObjectType() const { return HPS::Type::ExchangeReloadNotifier; };
636 
640  ReloadNotifier & operator=(ReloadNotifier const & in_that);
641 
644  void Assign(ReloadNotifier const & in_that);
645  };
646 
647 
648  class ImportOptionsKit;
649  class ModelFileImportOptionsKit;
650  class ExportACISOptionsKit;
651  class ExportIGESOptionsKit;
652  class ExportJTOptionsKit;
653  class ExportPRCOptionsKit;
654  class ExportSTEPOptionsKit;
655  class ExportSTLOptionsKit;
656  class ExportU3DOptionsKit;
657  class ExportXMLOptionsKit;
658 
659 
662  enum class BRepMode
663  {
666  TessellationOnly,
669  BRepOnly,
672  BRepAndTessellation,
673  };
674 
678  {
679  PMIOnly,
680  ModelAndPMI
681  };
682 
684  class EXCHANGE_API Tessellation
685  {
686  public:
689  enum class Type
690  {
691  Standard,
692  Custom
693  };
694 
695 
698  enum class Level
699  {
700  ExtraLow,
701  Low,
702  Medium,
703  High,
704  ExtraHigh,
705  };
706 
708  class EXCHANGE_API Chord
709  {
710  public:
713  enum class Limit
714  {
717  Ratio,
720  Height
721  };
722 
723  private:
725  Chord();
726  };
727 
730  enum class Accuracy
731  {
734  Standard,
737  Accurate
738  };
739 
740  private:
742  Tessellation();
743  };
744 
746  class EXCHANGE_API JT
747  {
748  public:
751  enum class Content
752  {
753  Geometry,
754  Tessellation,
755  GeometryAndTessellation
756  };
757 
760  enum class TessellationLevel
761  {
762  Low,
763  Medium,
764  High,
765  };
766 
767  private:
769  JT();
770  };
771 
773  class EXCHANGE_API STEP
774  {
775  public:
778  enum class Field
779  {
780  ProductName,
781  NextAssemblyUsageOccurrenceID,
782  NextAssemblyUsageOccurrenceName,
783  NextAssemblyUsageOccurrenceDescription
784  };
785 
788  enum class Format
789  {
790  AP203,
791  AP214
792  };
793 
794  private:
796  STEP();
797  };
798 
800  class EXCHANGE_API PRC
801  {
802  public:
805  enum class BRepCompression
806  {
807  None,
808  Low,
809  Medium,
810  High
811  };
812 
813  private:
815  PRC();
816  };
817 
819  class EXCHANGE_API ProE
820  {
821  public:
824  enum class SessionColor
825  {
827  LastCreoVersion,
829  ExchangeDefault,
832  UserDefined
833  };
834 
835  private:
837  ProE();
838  };
839 
841  class EXCHANGE_API U3D
842  {
843  public:
846  enum class Version
847  {
848  ECMA1,
849  ECMA3
850  };
851 
852  private:
854  U3D();
855  };
856 
858  class EXCHANGE_API Configuration : public HPS::Sprocket
859  {
860  public:
862  Configuration();
863 
866  Configuration(char const * in_name);
867 
872  Configuration(char const * in_name, size_t in_count, Configuration const in_subconfigurations[]);
873 
877  Configuration(char const * in_name, ConfigurationArray const & in_subconfigurations);
878 
881  Configuration(Configuration const & in_configuration);
882 
886  Configuration(Configuration && in_that);
887 
891  Configuration & operator=(Configuration && in_that);
892 
893  virtual ~Configuration();
894 
895  HPS::Type ObjectType() const { return HPS::Type::ExchangeConfiguration; }
896 
897 
900  void Set(Configuration const & in_kit);
901 
904  void Show(Configuration & out_kit) const;
905 
909  Configuration & operator=(Configuration const & in_kit);
910 
913  bool Empty() const;
914 
918  bool Equals(Configuration const & in_kit) const;
919 
923  bool operator==(Configuration const & in_kit) const;
924 
928  bool operator!=(Configuration const & in_kit) const;
929 
930 
933  HPS::UTF8 GetName() const;
934 
937  ConfigurationArray GetSubconfigurations() const;
938  };
939 
941  class EXCHANGE_API File
942  {
943  public:
946  enum class Format
947  {
948  Unsupported,
949  ACIS,
950  CADDS,
951  CATIAV4,
952  CATIAV5,
953  CGR,
954  COLLADA,
955  CreoProE,
956  IDEAS,
957  IFC,
958  IGES,
959  Inventor,
960  JT,
961  KeyholeMarkupLanguage,
962  LatticeXVL,
963  OneSpaceDesigner,
964  Parasolid,
965  PDF,
966  PRC,
967  Rhino,
968  NXUnigraphics,
969  SolidEdge,
970  SolidWorks,
971  STEP,
972  StereoLithography,
973  ThreeDStudioMax,
974  ThreeDXML,
975  Universal3D,
976  VDAFS,
977  VRML,
978  WavefrontObject,
979  };
980 
982  static Format GetFormat(char const * in_file_name);
983 
987  static ConfigurationArray GetConfigurations(char const * in_file_name);
988 
995  static ImportNotifier Import(char const * in_file_name, ImportOptionsKit const & in_options);
996 
1003  static ImportNotifier Import(A3DAsmModelFile const * in_model_file, ModelFileImportOptionsKit const & in_options);
1004 
1005 
1012  static TranslationNotifier Translate(char const * in_file_name, ImportOptionsKit const & in_options, TranslationOptionsKit const & in_translation_options);
1013 
1018  static void ExportACIS(CADModel const & in_cad_model, char const * in_file_name, ExportACISOptionsKit const & in_options);
1019 
1024  static void ExportIGES(CADModel const & in_cad_model, char const * in_file_name, ExportIGESOptionsKit const & in_options);
1025 
1030  static void ExportJT(CADModel const & in_cad_model, char const * in_file_name, ExportJTOptionsKit const & in_options);
1031 
1036  static void ExportParasolid(CADModel const & in_cad_model, char const * in_file_name, ExportParasolidOptionsKit const & in_options);
1037 
1042  static void ExportPRC(CADModel const & in_cad_model, char const * in_file_name, ExportPRCOptionsKit const & in_options);
1043 
1049  static ExportNotifier ExportPRC(SprocketPath const & in_source, char const * in_file_name, bool in_compress_tessellation = false);
1050 
1054  static ExportNotifier ExportPRC(SprocketPath const & in_source);
1055 
1060  static void ExportSTEP(CADModel const & in_cad_model, char const * in_file_name, ExportSTEPOptionsKit const & in_options);
1061 
1066  static void ExportSTL(CADModel const & in_cad_model, char const * in_file_name, ExportSTLOptionsKit const & in_options);
1067 
1072  static void ExportU3D(CADModel const & in_cad_model, char const * in_file_name, ExportU3DOptionsKit const & in_options);
1073 
1077  static void ExportVRML(CADModel const & in_cad_model, char const * in_file_name);
1078 
1083  static void ExportXML(CADModel const & in_cad_model, char const * in_file_name, ExportXMLOptionsKit const & in_options);
1084 
1085  private:
1087  File();
1088  };
1089 
1091  class EXCHANGE_API ImportOptionsKit : public HPS::Sprocket
1092  {
1093  public:
1095  ImportOptionsKit();
1096 
1099  ImportOptionsKit(ImportOptionsKit const & in_kit);
1100 
1104  ImportOptionsKit(ImportOptionsKit && in_that);
1105 
1109  ImportOptionsKit & operator=(ImportOptionsKit && in_that);
1110 
1111  virtual ~ImportOptionsKit();
1112 
1113  HPS::Type ObjectType() const { return HPS::Type::ExchangeImportOptionsKit; }
1114 
1118  static ImportOptionsKit GetDefault();
1119 
1122  void Set(ImportOptionsKit const & in_kit);
1123 
1126  void Show(ImportOptionsKit & out_kit) const;
1127 
1131  ImportOptionsKit & operator=(ImportOptionsKit const & in_kit);
1132 
1135  bool Empty() const;
1136 
1140  bool Equals(ImportOptionsKit const & in_kit) const;
1141 
1145  bool operator==(ImportOptionsKit const & in_kit) const;
1146 
1150  bool operator!=(ImportOptionsKit const & in_kit) const;
1151 
1152 
1158  ImportOptionsKit & SetBRepData(bool in_state);
1159 
1165  ImportOptionsKit & SetBRepMode(BRepMode in_mode);
1166 
1172  ImportOptionsKit & SetSolids(bool in_state);
1173 
1179  ImportOptionsKit & SetSurfaces(bool in_state);
1180 
1186  ImportOptionsKit & SetWireframes(bool in_state);
1187 
1193  ImportOptionsKit & SetPMI(bool in_state);
1194 
1201  ImportOptionsKit & SetAttributes(bool in_state);
1202 
1208  ImportOptionsKit & SetHiddenObjects(bool in_state);
1209 
1215  ImportOptionsKit & SetConstructionAndReferences(bool in_state);
1216 
1222  ImportOptionsKit & SetActiveFilter(bool in_state);
1223 
1229  ImportOptionsKit & SetDefaultUnits(Units in_units);
1230 
1237  ImportOptionsKit & SetPMISubstitutionFont(char const * in_font_name, bool in_always_substitute = false);
1238 
1244  ImportOptionsKit & SetPMIPrecision(size_t in_precision);
1245 
1251  ImportOptionsKit & SetPMIDefaultUnits(Units in_units);
1252 
1258  ImportOptionsKit & SetPMIDefaultColor(RGBColor const & in_color);
1259 
1265  ImportOptionsKit & SetTessellationLevel(Tessellation::Level in_level);
1266 
1273  ImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
1274 
1282  ImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
1283 
1289  ImportOptionsKit & SetTessellationPreservesUVPoints(bool in_state);
1290 
1296  ImportOptionsKit & SetTessellationMaximumEdgeLength(double in_length);
1297 
1303  ImportOptionsKit & SetTextureDirectories(size_t in_count, UTF8 const in_directories[]);
1304 
1309  ImportOptionsKit & SetTextureDirectories(UTF8Array const & in_directories);
1310 
1317  ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], bool const in_recurse_flags[]);
1318 
1324  ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, BoolArray const & in_recurse_flags);
1325 
1334  ImportOptionsKit & SetSearchDirectories(size_t in_count, UTF8 const in_directories[], UTF8 const in_logical_names[], bool const in_recurse_flags[]);
1335 
1344  ImportOptionsKit & SetSearchDirectories(UTF8Array const & in_directories, UTF8Array const & in_logical_names, BoolArray const & in_recurse_flags);
1345 
1351  ImportOptionsKit & SetSearchDirectoriesByFile(size_t in_count, UTF8 const in_file_names[]);
1352 
1357  ImportOptionsKit & SetSearchDirectoriesByFile(UTF8Array const & in_file_names);
1358 
1363  ImportOptionsKit & SetConfiguration(char const * in_configuration);
1364 
1370  ImportOptionsKit & SetConfiguration(size_t in_count, UTF8 const in_configuration[]);
1371 
1376  ImportOptionsKit & SetConfiguration(UTF8Array const & in_configuration);
1377 
1383  ImportOptionsKit & SetCatiaV4LogicalNameForRootDirectory(char const * in_name);
1384 
1391  ImportOptionsKit & SetCatiaV4LogicalNameSearching(bool in_state);
1392 
1399  ImportOptionsKit & SetCatiaV5Cache(bool in_active, char const * in_path);
1400 
1408  ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(size_t in_count, UTF8 const in_reference_sets[], bool in_apply_to_all_levels);
1409 
1416  ImportOptionsKit & SetUnigraphicsPreferredReferenceSets(UTF8Array const & in_reference_sets, bool in_apply_to_all_levels);
1417 
1423  ImportOptionsKit & SetUnigraphicsFittedCamera(bool in_state);
1424 
1430  ImportOptionsKit & SetProECodePageName(char const * in_name);
1431 
1437  ImportOptionsKit & SetProEDimensionTolerance(bool in_state);
1438 
1444  ImportOptionsKit & SetProESubpartPMI(bool in_state);
1445 
1451  ImportOptionsKit & SetProESessionColor(ProE::SessionColor in_type);
1452 
1459  ImportOptionsKit & SetSTEPNamePreference(STEP::Field in_field);
1460 
1466  ImportOptionsKit & SetSTEPCodePageName(char const * in_name);
1467 
1473  ImportOptionsKit & SetSTEPFirstColorPreference(bool in_state);
1474 
1480  ImportOptionsKit & SetSTEPShellBasedSurfaceModelSplitting(bool in_state);
1481 
1487  ImportOptionsKit & SetSTEPOrientationHealing(bool in_state);
1488 
1494  ImportOptionsKit & SetIFCCodePageName(char const * in_name);
1495 
1502  ImportOptionsKit & SetIFCAttributeXMLFile(char const * in_filename);
1503 
1509  ImportOptionsKit & SetIFCOwnerHistoryOptimization(bool in_state);
1510 
1516  ImportOptionsKit & SetIFCFaceOptimization(bool in_state);
1517 
1524  ImportOptionsKit & SetIFCEdges(bool in_state);
1525 
1531  ImportOptionsKit & SetIFCMetadata(bool in_state);
1532 
1538  ImportOptionsKit & SetPDF3DStreamIndex(size_t in_index);
1539 
1545  ImportOptionsKit & SetJTTessellationLevel(JT::TessellationLevel in_jt_tessellation_level);
1546 
1550  ImportOptionsKit & SetAnnotationCaptureFitting(AnnotationCaptureFitting in_fitting);
1551 
1563  ImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
1564 
1565 
1569  ImportOptionsKit & UnsetBRepData();
1570 
1573  ImportOptionsKit & UnsetBRepMode();
1574 
1577  ImportOptionsKit & UnsetSolids();
1578 
1581  ImportOptionsKit & UnsetSurfaces();
1582 
1585  ImportOptionsKit & UnsetWireframes();
1586 
1589  ImportOptionsKit & UnsetPMI();
1590 
1593  ImportOptionsKit & UnsetAttributes();
1594 
1597  ImportOptionsKit & UnsetHiddenObjects();
1598 
1601  ImportOptionsKit & UnsetConstructionAndReferences();
1602 
1605  ImportOptionsKit & UnsetActiveFilter();
1606 
1609  ImportOptionsKit & UnsetDefaultUnits();
1610 
1613  ImportOptionsKit & UnsetPMISubstitutionFont();
1614 
1617  ImportOptionsKit & UnsetPMIPrecision();
1618 
1621  ImportOptionsKit & UnsetPMIDefaultUnits();
1622 
1625  ImportOptionsKit & UnsetPMIDefaultColor();
1626 
1629  ImportOptionsKit & UnsetTessellationLevel();
1630 
1633  ImportOptionsKit & UnsetTessellationAccuracy();
1634 
1637  ImportOptionsKit & UnsetTessellationPreservesUVPoints();
1638 
1641  ImportOptionsKit & UnsetTessellationMaximumEdgeLength();
1642 
1645  ImportOptionsKit & UnsetTextureDirectories();
1646 
1649  ImportOptionsKit & UnsetSearchDirectories();
1650 
1653  ImportOptionsKit & UnsetSearchDirectoriesByFile();
1654 
1657  ImportOptionsKit & UnsetConfiguration();
1658 
1661  ImportOptionsKit & UnsetCatiaV4LogicalNameForRootDirectory();
1662 
1665  ImportOptionsKit & UnsetCatiaV4LogicalNameSearching();
1666 
1669  ImportOptionsKit & UnsetCatiaV5Cache();
1670 
1673  ImportOptionsKit & UnsetUnigraphicsPreferredReferenceSets();
1674 
1677  ImportOptionsKit & UnsetUnigraphicsFittedCamera();
1678 
1681  ImportOptionsKit & UnsetProECodePageName();
1682 
1685  ImportOptionsKit & UnsetProEDimensionTolerance();
1686 
1689  ImportOptionsKit & UnsetProESubpartPMI();
1690 
1693  ImportOptionsKit & UnsetProESessionColor();
1694 
1697  ImportOptionsKit & UnsetSTEPNamePreference();
1698 
1701  ImportOptionsKit & UnsetSTEPFirstColorPreference();
1702 
1705  ImportOptionsKit & UnsetSTEPCodePageName();
1706 
1709  ImportOptionsKit & UnsetSTEPShellBasedSurfaceModelSplitting();
1710 
1713  ImportOptionsKit & UnsetSTEPOrientationHealing();
1714 
1717  ImportOptionsKit & UnsetIFCCodePageName();
1718 
1721  ImportOptionsKit & UnsetIFCAttributeXMLFile();
1722 
1725  ImportOptionsKit & UnsetIFCOwnerHistoryOptimization();
1726 
1729  ImportOptionsKit & UnsetIFCFaceOptimization();
1730 
1733  ImportOptionsKit & UnsetIFCEdges();
1734 
1737  ImportOptionsKit & UnsetIFCMetadata();
1738 
1741  ImportOptionsKit & UnsetPDF3DStreamIndex();
1742 
1745  ImportOptionsKit & UnsetJTTessellationLevel();
1746 
1749  ImportOptionsKit & UnsetAnnotationCaptureFitting();
1750 
1753  ImportOptionsKit & UnsetLocation();
1754 
1757  ImportOptionsKit & UnsetEverything();
1758 
1759 
1764  bool ShowBRepData(bool & out_state) const;
1765 
1769  bool ShowBRepMode(BRepMode & out_mode) const;
1770 
1774  bool ShowSolids(bool & out_state) const;
1775 
1779  bool ShowSurfaces(bool & out_state) const;
1780 
1784  bool ShowWireframes(bool & out_state) const;
1785 
1789  bool ShowPMI(bool & out_state) const;
1790 
1794  bool ShowAttributes(bool & out_state) const;
1795 
1799  bool ShowHiddenObjects(bool & out_state) const;
1800 
1804  bool ShowConstructionAndReferences(bool & out_state) const;
1805 
1809  bool ShowActiveFilter(bool & out_state) const;
1810 
1814  bool ShowDefaultUnits(Units & out_units) const;
1815 
1820  bool ShowPMISubstitutionFont(UTF8 & out_font_name, bool & out_always_substitute) const;
1821 
1825  bool ShowPMIPrecision(size_t & out_precision) const;
1826 
1830  bool ShowPMIDefaultUnits(Units & out_units) const;
1831 
1835  bool ShowPMIDefaultColor(RGBColor & out_color) const;
1836 
1844  bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
1845 
1850  bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals) const;
1851 
1855  bool ShowTessellationPreservesUVPoints(bool & out_state) const;
1856 
1860  bool ShowTessellationMaximumEdgeLength(double & out_length) const;
1861 
1865  bool ShowTextureDirectories(UTF8Array & out_directories);
1866 
1872  bool ShowSearchDirectories(UTF8Array & out_directories, UTF8Array & out_logical_names, BoolArray & out_recurse_flags) const;
1873 
1877  bool ShowSearchDirectoriesByFile(UTF8Array & out_file_names) const;
1878 
1882  bool ShowConfiguration(UTF8Array & out_configuration) const;
1883 
1887  bool ShowCatiaV4LogicalNameForRootDirectory(UTF8 & out_name) const;
1888 
1892  bool ShowCatiaV4LogicalNameSearching(bool & out_state) const;
1893 
1898  bool ShowCatiaV5Cache(bool & out_active, UTF8 & out_path) const;
1899 
1904  bool ShowUnigraphicsPreferredReferenceSets(UTF8Array & out_reference_sets, bool & out_apply_to_all_levels) const;
1905 
1909  bool ShowUnigraphicsFittedCamera(bool & out_state) const;
1910 
1914  bool ShowProECodePageName(UTF8 & out_name) const;
1915 
1919  bool ShowProEDimensionTolerance(bool & out_state) const;
1920 
1924  bool ShowProESubpartPMI(bool & out_state) const;
1925 
1929  bool ShowProESessionColor(ProE::SessionColor & out_type) const;
1930 
1934  bool ShowSTEPNamePreference(STEP::Field & out_field) const;
1935 
1939  bool ShowSTEPFirstColorPreference(bool & out_state) const;
1940 
1944  bool ShowSTEPCodePageName(UTF8 & out_name) const;
1945 
1949  bool ShowSTEPShellBasedSurfaceModelSplitting(bool & out_state) const;
1950 
1954  bool ShowSTEPOrientationHealing(bool & out_state) const;
1955 
1959  bool ShowIFCCodePageName(UTF8 & out_name) const;
1960 
1964  bool ShowIFCAttributeXMLFile(UTF8 & out_filename) const;
1965 
1969  bool ShowIFCOwnerHistoryOptimization(bool & out_state) const;
1970 
1974  bool ShowIFCFaceOptimization(bool & out_state) const;
1975 
1979  bool ShowIFCEdges(bool & out_state) const;
1980 
1984  bool ShowIFCMetadata(bool & out_state) const;
1985 
1989  bool ShowPDF3DStreamIndex(size_t & out_index) const;
1990 
1994  bool ShowJTTessellationLevel(JT::TessellationLevel & out_tessellation_level) const;
1995 
1999  bool ShowAnnotationCaptureFitting(AnnotationCaptureFitting & out_fitting) const;
2000 
2005  bool ShowLocation(ComponentPath & out_path, MatrixKit & out_transform) const;
2006  };
2007 
2009  class EXCHANGE_API Translation
2010  {
2011  public:
2014  enum class Healing
2015  {
2016  Off,
2017  On,
2018  OnlyIfNotParasolid,
2019  };
2020 
2023  enum class AccurateEdges
2024  {
2025  Off,
2026  On,
2027  OnlyIfNotParasolid,
2028  };
2029 
2032  enum class Simplification
2033  {
2034  Off,
2035  On,
2036  OnlyIfNotParasolid,
2037  };
2038 
2041  enum class Merging
2042  {
2043  Off,
2044  On,
2045  OnlyIfNotParasolid,
2046  };
2047 
2048  private:
2050  Translation();
2051  };
2052 
2054  class EXCHANGE_API TranslationOptionsKit : public HPS::Sprocket
2055  {
2056  public:
2059 
2063 
2068 
2072  TranslationOptionsKit & operator=(TranslationOptionsKit && in_that);
2073 
2074  virtual ~TranslationOptionsKit();
2075 
2076  HPS::Type ObjectType() const { return HPS::Type::ExchangeTranslationOptionsKit; }
2077 
2081  static TranslationOptionsKit GetDefault();
2082 
2085  void Set(TranslationOptionsKit const & in_kit);
2086 
2089  void Show(TranslationOptionsKit & out_kit) const;
2090 
2094  TranslationOptionsKit & operator=(TranslationOptionsKit const & in_kit);
2095 
2098  bool Empty() const;
2099 
2103  bool Equals(TranslationOptionsKit const & in_kit) const;
2104 
2108  bool operator==(TranslationOptionsKit const & in_kit) const;
2109 
2113  bool operator!=(TranslationOptionsKit const & in_kit) const;
2114 
2120  TranslationOptionsKit & SetSolidsAsFaces(bool in_state);
2121 
2127  TranslationOptionsKit & SetTessellation(bool in_state);
2128 
2134  TranslationOptionsKit & SetHiddenObjects(bool in_state);
2135 
2139  TranslationOptionsKit & SetApplication(char const * in_name);
2140 
2144  TranslationOptionsKit & SetVersion(char const * in_version);
2145 
2149  TranslationOptionsKit & SetHealing(Translation::Healing in_healing);
2150 
2154  TranslationOptionsKit & SetAccurateEdges(Translation::AccurateEdges in_accurate_edges);
2155 
2159  TranslationOptionsKit & SetSimplification(Translation::Simplification in_simplification);
2160 
2164  TranslationOptionsKit & SetEntityMerging(Translation::Merging in_merging);
2165 
2170  TranslationOptionsKit & SetSewing(bool in_state, double in_tolerance = 0.0);
2171 
2175  TranslationOptionsKit & SetDisjointFaces(bool in_state);
2176 
2179  TranslationOptionsKit & UnsetSolidsAsFaces();
2180 
2183  TranslationOptionsKit & UnsetTessellation();
2184 
2187  TranslationOptionsKit & UnsetHiddenObjects();
2188 
2191  TranslationOptionsKit & UnsetApplication();
2192 
2195  TranslationOptionsKit & UnsetVersion();
2196 
2199  TranslationOptionsKit & UnsetHealing();
2200 
2203  TranslationOptionsKit & UnsetAccurateEdges();
2204 
2207  TranslationOptionsKit & UnsetSimplification();
2208 
2211  TranslationOptionsKit & UnsetEntityMerging();
2212 
2215  TranslationOptionsKit & UnsetSewing();
2216 
2219  TranslationOptionsKit & UnsetDisjointFaces();
2220 
2223  TranslationOptionsKit & UnsetEverything();
2224 
2225 
2229  bool ShowSolidsAsFaces(bool & out_state) const;
2230 
2234  bool ShowTessellation(bool & out_state) const;
2235 
2239  bool ShowHiddenObjects(bool & out_state) const;
2240 
2244  bool ShowApplication(UTF8 & out_name) const;
2245 
2249  bool ShowVersion(UTF8 & out_version) const;
2250 
2254  bool ShowHealing(Translation::Healing & out_healing) const;
2255 
2259  bool ShowAccurateEdges(Translation::AccurateEdges & out_accurate_edges) const;
2260 
2264  bool ShowSimplification(Translation::Simplification & out_simplification) const;
2265 
2269  bool ShowEntityMerging(Translation::Merging & out_merging) const;
2270 
2275  bool ShowSewing(bool & out_state, double & out_tolerance) const;
2276 
2280  bool ShowDisjointFaces(bool & out_state) const;
2281  };
2282 
2283 
2284 
2289  class EXCHANGE_API ModelFileImportOptionsKit : public HPS::Sprocket
2290  {
2291  public:
2294 
2298 
2303 
2307  ModelFileImportOptionsKit & operator=(ModelFileImportOptionsKit && in_that);
2308 
2309  virtual ~ModelFileImportOptionsKit();
2310 
2311  HPS::Type ObjectType() const { return HPS::Type::ExchangeModelFileImportOptionsKit; }
2312 
2316  static ModelFileImportOptionsKit GetDefault();
2317 
2320  void Set(ModelFileImportOptionsKit const & in_kit);
2321 
2324  void Show(ModelFileImportOptionsKit & out_kit) const;
2325 
2329  ModelFileImportOptionsKit & operator=(ModelFileImportOptionsKit const & in_kit);
2330 
2333  bool Empty() const;
2334 
2338  bool Equals(ModelFileImportOptionsKit const & in_kit) const;
2339 
2343  bool operator==(ModelFileImportOptionsKit const & in_kit) const;
2344 
2348  bool operator!=(ModelFileImportOptionsKit const & in_kit) const;
2349 
2350 
2356  ModelFileImportOptionsKit & SetTessellationLevel(Tessellation::Level in_level);
2357 
2364  ModelFileImportOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
2365 
2373  ModelFileImportOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
2374 
2380  ModelFileImportOptionsKit & SetTessellationPreservesUVPoints(bool in_state);
2381 
2387  ModelFileImportOptionsKit & SetTessellationMaximumEdgeLength(double in_length);
2388 
2395  ModelFileImportOptionsKit & SetIFCEdges(bool in_state);
2396 
2400  ModelFileImportOptionsKit & SetAnnotationCaptureFitting(AnnotationCaptureFitting in_fitting);
2401 
2414  ModelFileImportOptionsKit & SetLocation(ComponentPath const & in_path, MatrixKit const & in_transform = MatrixKit());
2415 
2416 
2419  ModelFileImportOptionsKit & UnsetTessellationLevel();
2420 
2423  ModelFileImportOptionsKit & UnsetTessellationAccuracy();
2424 
2427  ModelFileImportOptionsKit & UnsetTessellationPreservesUVPoints();
2428 
2431  ModelFileImportOptionsKit & UnsetTessellationMaximumEdgeLength();
2432 
2435  ModelFileImportOptionsKit & UnsetIFCEdges();
2436 
2439  ModelFileImportOptionsKit & UnsetAnnotationCaptureFitting();
2440 
2443  ModelFileImportOptionsKit & UnsetLocation();
2444 
2447  ModelFileImportOptionsKit & UnsetEverything();
2448 
2449 
2457  bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
2458 
2463  bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals) const;
2464 
2468  bool ShowTessellationPreservesUVPoints(bool & out_state) const;
2469 
2473  bool ShowTessellationMaximumEdgeLength(double & out_length) const;
2474 
2478  bool ShowIFCEdges(bool & out_state) const;
2479 
2483  bool ShowAnnotationCaptureFitting(AnnotationCaptureFitting & out_fitting) const;
2484 
2489  bool ShowLocation(ComponentPath & out_path, MatrixKit & out_transform) const;
2490  };
2491 
2492 
2494  class EXCHANGE_API ExportACISOptionsKit : public HPS::Sprocket
2495  {
2496  public:
2499 
2503 
2507 
2508  virtual ~ExportACISOptionsKit();
2509 
2510  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportACISOptionsKit; }
2511 
2515  static ExportACISOptionsKit GetDefault();
2516 
2519  void Set(ExportACISOptionsKit const & in_kit);
2520 
2523  void Show(ExportACISOptionsKit & out_kit) const;
2524 
2528  ExportACISOptionsKit & operator=(ExportACISOptionsKit const & in_kit);
2529 
2533  ExportACISOptionsKit & operator=(ExportACISOptionsKit && in_that);
2534 
2537  bool Empty() const;
2538 
2542  bool Equals(ExportACISOptionsKit const & in_kit) const;
2543 
2547  bool operator==(ExportACISOptionsKit const & in_kit) const;
2548 
2552  bool operator!=(ExportACISOptionsKit const & in_kit) const;
2553 
2554 
2560  ExportACISOptionsKit & SetMillimeterUnits(bool in_state);
2561 
2567  ExportACISOptionsKit & SetBinary(bool in_state);
2568 
2569 
2572  ExportACISOptionsKit & UnsetMillimeterUnits();
2573 
2576  ExportACISOptionsKit & UnsetBinary();
2577 
2580  ExportACISOptionsKit & UnsetEverything();
2581 
2582 
2586  bool ShowMillimeterUnits(bool & out_state) const;
2587 
2591  bool ShowBinary(bool & out_state) const;
2592  };
2593 
2595  class EXCHANGE_API ExportIGESOptionsKit : public HPS::Sprocket
2596  {
2597  public:
2600 
2604 
2608 
2609  virtual ~ExportIGESOptionsKit();
2610 
2611  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportIGESOptionsKit; }
2612 
2616  static ExportIGESOptionsKit GetDefault();
2617 
2620  void Set(ExportIGESOptionsKit const & in_kit);
2621 
2624  void Show(ExportIGESOptionsKit & out_kit) const;
2625 
2629  ExportIGESOptionsKit & operator=(ExportIGESOptionsKit const & in_kit);
2630 
2634  ExportIGESOptionsKit & operator=(ExportIGESOptionsKit && in_that);
2635 
2638  bool Empty() const;
2639 
2643  bool Equals(ExportIGESOptionsKit const & in_kit) const;
2644 
2648  bool operator==(ExportIGESOptionsKit const & in_kit) const;
2649 
2653  bool operator!=(ExportIGESOptionsKit const & in_kit) const;
2654 
2655 
2661  ExportIGESOptionsKit & SetAnalyticsAsNURBS(bool in_state);
2662 
2668  ExportIGESOptionsKit & SetFacetedAsWireframe(bool in_state);
2669 
2675  ExportIGESOptionsKit & SetSolidsAsFaces(bool in_state);
2676 
2682  ExportIGESOptionsKit & SetHiddenObjects(bool in_state);
2683 
2689  ExportIGESOptionsKit & SetTessellation(bool in_state);
2690 
2694  ExportIGESOptionsKit & SetApplication(char const * in_name);
2695 
2699  ExportIGESOptionsKit & SetVersion(char const * in_version);
2700 
2701 
2704  ExportIGESOptionsKit & UnsetAnalyticsAsNURBS();
2705 
2708  ExportIGESOptionsKit & UnsetFacetedAsWireframe();
2709 
2712  ExportIGESOptionsKit & UnsetSolidsAsFaces();
2713 
2716  ExportIGESOptionsKit & UnsetHiddenObjects();
2717 
2720  ExportIGESOptionsKit & UnsetTessellation();
2721 
2724  ExportIGESOptionsKit & UnsetApplication();
2725 
2728  ExportIGESOptionsKit & UnsetVersion();
2729 
2732  ExportIGESOptionsKit & UnsetEverything();
2733 
2734 
2738  bool ShowAnalyticsAsNURBS(bool & out_state) const;
2739 
2743  bool ShowFacetedAsWireframe(bool & out_state) const;
2744 
2748  bool ShowSolidsAsFaces(bool & out_state) const;
2749 
2753  bool ShowHiddenObjects(bool & out_state) const;
2754 
2758  bool ShowTessellation(bool & out_state) const;
2759 
2763  bool ShowApplication(UTF8 & out_name) const;
2764 
2768  bool ShowVersion(UTF8 & out_version) const;
2769  };
2770 
2772  class EXCHANGE_API ExportJTOptionsKit : public HPS::Sprocket
2773  {
2774  public:
2777 
2780  ExportJTOptionsKit(ExportJTOptionsKit const & in_kit);
2781 
2785 
2786  virtual ~ExportJTOptionsKit();
2787 
2788  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportJTOptionsKit; }
2789 
2793  static ExportJTOptionsKit GetDefault();
2794 
2797  void Set(ExportJTOptionsKit const & in_kit);
2798 
2801  void Show(ExportJTOptionsKit & out_kit) const;
2802 
2806  ExportJTOptionsKit & operator=(ExportJTOptionsKit const & in_kit);
2807 
2811  ExportJTOptionsKit & operator=(ExportJTOptionsKit && in_that);
2812 
2815  bool Empty() const;
2816 
2820  bool Equals(ExportJTOptionsKit const & in_kit) const;
2821 
2825  bool operator==(ExportJTOptionsKit const & in_kit) const;
2826 
2830  bool operator!=(ExportJTOptionsKit const & in_kit) const;
2831 
2832 
2838  ExportJTOptionsKit & SetContent(JT::Content in_content);
2839 
2845  ExportJTOptionsKit & SetHiddenObjects(bool in_state);
2846 
2852  ExportJTOptionsKit & SetPMI(bool in_state);
2853 
2854 
2857  ExportJTOptionsKit & UnsetContent();
2858 
2861  ExportJTOptionsKit & UnsetHiddenObjects();
2862 
2865  ExportJTOptionsKit & UnsetPMI();
2866 
2869  ExportJTOptionsKit & UnsetEverything();
2870 
2871 
2875  bool ShowContent(JT::Content & out_content) const;
2876 
2880  bool ShowHiddenObjects(bool & out_state) const;
2881 
2885  bool ShowPMI(bool & out_state) const;
2886  };
2887 
2889  class EXCHANGE_API ExportParasolidOptionsKit : public HPS::Sprocket
2890  {
2891  public:
2894 
2898 
2902 
2903  virtual ~ExportParasolidOptionsKit();
2904 
2905  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportParasolidOptionsKit; }
2906 
2910  static ExportParasolidOptionsKit GetDefault();
2911 
2914  void Set(ExportParasolidOptionsKit const & in_kit);
2915 
2918  void Show(ExportParasolidOptionsKit & out_kit) const;
2919 
2923  ExportParasolidOptionsKit & operator=(ExportParasolidOptionsKit const & in_kit);
2924 
2928  ExportParasolidOptionsKit & operator=(ExportParasolidOptionsKit && in_that);
2929 
2932  bool Empty() const;
2933 
2937  bool Equals(ExportParasolidOptionsKit const & in_kit) const;
2938 
2942  bool operator==(ExportParasolidOptionsKit const & in_kit) const;
2943 
2947  bool operator!=(ExportParasolidOptionsKit const & in_kit) const;
2948 
2949 
2955  ExportParasolidOptionsKit & SetSolidsAsFaces(bool in_state);
2956 
2962  ExportParasolidOptionsKit & SetTessellation(bool in_state);
2963 
2969  ExportParasolidOptionsKit & SetHiddenObjects(bool in_state);
2970 
2974  ExportParasolidOptionsKit & SetApplication(char const * in_name);
2975 
2979  ExportParasolidOptionsKit & SetVersion(char const * in_version);
2980 
2981 
2984  ExportParasolidOptionsKit & UnsetSolidsAsFaces();
2985 
2988  ExportParasolidOptionsKit & UnsetTessellation();
2989 
2992  ExportParasolidOptionsKit & UnsetHiddenObjects();
2993 
2996  ExportParasolidOptionsKit & UnsetApplication();
2997 
3000  ExportParasolidOptionsKit & UnsetVersion();
3001 
3004  ExportParasolidOptionsKit & UnsetEverything();
3005 
3006 
3010  bool ShowSolidsAsFaces(bool & out_state) const;
3011 
3015  bool ShowTessellation(bool & out_state) const;
3016 
3020  bool ShowHiddenObjects(bool & out_state) const;
3021 
3025  bool ShowApplication(UTF8 & out_name) const;
3026 
3030  bool ShowVersion(UTF8 & out_version) const;
3031  };
3032 
3034  class EXCHANGE_API ExportPRCOptionsKit : public HPS::Sprocket
3035  {
3036  public:
3039 
3042  ExportPRCOptionsKit(ExportPRCOptionsKit const & in_kit);
3043 
3047 
3048  virtual ~ExportPRCOptionsKit();
3049 
3050  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportPRCOptionsKit; }
3051 
3055  static ExportPRCOptionsKit GetDefault();
3056 
3059  void Set(ExportPRCOptionsKit const & in_kit);
3060 
3063  void Show(ExportPRCOptionsKit & out_kit) const;
3064 
3068  ExportPRCOptionsKit & operator=(ExportPRCOptionsKit const & in_kit);
3069 
3073  ExportPRCOptionsKit & operator=(ExportPRCOptionsKit && in_that);
3074 
3077  bool Empty() const;
3078 
3082  bool Equals(ExportPRCOptionsKit const & in_kit) const;
3083 
3087  bool operator==(ExportPRCOptionsKit const & in_kit) const;
3088 
3092  bool operator!=(ExportPRCOptionsKit const & in_kit) const;
3093 
3094 
3100  ExportPRCOptionsKit & SetTessellationCompression(bool in_state);
3101 
3108  ExportPRCOptionsKit & SetBRepCompression(PRC::BRepCompression in_level);
3109 
3115  ExportPRCOptionsKit & SetBRepRemoval(bool in_state);
3116 
3122  ExportPRCOptionsKit & SetAttributeRemoval(bool in_state);
3123 
3124 
3127  ExportPRCOptionsKit & UnsetTessellationCompression();
3128 
3131  ExportPRCOptionsKit & UnsetBRepCompression();
3132 
3135  ExportPRCOptionsKit & UnsetBRepRemoval();
3136 
3139  ExportPRCOptionsKit & UnsetAttributeRemoval();
3140 
3143  ExportPRCOptionsKit & UnsetEverything();
3144 
3145 
3149  bool ShowTessellationCompression(bool & out_state) const;
3150 
3154  bool ShowBRepCompression(PRC::BRepCompression & out_level) const;
3155 
3159  bool ShowBRepRemoval(bool & out_state) const;
3160 
3164  bool ShowAttributeRemoval(bool & out_state) const;
3165  };
3166 
3168  class EXCHANGE_API ExportSTEPOptionsKit : public HPS::Sprocket
3169  {
3170  public:
3173 
3177 
3181 
3182  virtual ~ExportSTEPOptionsKit();
3183 
3184  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportSTEPOptionsKit; }
3185 
3189  static ExportSTEPOptionsKit GetDefault();
3190 
3193  void Set(ExportSTEPOptionsKit const & in_kit);
3194 
3197  void Show(ExportSTEPOptionsKit & out_kit) const;
3198 
3202  ExportSTEPOptionsKit & operator=(ExportSTEPOptionsKit const & in_kit);
3203 
3207  ExportSTEPOptionsKit & operator=(ExportSTEPOptionsKit && in_that);
3208 
3211  bool Empty() const;
3212 
3216  bool Equals(ExportSTEPOptionsKit const & in_kit) const;
3217 
3221  bool operator==(ExportSTEPOptionsKit const & in_kit) const;
3222 
3226  bool operator!=(ExportSTEPOptionsKit const & in_kit) const;
3227 
3228 
3234  ExportSTEPOptionsKit & SetFormat(STEP::Format in_format);
3235 
3241  ExportSTEPOptionsKit & SetAnalyticsAsNURBS(bool in_state);
3242 
3248  ExportSTEPOptionsKit & SetFacetedAsWireframe(bool in_state);
3249 
3255  ExportSTEPOptionsKit & SetNameShortening(bool in_state);
3256 
3260  ExportSTEPOptionsKit & SetApplication(char const * in_name);
3261 
3265  ExportSTEPOptionsKit & SetVersion(char const * in_version);
3266 
3267 
3270  ExportSTEPOptionsKit & UnsetFormat();
3271 
3274  ExportSTEPOptionsKit & UnsetAnalyticsAsNURBS();
3275 
3278  ExportSTEPOptionsKit & UnsetFacetedAsWireframe();
3279 
3282  ExportSTEPOptionsKit & UnsetNameShortening();
3283 
3286  ExportSTEPOptionsKit & UnsetApplication();
3287 
3290  ExportSTEPOptionsKit & UnsetVersion();
3291 
3294  ExportSTEPOptionsKit & UnsetEverything();
3295 
3296 
3300  bool ShowFormat(STEP::Format & out_format) const;
3301 
3305  bool ShowAnalyticsAsNURBS(bool & out_state) const;
3306 
3310  bool ShowFacetedAsWireframe(bool & out_state) const;
3311 
3315  bool ShowNameShortening(bool & out_state) const;
3316 
3320  bool ShowApplication(UTF8 & out_name) const;
3321 
3325  bool ShowVersion(UTF8 & out_version) const;
3326  };
3327 
3329  class EXCHANGE_API ExportSTLOptionsKit : public HPS::Sprocket
3330  {
3331  public:
3334 
3337  ExportSTLOptionsKit(ExportSTLOptionsKit const & in_kit);
3338 
3342 
3343  virtual ~ExportSTLOptionsKit();
3344 
3345  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportSTLOptionsKit; }
3346 
3350  static ExportSTLOptionsKit GetDefault();
3351 
3354  void Set(ExportSTLOptionsKit const & in_kit);
3355 
3358  void Show(ExportSTLOptionsKit & out_kit) const;
3359 
3363  ExportSTLOptionsKit & operator=(ExportSTLOptionsKit const & in_kit);
3364 
3368  ExportSTLOptionsKit & operator=(ExportSTLOptionsKit && in_that);
3369 
3372  bool Empty() const;
3373 
3377  bool Equals(ExportSTLOptionsKit const & in_kit) const;
3378 
3382  bool operator==(ExportSTLOptionsKit const & in_kit) const;
3383 
3387  bool operator!=(ExportSTLOptionsKit const & in_kit) const;
3388 
3389 
3395  ExportSTLOptionsKit & SetBinary(bool in_state);
3396 
3402  ExportSTLOptionsKit & SetTessellationLevel(Tessellation::Level in_level);
3403 
3410  ExportSTLOptionsKit & SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
3411 
3417  ExportSTLOptionsKit & SetTessellationAccuracy(Tessellation::Accuracy in_type);
3418 
3424  ExportSTLOptionsKit & SetCurrentTessellationRetention(bool in_state);
3425 
3432  ExportSTLOptionsKit & SetMaximumEdgeLength(double in_length);
3433 
3434 
3437  ExportSTLOptionsKit & UnsetBinary();
3438 
3441  ExportSTLOptionsKit & UnsetTessellationLevel();
3442 
3445  ExportSTLOptionsKit & UnsetTessellationAccuracy();
3446 
3449  ExportSTLOptionsKit & UnsetCurrentTessellationRetention();
3450 
3453  ExportSTLOptionsKit & UnsetMaximumEdgeLength();
3454 
3457  ExportSTLOptionsKit & UnsetEverything();
3458 
3459 
3463  bool ShowBinary(bool & out_state) const;
3464 
3472  bool ShowTessellationLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
3473 
3477  bool ShowTessellationAccuracy(Tessellation::Accuracy & out_type) const;
3478 
3482  bool ShowCurrentTessellationRetention(bool & out_state) const;
3483 
3487  bool ShowMaximumEdgeLength(double & out_length) const;
3488  };
3489 
3491  class EXCHANGE_API ExportU3DOptionsKit : public HPS::Sprocket
3492  {
3493  public:
3496 
3499  ExportU3DOptionsKit(ExportU3DOptionsKit const & in_kit);
3500 
3504 
3505  virtual ~ExportU3DOptionsKit();
3506 
3507  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportU3DOptionsKit; }
3508 
3512  static ExportU3DOptionsKit GetDefault();
3513 
3516  void Set(ExportU3DOptionsKit const & in_kit);
3517 
3520  void Show(ExportU3DOptionsKit & out_kit) const;
3521 
3525  ExportU3DOptionsKit & operator=(ExportU3DOptionsKit const & in_kit);
3526 
3530  ExportU3DOptionsKit & operator=(ExportU3DOptionsKit && in_that);
3531 
3534  bool Empty() const;
3535 
3539  bool Equals(ExportU3DOptionsKit const & in_kit) const;
3540 
3544  bool operator==(ExportU3DOptionsKit const & in_kit) const;
3545 
3549  bool operator!=(ExportU3DOptionsKit const & in_kit) const;
3550 
3551 
3557  ExportU3DOptionsKit & SetVersion(U3D::Version in_version);
3558 
3563  ExportU3DOptionsKit & SetCompression(unsigned char in_level);
3564 
3565 
3568  ExportU3DOptionsKit & UnsetVersion();
3569 
3572  ExportU3DOptionsKit & UnsetCompression();
3573 
3576  ExportU3DOptionsKit & UnsetEverything();
3577 
3578 
3582  bool ShowVersion(U3D::Version & out_version) const;
3583 
3587  bool ShowCompression(unsigned char & out_level) const;
3588  };
3589 
3591  class EXCHANGE_API ExportXMLOptionsKit : public HPS::Sprocket
3592  {
3593  public:
3596 
3599  ExportXMLOptionsKit(ExportXMLOptionsKit const & in_kit);
3600 
3604 
3605  virtual ~ExportXMLOptionsKit();
3606 
3607  HPS::Type ObjectType() const { return HPS::Type::ExchangeExportXMLOptionsKit; }
3608 
3612  static ExportXMLOptionsKit GetDefault();
3613 
3616  void Set(ExportXMLOptionsKit const & in_kit);
3617 
3620  void Show(ExportXMLOptionsKit & out_kit) const;
3621 
3625  ExportXMLOptionsKit & operator=(ExportXMLOptionsKit const & in_kit);
3626 
3630  ExportXMLOptionsKit & operator=(ExportXMLOptionsKit && in_that);
3631 
3634  bool Empty() const;
3635 
3639  bool Equals(ExportXMLOptionsKit const & in_kit) const;
3640 
3644  bool operator==(ExportXMLOptionsKit const & in_kit) const;
3645 
3649  bool operator!=(ExportXMLOptionsKit const & in_kit) const;
3650 
3651 
3657  ExportXMLOptionsKit & SetMetadata(bool in_state);
3658 
3664  ExportXMLOptionsKit & SetTransformations(bool in_state);
3665 
3671  ExportXMLOptionsKit & SetMaterials(bool in_state);
3672 
3673 
3676  ExportXMLOptionsKit & UnsetMetadata();
3677 
3680  ExportXMLOptionsKit & UnsetTransformations();
3681 
3684  ExportXMLOptionsKit & UnsetMaterials();
3685 
3688  ExportXMLOptionsKit & UnsetEverything();
3689 
3690 
3694  bool ShowMetadata(bool & out_state) const;
3695 
3699  bool ShowTransformations(bool & out_state) const;
3700 
3704  bool ShowMaterials(bool & out_state) const;
3705  };
3706 
3708  class EXCHANGE_API TessellationOptionsKit : public HPS::Sprocket
3709  {
3710  public:
3713 
3717 
3721 
3722  virtual ~TessellationOptionsKit();
3723 
3724  HPS::Type ObjectType() const { return HPS::Type::ExchangeTessellationOptionsKit; }
3725 
3729  static TessellationOptionsKit GetDefault();
3730 
3733  void Set(TessellationOptionsKit const & in_kit);
3734 
3737  void Show(TessellationOptionsKit & out_kit) const;
3738 
3742  TessellationOptionsKit & operator=(TessellationOptionsKit const & in_kit);
3743 
3747  TessellationOptionsKit & operator=(TessellationOptionsKit && in_that);
3748 
3751  bool Empty() const;
3752 
3756  bool Equals(TessellationOptionsKit const & in_kit) const;
3757 
3761  bool operator==(TessellationOptionsKit const & in_kit) const;
3762 
3766  bool operator!=(TessellationOptionsKit const & in_kit) const;
3767 
3768 
3772  TessellationOptionsKit & SetLevel(Tessellation::Level in_level);
3773 
3780  TessellationOptionsKit & SetLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance);
3781 
3787  TessellationOptionsKit & SetAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true);
3788 
3792  TessellationOptionsKit & SetUVPointPreservation(bool in_state);
3793 
3797  TessellationOptionsKit & SetMaximumEdgeLength(double in_length);
3798 
3799 
3802  TessellationOptionsKit & UnsetLevel();
3803 
3806  TessellationOptionsKit & UnsetAccuracy();
3807 
3810  TessellationOptionsKit & UnsetUVPointPreservation();
3811 
3814  TessellationOptionsKit & UnsetMaximumEdgeLength();
3815 
3818  TessellationOptionsKit & UnsetEverything();
3819 
3820 
3828  bool ShowLevel(Tessellation::Type & out_type, Tessellation::Level & out_level, Tessellation::Chord::Limit & out_limit_type, double & out_limit, double & out_angle_tolerance) const;
3829 
3834  bool ShowAccuracy(Tessellation::Accuracy & out_type, bool & out_accurate_normals) const;
3835 
3839  bool ShowUVPointPreservation(bool & out_state) const;
3840 
3844  bool ShowMaximumEdgeLength(double & out_length) const;
3845  };
3846 
3847 private:
3849  Exchange();
3850 };
3851 
3852 }
3853 
3854 #endif
Definition: sprk_exchange.h:3034
Level
Definition: sprk_exchange.h:698
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2788
Definition: sprk_exchange.h:43
Definition: sprk_exchange.h:800
Definition: sprk.h:243
HPS::Type ObjectType() const
Definition: sprk_exchange.h:221
Definition: sprk_exchange.h:941
Units
Definition: sprk_exchange.h:62
Definition: sprk.h:66
Simplification
Definition: sprk_exchange.h:2032
Definition: sprk_exchange.h:508
Version
Definition: sprk_exchange.h:846
Definition: sprk_exchange.h:2289
Definition: sprk_exchange.h:708
Definition: sprk_exchange.h:607
HPS::Type ObjectType() const
Definition: sprk_exchange.h:589
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3607
Format
Definition: sprk_exchange.h:788
HPS::Type ObjectType() const
Definition: sprk_exchange.h:635
Definition: sprk_exchange.h:3591
Definition: sprk.h:932
Format
Definition: sprk_exchange.h:946
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3050
Type
Definition: sprk_exchange.h:689
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2611
Definition: sprk_exchange.h:371
Definition: sprk_exchange.h:455
Definition: sprk_exchange.h:248
HPS::Type ObjectType() const
Definition: sprk_exchange.h:352
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2905
HPS::Type ObjectType() const
Definition: sprk_exchange.h:100
Definition: sprk_exchange.h:189
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3345
HPS::Type ObjectType() const
Definition: sprk_exchange.h:274
Definition: sprk_exchange.h:2772
Merging
Definition: sprk_exchange.h:2041
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2076
Field
Definition: sprk_exchange.h:778
HPS::Type ObjectType() const
Definition: sprk_exchange.h:895
Definition: sprk_exchange.h:2494
Definition: sprk_exchange.h:2054
Limit
Definition: sprk_exchange.h:713
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3184
TessellationLevel
Definition: sprk_exchange.h:760
Definition: sprk_exchange.h:684
Definition: sprk_exchange.h:3329
Definition: sprk_exchange.h:79
Definition: sprk_exchange.h:773
Definition: hps.h:4236
Definition: hps.h:6797
Definition: sprk_exchange.h:326
AnnotationCaptureFitting
Definition: sprk_exchange.h:677
Definition: sprk_exchange.h:3491
Definition: sprk_exchange.h:746
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2510
Definition: hps.h:14453
Definition: sprk_exchange.h:841
SessionColor
Definition: sprk_exchange.h:824
Definition: sprk.h:1517
Definition: hps.h:42369
Definition: sprk_exchange.h:415
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3724
Definition: sprk.h:435
HPS::Type ObjectType() const
Definition: sprk_exchange.h:1113
BRepCompression
Definition: sprk_exchange.h:805
Definition: sprk_parasolid.h:39
BRepMode
Definition: sprk_exchange.h:662
Definition: sprk.h:1779
ComponentType
Definition: sprk.h:1522
Accuracy
Definition: sprk_exchange.h:730
Definition: sprk_exchange.h:2595
Definition: sprk.h:2090
Content
Definition: sprk_exchange.h:751
Definition: sprk_exchange.h:1091
HPS::Type ObjectType() const
Definition: sprk_exchange.h:2311
HPS::Type ObjectType() const
Definition: sprk_exchange.h:536
Definition: sprk.h:2189
Definition: sprk_exchange.h:819
AccurateEdges
Definition: sprk_exchange.h:2023
HPS::Type ObjectType() const
Definition: sprk_exchange.h:397
HPS::Type ObjectType() const
Definition: sprk_exchange.h:3507
HPS::Type ObjectType() const
Definition: sprk_exchange.h:170
Definition: sprk_exchange.h:561
Healing
Definition: sprk_exchange.h:2014
Definition: sprk.h:2275
Definition: sprk_exchange.h:858
Definition: sprk_exchange.h:2009
static Model CreateModel(char const *in_name="")
Definition: sprk_exchange.h:2889
Definition: sprk_exchange.h:138
Definition: sprk_exchange.h:3708
HPS::Type ObjectType() const
Definition: sprk_exchange.h:483
Definition: sprk_exchange.h:3168