Special version of external edges for unstructured fields, extended to draw silhouette edges.
Name | Type | Description | |
in_field | unstructured field | original data | |
Name | Type | Description | UI Control |
angle | float | minimum external edge angle | Slider |
xtest | int | selects testing of x-axis crossing | Toggle |
ytest | int | selects testing of y-axis crossing | Toggle |
ztest | int | selects testing of z-axis crossing | Toggle |
Name | Type | Description | |
out_fld | Line mesh | external and silhouette edges of input data | |
out_obj | GDobject | directly renderable output object | |
The xedge module is an enhanced version of the standard external edge module. Is well as the standard behavior this module also adds the ability to draw silhouette edges. A silhouette edge is defined as an edge where the curvature of the surface is aligned with one of the major axes. The underlying algorithm works by computing the surface normals of each two faces that share an edge. If the sign of a component of the surface normal changes across the edge (i.e. if it is crossing an axis) then the edge will be drawn regardless of the normal angle testing.
The module only works with unstructured fields. If you need structuredfield edges, use the bounds module. As well as checking for silhouette edges the module also tests the angle between adjacent edges in the same way the standard external edges module does.
in_field
Field input containing the data that is to be analysed by the xedge module. The field should contain an unstructured mesh. If node data is present it will be passed to the output unchanged.
angle
Floating point parameter specifying the maximum angle between two faces that is allowed to define an external edge in the output data. This parameter behaves in the same way as the angle parameter of the standard external edges module.
xtest
Boolean parameter that specifies if edges are to be drawn if the surface normal curvature crosses the X axis.
ytest
Boolean parameter that specifies if edges are to be drawn if the surface normal curvature crosses the Y axis.
ztest
Boolean parameter that specifies if edges are to be drawn if the surface normal curvature crosses the Z axis.
out_fld
Output field containing the edges generated by the xedge module. The field will contain a Line cell set which defines the external edges of the model. If data was present on the input the field will also contain appropriate Data values.
out_obj
The GDobject version of the output, suitable for direct connection to a viewer.
The XedgeFunc functional macro makes use of the low-level module XedgeCore. The xedge user macro makes use of this functional macro and the user interface macro, XedgeUI. The XedgeParams parameter block is used by all of these modules to connect themselves together
The example application XedgeEg reads a UCD file and displays both the original model and the generated silhouette edges.
iac_proj/xedge/xe_mods.v contains the V definitions of the XedgeCore low-level module and the XedgeParams parameter block.
iac_proj/xedge/xe_macs.v contains the V definitions of the User Interface macro XedgeUI, the functional macro XedgeFunc, the user macro xedge and the example application XedgeEg.
The low-level XedgeMods library containing the module does not specify a process. By default the express process will be used.
Alex Yarmarkovic, Ian Curington Advanced Visual Systems, Inc.
Andrew Dodd International AVS Centre
International AVS Centre Manchester Visualization Centre Manchester Computing University of Manchester Oxford Road Manchester United Kingdom M13 9PL
Standard module external_edges and IAC module CleanEdges.