Woolz Image Processing  Version 1.7.0
WlzIO

Defines Doxygen group WlzIO. More...

Files

file  WlzReadObj.c
 Reads a Woolz object from a file stream.
 
file  WlzWriteObj.c
 Functions for writing Woolz objects.
 

Enumerations

enum  _WlzIOFlags {
  WLZ_IOFLAGS_NONE = (0),
  WLZ_IOFLAGS_READ = (1),
  WLZ_IOFLAGS_WRITE = (1<<1)
}
 Flags for Woolz file I/O. More...
 

Functions

WlzObjectType WlzReadObjType (FILE *fP, WlzErrorNum *dstErr)
 Reads the type of an object from the given input file stream. This type is returned as read from the file and may not be a valid object type if the file is not a Woolz file or it is corrupted. More...
 
WlzObjectWlzReadObj (FILE *fp, WlzErrorNum *dstErr)
 Reads a woolz object from the given input stream. For some object types (e.g. 3D) an object may be returned with the error set to WLZ_ERR_READ_INCOMPLETE. This allows partial recovery of data. More...
 
WlzMeshTransform3DWlzReadMeshTransform3D (FILE *fp, WlzErrorNum *dstErr)
 reads a woolz 3D MeshTransform More...
 
WlzErrorNum WlzWriteObj (FILE *fP, WlzObject *obj)
 Top-level procedure for writing an object to a file stream. For historical reasons most data are written using DEC VAX byte ordering. More...
 
WlzErrorNum WlzWriteMeshTransform3D (FILE *fP, WlzMeshTransform3D *obj)
 Write a 3D mesh transform to the given file-stream. More...
 

Detailed Description

Defines Doxygen group WlzIO.

Woolz objects can be written to disc or pipe as a serial character stream. The file format is fixed and the appropriate byte-swapping and ordering is managed by architecture dependent functions for I/O of each basic type. These could break for non-default settings for byte orderings (e.g. possible on Sun workstations). The basic types are char (8-bit), int (4-byte), short (2-byte), float(4-byte) and double (8-byte). A new version of the object was introduced in 2002 to include a full property list therefore old code may not be able to read this data.

The structure of the object file is:

<object file> :=       <object>*<WLZ_NULL>
                       (There can be any number of objects)

<object>:=             <WLZ_2D_DOMAINOBJ><domain><grey-table><property-list>
                       <WLZ_3D_DOMAINOBJ><planedomain><voxel-table><property-list>
                       <WLZ_TRANS_OBJ><affine><object><property-list>
                       <WLZ_3D_WARP_TRANS><3D warp-transform><property-list>
                       <WLZ_2D_POLYGON><2D polygon>
                       <WLZ_BOUNDLIST><bound-list>
                       <WLZ_CONV_HULL><<2D polygon><convex hull>
                       <WLZ_HISTOGRAM><histogram>
                       <WLZ_3D_POLYGON>(not yet implemented)
                       <WLZ_CONTOUR><contour>
                       <WLZ_RECTANGLE><rectangle>
                       <WLZ_AFFINE_TRANS><affine>
                       <WLZ_WARP_TRANS><warp-transform>
                       <WLZ_FMATCHOBJ><f-match-object>
                       <WLZ_COMPOUND_ARR_1><compound-array>
                       <WLZ_COMPOUND_ARR_2><compound-array>
                       <WLZ_PROPERTY_OBJ><property-list>
                       <WLZ_EMPTY_OBJ>
                       <WLZ_NULL> (only valid for a compound object)
                       
<WLZ_2D_DOMAINOBJ>:=   <type=1>
<WLZ_3D_DOMAINOBJ>:=   <type=2>
<WLZ_TRANS_OBJ>:=      <type=3>
<WLZ_3D_WARP_TRANS>:=  <type=4>
<WLZ_2D_POLYGON>:=     <type=10>
<WLZ_BOUNDLIST>:=      <type=11>
<WLZ_CONV_HULL>:=      <type=12>
<WLZ_HISTOGRAM>:=      <type=13>
<WLZ_3D_POLYGON>:=     <type=14>
<WLZ_CONTOUR>:=        <type=15>
<WLZ_RECTANGLE>:=      <type=20>
<WLZ_AFFINE_TRANS>:=   <type=63>
<WLZ_WARP_TRANS>:=     <type=64>
<WLZ_FMATCHOBJ>:=      <type=65>
<WLZ_COMPOUND_ARR_1>:= <type=80>
<WLZ_COMPOUND_ARR_2>:= <type=81>
<WLZ_PROPERTY_OBJ>:=   <type=110>
<WLZ_EMPTY_OBJ>:=      <type=127>
<WLZ_NULL>             <type=0>

<type>:=               <char> (interpreted as 1 byte unsigned integer)

<domain>:=             <WLZ_INTERVALDOMAIN_INTVL><l1><ll><k1><kl><intervals>
                       <WLZ_INTERVALDOMAIN_RECT><l1><ll><k1><kl>
                       <WLZ_NULL> (only valid within a planedomain)

<WLZ_INTERVALDOMAIN_INTVL>:= <type=1>
<WLZ_INTERVALDOMAIN_RECT>:=  <type=2>

<l?>:=                 <int>
<k?>:=                 <int>
<p?>:=                 <int>

<intervals>:=          <number of intervals per line>*<endpoint pair>*

<endpoint pair>:=      <left end of interval><right end of interval>

<number of intervals per line>:= <int>
<left end of interval>:=         <int>
<right end of interval>:=        <int>

<grey-table>:=         <WLZ_NULL>
                       <WLZ_GREY_INT><packing=WLZ_GREY_INT><int><greyint>*
                       <WLZ_GREY_INT><packing=WLZ_GREY_SHORT><int><greyshort>*
                       <WLZ_GREY_INT><packing=WLZ_GREY_UBYTE><int><greybyte>*
                       <WLZ_GREY_SHORT><packing=WLZ_GREY_SHORT><int><greyshort>*
                       <WLZ_GREY_SHORT><packing=WLZ_GREY_UBYTE><int><greybyte>*
                       <WLZ_GREY_UBYTE><packing=WLZ_GREY_UBYTE><int><greybyte>*
                       <WLZ_GREY_FLOAT><packing=WLZ_GREY_FLOAT><float><greyfloat>*
                       <WLZ_GREY_DOUBLE><packing=WLZ_GREY_DOUBLE><double><greydouble>*
                       (In each case exactly sufficient values to fill the
                        intervals of the object. The value following the packing
                        is the background pixel value)

<WLZ_GREY_INT>:=       <type=1>
<WLZ_GREY_SHORT>:=     <type=2>
<WLZ_GREY_UBYTE>:=     <type=3>
<WLZ_GREY_FLOAT>:=     <type=4>
<WLZ_GREY_DOUBLE>:=    <type=5>

<packing>:=            <type>

<greyint>:=            <int>
<greyshort>:=          <short>
<greybyte>:=           <char>
<greyfloat>:=          <float>
<greydouble>:=         <double>

<property-list>:=      <WLZ_NULL>
                       <type=2><int=number of properties><property>*

<property>:=           <WLZ_NULL>
                       <WLZ_PROPERTY_SIMPLE><int=size><char>*
                       <WLZ_PROPERTY_EMAP><emap property type><int=Theiler stage>
                       ...<emap model name><emap version><int=creation time>
                       ...<emap name=author><emap name=machine name>
                       ...<int=modification time>emap name=modification author>
                       ...<int=strlen(filename)><char>*
                       ...<int=strlen(comment)><char>*

