Rev 431 | Rev 445 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 431 | Rev 444 | ||
---|---|---|---|
Line 375... | Line 375... | ||
375 | rand_fraction = fabs(double(item.density)); |
375 | rand_fraction = fabs(double(item.density)); |
376 | for (int i=0;i<item.count;i++) { |
376 | for (int i=0;i<item.count;i++) { |
377 | // create trees
|
377 | // create trees
|
378 | int tree_idx = ru->newTreeIndex(); |
378 | int tree_idx = ru->newTreeIndex(); |
379 | Tree &tree = ru->trees()[tree_idx]; // get reference to modify tree |
379 | Tree &tree = ru->trees()[tree_idx]; // get reference to modify tree |
380 | tree.setDbh(nrandom(item.dbh_from, item.dbh_to)); |
380 | tree.setDbh(nrandom(ru->randomGenerator(), item.dbh_from, item.dbh_to)); |
381 | tree.setHeight(tree.dbh()/100. * item.hd); // dbh from cm->m, *hd-ratio -> meter height |
381 | tree.setHeight(tree.dbh()/100. * item.hd); // dbh from cm->m, *hd-ratio -> meter height |
382 | tree.setSpecies(item.species); |
382 | tree.setSpecies(item.species); |
383 | if (item.age<=0) |
383 | if (item.age<=0) |
384 | tree.setAge(0,tree.height()); |
384 | tree.setAge(0,tree.height()); |
385 | else
|
385 | else
|
Line 390... | Line 390... | ||
390 | 390 | ||
391 | // calculate random value. "density" is from 1..-1.
|
391 | // calculate random value. "density" is from 1..-1.
|
392 | rand_val = mRandom->get(); |
392 | rand_val = mRandom->get(); |
393 | if (item.density<0) |
393 | if (item.density<0) |
394 | rand_val = 1. - rand_val; |
394 | rand_val = 1. - rand_val; |
395 | rand_val = rand_val * rand_fraction + drandom()*(1.-rand_fraction); |
395 | rand_val = rand_val * rand_fraction + drandom(ru->randomGenerator())*(1.-rand_fraction); |
396 | 396 | ||
397 | // key: rank of target pixel
|
397 | // key: rank of target pixel
|
398 | // first: index of target pixel
|
398 | // first: index of target pixel
|
399 | // second: sum of target pixel
|
399 | // second: sum of target pixel
|
400 | key = limit(int(100*rand_val), 0, 99); // get from random number generator |
400 | key = limit(int(100*rand_val), 0, 99); // get from random number generator |