CPLXMLNode *GDALSerializeTPSTransformer( void *pTransformArg ) { VALIDATE_POINTER1( pTransformArg, "GDALSerializeTPSTransformer", NULL ); CPLXMLNode *psTree; TPSTransformInfo *psInfo = static_cast<TPSTransformInfo *>(pTransformArg); psTree = CPLCreateXMLNode( NULL, CXT_Element, "TPSTransformer" ); /* -------------------------------------------------------------------- */ /* Serialize bReversed. */ /* -------------------------------------------------------------------- */ CPLCreateXMLElementAndValue( psTree, "Reversed", CPLString().Printf( "%d", psInfo->bReversed ) ); /* -------------------------------------------------------------------- */ /* Attach GCP List. */ /* -------------------------------------------------------------------- */ if( psInfo->nGCPCount > 0 ) { GDALSerializeGCPListToXML( psTree, psInfo->pasGCPList, psInfo->nGCPCount, NULL ); } return psTree; }
CPLXMLNode *GDALSerializeGCPTransformer( void *pTransformArg ) { CPLXMLNode *psTree = NULL; GCPTransformInfo *psInfo = (GCPTransformInfo *) pTransformArg; VALIDATE_POINTER1( pTransformArg, "GDALSerializeGCPTransformer", NULL ); psTree = CPLCreateXMLNode( NULL, CXT_Element, "GCPTransformer" ); /* -------------------------------------------------------------------- */ /* Serialize Order and bReversed. */ /* -------------------------------------------------------------------- */ CPLCreateXMLElementAndValue( psTree, "Order", CPLSPrintf( "%d", psInfo->nOrder ) ); CPLCreateXMLElementAndValue( psTree, "Reversed", CPLSPrintf( "%d", psInfo->bReversed ) ); if( psInfo->bRefine ) { CPLCreateXMLElementAndValue( psTree, "Refine", CPLSPrintf( "%d", psInfo->bRefine ) ); CPLCreateXMLElementAndValue( psTree, "MinimumGcps", CPLSPrintf( "%d", psInfo->nMinimumGcps ) ); CPLCreateXMLElementAndValue( psTree, "Tolerance", CPLSPrintf( "%f", psInfo->dfTolerance ) ); } /* -------------------------------------------------------------------- */ /* Attach GCP List. */ /* -------------------------------------------------------------------- */ if( psInfo->nGCPCount > 0 ) { if(psInfo->bRefine) { remove_outliers(psInfo); } GDALSerializeGCPListToXML( psTree, psInfo->pasGCPList, psInfo->nGCPCount, NULL ); } return psTree; }