19 #include "SimpleOpt.h"
25 {
OPT_TOPO, _T(
"--topology"), SO_NONE },
34 uint32_t
n[] = {1,1,1};
38 #include "generate.help"
42 double v(
const uint32_t step,
const uint32_t
n)
50 void tri(
const uint32_t i,
const uint32_t j)
52 std::cout << i+j*
n[0] <<
" " << i+1+j*
n[0] <<
" " << i+(j+1)*
n[0] <<
"\n";
53 std::cout << i+1+j*
n[0] <<
" " << i+1+(j+1)*
n[0] <<
" " << i+(j+1)*
n[0] <<
"\n";
56 void tetra(
const uint32_t a,
const uint32_t b,
const uint32_t c,
const uint32_t d)
58 std::cout << a <<
" " << b <<
" " << c <<
" " << d <<
"\n";
61 void quad(
const uint32_t i,
const uint32_t j,
const uint32_t k)
64 uint32_t b =
n[0]*
n[1];
65 tetra(i+j*a+k*b,i+1+j*a+k*b,i+(j+1)*a+k*b,i+j*a+(k+1)*b);
66 tetra(i+1+j*a+k*b,i+1+(j+1)*a+k*b,i+(j+1)*a+k*b,i+1+(j+1)*a+(k+1)*b);
67 tetra(i+1+j*a+k*b,i+(j+1)*a+k*b,i+j*a+(k+1)*b,i+1+j*a+(k+1)*b);
68 tetra(i+(j+1)*a+k*b,i+(j+1)*a+(k+1)*b,i+j*a+(k+1)*b,i+1+j*a+(k+1)*b);
69 tetra(i+1+j*a+k*b,i+1+(j+1)*a+(k+1)*b,i+(j+1)*a+k*b,i+1+j*a+(k+1)*b);
70 tetra(i+(j+1)*a+k*b,i+1+(j+1)*a+(k+1)*b,i+(j+1)*a+(k+1)*b,i+1+j*a+(k+1)*b);
73 int main(
int argc,
char ** argv)
79 if (args.LastError() == SO_SUCCESS)
83 else if (args.OptionId() ==
OPT_TOPO)
86 std::cerr <<
"Invalid argument: " << args.OptionText() <<
"\n";
87 return error(args.LastError());
92 uint8_t dim = args.FileCount();
93 if ((dim<1)||(dim>3))
return error(-2);
95 for (uint8_t i=0; i<dim;i++)
96 o << args.File(i) <<
" ";
97 std::istringstream
in(o.str().c_str());
98 for (uint8_t i=0; i<dim;i++)
102 if (val<2)
return error(-3);
106 for (uint8_t i=0; i<dim;i++)
108 std::cout << npts <<
"\n";
109 for (uint32_t k=0; k<
n[2];k++)
111 for (uint32_t j=0; j<
n[1];j++)
113 for (uint32_t i=0; i<
n[0];i++)
114 std:: cout <<
v(i,
n[0]) <<
" " <<
v(j,
n[1]) <<
" " <<
v(k,
n[2]) <<
"\n";
122 std::cout <<
n[0]-1 <<
"\n";
123 for (uint32_t u=0; u<
n[0]-1;u++)
124 std::cout << u <<
" " << u+1 <<
"\n";
127 std::cout << (
n[0]-1)*(
n[1]-1)*2 <<
"\n";
128 for (uint32_t
v=0;
v<
n[1]-1;
v++)
130 for (uint32_t u=0; u<
n[0]-1;u++)
135 std::cout << (
n[0]-1)*(
n[1]-1)*(
n[2]-1)*6 <<
"\n";
136 for (uint32_t w=0; w<
n[2]-1;w++)
138 for (uint32_t
v=0;
v<
n[1]-1;
v++)
140 for (uint32_t u=0; u<
n[0]-1;u++)
void quad(const uint32_t i, const uint32_t j, const uint32_t k)
double v(const uint32_t step, const uint32_t n)
CSimpleOpt::SOption g_rgOptions[]
int main(int argc, char **argv)
void tri(const uint32_t i, const uint32_t j)
void tetra(const uint32_t a, const uint32_t b, const uint32_t c, const uint32_t d)