Commit feb0c9dde9bbda9a2ecfa3bc30893610801fb001

Authored by David Mayerich
1 parent 16d171c9

network processing for distance fields - debugging

stim/image/image.h
... ... @@ -76,17 +76,6 @@ class image{
76 76 /// Returns the value for "white" based on the dynamic range (assumes white is 1.0 for floating point images)
77 77 T white(){
78 78 return std::numeric_limits<T>::max();
79   - //if(typeid(T) == typeid(unsigned char)) return UCHAR_MAX;
80   - //if(typeid(T) == typeid(unsigned short)) return SHRT_MAX;
81   - //if(typeid(T) == typeid(unsigned)) return UINT_MAX;
82   - //if(typeid(T) == typeid(unsigned long)) return ULONG_MAX;
83   - //if(typeid(T) == typeid(unsigned long long)) return ULLONG_MAX;
84   - //if(typeid(T) == typeid(float)) return 1.0f;
85   - //if(typeid(T) == typeid(double)) return 1.0;
86   -
87   - std::cout<<"ERROR in stim::image::white - no white value known for this data type"<<std::endl;
88   - exit(1);
89   -
90 79 }
91 80  
92 81  
... ...
stim/parser/arguments.h
... ... @@ -13,6 +13,44 @@
13 13 #include <Windows.h>
14 14 #endif
15 15  
  16 +/**The arglist class implements command line arguments.
  17 + Example:
  18 +
  19 + 1) Create an arglist instance:
  20 +
  21 + stim::arglist args;
  22 +
  23 + 2) Add arguments:
  24 +
  25 + args.add("help", "prints this help");
  26 + args.add("foo", "foo takes a single integer value", "", "[intval]");
  27 + args.add("bar", "bar takes two floating point values", "", "[value1], [value2]");
  28 +
  29 + 3) Parse the command line:
  30 +
  31 + args.parse(argc, argv);
  32 +
  33 + 4) You generally want to immediately test for help and output available arguments:
  34 +
  35 + if(args["help"].is_set())
  36 + std::cout<<args.str();
  37 +
  38 +
  39 +
  40 + 5) Retrieve values:
  41 +
  42 + int foo;
  43 + float bar1, bar2;
  44 + if(args["foo"])
  45 + foo = args["foo"].as_int();
  46 + if(args["bar"]){
  47 + bar1 = args["bar"].as_float(0);
  48 + bar2 = args["bar"].as_float(1);
  49 + }
  50 +
  51 +
  52 +**/
  53 +
16 54 namespace stim{
17 55  
18 56 class cmd_option
... ... @@ -258,10 +296,12 @@ namespace stim{
258 296 flag = true;
259 297 }
260 298  
261   - bool is_set()
262   - {
  299 + bool is_set() const{
263 300 return flag;
264 301 }
  302 + operator bool() const{
  303 + return is_set();
  304 + }
265 305  
266 306 };
267 307  
... ... @@ -271,43 +311,7 @@ namespace stim{
271 311 size_t index;
272 312 };
273 313  
274   - /**The arglist class implements command line arguments.
275   - Example:
276   -
277   - 1) Create an arglist instance:
278   -
279   - stim::arglist args;
280   -
281   - 2) Add arguments:
282 314  
283   - args.add("help", "prints this help");
284   - args.add("foo", "foo takes a single integer value", "", "[intval]");
285   - args.add("bar", "bar takes two floating point values", "", "[value1], [value2]");
286   -
287   - 3) Parse the command line:
288   -
289   - args.parse(argc, argv);
290   -
291   - 4) You generally want to immediately test for help and output available arguments:
292   -
293   - if(args["help"].is_set())
294   - std::cout<<args.str();
295   -
296   -
297   -
298   - 5) Retrieve values:
299   -
300   - int foo;
301   - float bar1, bar2;
302   - if(args["foo"])
303   - foo = args["foo"].as_int();
304   - if(args["bar"]){
305   - bar1 = args["bar"].as_float(0);
306   - bar2 = args["bar"].as_float(1);
307   - }
308   -
309   -
310   - **/
311 315  
312 316 class arglist
313 317 {
... ... @@ -528,21 +532,21 @@ namespace stim{
528 532 std::vector<std::string> arg_vector(){
529 533 return args;
530 534 }
531   - ///Returns an object describing the argument
532   -
533   - /// @param _name is the name of the requested argument
534   - cmd_option operator[](std::string _name){
535   - std::vector<cmd_option>::iterator it;
536   - it = find(opts.begin(), opts.end(), _name);// - opts.begin();
  535 + ///Returns an object describing the argument
537 536  
538   - if(it == opts.end()){
539   - std::cout<<"ERROR - Unspecified parameter name: "<<_name<<std::endl;
540   - exit(1);
541   - }
  537 + /// @param _name is the name of the requested argument
  538 + cmd_option operator[](std::string _name){
  539 + std::vector<cmd_option>::iterator it;
  540 + it = find(opts.begin(), opts.end(), _name);// - opts.begin();
542 541  
543   - return *it;
  542 + if(it == opts.end()){
  543 + std::cout<<"ERROR - Unspecified parameter name: "<<_name<<std::endl;
  544 + exit(1);
544 545 }
545 546  
  547 + return *it;
  548 + }
  549 +
546 550  
547 551 };
548 552  
... ...
stim/structures/kdtree.cuh
... ... @@ -457,7 +457,7 @@ namespace stim {
457 457 //bb.init(&h_reference_points[0]);
458 458 //aaboundingboxing<T, D>(bb, h_reference_points, reference_count);
459 459  
460   - std::vector <kdtree::point<T, D>> reference_points(reference_count); // restore the reference points in particular way
  460 + std::vector < typename kdtree::point<T, D> > reference_points(reference_count); // restore the reference points in particular way
461 461 for (size_t j = 0; j < reference_count; j++)
462 462 for (size_t i = 0; i < D; i++)
463 463 reference_points[j].dim[i] = h_reference_points[j * D + i];
... ...