WlzErrorNum HGU_XmFileListWriteResourceFile( AlcDLPList *fileList, String resourceFile) { WlzErrorNum errNum=WLZ_ERR_NONE; AlcDLPItem *item; HGU_XmFileListCallbackStruct *cbs; FILE *fp; /* check inputs */ if( (fileList == NULL) || (resourceFile == NULL) ){ errNum = WLZ_ERR_PARAM_NULL; } /* open the file */ if( errNum == WLZ_ERR_NONE ){ /* currently assume only these entries are written to the resource file */ if( (fp = fopen(resourceFile, "w")) ){ /* write a file header */ HGU_XmFileListWriteHeader(fp); item = fileList->head; while( item ){ cbs = (HGU_XmFileListCallbackStruct *) item->entry; WlzEffBibWriteFileRecord(fp, "HGU_XmFileListFileRecord", cbs->file, cbs->format); item = item->next; if( item == fileList->head ){ item = NULL; } } fclose( fp ); } else { errNum = WLZ_ERR_FILE_OPEN; } } return errNum; }
/*! * - Function: WlzEffWriteMeshTransform3DWithoutDisplacementVTK * - Returns: none * - Purpose: output the orginal mesh. * - Parameters: * -# *fp: pointer pointing to a specific file. * -# wmt3D: mesh transform. * - Author: J. Rao, R. Baldock and B. Hill */ static WlzErrorNum WriteBibFile(FILE *outFile, char *outFileStr, char *inFileStrw, char *inFileStrSec,WlzThreeDViewStruct *wlzViewStr) { WlzErrorNum errNum = WLZ_ERR_NONE; BibFileRecord *bibfileRecord; /* BibFileError bibFileErr; */ /* char *errMsg; */ char *tmpS, *dateS = NULL, *hostS = NULL, *userS = NULL, *refFileS = NULL, *srcFileS; /*, sgnlFileS; */ time_t tmpTime; char tmpBuf[256]; static char unknownS[] = "unknown"; /* WlzBasisFnType bt = WLZ_BASISFN_MQ; */ WlzFnType bt = WLZ_FN_BASIS_3DMQ; WlzTransformType at = WLZ_TRANSFORM_2D_NOSHEAR; WlzMeshGenMethod wmgmd = WLZ_MESH_GENMETHOD_GRADIENT; WlzEffFormat weft = WLZEFF_FORMAT_WLZ; /* WlzObjectType wtp = WLZ_2D_DOMAINOBJ; */ if((outFile = fopen(outFileStr, "w")) == NULL ) { printf("cannot open the output bib file.\n"); exit(1); } /* write some sort of identifier */ bibfileRecord = BibFileRecordMake("Ident", "0", BibFileFieldMakeVa("Text", "MAPaint 2D warp input parameters", "Version", "1", NULL)); BibFileRecordWrite(outFile, NULL, bibfileRecord); BibFileRecordFree(&bibfileRecord); /* now a comment with user, machine, date etc. */ tmpS = getenv("USER"); (void )sprintf(tmpBuf, "User: %s", tmpS?tmpS:unknownS); userS = AlcStrDup(tmpBuf); tmpTime = time(NULL); tmpS = ctime(&tmpTime); *(tmpS + strlen(tmpS) - 1) = '\0'; (void )sprintf(tmpBuf, "Date: %s", tmpS?tmpS:unknownS); dateS = AlcStrDup(tmpBuf); tmpS = getenv("HOST"); (void )sprintf(tmpBuf, "Host: %s", tmpS?tmpS:unknownS); hostS = AlcStrDup(tmpBuf); (void )sprintf(tmpBuf, "RefFile: %s", "WlzFileName"); refFileS = AlcStrDup(tmpBuf); (void )sprintf(tmpBuf, "SrcFile: %s",outFileStr ); srcFileS = AlcStrDup(tmpBuf); bibfileRecord = BibFileRecordMake("Comment", "0", BibFileFieldMakeVa("Text", userS, "Text", dateS, "Text", hostS, "Text", refFileS, "Text", srcFileS, "Text", "no need", NULL)); BibFileRecordWrite(outFile, NULL, bibfileRecord); BibFileRecordFree(&bibfileRecord); /* if write a file record for the reference file */ if( inFileStrw ){ WlzEffBibWriteFileRecord(outFile, "MAPaintReferenceFile", inFileStrw, weft); } /* if defined write a file record for the source */ if( inFileStrSec ){ WlzEffBibWriteFileRecord(outFile, "MAPaintWarpInputSourceFile", inFileStrSec, weft); } /* write the section data */ if( WlzEffBibWrite3DSectionViewParamsRecord(outFile, "Wlz3DSectionViewParams", wlzViewStr) != WLZ_ERR_NONE ){ printf( "Save Warp Parameters:\n" " Error in writing the bibfile\n" " Please check disk space or quotas\n" " Section parameters not saved" ); } /* write the warp transform parameters */ if( WlzEffBibWriteWarpTransformParamsRecord(outFile, "WlzWarpTransformParams", bt, at, wmgmd, 20, 40) != WLZ_ERR_NONE ){ printf( "Save Warp Parameters:\n" " Error in writing the bibfile\n" " Please check disk space or quotas\n" " Section parameters not saved" ); } /* write the warp transform parameters */ /* if( WlzEffBibWrite3DSectionViewParamsRecord(outFile, outFileStr, wlzViewStr) != WLZ_ERR_NONE ) { printf("can not output:"); exit(0); } */ fclose(outFile); outFile = NULL; return errNum; }
/*! * \return Woolz error code. * \brief Outputs a section parameters file with the reference and source * file object file names, the 3D view transform and the * tie-points. * \param fP Output section parameters file. * \param view 3D view transform. * \param refObjFileStr Reference object file name. * \param refObjFileType Reference object file type. * \param srcObjFileStr Source object file name. * \param srcObjFileType Source object file type. * \param nMatch Number of tie-points. * \param tieRP Reference object tie-points. * \param tieSP Source object tie-points. * \param refObj2DOrg Origin of the 2D reference object to * be subtracted if non NULL. */ static WlzErrorNum WlzMatchICPPlaneWriteSecParam(FILE *fP, WlzThreeDViewStruct *view, char *refObjFileStr, WlzEffFormat refObjFileType, char *srcObjFileStr, WlzEffFormat srcObjFileType, int nMatch, WlzDVertex2 *tieRP, WlzDVertex2 *tieSP, WlzDVertex2 *refObj2DOrg) { int idx; char *tmpS, *dateS = NULL, *hostS = NULL, *userS = NULL, *refFileS = NULL, *srcFileS = NULL, *sgnlFileS = NULL; time_t tmpTime; BibFileRecord *bibRec; WlzDVertex3 refVx, srcVx; char tmpBufS[256]; static char unknownS[] = "unknown"; WlzErrorNum errNum = WLZ_ERR_NONE; if((bibRec = BibFileRecordMake("Ident", "0", BibFileFieldMakeVa("Text", "MAPaint 2D warp input parameters", "Version", "1", NULL))) == NULL) { errNum = WLZ_ERR_MEM_ALLOC; } /* Comment with user, machine, date etc. */ if(errNum == WLZ_ERR_NONE) { if(BibFileRecordWrite(fP, NULL, bibRec) != BIBFILE_ER_NONE) { errNum = WLZ_ERR_WRITE_EOF; } BibFileRecordFree(&bibRec); } if(errNum == WLZ_ERR_NONE) { tmpS = getenv("USER"); (void )sprintf(tmpBufS, "User: %s", tmpS? tmpS: unknownS); if((userS = AlcStrDup(tmpBufS)) == NULL) { errNum = WLZ_ERR_MEM_ALLOC; } } if(errNum == WLZ_ERR_NONE) { tmpTime = time(NULL); tmpS = ctime(&tmpTime); *(tmpS + strlen(tmpS) - 1) = '\0'; (void )sprintf(tmpBufS, "Date: %s", tmpS? tmpS: unknownS); if((dateS = AlcStrDup(tmpBufS)) == NULL) { errNum = WLZ_ERR_MEM_ALLOC; } } if(errNum == WLZ_ERR_NONE) { tmpS = getenv("HOST"); (void )sprintf(tmpBufS, "Host: %s", tmpS? tmpS: unknownS); hostS = AlcStrDup(tmpBufS); } if(errNum == WLZ_ERR_NONE) { (void )sprintf(tmpBufS, "RefFile: %s", refObjFileStr); refFileS = AlcStrDup(tmpBufS); } if(errNum == WLZ_ERR_NONE) { (void )sprintf(tmpBufS, "SrcFile: %s", srcObjFileStr); srcFileS = AlcStrDup(tmpBufS); } if(errNum == WLZ_ERR_NONE) { (void )sprintf(tmpBufS, "SignalFile: %s", unknownS); sgnlFileS = AlcStrDup(tmpBufS); } if(errNum == WLZ_ERR_NONE) { if((bibRec = BibFileRecordMake("Comment", "0", BibFileFieldMakeVa("Text", userS, "Text", dateS, "Text", hostS, "Text", refFileS, "Text", srcFileS, "Text", sgnlFileS, NULL))) == NULL) { errNum = WLZ_ERR_MEM_ALLOC; } } AlcFree(dateS); AlcFree(hostS); AlcFree(userS); AlcFree(refFileS); AlcFree(srcFileS); AlcFree(sgnlFileS); if(errNum == WLZ_ERR_NONE) { if(BibFileRecordWrite(fP, NULL, bibRec) != BIBFILE_ER_NONE) { errNum = WLZ_ERR_WRITE_INCOMPLETE; } BibFileRecordFree(&bibRec); } /* Source file string. */ if(errNum == WLZ_ERR_NONE) { errNum = WlzEffBibWriteFileRecord(fP, "MAPaintWarpInputSourceFile", srcObjFileStr, srcObjFileType); } /* Reference file string. */ if(errNum == WLZ_ERR_NONE) { errNum = WlzEffBibWriteFileRecord(fP, "MAPaintWarpInputReferenceFile", refObjFileStr, refObjFileType); } /* View parameters. */ if(errNum == WLZ_ERR_NONE) { WlzEffBibWrite3DSectionViewParamsRecord(fP, "Wlz3DSectionViewParams", view); } /* Tie points. */ idx = 0; refVx.vtZ = 0.0; srcVx.vtZ = 0.0; while((errNum == WLZ_ERR_NONE) && (idx < nMatch)) { refVx.vtX = (tieRP + idx)->vtX - view->fixed.vtX; refVx.vtY = (tieRP + idx)->vtY - view->fixed.vtY; if(refObj2DOrg) { refVx.vtX -= refObj2DOrg->vtX; refVx.vtY -= refObj2DOrg->vtY; } srcVx.vtX = (tieSP + idx)->vtX; srcVx.vtY = (tieSP + idx)->vtY; if(errNum == WLZ_ERR_NONE) { errNum = WlzEffBibWriteTiePointVtxsRecord(fP, "WlzTiePointVtxs", idx, refVx, srcVx, 0); } ++idx; } return(errNum); }