<emap property type>:= <WLZ_EMAP_PROPERTY_GREY_MODEL>
                       <WLZ_EMAP_PROPERTY_ANATOMY_DOMAIN>
                       <WLZ_EMAP_PROPERTY_OTHER_DOMAIN>

<emap model name>:=    <char>*32
<emap version>:=       <char>*16
<emap name>:+          <char>*64

<WLZ_EMAP_PROPERTY_GREY_MODEL>:=     <type=1>
<WLZ_EMAP_PROPERTY_ANATOMY_DOMAIN>:= <type=2>
<WLZ_EMAP_PROPERTY_OTHER_DOMAIN>:=   <type=3>

<planedomain>:=        <WLZ_NULL>
                       <WLZ_PLANEDOMAIN_DOMAIN><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><domain>*
                       <WLZ_PLANEDOMAIN_POLYGON><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><2D polygon>*
                       <WLZ_PLANEDOMAIN_BOUNDLIST><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><bound-list>*
                       <WLZ_PLANEDOMAIN_HISTOGRAM><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><histogram>*
                       <WLZ_PLANEDOMAIN_AFFINE><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><affine>*
                       <WLZ_PLANEDOMAIN_WARP><p1><pl><l1><ll><k1><kl>
                       ...<voxel-size><plane-positions><warp transform>*

<voxel-size>:=         <float=x-size><float=y-size><float=z-size>
<plane-positions>:+    <float>* (one value for each plane, now obsolete)
        
<voxel-table>:=        <WLZ_NULL>
                       <WLZ_VOXELVALUETABLE_GREY><int=background><grey-table>*
                       (note the number of grey-tables is determined from the
                        associated plane-domain)

<WLZ_VOXELVALUETABLE_GREY>:= <type=1>

<affine>:=             <WLZ_NULL>
                       <WLZ_TRANSFORM_2D_AFFINE><double>*16
                       <WLZ_TRANSFORM_2D_REG><double>*16
                       <WLZ_TRANSFORM_2D_TRANS><double>*16
                       <WLZ_TRANSFORM_2D_NOSHEAR><double>*16
                       <WLZ_TRANSFORM_3D_AFFINE><double>*16
                       <WLZ_TRANSFORM_3D_REG><double>*16
                       <WLZ_TRANSFORM_3D_TRANS><double>*16
                       <WLZ_TRANSFORM_3D_NOSHEAR><double>*16
                       (The affine transform matrix is written row-wise
                        as 16 double values)

<WLZ_TRANSFORM_2D_AFFINE>:=  <type=1> (full 2D affine)
<WLZ_TRANSFORM_2D_REG>:=     <type=2> (2D rigid-body)
<WLZ_TRANSFORM_2D_TRANS>:=   <type=3> (2D translation only)
<WLZ_TRANSFORM_2D_NOSHEAR>:= <type=4> (2D rigid-body plus scaling)
<WLZ_TRANSFORM_3D_AFFINE>:=  <type=5> (full 3D affine)
<WLZ_TRANSFORM_3D_REG>:=     <type=6> (3D rigid-body)
<WLZ_TRANSFORM_3D_TRANS>:=   <type=7> (3D translation only)
<WLZ_TRANSFORM_3D_NOSHEAR>:= <type=8> (3D rigid-body plus scaling)

<3D warp-transform>:=  <int=iteration><int=current-plane><float=max-displacement>
                       ...<planedomain><f-match-object>*
                       (one f-match-object per plane)

<2D polygon>:=         <WLZ_NULL>
                       <WLZ_POLYGON_INT><int=num vertices><2D int vertex>*
                       <WLZ_POLYGON_FLOAT><int=num vertices><2D float vertex>*
                       <WLZ_POLYGON_DOUBLE><int=num vertices><2D double vertex>*

<2D int vertex>:=      <int=line coord.><int=column coord.>
<2D float vertex>:=    <float=line coord.><float=column coord.>
<2D double vertex>:=   <double=line coord.><double=column coord.>
<3D int vertex>:=      <int=column coord.><int=line coord.><int=plane coord.>
<3D float vertex>:=    <float=column coord.><float=line coord.><float=plane coord.>
<3D double vertex>:=   <double=column coord.><double=line coord.><double=plane coord.>
                       (Note 2D in reverse order (y,x), 3D in normal order (x,y,z))

<bound-list>:=         <WLZ_NULL>
                       <type=1><bound-list type><bound-list=next>
                       ...<bound-list=down><int=wrap><polygon>

<bound-list type>:=    <WLZ_BOUNDLIST_PIECE>
                       <WLZ_BOUNDLIST_HOLE>

<WLZ_BOUNDLIST_PIECE>:= <type=0>
<WLZ_BOUNDLIST_HOLE>:=  <type=1>

<convex hull>:=        <WLZ_NULL>
                       <WLZ_CONVHULL_VALUES><int=num chords><int=num sig. chords>
                       ...<int=mid line><int=mid column><chord>*

<chord>:=              <int=significance><int=acon><int=bcon><int=ccon>
                       ...<double=chord length>
                       ...<int=bl><int=bk><int=b-area><int=b-depth>
                       (parameters are defined in WlzTypes.h)

<WLZ_CONVHULL_VALUES>:= <type=1>

<histogram>:=          <WLZ_NULL>
                       <WLZ_HISTOGRAMDOMAIN_INT><int=num bins><double=origin>
                       ...<double=bin size><int>*
                       <WLZ_HISTOGRAMDOMAIN_FLOAT><int=num bins><double=origin>
                       ...<double=bin size><double>*
                       (curiously float type is actually all doubles)

<WLZ_HISTOGRAMDOMAIN_INT>:=   <type=3>
<WLZ_HISTOGRAMDOMAIN_FLOAT>:= <type=4>

<contour>:=            <WLZ_CONTOUR><GM model>

<GM model>:=           <WLZ_GMMOD_2I><type=0><int=num vertices><int=num edges>
                       ...<2D int vertex>*<edge indices>*
                       <WLZ_GMMOD_2D><type=0><int=num vertices><int=num edges>
                       ...<2D double vertex>*<edge indices>*
                       <WLZ_GMMOD_3I><type=0><int=num vertices><int=num faces>
                       ...<3D int vertex>*<face indices>*
                       <WLZ_GMMOD_3D><type=0><int=num vertices><int=num faces>
                       ...<3D double vertex>*<face indices>*

<edge indices>:=       <int=1st index><int=2nd index>
                       (These are indices into the vertex table for each simplex)
<face indices>:=       <int=1st index><int=2nd index><int=3rd index>
                       (These are indices into the vertex table for each simplex,
                        in this case the faces are triangles)

