ReadGOCAD

Synopsis

Reads GOCAD files and re-scales the data along the x, y and z axis.


  module ReadGOCAD <src_file="gocad.cxx",
                    libdeps="FLD",
                    cxx_hdr_files="fld/Xfld.h">
  {
    GocadParams &group_ref<NEportLevels={2,0},export=2>;
    boolean scale<export=2> => group_ref.scale;
    string file_name<export=2> => group_ref.file_name;
    float x<export=2> => group_ref.x;
    float y<export=2> => group_ref.y;
    float z<export=2> => group_ref.z;
    Grid Grid<export=2> {
      nspace = 3;
      coordinates {
        min => ;
        max => ;
      };
    };
    Cells Cells<export=2> {
      ncell_sets = 1;
      cell_set = {
        { cell_nnodes=3,poly_flag=0,cell_order=1,cell_ndim=2 }
      };
    };
    Xform Xform<export=2>;
    Mesh &Mesh<NEportLevels={0,2},export=2> => merge(.Grid,.Cells,.Xform);
    cxxmethod+notify_inst+req update<export=2>(
       Grid+write,
       Cells+write,
       scale+read+notify+req,
       x+read+notify+req,
       y+read+notify+req,
       z+read+notify+req,
       file_name+read+notify+req
    );
  };

Description

ReadGOCAD reads the contents of one GOCAD file, and converts this to a Mesh (Xform+Cells+Grid), suitable for input into a DataObject module. The module ignores all other lines from the GOCAD file except for vertices and triangles. It scans each line for the appropriate keywords. If the the line contains "VRTX", then it reads the id, and the position x, y, z. If the line contains "TRGL", it reads three index numbers for which set of vertices to tie together as a triangle. Axis specific scaling is achievable by using the floating point parameters x,y and z.

Inputs

&group_ref

Reference to the GocadParams parameter block.

Outputs

Mesh (Xform+Cells+Grid)

The output field contains scaled/not scaled data, suitable for input into a DataObject. This can be viewed using either a 2D or 3D Uviewer.

Utility Macros

The low-level ReadGOCAD is used in the Functional Macro Gocad and the User Macro read_gocad. Additionally, these macros also use the GocadParams parameter block group object, as does the GocadUI UI Macro.

Example

An example application ReadGocadEg is provided, which uses the sample data file worldmap.tsurf, to display a picture of the world.

Files

iac_proj/rdgocad/goc_mods.v contains the GocadParams group and the ReadGocad module V definitions.

Other Notes

By default the low-level library GocadMods, inherits its process as express. See the README file for details.

Authors

AVS5 version
Ian Curington,  AVS/UNIRAS Ltd.
Ported to AVS/Express by
Justin Greenhalgh
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
UK
M13 9PL

See Also

GocadParams, Gocad, GocadUI and read_gocad.