10 #ifndef SPRK_PARASOLID_H
11 #define SPRK_PARASOLID_H
17 # ifdef SPRK_PARASOLID
18 # define PARASOLID_API __declspec (dllexport)
20 # define PARASOLID_API __declspec (dllimport)
25 # if defined(LINUX_SYSTEM) && defined(SPRK_PARASOLID)
27 # define PARASOLID_API __attribute__ ((visibility ("default")))
33 # define PARASOLID_API
42 typedef int ParasolidEntity;
45 typedef HPS::IntArray EntityArray;
46 typedef std::vector<double, HPS::Allocator<double>> DoubleArray;
47 typedef std::vector<Viewport, HPS::Allocator<Viewport>> ViewportArray;
92 void ShowViewport(DoubleArray & out_box,
DPoint & out_location,
DVector & out_z_direction,
DVector & out_x_direction)
const;
94 bool operator==(
Viewport const & in_viewport)
const;
95 bool operator!=(
Viewport const & in_viewport)
const;
96 bool Equals(
Viewport const & in_viewport)
const;
146 SilhouetteAndParallel,
166 OffRefreshAttributes,
174 Tolerance(
double curve_chord_tolerance,
double curve_chord_maximum_length,
double curve_chord_max_angle,
175 double surface_tolerance,
double surface_max_angle);
177 void ShowTolerance(
double & out_curve_chord_tolerance,
double & out_curve_chord_maximum_length,
double & out_curve_chord_max_angle,
178 double & out_surface_tolerance,
double & out_surface_max_angle)
const;
180 bool operator==(
Tolerance const & in_tolerance)
const;
181 bool operator!=(
Tolerance const & in_tolerance)
const;
182 bool Equals(
Tolerance const & in_tolerance)
const;
185 double curve_chord_tolerance;
186 double curve_chord_maximum_length;
187 double curve_chord_max_angle;
188 double surface_tolerance;
189 double surface_max_angle;
235 MarkHiddenAsInvisible,
273 AllowAndIntersectAll,
274 AllowAndIntersectPairs,
278 typedef std::vector<Facet::Tolerance, HPS::Allocator<Facet::Tolerance>> ToleranceArray;
279 class FacetTessellationKit;
280 class LineTessellationKit;
306 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidComponent; }
320 ParasolidEntity GetParasolidEntity()
const;
330 typedef std::vector<Component, HPS::Allocator<Component>> ComponentArray;
362 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidCADModel; }
376 Component GetComponentFromEntity(ParasolidEntity in_entity);
436 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidImportNotifier; };
453 Time GetImportTime()
const;
457 Time GetParseTime()
const;
460 class ImportOptionsKit;
461 class ExportOptionsKit;
515 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidImportOptionsKit; }
636 bool ShowUserFields(
bool & out_user_fields)
const;
684 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidFacetTessellationKit; }
749 FacetTessellationKit & SetDensity(
Facet::Density in_density,
double in_density_tolerance = 0,
double in_density_max_angle = 0, DVectorArray
const & in_view_directions = DVectorArray());
762 FacetTessellationKit & SetFacetSize(
double in_minimum_width,
double in_maximum_width,
int in_maximum_sides);
769 FacetTessellationKit & SetChordTolerance(
double in_chord_tolerance,
double in_maximum_chord_length,
double in_maximum_chord_angle);
775 FacetTessellationKit & SetSurfacePlaneTolerance(
double in_plane_tolerance,
double in_max_plane_angle);
781 FacetTessellationKit & SetFacetPlaneTolerance(
double in_plane_tolerance,
double in_max_plane_angle);
793 FacetTessellationKit & SetLocalTolerances(ToleranceArray
const & in_tolerance_array, IntArray
const & in_topology_array, IntArray
const & in_tolerance_for_tolopoly);
801 FacetTessellationKit & SetIgnoreCriteria(
bool in_ignore,
Ignore in_ignore_criteria = Ignore::Absolute,
double in_minimum_value = 0,
bool in_treat_faces_individually =
false);
854 FacetTessellationKit & SetStrips(
bool in_strips,
int in_max_facets_per_strip,
bool in_split_strips);
954 bool ShowTessellationLevel(
TessellationLevel & out_tessellation_level,
double & out_chord,
double & out_angle)
const;
959 bool ShowShapeGeneration(
Facet::Shape & out_shape)
const;
964 bool ShowVertexMatching(
Facet::Match & out_vertex_matching)
const;
972 bool ShowDensity(
Facet::Density & out_density,
double & out_density_tolerance,
double & out_density_max_angle, DVectorArray & out_view_directions)
const;
977 bool ShowIgnoredLoops(IntArray & out_ignored_loops)
const;
984 bool ShowFacetSize(
double & out_minimum_width,
double & out_maximum_width,
int & out_maximum_sides)
const;
991 bool ShowChordTolerance(
double & out_chord_tolerance,
double & out_maximum_chord_length,
double & out_maximum_chord_angle)
const;
997 bool ShowSurfacePlaneTolerance(
double & out_plane_tolerance,
double & out_max_plane_angle)
const;
1003 bool ShowFacetPlaneTolerance(
double & out_plane_tolerance,
double & out_max_plane_angle)
const;
1015 bool ShowLocalTolerances(ToleranceArray & out_tolerance_array, IntArray & out_topology_array, IntArray & out_tolerance_for_tolopoly)
const;
1023 bool ShowIgnoreCriteria(
bool & out_ignore,
Ignore & out_ignore_criteria,
double & out_minimum_value,
bool & out_treat_faces_individually)
const;
1028 bool ShowWireEdges(
bool & out_wire_edges)
const;
1039 bool ShowInflection(
bool & out_refine)
const;
1044 bool ShowImprovedFacetQuality(
bool & out_improved_quality)
const;
1049 bool ShowFlattenVertices(
bool & out_flatten_vertices)
const;
1054 bool ShowOffsetFaces(
bool & out_offset_faces)
const;
1059 bool ShowNormals(
bool & out_normals)
const;
1064 bool ShowParameters(
bool & out_parameters)
const;
1069 bool ShowEdges(
bool & out_edges)
const;
1076 bool ShowStrips(
bool & out_strips,
int & out_max_facets_per_strip,
bool & out_split_strips)
const;
1103 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidLineTessellationKit; }
1155 LineTessellationKit & SetSilhouetteEdges(
bool in_draw_silhouette_edges,
bool in_draw_circles_as_arcs);
1174 LineTessellationKit & SetRadialHatching(
Line::Hatching::Radial in_radial_hatching,
double in_around = 0,
double in_around_start = 0,
double in_along = 0,
double in_along_start = 0,
double in_about = 0,
double in_about_start = 0);
1198 LineTessellationKit & SetVisibilityEvaluation(
Line::Visibility in_visibility,
bool in_draw_invisible =
false,
bool in_drafting =
false,
bool in_self_hidden =
false, IntArray in_suppressed_indices = IntArray());
1227 LineTessellationKit & SetViewports(
bool in_use_viewports,
bool in_is_3d =
true,
bool viewport_clipping =
false, ViewportArray in_viewports = ViewportArray());
1234 LineTessellationKit & SetChordTolerance(
double in_chord_tolerance,
double in_maximum_chord_length,
double in_maximum_chord_angle);
1241 LineTessellationKit & SetIgnoreCriteria(
bool in_ignore,
Ignore in_ignore_criteria = Ignore::Absolute,
double in_minimum_value = 0);
1254 LineTessellationKit & SetTransparentBodies(
bool in_allow_transparency,
bool in_transparent_hide, IntArray in_transparent_bodies = IntArray());
1353 bool ShowEdges(
bool & out_draw_edges,
bool & out_internal_edges)
const;
1360 bool ShowSilhouetteEdges(
bool & out_draw_silhouette_edges,
bool & out_draw_circles_as_arcs)
const;
1379 bool ShowRadialHatching(
Line::Hatching::Radial & out_radial_hatching,
double & out_around,
double & out_around_start,
double & out_along,
double & out_along_start,
double & out_about,
double & out_about_start)
const;
1388 bool ShowParametericHatching(
Line::Hatching::Parametric & out_parametric_hatching,
double & out_u,
double & out_u_start,
double & out_v,
double & out_v_start)
const;
1394 bool ShowUnfixedBlends(
Line::UnfixedBlends & out_unfixed_blends,
double & out_spacing)
const;
1403 bool ShowVisibilityEvaluation(
Line::Visibility & out_visibility,
bool & out_draw_invisible,
bool & out_drafting,
bool & out_self_hidden, IntArray & out_suppressed_indices)
const;
1409 bool ShowSmoothEdges(
Line::Smooth & out_smooth,
double & out_tolerance)
const;
1414 bool ShowRegionalData(
Line::Region & out_region)
const;
1432 bool ShowViewports(
bool & out_use_viewports,
bool & out_is_3d,
bool & out_viewport_clipping, ViewportArray & out_viewports)
const;
1439 bool ShowChordTolerance(
double & out_chord_tolerance,
double & out_maximum_chord_length,
double & out_maximum_chord_angle)
const;
1446 bool ShowIgnoreCriteria(
bool & out_ignore,
Ignore & out_ignore_criteria,
double & out_minimum_value)
const;
1452 bool ShowMemoryLimit(
bool & out_use_memory_limit,
size_t & out_limit)
const;
1459 bool ShowTransparentBodies(
bool & out_allow_transparency,
bool & out_transparent_hide, IntArray & out_force_transparent)
const;
1464 bool ShowMissingGeometryFailure(
bool & out_fail_on_missing_geometry)
const;
1471 bool ShowOverlappingBehavior(
Line::OverlappingBehavior & out_overlapping_behavior, IntArray & out_indices_one, IntArray & out_indices_two)
const;
1498 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidExportOptionsKit; }
1573 bool ShowUserFields(
bool & out_user_fields)
const;
1578 #endif //SPRK_PARASOLID_H
MismatchBehavior
Definition: sprk_parasolid.h:72
Definition: sprk_parasolid.h:87
Definition: sprk_parasolid.h:115
Smooth
Definition: sprk_parasolid.h:240
Parametric
Definition: sprk_parasolid.h:215
Radial
Definition: sprk_parasolid.h:207
Definition: sprk_parasolid.h:170
Definition: sprk_parasolid.h:1476
Degeneracy
Definition: sprk_parasolid.h:152
TessellationLevel
Definition: sprk_parasolid.h:51
Format
Definition: sprk_parasolid.h:63
Definition: sprk_parasolid.h:389
Definition: sprk_parasolid.h:464
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:362
Hierarchical
Definition: sprk_parasolid.h:254
Definition: sprk_parasolid.h:196
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:684
BCurveRendering
Definition: sprk_parasolid.h:262
UnfixedBlends
Definition: sprk_parasolid.h:224
Density
Definition: sprk_parasolid.h:141
Definition: sprk_parasolid.h:193
Match
Definition: sprk_parasolid.h:131
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:1103
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:306
Definition: sprk_parasolid.h:1081
Planar
Definition: sprk_parasolid.h:199
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:436
Definition: sprk_parasolid.h:39
CompoundBodyBehavior
Definition: sprk_parasolid.h:80
Definition: sprk_parasolid.h:334
ComponentType
Definition: sprk.h:1619
Definition: sprk_parasolid.h:285
Shape
Definition: sprk_parasolid.h:121
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:1498
OverlappingBehavior
Definition: sprk_parasolid.h:269
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:515
IncrementalFaceting
Definition: sprk_parasolid.h:162
Ignore
Definition: sprk_parasolid.h:108
Definition: sprk_parasolid.h:662
Visibility
Definition: sprk_parasolid.h:231
static Model CreateModel(char const *in_name="")
Definition: sprk_parasolid.h:408
Region
Definition: sprk_parasolid.h:247
Definition: sprk_parasolid.h:493