<rectangle>:=          <WLZ_NULL>
                       <WLZ_RECTANGLE_DOMAIN_INT><k[1-4]><l[-4><rangle>
                       <WLZ_RECTANGLE_DOMAIN_FLOAT><fk[1-4]><fl[-4><rangle>

<WLZ_RECTANGLE_DOMAIN_INT>:=   <type=1>
<WLZ_RECTANGLE_DOMAIN_FLOAT>:= <type=2>

<fk?>:=                <float>
<fl?>:=                <float>
<rangle>:=             <float>

<warp-transform>:=     <WLZ_WARP_TRANS><int=num elements><int=num nodes>
                       ...<float=max displacement><float=max disp. last iteration>
                       ...<node coord>*<displacement>*<element>*

<node coord>:=         <float=x><float=y>
<displacement:=        <float=x-displacement><float=y-displacement>
<element>:=            <element type><int=global element #><global node #>
                       ...<element u-vals><element a-vals>


<element type>:=        <WLZ_LINEAR>
                        <WLZ_INCOMPRESSIBLE>
                        <WLZ_COMPRESSIBLE>
<global node #>:=       <int=1st node #><int=2nd node #><int=3rd node #>
<element ?-vals>:=      <float=1st val><float=2nd val><float=3rd val>

<WLZ_LINEAR>:=          <type=1>
<WLZ_INCOMPRESSIBLE>:=  <type=2>
<WLZ_COMPRESSIBLE>:=    <type=3>

<f-match-object>:=      <int=num match points><match point>*

<match point>:=         <match type><int=node index><float=x-coord><float=y-coord>
                        ...<search element indices>

<search element indices>:= <int=element index>*20

<compound-array>:=      <compound-array type><int=num objects><object>*<property-list>

<int>:=                 4 byte signed integer, LSB first (little endian - VAX order!)
<short>:=               2 byte signed integer, LSB first (little endian - VAX order!)
<float>:=               4 byte floating point (Vax format for backward compatibility)
                        mapping to IEEE Standard 754 as:
                            byte 1 = (IEEE byte 2)
                            byte 2 = (IEEE byte 1) + 1
                            byte 3 = (IEEE byte 4)
                            byte 4 = (IEEE byte 3)
                        (This scrambled ordering matches sparc, mips and power-pc,
                         the reverse matches x86 and alpha)
<double>:=              8 byte floating point mapping to  IEEE Standard 754 as:
                            byte 1 = (IEEE byte 8)
                            byte 2 = (IEEE byte 7)
                            byte 3 = (IEEE byte 6)
                            byte 4 = (IEEE byte 5)
                            byte 5 = (IEEE byte 4)
                            byte 6 = (IEEE byte 3)
                            byte 7 = (IEEE byte 2)
                            byte 8 = (IEEE byte 1)
                        (I.e. this is the reverse order for sparc, mips and power-pc,
                         natural order for x86 and alpha)
<char>:=                8-bit byte

The basic philosophy of the sequential form of an object is that sub-objects are ordered in such a way that pointers are unnecessary. This ordering is defined hierarchically above. All symbols not otherwise defined are taken to be "<int>", i.e. a 4-byte signed integer, <...>* indicates that the item is repeated a suitable number of times. Alternative expansions of a non-terminal symbol are given on separate lines. "..." at the beginning of a line indicates the continuation of the previous line.

Enumeration Type Documentation

Flags for Woolz file I/O.

Enumerator
WLZ_IOFLAGS_NONE 

No flags set.

WLZ_IOFLAGS_READ 

Read flag bit.

WLZ_IOFLAGS_WRITE 

Write flag bit.

Function Documentation

WlzObjectType WlzReadObjType ( FILE *  fP,
WlzErrorNum dstErr 
)

Reads the type of an object from the given input file stream. This type is returned as read from the file and may not be a valid object type if the file is not a Woolz file or it is corrupted.

Returns
Woolz object type as read from file.
Parameters
fPInput file.
dstErrDestination error pointer, may be NULL.

References WLZ_ERR_NONE, WLZ_ERR_PARAM_NULL, WLZ_ERR_READ_EOF, and WLZ_NULL.

Referenced by WlzReadObj().

WlzObject* WlzReadObj ( FILE *  fp,
WlzErrorNum dstErr 
)

Reads a woolz object from the given input stream. For some object types (e.g. 3D) an object may be returned with the error set to WLZ_ERR_READ_INCOMPLETE. This allows partial recovery of data.

Returns
New Woolz object or NULL on error.
Parameters
fpInput file.
dstErrDestination error pointer, may be NULL.

References _WlzTElement::a, ALC_ER_NONE, AlcDLPListEntryAppend(), AlcFree(), AlcFreeStackPush(), AlcMalloc(), _WlzEMAPProperty::anatomyUID, _WlzDomain::b, _WlzRectValues::bckgrnd, _WlzVoxelValues::bckgrnd, _WlzTiledValues::bckgrnd, _WlzHistogramDomain::binSize, _WlzHistogramDomain::binValues, _WlzDomain::cm2, _WlzDomain::cm2d5, _WlzDomain::cm3, _WlzIntervalWSpace::colrmn, _WlzEMAPProperty::comment, _WlzValues::core, _WlzDomain::core, _WlzProperty::core, _WlzEMAPProperty::creationAuthor, _WlzEMAPProperty::creationMachineName, _WlzEMAPProperty::creationTime, _WlzDomain::ctr, _Wlz3DWarpTrans::currentplane, _WlzGreyP::dbp, _WlzGreyV::dbv, _WlzTiledValues::dim, _WlzWarpTrans::displacements, _WlzObject::domain, _WlzPlaneDomain::domains, _WlzBoundList::down, _WlzFMatchPoint::elements, _WlzWarpTrans::eltlist, _WlzProperty::emap, EMAP_PROPERTY_AUTHORNAME_LENGTH, EMAP_PROPERTY_MACHINENAME_LENGTH, EMAP_PROPERTY_MODELNAME_LENGTH, EMAP_PROPERTY_STAGE_LENGTH, EMAP_PROPERTY_UID_LENGTH, EMAP_PROPERTY_VERSION_LENGTH, _WlzEMAPProperty::emapType, _WlzTiledValues::fd, _WlzEMAPProperty::fileName, _WlzGreyP::flp, _WlzGreyV::flv, _WlzEMAPProperty::freeptr, _WlzIntervalDomain::freeptr, _WlzRagRValues::freeptr, _WlzRectValues::freeptr, _WlzRect::freeptr, _WlzFRect::freeptr, _WlzAffineTransform::freeptr, _WlzFRect::frk, _WlzFRect::frl, _WlzProperty::greyV, _WlzDomain::hist, _WlzDomain::i, _WlzInterval::ileft, _WlzWarpTrans::imdisp, _WlzTiledValues::indices, _WlzGreyP::inp, _Wlz3DWarpTrans::intptdoms, _WlzIntervalWSpace::intrmn, _WlzIntervalDomain::intvlines, _WlzGreyV::inv, _WlzInterval::iright, _WlzRect::irk, _WlzRect::irl, _Wlz3DWarpTrans::iteration, _WlzWarpTrans::iterdisp, _WlzIntervalDomain::kol1, _WlzTiledValues::kol1, _WlzIntervalDomain::lastkl, _WlzTiledValues::lastkl, _WlzIntervalDomain::lastln, _WlzPlaneDomain::lastln, _WlzRectValues::lastln, _WlzTiledValues::lastln, _WlzPlaneDomain::lastpl, _WlzTiledValues::lastpl, _WlzIntervalWSpace::lftpos, _WlzIntervalDomain::line1, _WlzPlaneDomain::line1, _WlzRectValues::line1, _WlzTiledValues::line1, _WlzPlaneDomain::linkcount, _WlzTiledValues::linkcount, _WlzRect::linkcount, _WlzFRect::linkcount, _WlzAffineTransform::linkcount, _WlzWarpTrans::linkcount, _WlzFMatchObj::linkcount, _Wlz3DWarpTrans::linkcount, _WlzIntervalWSpace::linpos, _WlzPropertyList::list, _WlzDomain::lut, _WlzAffineTransform::mat, _WlzFMatchObj::matchpts, _Wlz3DWarpTrans::maxdisp, _WlzContour::model, _WlzEMAPProperty::modelName, _WlzEMAPProperty::modelUID, _WlzEMAPProperty::modificationAuthor, _WlzEMAPProperty::modificationTime, _WlzDomain::mt, _WlzTElement::n, _WlzProperty::name, _WlzHistogramDomain::nBins, _WlzWarpTrans::ncoords, _WlzWarpTrans::nelts, _WlzBoundList::next, _WlzTiledValues::nIdx, _WlzIntervalLine::nintvs, _WlzFMatchPoint::node, _WlzTElement::nodes, _WlzWarpTrans::nodes, _WlzFMatchObj::nopts, _WlzTiledValues::numTiles, _WlzPolygonDomain::nvertices, _WlzIntervalWSpace::nwlpos, _WlzCompoundArray::o, _WlzValues::obj, _WlzHistogramDomain::origin, _WlzDomain::p, _Wlz3DWarpTrans::pdom, _WlzPlaneDomain::plane1, _WlzTiledValues::plane1, _WlzObject::plist, _WlzCompoundArray::plist, _Wlz3DWarpTrans::plist, _WlzDomain::poly, _WlzBoundList::poly, _WlzSimpleProperty::prop, _WlzFMatchPoint::ptcoords, _WlzDomain::pts, _WlzValues::r, _WlzDomain::r, _WlzRect::rangle, _WlzFRect::rangle, _WlzGreyP::rgbp, _WlzGreyV::rgbv, _WlzIntervalWSpace::rgtpos, _WlzGreyP::shp, _WlzGreyV::shv, _WlzProperty::simple, _WlzEMAPProperty::stage, _WlzEMAPProperty::subStage, _WlzValues::t, _WlzDomain::t, _WlzEMAPProperty::targetUID, _WlzEMAPProperty::targetVersion, _WlzProperty::text, _WlzTiledValues::tileOffset, _WlzTiledValues::tiles, _WlzTiledValues::tileSz, _WlzTiledValues::tileWidth, _WlzPixelV::type, _WlzCoreDomain::type, _WlzTiledValues::type, _WlzRect::type, _WlzFRect::type, _WlzTElement::type, _WlzWarpTrans::type, _WlzFMatchPoint::type, _WlzFMatchObj::type, _Wlz3DWarpTrans::type, _WlzTElement::u, _WlzGreyP::ubp, _WlzGreyV::ubv, _WlzGreyP::v, _WlzPixelV::v, _WlzValues::v, _WlzObject::values, _WlzRectValues::values, _WlzVoxelValues::values, _WlzTiledValues::vDim, _WlzEMAPProperty::version, _WlzValues::vox, _WlzPlaneDomain::voxel_size, _WlzTiledValues::vpe, _WlzTiledValues::vRank, _WlzDomain::vs3d, _WlzIVertex2::vtX, _WlzFVertex2::vtX, _WlzDVertex2::vtX, _WlzIVertex3::vtX, _WlzDVertex3::vtX, _WlzPolygonDomain::vtx, _WlzIVertex2::vtY, _WlzFVertex2::vtY, _WlzDVertex2::vtY, _WlzIVertex3::vtY, _WlzDVertex3::vtY, _WlzIVertex3::vtZ, _WlzDVertex3::vtZ, _WlzRagRValues::width, _WlzRectValues::width, WLZ_2D_DOMAINOBJ, WLZ_2D_POLYGON, WLZ_3D_DOMAINOBJ, WLZ_3D_POLYGON, WLZ_3D_VIEW_STRUCT, WLZ_3D_WARP_TRANS, WLZ_AFFINE_TRANS, WLZ_BOUNDLIST, WLZ_CMESH_2D, WLZ_CMESH_2D5, WLZ_CMESH_3D, WLZ_CMESH_TRANS, WLZ_COMPOUND_ARR_1, WLZ_COMPOUND_ARR_2, WLZ_COMPOUND_LIST_1, WLZ_COMPOUND_LIST_2, WLZ_CONTOUR, WLZ_CONV_HULL, WLZ_CONVOLVE_FLOAT, WLZ_CONVOLVE_INT, WLZ_EMAP_PROPERTY_GREY_MODEL, WLZ_EMPTY_OBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_POLYGON_TYPE, WLZ_ERR_PROPERTY_TYPE, WLZ_ERR_READ_EOF, WLZ_ERR_READ_INCOMPLETE, WLZ_ERR_VALUES_TYPE, WLZ_FMATCHOBJ, WLZ_GMMOD_2D, WLZ_GMMOD_2I, WLZ_GMMOD_2N, WLZ_GMMOD_3D, WLZ_GMMOD_3I, WLZ_GMMOD_3N, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_INTL, WLZ_GREY_TAB_RAGR, WLZ_GREY_TAB_RECT, WLZ_GREY_UBYTE, WLZ_HISTOGRAM, WLZ_HISTOGRAMDOMAIN_FLOAT, WLZ_HISTOGRAMDOMAIN_INT, WLZ_HISTOGRAMDOMAIN_OLD_FLOAT, WLZ_HISTOGRAMDOMAIN_OLD_INT, WLZ_INTERVALDOMAIN_INTVL, WLZ_INTERVALDOMAIN_RECT, WLZ_LUT, WLZ_MAX_NODAL_DEGREE, WLZ_MESH_TRANS, WLZ_NULL, WLZ_PLANEDOMAIN_AFFINE, WLZ_PLANEDOMAIN_BOUNDLIST, WLZ_PLANEDOMAIN_DOMAIN, WLZ_PLANEDOMAIN_HISTOGRAM, WLZ_PLANEDOMAIN_POLYGON, WLZ_PLANEDOMAIN_WARP, WLZ_POINTS, WLZ_POLYGON_DOUBLE, WLZ_POLYGON_FLOAT, WLZ_POLYGON_INT, WLZ_PROPERTY_EMAP, WLZ_PROPERTY_GREY, WLZ_PROPERTY_NAME, WLZ_PROPERTY_OBJ, WLZ_PROPERTY_SIMPLE, WLZ_PROPERTY_TEXT, WLZ_RASTERDIR_ILIC, WLZ_RECTANGLE, WLZ_RECTANGLE_DOMAIN_FLOAT, WLZ_RECTANGLE_DOMAIN_INT, WLZ_TEXT, WLZ_TRANS_OBJ, WLZ_VALUETABLE_RAGR_DOUBLE, WLZ_VALUETABLE_RAGR_FLOAT, WLZ_VALUETABLE_RAGR_INT, WLZ_VALUETABLE_RAGR_RGBA, WLZ_VALUETABLE_RAGR_SHORT, WLZ_VALUETABLE_RAGR_UBYTE, WLZ_VALUETABLE_RECT_DOUBLE, WLZ_VALUETABLE_RECT_FLOAT, WLZ_VALUETABLE_RECT_INT, WLZ_VALUETABLE_RECT_RGBA, WLZ_VALUETABLE_RECT_SHORT, WLZ_VALUETABLE_RECT_UBYTE, WLZ_VALUETABLE_TILED_ARY_DOUBLE, WLZ_VALUETABLE_TILED_ARY_FLOAT, WLZ_VALUETABLE_TILED_ARY_INT, WLZ_VALUETABLE_TILED_ARY_RGBA, WLZ_VALUETABLE_TILED_ARY_SHORT, WLZ_VALUETABLE_TILED_ARY_UBYTE, WLZ_VALUETABLE_TILED_DOUBLE, WLZ_VALUETABLE_TILED_FLOAT, WLZ_VALUETABLE_TILED_INT, WLZ_VALUETABLE_TILED_RGBA, WLZ_VALUETABLE_TILED_SHORT, WLZ_VALUETABLE_TILED_UBYTE, WLZ_VOXELVALUETABLE_GREY, WLZ_WARP_TRANS, WlzAssignBoundList(), WlzAssignDomain(), WlzAssignGMModel(), WlzAssignObject(), WlzAssignPolygonDomain(), WlzAssignProperty(), WlzAssignPropertyList(), WlzAssignValues(), WlzFree3DWarpTrans(), WlzFreeAffineTransform(), WlzFreeBoundList(), WlzFreeContour(), WlzFreeDomain(), WlzFreeHistogramDomain(), WlzFreeIntervalDomain(), WlzFreeObj(), WlzFreePlaneDomain(), WlzFreePolyDmn(), WlzFreePropertyList(), WlzFreePropertyListEntry(), WlzFreeSimpleProperty(), WlzFreeTiledValues(), WlzFreeValueTb(), WlzGMModelConstructSimplex2D(), WlzGMModelConstructSimplex2N(), WlzGMModelConstructSimplex3D(), WlzGMModelConstructSimplex3N(), WlzGMModelNew(), WlzGreySize(), WlzGreyTableTypeToGreyType(), WlzGreyTableTypeToRank(), WlzGreyTableTypeToTableType(), WlzGreyValueTableType(), WlzInitRasterScan(), WlzLineArea(), WlzMakeAffineTransform(), WlzMakeBoundList(), WlzMakeCompoundArray(), WlzMakeContour(), WlzMakeEMAPProperty(), WlzMakeGreyProperty(), WlzMakeHistogramDomain(), WlzMakeInterval(), WlzMakeIntervalDomain(), WlzMakeMain(), WlzMakeNameProperty(), WlzMakePlaneDomain(), WlzMakePolygonDomain(), WlzMakePropertyList(), WlzMakeRectValueTb(), WlzMakeSimpleProperty(), WlzMakeTextProperty(), WlzMakeTiledValues(), WlzMakeValueLine(), WlzMakeValueTb(), WlzMakeVoxelValueTb(), WlzNextInterval(), WlzReadObjType(), WlzStandardIntervalDomain(), WlzTiledValuesValPerElm(), _WlzBoundList::wrap, _WlzDomain::wt, _WlzIBox2::xMax, _WlzDBox2::xMax, _WlzIBox3::xMax, _WlzDBox3::xMax, _WlzIBox2::xMin, _WlzDBox2::xMin, _WlzIBox3::xMin, _WlzDBox3::xMin, _WlzIBox2::yMax, _WlzDBox2::yMax, _WlzIBox3::yMax, _WlzDBox3::yMax, _WlzIBox2::yMin, _WlzDBox2::yMin, _WlzIBox3::yMin, _WlzDBox3::yMin, _WlzIBox3::zMax, _WlzDBox3::zMax, _WlzIBox3::zMin, and _WlzDBox3::zMin.

Referenced by main(), WlzCannyDeriche(), WlzConstruct3DObjFromFile(), WlzEffReadObj(), WlzGeometryTrackUpAndDown_s(), WlzImageBlendObjToBufRGBA(), WlzLBTTestOutputNodesVtk(), WlzNMSuppress(), WlzRankFilter(), WlzRasterLineSetItv2D(), WlzRsvFilterBuffer(), WlzToArray1D(), and WlzVerticesBuildTree().

WlzMeshTransform3D* WlzReadMeshTransform3D ( FILE *  fp,
WlzErrorNum dstErr 
)

reads a woolz 3D MeshTransform

Author
J. Rao.
Returns
Woolz mesh transform read from the input stream.
Parameters
fpInput file pointer.
dstErrError return.
Source:
WlzReadObj.c

References AlcCalloc(), AlcFree(), AlcMalloc(), AlcVectorExtendAndGet(), AlcVectorItemGet(), _WlzCMesh3D::bBox, _WlzLUTDomain::bin1, _WlzConvHullDomain2::centroid, _WlzConvHullDomain3::centroid, _WlzDomain::cm2, _WlzDomain::cm3, _WlzValues::core, _WlzDomain::core, _WlzDomain::cvh2, _WlzDomain::cvh3, _WlzVertexP::d2, _WlzVertex::d2, _WlzVertexP::d3, _WlzVertex::d3, _WlzGreyP::dbp, _WlzMeshNode::displacement, _WlzMeshNode3D::displacement, _WlzThreeDViewStruct::dist, _WlzObject::domain, _WlzMeshTransform::elements, _WlzMeshTransform3D::elements, _WlzCMeshRes::elm, _WlzConvHullDomain3::faces, _WlzThreeDViewStruct::fixed, _WlzCMeshNod2D::flags, _WlzCMeshNod2D5::flags, _WlzCMeshNod3D::flags, _WlzCMeshElm2D::flags, _WlzCMeshElm2D5::flags, _WlzCMeshElm3D::flags, _WlzMeshElem::flags, _WlzGreyP::flp, _WlzVertexP::i2, _WlzVertex::i2, _WlzVertexP::i3, _WlzVertex::i3, _WlzMeshElem::idx, _WlzMeshElem3D::idx, _WlzGreyP::inp, _WlzThreeDViewStruct::interp, _WlzLUTDomain::lastbin, _WlzMeshTransform::linkcount, _WlzValues::lut, _WlzDomain::lut, _WlzCMeshEntRes::maxEnt, _WlzMeshElem::neighbours, _WlzMeshTransform::nElem, _WlzMeshTransform3D::nElem, _WlzConvHullDomain3::nFaces, _WlzMeshTransform::nNodes, _WlzMeshTransform3D::nNodes, _WlzCMeshRes::nod, _WlzMeshElem::nodes, _WlzMeshElem3D::nodes, _WlzMeshTransform::nodes, _WlzMeshTransform3D::nodes, _WlzPoints::nPoints, _WlzConvHullDomain2::nVertices, _WlzConvHullDomain3::nVertices, _WlzThreeDViewStruct::phi, _WlzPoints::points, _WlzCMeshNod2D::pos, _WlzCMeshNod2D5::pos, _WlzCMeshNod3D::pos, _WlzMeshNode::position, _WlzMeshNode3D::position, _WlzValues::pts, _WlzCMesh2D::res, _WlzCMesh2D5::res, _WlzCMesh3D::res, _WlzGreyP::rgbp, _WlzThreeDViewStruct::scale, _WlzGreyP::shp, _WlzThreeDViewStruct::theta, _WlzMeshTransform::type, _WlzGreyP::ubp, _WlzThreeDViewStruct::up, _WlzVertexP::v, _WlzGreyP::v, _WlzLUTValues::val, _WlzObject::values, _WlzIndexedValues::values, _WlzPointValues::values, _WlzCMeshEntRes::vec, _WlzConvHullDomain2::vertices, _WlzConvHullDomain3::vertices, _WlzThreeDViewStruct::view_mode, _WlzThreeDViewStruct::voxelRescaleFlg, _WlzThreeDViewStruct::voxelSize, _WlzDVertex2::vtX, _WlzDVertex3::vtX, _WlzDVertex2::vtY, _WlzDVertex3::vtY, _WlzLUTValues::vType, _WlzDVertex3::vtZ, WLZ_CMESH_2D, WLZ_CMESH_3D, WLZ_CONVHULL_DOMAIN_2D, WLZ_CONVHULL_DOMAIN_3D, WLZ_ERR_DOMAIN_DATA, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_READ_INCOMPLETE, WLZ_ERR_TRANSFORM_TYPE, WLZ_ERR_VALUES_DATA, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WLZ_INDEXED_VALUES, WLZ_LUT, WLZ_NULL, WLZ_POINT_VALUES, WLZ_POINTS_2D, WLZ_POINTS_2I, WLZ_POINTS_3D, WLZ_POINTS_3I, WLZ_TRANSFORM_2D_CMESH, WLZ_TRANSFORM_2D_MESH, WLZ_TRANSFORM_3D_CMESH, WLZ_VALUE_ATTACH_NOD, WLZ_VERTEX_D2, WLZ_VERTEX_D3, WLZ_VERTEX_I2, WLZ_VERTEX_I3, WlzAssignValues(), WlzCMeshAllocNod2D(), WlzCMeshAllocNod2D5(), WlzCMeshFree2D(), WlzCMeshFree2D5(), WlzCMeshFree3D(), WlzCMeshNew2D(), WlzCMeshNew2D5(), WlzCMeshNew3D(), WlzCMeshNewElm2D(), WlzCMeshNewElm2D5(), WlzCMeshNewElm3D(), WlzCMeshNewNod3D(), WlzCMeshReassignGridCells2D(), WlzCMeshReassignGridCells2D5(), WlzCMeshReassignGridCells3D(), WlzCMeshUpdateBBox2D(), WlzCMeshUpdateBBox2D5(), WlzCMeshUpdateMaxSqEdgLen2D(), WlzCMeshUpdateMaxSqEdgLen2D5(), WlzCMeshUpdateMaxSqEdgLen3D(), WlzCMeshVerify2D(), WlzCMeshVerify2D5(), WlzFreeConvexHullDomain2(), WlzFreeConvexHullDomain3(), WlzFreeDomain(), WlzFreeIndexedValues(), WlzFreeLUTValues(), WlzFreeObj(), WlzFreePointValues(), WlzIndexedValueGet(), WlzMake3DViewStruct(), WlzMakeConvexHullDomain2(), WlzMakeConvexHullDomain3(), WlzMakeIndexedValues(), WlzMakeLUTDomain(), WlzMakeLUTValues(), WlzMakeMain(), WlzMakePoints(), WlzMakePointValues(), _WlzValues::x, _WlzDBox3::xMax, _WlzDBox3::xMin, _WlzDBox3::yMax, _WlzDBox3::yMin, _WlzThreeDViewStruct::zeta, _WlzDBox3::zMax, and _WlzDBox3::zMin.

WlzErrorNum WlzWriteObj ( FILE *  fP,
WlzObject obj 
)

Top-level procedure for writing an object to a file stream. For historical reasons most data are written using DEC VAX byte ordering.

Returns
Woolz error number code.
Parameters
fPFile pointer for output.
objPtr to top-level object to be written.

References _WlzTElement::a, AlcDLPListCount(), AlcVectorItemGet(), _WlzEMAPProperty::anatomyUID, _WlzObject::assoc, _WlzDomain::b, _WlzVoxelValues::bckgrnd, _WlzHistogramDomain::binSize, _WlzHistogramDomain::binValues, _WlzValues::c, _WlzDomain::cm2, _WlzDomain::cm2d5, _WlzDomain::cm3, _WlzIntervalWSpace::colrmn, _WlzEMAPProperty::comment, _WlzValues::core, _WlzProperty::core, _WlzEMAPProperty::creationAuthor, _WlzEMAPProperty::creationMachineName, _WlzEMAPProperty::creationTime, _WlzDomain::ctr, _Wlz3DWarpTrans::currentplane, _WlzGreyP::dbp, _WlzGreyV::dbv, _WlzGMVertexT::diskT, _WlzWarpTrans::displacements, _WlzObject::domain, _WlzPlaneDomain::domains, _WlzBoundList::down, _WlzGMElemP::edge, _WlzGMModelR::edge, _WlzGMEdge::edgeT, _WlzGMLoopT::edgeT, _WlzFMatchPoint::elements, _WlzWarpTrans::eltlist, _WlzProperty::emap, EMAP_PROPERTY_AUTHORNAME_LENGTH, EMAP_PROPERTY_MACHINENAME_LENGTH, EMAP_PROPERTY_MODELNAME_LENGTH, EMAP_PROPERTY_STAGE_LENGTH, EMAP_PROPERTY_UID_LENGTH, EMAP_PROPERTY_VERSION_LENGTH, _WlzEMAPProperty::emapType, _AlcDLPItem::entry, _WlzGMElemP::face, _WlzGMModelR::face, _WlzEMAPProperty::fileName, _WlzGreyP::flp, _WlzGreyV::flv, _WlzFRect::frk, _WlzFRect::frl, _WlzGMVertex::geo, _WlzProperty::greyV, _AlcDLPList::head, _WlzDomain::hist, _WlzDomain::i, _WlzGMVertex::idx, _WlzGMEdge::idx, _WlzGMFace::idx, _WlzGMResIdx::idxLut, _WlzInterval::ileft, _WlzWarpTrans::imdisp, _WlzGreyP::inp, _Wlz3DWarpTrans::intptdoms, _WlzIntervalDomain::intvlines, _WlzIntervalLine::intvs, _WlzGreyV::inv, _WlzInterval::iright, _WlzRect::irk, _WlzRect::irl, _Wlz3DWarpTrans::iteration, _WlzWarpTrans::iterdisp, _WlzIntervalDomain::kol1, _WlzPlaneDomain::kol1, _WlzIntervalDomain::lastkl, _WlzPlaneDomain::lastkl, _WlzIntervalDomain::lastln, _WlzPlaneDomain::lastln, _WlzPlaneDomain::lastpl, _WlzIntervalDomain::line1, _WlzPlaneDomain::line1, _WlzObject::linkcount, _WlzPropertyList::list, _WlzGMFace::loopT, _WlzDomain::lut, _WlzAffineTransform::mat, _WlzFMatchObj::matchpts, _Wlz3DWarpTrans::maxdisp, _WlzContour::model, _WlzEMAPProperty::modelName, _WlzEMAPProperty::modelUID, _WlzEMAPProperty::modificationAuthor, _WlzEMAPProperty::modificationTime, _WlzDomain::mt, _WlzCompoundArray::n, _WlzTElement::n, _WlzNameProperty::name, _WlzGreyProperty::name, _WlzTextProperty::name, _WlzProperty::name, _WlzHistogramDomain::nBins, _WlzWarpTrans::ncoords, _WlzWarpTrans::nelts, _AlcDLPItem::next, _WlzGMEdgeT::next, _WlzBoundList::next, _WlzIntervalLine::nintvs, _WlzFMatchPoint::node, _WlzTElement::nodes, _WlzWarpTrans::nodes, _WlzFMatchObj::nopts, _WlzGMVertexG2N::nrm, _WlzGMVertexG3N::nrm, _WlzGMResource::numElm, _WlzGMResource::numIdx, _WlzPolygonDomain::nvertices, _WlzCompoundArray::o, _WlzValues::obj, _WlzGMEdgeT::opp, _WlzHistogramDomain::origin, _WlzCompoundArray::otype, _WlzDomain::p, _Wlz3DWarpTrans::pdom, _WlzPlaneDomain::plane1, _WlzObject::plist, _WlzCompoundArray::plist, _WlzDomain::poly, _WlzBoundList::poly, _WlzGMEdgeT::prev, _WlzSimpleProperty::prop, _WlzFMatchPoint::ptcoords, _WlzDomain::pts, _WlzDomain::r, _WlzRect::rangle, _WlzFRect::rangle, _WlzGMModel::res, _WlzGreyP::rgbp, _WlzGreyV::rgbv, _WlzGreyP::shp, _WlzGreyV::shv, _WlzProperty::simple, _WlzSimpleProperty::size, _WlzEMAPProperty::stage, _WlzEMAPProperty::subStage, _WlzDomain::t, _WlzEMAPProperty::targetUID, _WlzEMAPProperty::targetVersion, _WlzTextProperty::text, _WlzProperty::text, _WlzPixelV::type, _WlzGMModel::type, _WlzContour::type, _WlzCoreProperty::type, _WlzObject::type, _WlzIntervalDomain::type, _WlzPlaneDomain::type, _WlzCoreValues::type, _WlzVoxelValues::type, _WlzPolygonDomain::type, _WlzBoundList::type, _WlzHistogramDomain::type, _WlzRect::type, _WlzAffineTransform::type, _WlzTElement::type, _WlzWarpTrans::type, _WlzFMatchPoint::type, _WlzKrigModelFn::type, _WlzTElement::u, _WlzGreyWSpace::u_grintptr, _WlzGreyP::ubp, _WlzGreyV::ubv, _WlzPixelV::v, _WlzValues::v, _WlzGreyProperty::value, _WlzObject::values, _WlzVoxelValues::values, _WlzGMResource::vec, _WlzEMAPProperty::version, _WlzGMElemP::vertex, _WlzGMDiskT::vertex, _WlzGMModelR::vertex, _WlzGMResIdxTb::vertex, _WlzGMEdgeT::vertexT, _WlzGMVertexGU::vg2D, _WlzGMVertexGU::vg2I, _WlzGMVertexGU::vg2N, _WlzGMVertexGU::vg3D, _WlzGMVertexGU::vg3I, _WlzGMVertexGU::vg3N, _WlzValues::vox, _WlzPlaneDomain::voxel_size, _WlzDomain::vs3d, _WlzIVertex2::vtX, _WlzFVertex2::vtX, _WlzDVertex2::vtX, _WlzIVertex3::vtX, _WlzDVertex3::vtX, _WlzGMVertexG2I::vtx, _WlzGMVertexG2D::vtx, _WlzGMVertexG2N::vtx, _WlzGMVertexG3I::vtx, _WlzGMVertexG3D::vtx, _WlzGMVertexG3N::vtx, _WlzPolygonDomain::vtx, _WlzIVertex2::vtY, _WlzFVertex2::vtY, _WlzDVertex2::vtY, _WlzIVertex3::vtY, _WlzDVertex3::vtY, _WlzIVertex3::vtZ, _WlzDVertex3::vtZ, WLZ_2D_DOMAINOBJ, WLZ_2D_POLYGON, WLZ_3D_DOMAINOBJ, WLZ_3D_POLYGON, WLZ_3D_VIEW_STRUCT, WLZ_3D_WARP_TRANS, WLZ_AFFINE_TRANS, WLZ_BOUNDLIST, WLZ_CMESH_2D, WLZ_CMESH_2D5, WLZ_CMESH_3D, WLZ_COMPOUND_ARR_1, WLZ_COMPOUND_ARR_2, WLZ_COMPOUND_LIST_1, WLZ_COMPOUND_LIST_2, WLZ_CONTOUR, WLZ_CONV_HULL, WLZ_CONVOLVE_FLOAT, WLZ_CONVOLVE_INT, WLZ_EMPTY_OBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_PARAM_NULL, WLZ_ERR_POLYGON_TYPE, WLZ_ERR_PROPERTY_TYPE, WLZ_ERR_READ_EOF, WLZ_ERR_VALUES_TYPE, WLZ_ERR_WRITE_EOF, WLZ_ERR_WRITE_INCOMPLETE, WLZ_FMATCHOBJ, WLZ_GMELMFLG_VERTEX, WLZ_GMMOD_2D, WLZ_GMMOD_2I, WLZ_GMMOD_2N, WLZ_GMMOD_3D, WLZ_GMMOD_3I, WLZ_GMMOD_3N, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WLZ_HISTOGRAM, WLZ_HISTOGRAMDOMAIN_FLOAT, WLZ_HISTOGRAMDOMAIN_INT, WLZ_INTERVALDOMAIN_INTVL, WLZ_INTERVALDOMAIN_RECT, WLZ_LUT, WLZ_MAX_NODAL_DEGREE, WLZ_MESH_TRANS, WLZ_PLANEDOMAIN_AFFINE, WLZ_PLANEDOMAIN_BOUNDLIST, WLZ_PLANEDOMAIN_DOMAIN, WLZ_PLANEDOMAIN_HISTOGRAM, WLZ_PLANEDOMAIN_POLYGON, WLZ_PLANEDOMAIN_WARP, WLZ_POINTS, WLZ_POLYGON_DOUBLE, WLZ_POLYGON_FLOAT, WLZ_POLYGON_INT, WLZ_PROPERTY_EMAP, WLZ_PROPERTY_GREY, WLZ_PROPERTY_NAME, WLZ_PROPERTY_OBJ, WLZ_PROPERTY_SIMPLE, WLZ_PROPERTY_TEXT, WLZ_RECTANGLE, WLZ_RECTANGLE_DOMAIN_FLOAT, WLZ_RECTANGLE_DOMAIN_INT, WLZ_TEXT, WLZ_TRANS_OBJ, WLZ_VOXELVALUETABLE_GREY, WLZ_WARP_TRANS, WlzEndGreyScan(), WlzGetBackground(), WlzGMModelResIdx(), WlzGMModelResIdxFree(), WlzGreyRange(), WlzGreyTableIsTiled(), WlzGreyTableTypeToGreyType(), WlzInitGreyScan(), WlzNextGreyInterval(), _WlzBoundList::wrap, _WlzIBox2::xMax, _WlzDBox2::xMax, _WlzIBox3::xMax, _WlzDBox3::xMax, _WlzIBox2::xMin, _WlzDBox2::xMin, _WlzIBox3::xMin, _WlzDBox3::xMin, _WlzIBox2::yMax, _WlzDBox2::yMax, _WlzIBox3::yMax, _WlzDBox3::yMax, _WlzIBox2::yMin, _WlzDBox2::yMin, _WlzIBox3::yMin, _WlzDBox3::yMin, _WlzIBox3::zMax, _WlzDBox3::zMax, _WlzIBox3::zMin, and _WlzDBox3::zMin.

Referenced by main(), WlzCannyDeriche(), WlzContourFromPoints(), WlzContourRBFBndObj3D(), WlzDbgObjWrite(), WlzDomainFill3D(), WlzEffWriteObj(), WlzImageBlendObjToBufRGBA(), WlzLBTTestOutputNodesVtk(), WlzMatchICPWeightMatches(), WlzNMSuppress(), WlzRankFilter(), WlzRasterLineSetItv2D(), WlzRegCCorObjs(), WlzRegConCalcRCC(), WlzRegICPObjsGrd(), WlzRsvFilterBuffer(), and WlzToArray1D().

WlzErrorNum WlzWriteMeshTransform3D ( FILE *  fP,
WlzMeshTransform3D obj 
)

Write a 3D mesh transform to the given file-stream.

Author
J. Rao.
Returns
Error number.
Parameters
fPOutput file-stream pointer
objMesh transform to be written.
Source:
WlzWriteObj.c

References AlcFree(), AlcMalloc(), AlcVectorItemGet(), _WlzIndexedValues::attach, _WlzTiledValues::bckgrnd, _WlzLUTDomain::bin1, _WlzConvHullDomain2::centroid, _WlzConvHullDomain3::centroid, _WlzDomain::cm2, _WlzDomain::cm2d5, _WlzDomain::cm3, _WlzValues::core, _WlzDomain::core, _WlzDomain::cvh2, _WlzDomain::cvh3, _WlzVertexP::d2, _WlzVertex::d2, _WlzVertexP::d3, _WlzVertex::d3, _WlzGreyP::dbp, _WlzIndexedValues::dim, _WlzTiledValues::dim, _WlzPointValues::dim, _WlzMeshNode::displacement, _WlzMeshNode3D::displacement, _WlzThreeDViewStruct::dist, _WlzObject::domain, _WlzMeshTransform::elements, _WlzMeshTransform3D::elements, _WlzCMeshRes::elm, _WlzConvHullDomain3::faces, _WlzTiledValues::fd, _WlzThreeDViewStruct::fixed, _WlzCMeshNod2D::flags, _WlzCMeshNod2D5::flags, _WlzCMeshNod3D::flags, _WlzCMeshElm2D::flags, _WlzCMeshElm2D5::flags, _WlzCMeshElm3D::flags, _WlzMeshElem::flags, _WlzGreyP::flp, _WlzVertexP::i2, _WlzVertex::i2, _WlzVertexP::i3, _WlzVertex::i3, _WlzCMeshNod2D::idx, _WlzCMeshNod2D5::idx, _WlzCMeshNod3D::idx, _WlzCMeshElm2D::idx, _WlzCMeshElm2D5::idx, _WlzCMeshElm3D::idx, _WlzMeshElem::idx, _WlzMeshElem3D::idx, _WlzTiledValues::indices, _WlzGreyP::inp, _WlzThreeDViewStruct::interp, _WlzTiledValues::kol1, _WlzLUTDomain::lastbin, _WlzTiledValues::lastkl, _WlzTiledValues::lastln, _WlzTiledValues::lastpl, _WlzTiledValues::line1, _WlzTiledValues::linkcount, _WlzValues::lut, _WlzDomain::lut, _WlzCMeshP::m2, _WlzCMeshP::m2d5, _WlzCMeshP::m3, _WlzCMeshEntRes::maxEnt, _WlzMeshElem::neighbours, _WlzMeshTransform::nElem, _WlzMeshTransform3D::nElem, _WlzConvHullDomain3::nFaces, _WlzTiledValues::nIdx, _WlzMeshTransform::nNodes, _WlzMeshTransform3D::nNodes, _WlzCMeshRes::nod, _WlzMeshElem::nodes, _WlzMeshElem3D::nodes, _WlzMeshTransform::nodes, _WlzMeshTransform3D::nodes, _WlzPoints::nPoints, _WlzCMeshEntRes::numEnt, _WlzTiledValues::numTiles, _WlzConvHullDomain2::nVertices, _WlzConvHullDomain3::nVertices, _WlzThreeDViewStruct::phi, _WlzTiledValues::plane1, _WlzPoints::points, _WlzCMeshNod2D::pos, _WlzCMeshNod2D5::pos, _WlzCMeshNod3D::pos, _WlzMeshNode::position, _WlzMeshNode3D::position, _WlzValues::pts, _WlzDomain::pts, _WlzIndexedValues::rank, _WlzPointValues::rank, _WlzCMesh2D::res, _WlzCMesh2D5::res, _WlzCMesh3D::res, _WlzGreyP::rgbp, _WlzThreeDViewStruct::scale, _WlzGreyP::shp, _WlzValues::t, _WlzThreeDViewStruct::theta, _WlzTiledValues::tileOffset, _WlzTiledValues::tiles, _WlzTiledValues::tileSz, _WlzTiledValues::tileWidth, _WlzPixelV::type, _WlzLUTDomain::type, _WlzCoreDomain::type, _WlzIndexedValues::type, _WlzTiledValues::type, _WlzLUTValues::type, _WlzPointValues::type, _WlzPoints::type, _WlzConvHullDomain2::type, _WlzConvHullDomain3::type, _WlzCMesh2D::type, _WlzCMesh2D5::type, _WlzCMesh3D::type, _WlzThreeDViewStruct::type, _WlzGreyP::ubp, _WlzThreeDViewStruct::up, _WlzGreyP::v, _WlzLUTValues::val, _WlzObject::values, _WlzPointValues::values, _WlzTiledValues::vDim, _WlzCMeshEntRes::vec, _WlzConvHullDomain2::vertices, _WlzConvHullDomain3::vertices, _WlzThreeDViewStruct::view_mode, _WlzThreeDViewStruct::voxelRescaleFlg, _WlzThreeDViewStruct::voxelSize, _WlzTiledValues::vRank, _WlzDVertex2::vtX, _WlzDVertex3::vtX, _WlzConvHullDomain2::vtxType, _WlzConvHullDomain3::vtxType, _WlzDVertex2::vtY, _WlzDVertex3::vtY, _WlzIndexedValues::vType, _WlzLUTValues::vType, _WlzPointValues::vType, _WlzDVertex3::vtZ, WLZ_CMESH_2D, WLZ_CMESH_2D5, WLZ_CMESH_3D, WLZ_CMESH_ELM2D5_GET_NODE_0, WLZ_CMESH_ELM2D5_GET_NODE_1, WLZ_CMESH_ELM2D5_GET_NODE_2, WLZ_CMESH_ELM2D_GET_NODE_0, WLZ_CMESH_ELM2D_GET_NODE_1, WLZ_CMESH_ELM2D_GET_NODE_2, WLZ_CMESH_ELM3D_GET_NODE_0, WLZ_CMESH_ELM3D_GET_NODE_1, WLZ_CMESH_ELM3D_GET_NODE_2, WLZ_CMESH_ELM3D_GET_NODE_3, WLZ_CONVHULL_DOMAIN_2D, WLZ_CONVHULL_DOMAIN_3D, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_GREY_TYPE, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_PARAM_TYPE, WLZ_ERR_VALUES_TYPE, WLZ_ERR_WRITE_EOF, WLZ_ERR_WRITE_INCOMPLETE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WLZ_INDEXED_VALUES, WLZ_LUT, WLZ_POINT_VALUES, WLZ_POINTS_2D, WLZ_POINTS_2I, WLZ_POINTS_3D, WLZ_POINTS_3I, WLZ_VALUE_ATTACH_ELM, WLZ_VALUE_ATTACH_NOD, WLZ_VERTEX_D2, WLZ_VERTEX_D3, WLZ_VERTEX_I2, WLZ_VERTEX_I3, WlzGreySize(), WlzGreyTableTypeToGreyType(), WlzIndexedValueGet(), _WlzValues::x, and _WlzThreeDViewStruct::zeta.