Faceting Output Via GO   

<<< Facet Mesh Generation Chapters Tabular Output of Faceting >>>

Contents

[back to top]


55.1 Introduction

This chapter describes the output of facet geometry through the Graphical Output (GO) interface. This is the output method used by PK_TOPOL_render_facet.

There is further information on this method of graphical output in Chapter 4, "Graphical Output", of the Parasolid Downward Interfaces Manual.

For information on the tabular output of facet geometry, see Chapter 56, "Tabular Output of Faceting".

[back to top]


55.2 Output through GO

The output of the facet mesh is controlled by the option structure PK_TOPOL_render_facet_o_t, which itself references two option structures:

Example:

The following sample C code shows how each part of the PK_TOPOL_render_facet_o_t options structure must be initialized to set up the default option settings, prior to calling PK_TOPOL_render_facet.

 

/* declaration and initialization */
PK_TOPOL_render_facet_o_t  my_render_option_struct;

PK_TOPOL_facet_mesh_o_m   (my_render_option_struct.control);
                                 /* set default mesh options */
PK_TOPOL_facet_go_o_m     (my_render_option_struct.go_option);
                                   /* set default GO options */

/* now set application specific mesh options */
my_render_option_struct.control.<field1> = <value1>;
my_render_option_struct.control.<field2> = <value2>;

/* and set application specific GO options */
my_render_option_struct.go_option.<field1> = <value1>;
my_render_option_struct.go_option.<field2> = <value2>;

/* ... now call PK_TOPOL_render_facet( ... ); */

[back to top]


55.3 PK_TOPOL_render_facet_go_o_t options

go_normals

PK_facet_go_normals_t controls whether facet normal data are calculated at facet vertices and output through GO. The possible settings are:

 

Value Description

PK_facet_go_normals_no_c (default)

do not output surface normals

PK_facet_go_normals_yes_c

output surface normals

go_parameters

PK_facet_go_parameters_t controls whether surface parameter data are calculated at facet vertices and output through GO. The possible settings are:

 

Value Description

PK_facet_go_parameters_no_c (default)

do not output surface parameter data

PK_facet_go_parameters_d0_c

output surface parameters at vertices

PK_facet_go_parameters_d1_c

output surface parameters plus first derivative data at vertices

PK_facet_go_parameters_d2_c

output surface parameters plus first and second derivative data at vertices

go_edges

PK_facet_go_edges_t controls whether edge entity values are output through GO. These allow the application to identify which facet edges (fins) lie on the boundary of a facet mesh and to associate them with an originating edge entity.

 

Value Description

PK_facet_go_edges_no_c (default)

do not output edge data

PK_facet_go_edges_yes_c

output edge entities at facet edges

go_strips

PK_facet_go_strips_t controls whether facets are output individually through GO or as facet strips. The latter are a repeating sequence of connected triangular facets which are output through GO in terms of shared coordinates

The value of max_facet_sides in the facet mesh options structure is ignored when facet strips are output (facets are always triangular).

 

Value Description

PK_facet_go_strips_no_c (default)

Do not output facet strips.

PK_facet_go_strips_yes_c

Output facet strips. Requires go_max_facets_per_strip to be >1

go_interleaved

PK_facet_go_interleaved_t controls whether facets are output from the GO on a body by body basis (that is, all the faces from one body are output, then all the faces from the next body, and so on), or whether faces from the total list of bodies output are interleaved (so that faces from different bodies may be output consecutively). Interleaving helps reduce the amount of facet data that is stored prior to outputting. Parasolid always outputs facets from a single face together, whether interleaving is used or not.

 

Value Description

PK_facet_go_interleaved_no_c (default)

Output faces on a body by body basis.

PK_facet_go_interleaved_yes_c

Output faces on an interleaved basis

If interleaving is used, and you need to keep track of the body with which a given face is associated, then you should use its occurrence number. For more information about occurrence numbers, see "Occurrence numbers" in Chapter 55, "Faceting Output Via GO".

If interleaving is used and multi-threading is enabled, then:

 

[back to top]

<<< Facet Mesh Generation Chapters Tabular Output of Faceting >>>