Xedge

Synopsis

Special version of external edges for unstructured fields, extended to draw silhouette edges.

Input Ports

Name Type Description

in_field unstructured field original data

Parameters

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

Output Ports

Name Type Description

out_fld Line mesh external and silhouette edges of input data
out_obj GDobject directly renderable output object

Description

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.

Inputs

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.

Parameters

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.

Outputs

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.

Utility Macros

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

Example

The example application XedgeEg reads a UCD file and displays both the original model and the generated silhouette edges.

Files

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.

Other Notes

The low-level XedgeMods library containing the module does not specify a process. By default the express process will be used.

Authors

Alex Yarmarkovic, Ian Curington
Advanced Visual Systems, Inc.

Modifications

Andrew Dodd
International AVS Centre

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also

Standard module external_edges and IAC module CleanEdges.