10 #ifndef SPRK_PARASOLID_H
11 #define SPRK_PARASOLID_H
18 # define PARASOLID_API __declspec (dllexport)
20 # define PARASOLID_API __declspec (dllimport)
25 # if defined(LINUX_SYSTEM) && defined(SPROCKETS)
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);
435 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidImportNotifier; };
452 Time GetImportTime()
const;
456 Time GetParseTime()
const;
459 class ImportOptionsKit;
460 class ExportOptionsKit;
514 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidImportOptionsKit; }
635 bool ShowUserFields(
bool & out_user_fields)
const;
683 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidFacetTessellationKit; }
748 FacetTessellationKit & SetDensity(
Facet::Density in_density,
double in_density_tolerance = 0,
double in_density_max_angle = 0, DVectorArray
const & in_view_directions = DVectorArray());
761 FacetTessellationKit & SetFacetSize(
double in_minimum_width,
double in_maximum_width,
int in_maximum_sides);
768 FacetTessellationKit & SetChordTolerance(
double in_chord_tolerance,
double in_maximum_chord_length,
double in_maximum_chord_angle);
774 FacetTessellationKit & SetSurfacePlaneTolerance(
double in_plane_tolerance,
double in_max_plane_angle);
780 FacetTessellationKit & SetFacetPlaneTolerance(
double in_plane_tolerance,
double in_max_plane_angle);
792 FacetTessellationKit & SetLocalTolerances(ToleranceArray
const & in_tolerance_array, IntArray
const & in_topology_array, IntArray
const & in_tolerance_for_tolopoly);
800 FacetTessellationKit & SetIgnoreCriteria(
bool in_ignore,
Ignore in_ignore_criteria = Ignore::Absolute,
double in_minimum_value = 0,
bool in_treat_faces_individually =
false);
853 FacetTessellationKit & SetStrips(
bool in_strips,
int in_max_facets_per_strip,
bool in_split_strips);
953 bool ShowTessellationLevel(
TessellationLevel & out_tessellation_level,
double & out_chord,
double & out_angle)
const;
958 bool ShowShapeGeneration(
Facet::Shape & out_shape)
const;
963 bool ShowVertexMatching(
Facet::Match & out_vertex_matching)
const;
971 bool ShowDensity(
Facet::Density & out_density,
double & out_density_tolerance,
double & out_density_max_angle, DVectorArray & out_view_directions)
const;
976 bool ShowIgnoredLoops(IntArray & out_ignored_loops)
const;
983 bool ShowFacetSize(
double & out_minimum_width,
double & out_maximum_width,
int & out_maximum_sides)
const;
990 bool ShowChordTolerance(
double & out_chord_tolerance,
double & out_maximum_chord_length,
double & out_maximum_chord_angle)
const;
996 bool ShowSurfacePlaneTolerance(
double & out_plane_tolerance,
double & out_max_plane_angle)
const;
1002 bool ShowFacetPlaneTolerance(
double & out_plane_tolerance,
double & out_max_plane_angle)
const;
1014 bool ShowLocalTolerances(ToleranceArray & out_tolerance_array, IntArray & out_topology_array, IntArray & out_tolerance_for_tolopoly)
const;
1022 bool ShowIgnoreCriteria(
bool & out_ignore,
Ignore & out_ignore_criteria,
double & out_minimum_value,
bool & out_treat_faces_individually)
const;
1027 bool ShowWireEdges(
bool & out_wire_edges)
const;
1038 bool ShowInflection(
bool & out_refine)
const;
1043 bool ShowImprovedFacetQuality(
bool & out_improved_quality)
const;
1048 bool ShowFlattenVertices(
bool & out_flatten_vertices)
const;
1053 bool ShowOffsetFaces(
bool & out_offset_faces)
const;
1058 bool ShowNormals(
bool & out_normals)
const;
1063 bool ShowParameters(
bool & out_parameters)
const;
1068 bool ShowEdges(
bool & out_edges)
const;
1075 bool ShowStrips(
bool & out_strips,
int & out_max_facets_per_strip,
bool & out_split_strips)
const;
1102 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidLineTessellationKit; }
1154 LineTessellationKit & SetSilhouetteEdges(
bool in_draw_silhouette_edges,
bool in_draw_circles_as_arcs);
1173 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);
1197 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());
1226 LineTessellationKit & SetViewports(
bool in_use_viewports,
bool in_is_3d =
true,
bool viewport_clipping =
false, ViewportArray in_viewports = ViewportArray());
1233 LineTessellationKit & SetChordTolerance(
double in_chord_tolerance,
double in_maximum_chord_length,
double in_maximum_chord_angle);
1240 LineTessellationKit & SetIgnoreCriteria(
bool in_ignore,
Ignore in_ignore_criteria = Ignore::Absolute,
double in_minimum_value = 0);
1253 LineTessellationKit & SetTransparentBodies(
bool in_allow_transparency,
bool in_transparent_hide, IntArray in_transparent_bodies = IntArray());
1352 bool ShowEdges(
bool & out_draw_edges,
bool & out_internal_edges)
const;
1359 bool ShowSilhouetteEdges(
bool & out_draw_silhouette_edges,
bool & out_draw_circles_as_arcs)
const;
1378 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;
1387 bool ShowParametericHatching(
Line::Hatching::Parametric & out_parametric_hatching,
double & out_u,
double & out_u_start,
double & out_v,
double & out_v_start)
const;
1393 bool ShowUnfixedBlends(
Line::UnfixedBlends & out_unfixed_blends,
double & out_spacing)
const;
1402 bool ShowVisibilityEvaluation(
Line::Visibility & out_visibility,
bool & out_draw_invisible,
bool & out_drafting,
bool & out_self_hidden, IntArray & out_suppressed_indices)
const;
1408 bool ShowSmoothEdges(
Line::Smooth & out_smooth,
double & out_tolerance)
const;
1413 bool ShowRegionalData(
Line::Region & out_region)
const;
1431 bool ShowViewports(
bool & out_use_viewports,
bool & out_is_3d,
bool & out_viewport_clipping, ViewportArray & out_viewports)
const;
1438 bool ShowChordTolerance(
double & out_chord_tolerance,
double & out_maximum_chord_length,
double & out_maximum_chord_angle)
const;
1445 bool ShowIgnoreCriteria(
bool & out_ignore,
Ignore & out_ignore_criteria,
double & out_minimum_value)
const;
1451 bool ShowMemoryLimit(
bool & out_use_memory_limit,
size_t & out_limit)
const;
1458 bool ShowTransparentBodies(
bool & out_allow_transparency,
bool & out_transparent_hide, IntArray & out_force_transparent)
const;
1463 bool ShowMissingGeometryFailure(
bool & out_fail_on_missing_geometry)
const;
1470 bool ShowOverlappingBehavior(
Line::OverlappingBehavior & out_overlapping_behavior, IntArray & out_indices_one, IntArray & out_indices_two)
const;
1497 HPS::Type
ObjectType()
const {
return HPS::Type::ParasolidExportOptionsKit; }
1572 bool ShowUserFields(
bool & out_user_fields)
const;
1577 #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:1475
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:463
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:683
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:1102
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:306
Definition: sprk_parasolid.h:1080
Planar
Definition: sprk_parasolid.h:199
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:435
Definition: sprk_parasolid.h:39
CompoundBodyBehavior
Definition: sprk_parasolid.h:80
Definition: sprk_parasolid.h:334
ComponentType
Definition: sprk.h:1517
Definition: sprk_parasolid.h:285
Shape
Definition: sprk_parasolid.h:121
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:1497
OverlappingBehavior
Definition: sprk_parasolid.h:269
HPS::Type ObjectType() const
Definition: sprk_parasolid.h:514
IncrementalFaceting
Definition: sprk_parasolid.h:162
Ignore
Definition: sprk_parasolid.h:108
Definition: sprk_parasolid.h:661
Visibility
Definition: sprk_parasolid.h:231
static Model CreateModel(char const *in_name="")
Definition: sprk_parasolid.h:407
Region
Definition: sprk_parasolid.h:247
Definition: sprk_parasolid.h:492