KEYWORD ObjectFiles ImageFile GroupObjects EditGroup NumRandom BinRandom NumberOfBins CloudMeasurements CloudModels DESCRIPTION : Clouds Clouds does all kinds of distance measurements between objects in a data file. The name clouds comes from the fact that it generates random points inside 3D objects (i.e. a cloud of points) for models and distance measurement distributions. Objects must be created in the object library format using either Volume Builder for 3D objects or Pick Points< for point objects. Point objects may be created with some other program and then read into Pick Points to convert it to object library format. The measurement output is a text file with distances in a column format such that it is readable by the user and can be easily cut and pasted into a spread sheet. The user can select one or a number of possible measurements to do in any one measurement run. ObjectFiles Files describing the objects are required input for Clouds. They need to be in the object library format and there are currently two types of objects that the program can use: 1) Volume objects are objects created with Volume Builder. They are a collection of polygons grouped to form 3D objects. When saving a file in Volume Builder to use with this program, save it in the object library format. 2) Point objects are created in the object library format using Pick Points. The points can be generated using any program that either uses the object library to save files, or writes out a Pick Points file. In the latter case, the file can simply be read in by Pick Points and written back out in the object library format. ImageFile The image file can be a file or a window. When a window is used, graphics are drawn to the window to show the objects. When objects are grouped, all grouped objects share the same color so that one can tell if the objects are properly grouped. GroupObjects Objects are divided into groups such that all small objects that fall inside a bigger object are grouped together. To group objects, press the "Group Objects" button. By defaults objects are divided into groups by going through all the objects and testing each object with all the others to see if one is inside the other. When there are many objects, this can be time consuming. The pulldown menu with options "no pregrouping" and "outer objects in wave" allows you to speed up the process if you can tell the program that the outer objects are in a separate wave from the inner objects. Normally the criterion for automatic grouping is that the center of gravity of the smaller object is inside the bigger object. If there are a lot of small objects that are right on the edge of the big object, this may not work. Turning on the "force" button and then pressing the "Group Objects" button will force any object that touches a big object at all to be grouped with the big object. Be aware that if outer objects are touching each other then using force could cause outer objects to be grouped together when no pregrouping is used. EditGroup Once you have grouped the objects (or even if you haven't), you can edit the grouping of objects. When you press the "Edit Group" button, you get a directive to click in the outer object of the group to add to. Once you do that, you can click in any smaller objects that should be part of that group. When you are done, press the "End Edit" button. The toggle button for "show directive popups" lets you turn off the popups that tell you what to click. NumRandom When sampling an object with random points or making cloud models, tell the program how many random points you want generated. You can enter a different amount for outer objects and inner objects. BinRandom For measurements involving random points, the results are presented as a histogram if the "bin random measurements" toggle button is on or as the raw distances if that toggle is off. CloudMeasurements The "Cloud Measurements" button opens a dialog that allows you to select which measurements you want to do. The measurements will be written to a file whose name you must enter in the "Output dist file" field or select by using the file dialog that appears when press the "Output dist file" button. You add a measurement to the list of measurements to perform (a "run list") by using the "From" and "To" pulldowns to select which object components to use for the measurement and then pressing the "Add Setting" button. Whenever you change the "From" pulldown, the "To" pulldown will change to reflect the available targets for the measurement. You can add as many measurements to the list as you want. To save a list of measurements that you want to reuse with another set of objects: 1) Press the "Save Run List" button. 2) In the dialog that appears, enter the file name to create in the field next to the "getfile" or press the "getfile" button to select the file with a file dialog. Then press the "Save" button. To reload a list of previously saved measurements press the "Load Run List" button and use the file dialog that appears to select the file containing the list of measurements. To clear a list of measurements so you can enter another list, press the "Clear List" button. Once you have selected the list of measurements, press the "DO IT" button at the bottom of the dialog to perform the calculations and write the results. There are quite a few combinations of elements that can be used for measurement. Currently implemented measurements are: From Outer Cloud random pts to Each other Determines the pairwise distances between the random points generated in the outer cloud. From Inner Clouds random pts to Other Inner Cloud random Determines the pairwise distances between random points generated for different inner clouds. From Inner Clouds random pts to Outer Cloud CM Determines the distance from each random point in the inner clouds to the outer cloud's intensity-weighted center. From Inner Clouds random pts to Outer Cloud CG Determines the distance from each random point in the inner clouds to the outer cloud's geometric center. From Inner Clouds random pts to Outer Cloud Surface Determines the distance from each random point in the inner clouds to the outer cloud surface. From Inner Cloud CM's to Other Inner Cloud CG's Determines the distance from each inner cloud's intensity-weighted center to each other inner cloud's geometric center. From Inner Cloud CM's to Other Inner Cloud CM's Determines the distance from each inner cloud's intensity-weighted center to each other inner cloud's intensity-weighted center. From Inner Cloud CM's to Outer Cloud CM Determines the distance from each inner cloud's intensity-weighted center to the outer cloud's intensity-weighted center. From Inner Cloud CM's to Outer Cloud CG Determines the distance from each inner cloud's intensity-weighted center to the outer cloud's geometric center. From Inner Cloud CM's to Outer Cloud Surface Determines the distance from each inner cloud's intensity-weighted center to the outer cloud's surface. From Inner Cloud CM's to Outer Cloud ZCenterPlane Determines the distance from each inner cloud's intensity-weighted center to the outer cloud's central z plane. From Inner Cloud CG's to Other Inner Cloud CG's Determines the distance from each inner cloud's geometric center to each other inner cloud's geometric center. From Inner Cloud CG's to Other Inner Cloud CM's Determines the distance from each inner cloud's geometric center to each other inner cloud's intensity-weighted center. From Inner Cloud CG's to Outer Cloud CM Determines the distance from each inner cloud's geometric center to the outer cloud's intensity-weighted center. From Inner Cloud CG's to Outer Cloud CG Determines the distance from each inner cloud's geometric center to the outer cloud's geometric center. From Inner Cloud CG's to Outer Cloud Surface Determines the distance from each inner cloud's geometric center to the outer cloud's surface. From Inner Cloud CG's to Outer Cloud ZCenterPlane Determines the distance from each inner cloud's geometric center to the outer cloud's central z plane. From Inner Point Objects to Each Other Determines the distances between all inner points and the distribution of those distances. From Inner Point Objects to Outer Cloud CM Determine the distance between each inner point object and the outer cloud's intensity-weighted center. From Inner Point Objects to Outer Cloud CG Determine the distance between each inner point object and the outer cloud's geometric center. From Inner Point Objects to Outer Cloud Surface Determine the distance between each inner point object and the outer cloud's surface. From Inner Point Objects to Outer Cloud ZCenterPlane Determine the distance between each inner point object and the outer cloud's central z plane. From Inner Point Objects to Region Creates a set of n concentric regions where the ith region (i in 0 to n) has the same shape as the outer cloud, but the distance between any point in the region and the region's center is ((n-i)/n)^(1/3) times the equivalent distance in the outer cloud. Then, for each inner point, determines the index of the smallest region that contains the point. From All Point Objects to Each Other Determines the distance between all point objects and the distribution of those distances. From All Point Objects to Outer Cloud CM Determine the distance between each point object and the outer cloud's intensity- weighted center. From All Point Objects to Outer Cloud CG Determine the distance between each point object and the outer cloud's geometric center. From All Point Objects to Outer Cloud Surface Determine the distance between each point object and the outer cloud's surface. For measurements involving randomly generated points, the measurements are either reported as a histogram or as the raw distance values depending on whether or not the "bin random measurements" toggle is on. It is not currently possible to generate both the histogram and raw distance values in the same run for the measurements involving randomly generated points. CloudModels Use the "Cloud Models" button in the main Clouds dialog to write a description of the generated clouds which 3D Model can read and display. A dialog will appear to prompt you for the name of the file to write (or you can select it with a file dialog by pressing the "getfile" button). Press the "Save" button in that dialog to generate the file. A cloud will be created for every volume object that has been loaded into the program.