BodyOfRevolution

Synopsis

The BodyOfRevolution module rotates two polylines around the z-axis to form a "solid" body of revolution. The routine also calculates the mass properties for the body. The body is generated for 360 degrees of revolution.

Input Ports

Name Type Description

r_outside float[] Radii of the outside surface of the body of revolution at the z-positions given by z_outside.
z_outside float[] Position of the next fixed points along the z-axis describing the inside and outside radius.
r_inside float[] Radii of the inside surface of the body of revolution at the z-positions given by z_outside.

Parameters

Name Type Description UI Control

active int Enables or disables the BodyOfRevolution module.
Subdivision int Number of faces that generate the surface of the body of revolution. Slider
nose_cap_on int Toggles a semisphere on the end of the body of revolution. CheckBox
density float The density property is used for the mass calculation. TextField

Output Ports

Name Type Description

mass float Mass Property of the Body of revolution.
out Mesh Grid and mesh containing the Body of revolution surface.
obj DataObject Directly renderable object generated from the out mesh.

Description

BodyOfRevolution rotates "inside" and "outside" polylines around the "z" axis to form a "solid" body of revolution. The routine creates surfaces and the appropriate normals for the inside, outside, and end caps (if required). The outside polyline line is required. The routine also calculates the mass properties for the body. The body is generated for 360 degrees of revolution only.

Inputs

r_outside[]

Radii of the outside surface of the body of revolution at the z-positions given by z_outside.

z_outside[]

Positions of the fixed points along the z-axis, on which a radius for the inside and outside surface is given.

r_inside

Radii of the inside surface of the body of revolution at the z-positions given by z_outside.

Parameters

active

Enables or disables the BodyOfRevolution module.

nose_cap_on

Toggles a semisphere on the end of the body of revolution.

Subdivision

Number of faces that generate the surface of the body of revolution.

density

The density property is used for the mass calculation.

Outputs

mass

Mass Property of the Body of revolution. This mass property is calculated from the volume of the body of revolution and the density parameter given by the user. This calculation is currently limited to the use of identical z-positions for the inside and outside radius. Therefore there is no z_inside Input array.

out

Grid and mesh containing the Body of revolution surface. This output can be used for further processing.

obj

Directly renderable object generated from the out mesh. This output can be connected directly to the UViewer to get a rendered image.

Example

An Example Application that uses the BodyOfRevolution module is provided. This Application generates a body of revolution surface from the given inner and outer radii using the z positions given by the third array. The example arrays are fixed in the application.

Files

iac_proj/bodofrev/bodofrev.v Creates the IAC_PROJ.BodyOfRevolution library.

iac_proj/bodofrev/bofrmods.v Creates the BodyOfRevolutionMods library containing the low-level module BodyOfRevolutionCore and the parameter block BodyOfRevolutionParams.

iac_proj/bodofrev/bofrmacs.v Creates the BodyOfRevolutionMacs library containing the high-level functional macro BodyOfRevolutionFunc, user interface macro BodyOfRevolutionUI and the user macro BodyOfRevolution.

iac_proj/bodofrev/bofrapps.v Creates the BodyOfRevolutionApps library containing the example application BodyOfRevolutionEg.

Other Notes

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

Authors

Brian Selle, Leon Thrane, Ian Curington
Advanced Visual Systems Inc.

Modifications

Paul G. Lever
Manchester Visualization Centre
Tobias Schiebeck
International AVS Centre

Contact

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