Surfaces can be extracted in four different ways: 1) color surfaces, 2) largest surface, 3) seeded surfaces, and 4) specified surfaces. Coloring surfaces means extracting surfaces and creating scalar data corresponding to surface number. Surface extraction based on largest surface means extracting the single surface that contains the largest number of lines, polygons, and/or triangle strips. Surface extraction based on seeded surfaces means extracting a surface whose lines, polygons, and/or triangle strips are connected to a list of specified points. Specified surface extraction means extracting a surface of a specified surface number.
As a side note: to create a consistently ordered mesh, connectivity uses a recursive traversal between neighboring polygons to insure consistent polygon ordering. However, because of limits on recursion in many computer systems, the recursion depth is controlled using the recursion_depth instance variable. For maximum performance this variable should be as large as possible.
Another note: extracting surfaces using the color surfaces method forces the creation of scalars corresponding to surface number. The coloring instance variable can be used in the other extraction methods (largest surface, seeded surfaces, specified surfaces) to color the extracted surface(s).
recursion_depth parameter to control the depth of the recursive
polygon connectivity process. Make as large as possible.
coloring? get the value of the splitting instance variable.
coloring= value get the value of the splitting instance variable.
color_surfaces! extract all surfaces but color them according to surface number. This is the default behavior.
number_surfaces?/no_surfaces? return the number of surfaces in the input data.
extract_largest_surface! set the filter to extract the largest connected surface from the input data.
extract_seeded_surface! set the filter to extract a seeded surface from the input data.
seed_points= (p1,p2,...) set the list of seed points (based on id) to use when extracting seeded surface.
seed_points+ (p1,p2,...) add to the list of seed points (based on id) to use when extracting seeded surface.
seed_points? get the list of seed points.
extract_specified_surfaces! set the filter to extract surfaces specified in the surfaces list.
surfaces= (s1,s2,...) set the list of surface (based on id) to use when extracting specified surface.
surfaces+ (s1,s2,...) add to the list of surfaces (based on id) to use when extracting specified surfaces.
surfaces? get the list of specified surfaces.
recursion_depth? get the value of the recursion_depth instance variable.
recursion_depth= value get the value of the recursion_depth instance variable.
default! on! ; renderer new: aren actors=[actor instances?] cameras=[camera instances?] render! ;
conn extract_largest_surface! ; aren render!;
conn extract_seeded_surfaces! seed_points=(3) ; aren render!;
conn extract_specified_surfaces! surfaces=(1,2) ; aren render!;