00001
00002
00003 #include <j2k/Fred/3D/Topolog.hpp>
00004
00005 #define __ALaLigne fprintf( f, "\n")
00006 #define __SaveUseMode char tmp = n.UseMode
00007 #define __RestorUseMode n.UseMode = tmp
00008
00009 int numerotation::NumArc( numerotation& n, FILE* f ) {
00010
00011 UINT i = 0;
00012 UINT j = 0;
00013
00014 __SaveUseMode;
00015 n.UseMode = CREATION;
00016
00017 for( i = 0; i <= n.m; i++ ) {
00018 for( j = 0; j <= n.n; j++ ) {
00019
00020 if ( n.Arete2(i,j) == 0L ) continue;
00021 if ( fprintf( f, "%u %u ",
00022 n.som1(i,j), n.som3(i,j)) == EOF ) {
00023 return MOD_NUM_ERROR_BAD_FIC_WRITE;
00024 }
00025
00026 }
00027
00028 __ALaLigne;
00029
00030 for( j = 0; j <= n.n; j++ ) {
00031
00032 if ( n.Arete1(i,j) == 0L ) continue;
00033
00034 if ( fprintf( f, "%u %u ",
00035 n.som1(i,j), n.som2(i,j)) == EOF ) {
00036 return MOD_NUM_ERROR_BAD_FIC_WRITE;
00037 }
00038
00039 }
00040
00041 __ALaLigne;
00042
00043 }
00044
00045 __RestorUseMode;
00046
00047 return SUCCESS;
00048 }
00049
00050 int numerotation::NumFace( numerotation& n, FILE* f ) {
00051
00052 UINT i = 0;
00053 UINT j = 0;
00054
00055 __SaveUseMode;
00056
00057 for( i = 0; i <= n.m; i++ ) {
00058 for( j = 0; j <= n.n; j++ ) {
00059
00060 n.UseMode = CREATION;
00061
00062 if ( n.Face(i,j) == 0L ) continue;
00063
00064 n.UseMode = INDEXATION;
00065 if ( n.som1(i,j) == n.som2(i,j) ) {
00066
00067 if ( fprintf( f, "%u %u %u %u ", 3,
00068 n.Arete2(i,j),
00069 n.Arete3(i,j),
00070 n.Arete4(i,j)) == EOF ) {
00071 return MOD_NUM_ERROR_BAD_FIC_WRITE;
00072 }
00073
00074 continue;
00075
00076 }
00077
00078 if ( n.som3(i,j) == n.som4(i,j) ) {
00079 if ( fprintf( f, "%u %u %u %u ", 3,
00080 n.Arete1(i,j),
00081 n.Arete2(i,j),
00082 n.Arete4(i,j)) == EOF ) {
00083 return MOD_NUM_ERROR_BAD_FIC_WRITE;
00084 }
00085
00086 continue;
00087
00088 }
00089
00090 if ( fprintf( f, "%u %u %u %u %u ", 4,
00091 n.Arete1(i,j),
00092 n.Arete2(i,j),
00093 n.Arete3(i,j),
00094 n.Arete4(i,j)) == EOF ) {
00095 return MOD_NUM_ERROR_BAD_FIC_WRITE;
00096 }
00097
00098 }
00099
00100 __ALaLigne;
00101
00102 }
00103
00104 __RestorUseMode;
00105
00106 return SUCCESS;
00107 }
00108
00109 #undef __ALaLigne
00110 #undef __SaveUseMode
00111 #undef __RestorUseMode
00112