│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
50template <
typename REAL>
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
140template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
144 std::vector<int>
const& offsets,
│ │ │ │ -
145 std::vector<int>
const& sizes,
│ │ │ │ -
146 std::vector<int>
const& sources,
│ │ │ │ -
147 std::vector<REAL>
const& weights,
│ │ │ │ -
148 bool includeCoarseVerts,
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
157 return (
int)
_sizes.size();
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
132 bool factorize =
true);
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
152 bool factorize =
true) {
│ │ │ │ +
│ │ │ │ +
154 refiner, baseStencilTable, localPointStencilTable, factorize);
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
179 bool factorize =
true);
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
184 static void generateControlVertStencils(
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
204 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
209 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
211 U &dstValues,
Index start=-1,
Index end=-1)
const {
│ │ │ │ -
212 this->
update(srcBase, numBase, srcRef, dstValues,
_weights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
216 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
220 template <
class T1,
class T2,
class U>
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
208template <
typename REAL>
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
223 this->
update(srcBase, numBase, srcRef, dst,
_weights, start, end);
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
232 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
233 void update( T
const &srcValues, U &dstValues,
│ │ │ │ -
234 std::vector<REAL>
const & valueWeights,
Index start,
Index end)
const;
│ │ │ │ -
235 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
236 void update( T1
const &srcBase,
int numBase, T2
const &srcRef, U &dstValues,
│ │ │ │ -
237 std::vector<REAL>
const & valueWeights,
Index start,
Index end)
const;
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
289 std::vector<int>
const& offsets,
│ │ │ │ -
290 std::vector<int>
const& sizes,
│ │ │ │ -
291 std::vector<int>
const& sources,
│ │ │ │ -
292 std::vector<float>
const& weights,
│ │ │ │ -
293 bool includeCoarseVerts,
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
296 sizes, sources, weights, includeCoarseVerts, firstOffset) { }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │
│ │ │ │ -
302template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
333 _duWeights(duWeights),
│ │ │ │ -
334 _dvWeights(dvWeights),
│ │ │ │ -
335 _duuWeights(duuWeights),
│ │ │ │ -
336 _duvWeights(duvWeights),
│ │ │ │ -
337 _dvvWeights(dvvWeights) {
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
367 int stride = *this->
_size;
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
371 if (_duWeights) _duWeights += stride;
│ │ │ │ -
372 if (_dvWeights) _dvWeights += stride;
│ │ │ │ -
373 if (_duuWeights) _duuWeights += stride;
│ │ │ │ -
374 if (_duvWeights) _duvWeights += stride;
│ │ │ │ -
375 if (_dvvWeights) _dvvWeights += stride;
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
399 float * duWeights=0,
float * dvWeights=0,
│ │ │ │ -
400 float * duuWeights=0,
float * duvWeights=0,
float * dvvWeights=0)
│ │ │ │ -
│ │ │ │ -
402 duWeights, dvWeights, duuWeights, duvWeights, dvvWeights) { }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
408template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
413 std::vector<int>
const& offsets,
│ │ │ │ -
414 std::vector<int>
const& sizes,
│ │ │ │ -
415 std::vector<int>
const& sources,
│ │ │ │ -
416 std::vector<REAL>
const& weights,
│ │ │ │ -
417 std::vector<REAL>
const& duWeights,
│ │ │ │ -
418 std::vector<REAL>
const& dvWeights,
│ │ │ │ -
419 std::vector<REAL>
const& duuWeights,
│ │ │ │ -
420 std::vector<REAL>
const& duvWeights,
│ │ │ │ -
421 std::vector<REAL>
const& dvvWeights,
│ │ │ │ -
422 bool includeCoarseVerts,
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
475 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
477 int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
479 this->
update(srcValues, uderivs, _duWeights, start, end);
│ │ │ │ -
480 this->
update(srcValues, vderivs, _dvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
483 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
485 U & uderivs, U & vderivs,
int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
487 this->
update(srcBase, numBase, srcRef, uderivs, _duWeights, start, end);
│ │ │ │ -
488 this->
update(srcBase, numBase, srcRef, vderivs, _dvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
492 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
494 int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
496 this->
update(src, uderivs, _duWeights, start, end);
│ │ │ │ -
497 this->
update(src, vderivs, _dvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
499 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
501 U *uderivs, U *vderivs,
int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
503 this->
update(srcBase, numBase, srcRef, uderivs, _duWeights, start, end);
│ │ │ │ -
504 this->
update(srcBase, numBase, srcRef, vderivs, _dvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
527 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
529 U & uuderivs, U & uvderivs, U & vvderivs,
│ │ │ │ -
530 int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
532 this->
update(srcValues, uuderivs, _duuWeights, start, end);
│ │ │ │ -
533 this->
update(srcValues, uvderivs, _duvWeights, start, end);
│ │ │ │ -
534 this->
update(srcValues, vvderivs, _dvvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
537 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
539 U & uuderivs, U & uvderivs, U & vvderivs,
int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
541 this->
update(srcBase, numBase, srcRef, uuderivs, _duuWeights, start, end);
│ │ │ │ -
542 this->
update(srcBase, numBase, srcRef, uvderivs, _duvWeights, start, end);
│ │ │ │ -
543 this->
update(srcBase, numBase, srcRef, vvderivs, _dvvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
547 template <
class T,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
549 int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
551 this->
update(src, uuderivs, _duuWeights, start, end);
│ │ │ │ -
552 this->
update(src, uvderivs, _duvWeights, start, end);
│ │ │ │ -
553 this->
update(src, vvderivs, _dvvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
555 template <
class T1,
class T2,
class U>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
557 U *uuderivs, U *uvderivs, U *vvderivs,
int start=-1,
int end=-1)
const {
│ │ │ │ -
│ │ │ │ -
559 this->
update(srcBase, numBase, srcRef, uuderivs, _duuWeights, start, end);
│ │ │ │ -
560 this->
update(srcBase, numBase, srcRef, uvderivs, _duvWeights, start, end);
│ │ │ │ -
561 this->
update(srcBase, numBase, srcRef, vvderivs, _dvvWeights, start, end);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
571 void resize(
int nstencils,
int nelems);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
574 std::vector<REAL> _duWeights,
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
597 std::vector<int>
const& offsets,
│ │ │ │ -
598 std::vector<int>
const& sizes,
│ │ │ │ -
599 std::vector<int>
const& sources,
│ │ │ │ -
600 std::vector<float>
const& weights,
│ │ │ │ -
601 std::vector<float>
const& duWeights,
│ │ │ │ -
602 std::vector<float>
const& dvWeights,
│ │ │ │ -
603 std::vector<float>
const& duuWeights,
│ │ │ │ -
604 std::vector<float>
const& duvWeights,
│ │ │ │ -
605 std::vector<float>
const& dvvWeights,
│ │ │ │ -
606 bool includeCoarseVerts,
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
609 offsets, sizes, sources, weights,
│ │ │ │ -
610 duWeights, dvWeights, duuWeights, duvWeights, dvvWeights,
│ │ │ │ -
611 includeCoarseVerts, firstOffset) { }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
616template <
typename REAL>
│ │ │ │ -
617template <
class T1,
class T2,
class U>
void
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
619 T2
const &srcRef, U &dstValues,
│ │ │ │ -
620 std::vector<REAL>
const &valueWeights,
Index start,
Index end)
const {
│ │ │ │ -
│ │ │ │ -
622 int const * sizes = &_sizes.at(0);
│ │ │ │ -
623 Index const * indices = &_indices.at(0);
│ │ │ │ -
624 REAL
const * weights = &valueWeights.at(0);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
627 assert(start < (
Index)_offsets.size());
│ │ │ │ -
│ │ │ │ -
629 indices += _offsets[start];
│ │ │ │ -
630 weights += _offsets[start];
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
635 int nstencils = ((end < start) ? GetNumStencils() : end) - start;
│ │ │ │ -
│ │ │ │ -
637 for (
int i = 0; i < nstencils; ++i, ++sizes) {
│ │ │ │ -
638 dstValues[start + i].Clear();
│ │ │ │ -
639 for (
int j = 0; j < *sizes; ++j, ++indices, ++weights) {
│ │ │ │ -
640 if (*indices < numBase) {
│ │ │ │ -
641 dstValues[start + i].AddWithWeight(srcBase[*indices], *weights);
│ │ │ │ -
│ │ │ │ -
643 dstValues[start + i].AddWithWeight(srcRef[*indices - numBase], *weights);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
648template <
typename REAL>
│ │ │ │ -
649template <
class T,
class U>
void
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
651 std::vector<REAL>
const &valueWeights,
Index start,
Index end)
const {
│ │ │ │ -
│ │ │ │ -
653 int const * sizes = &_sizes.at(0);
│ │ │ │ -
654 Index const * indices = &_indices.at(0);
│ │ │ │ -
655 REAL
const * weights = &valueWeights.at(0);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
658 assert(start < (
Index)_offsets.size());
│ │ │ │ -
│ │ │ │ -
660 indices += _offsets[start];
│ │ │ │ -
661 weights += _offsets[start];
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
666 int nstencils = ((end < start) ? GetNumStencils() : end) - start;
│ │ │ │ -
│ │ │ │ -
668 for (
int i = 0; i < nstencils; ++i, ++sizes) {
│ │ │ │ -
669 dstValues[start + i].Clear();
│ │ │ │ -
670 for (
int j = 0; j < *sizes; ++j, ++indices, ++weights) {
│ │ │ │ -
671 dstValues[start + i].AddWithWeight(srcValues[*indices], *weights);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
676template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
680 int noffsets = (int)_sizes.size();
│ │ │ │ -
681 _offsets.resize(noffsets);
│ │ │ │ -
682 for (
int i=0; i<(int)_sizes.size(); ++i ) {
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
688template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
691 _sizes.resize(nstencils);
│ │ │ │ -
692 _indices.resize(nelems);
│ │ │ │ -
693 _weights.resize(nelems);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
696template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
699 _sizes.reserve(nstencils);
│ │ │ │ -
700 _indices.reserve(nelems);
│ │ │ │ -
701 _weights.reserve(nelems);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
704template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
707 std::vector<int>(_sizes).swap(_sizes);
│ │ │ │ -
708 std::vector<Index>(_indices).swap(_indices);
│ │ │ │ -
709 std::vector<REAL>(_weights).swap(_weights);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
712template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
720template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
723 assert((! _offsets.empty()) && i<(
int)_offsets.size());
│ │ │ │ -
│ │ │ │ -
725 Index ofs = _offsets[i];
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
728 const_cast<Index*
>(&_indices[ofs]),
│ │ │ │ -
729 const_cast<REAL*
>(&_weights[ofs]));
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
732template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
735 return GetStencil(index);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
738template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
742 _duWeights.resize(nelems);
│ │ │ │ -
743 _dvWeights.resize(nelems);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
747template <
typename REAL>
│ │ │ │ -
748inline LimitStencilReal<REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
750 assert((! this->GetOffsets().empty()) && i<(
int)this->GetOffsets().size());
│ │ │ │ -
│ │ │ │ -
752 Index ofs = this->GetOffsets()[i];
│ │ │ │ -
│ │ │ │ -
754 if (!_duWeights.empty() && !_dvWeights.empty() &&
│ │ │ │ -
755 !_duuWeights.empty() && !_duvWeights.empty() && !_dvvWeights.empty()) {
│ │ │ │ -
│ │ │ │ -
757 const_cast<int *
>(&this->GetSizes()[i]),
│ │ │ │ -
758 const_cast<Index *
>(&this->GetControlIndices()[ofs]),
│ │ │ │ -
759 const_cast<REAL *
>(&this->GetWeights()[ofs]),
│ │ │ │ -
760 const_cast<REAL *
>(&GetDuWeights()[ofs]),
│ │ │ │ -
761 const_cast<REAL *
>(&GetDvWeights()[ofs]),
│ │ │ │ -
762 const_cast<REAL *
>(&GetDuuWeights()[ofs]),
│ │ │ │ -
763 const_cast<REAL *
>(&GetDuvWeights()[ofs]),
│ │ │ │ -
764 const_cast<REAL *
>(&GetDvvWeights()[ofs]) );
│ │ │ │ -
765 }
else if (!_duWeights.empty() && !_dvWeights.empty()) {
│ │ │ │ -
│ │ │ │ -
767 const_cast<int *
>(&this->GetSizes()[i]),
│ │ │ │ -
768 const_cast<Index *
>(&this->GetControlIndices()[ofs]),
│ │ │ │ -
769 const_cast<REAL *
>(&this->GetWeights()[ofs]),
│ │ │ │ -
770 const_cast<REAL *
>(&GetDuWeights()[ofs]),
│ │ │ │ -
771 const_cast<REAL *
>(&GetDvWeights()[ofs]) );
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
774 const_cast<int *
>(&this->GetSizes()[i]),
│ │ │ │ -
775 const_cast<Index *
>(&this->GetControlIndices()[ofs]),
│ │ │ │ -
776 const_cast<REAL *
>(&this->GetWeights()[ofs]) );
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
780template <
typename REAL>
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
783 return GetLimitStencil(index);
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
789using namespace OPENSUBDIV_VERSION;
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
305 reinterpret_cast<BaseTable const **
>(tables)));
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
312 bool factorize =
true) {
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
316 static_cast<BaseTable const *
>(baseStencilTable),
│ │ │ │ +
317 static_cast<BaseTable const *
>(localPointStencilTable),
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
325 bool factorize =
true) {
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
329 static_cast<BaseTable const *
>(baseStencilTable),
│ │ │ │ +
330 static_cast<BaseTable const *
>(localPointStencilTable),
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
339 bool factorize =
true) {
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
343 static_cast<BaseTable const *
>(baseStencilTable),
│ │ │ │ +
344 static_cast<BaseTable const *
>(localPointStencilTable),
│ │ │ │ +
345 channel, factorize));
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
350class LimitStencilTable;
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
365 Options options = Options()) {
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
371 static_cast<BaseTable const *
>(cvStencils),
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
380using namespace OPENSUBDIV_VERSION;
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
│ │ │ │
│ │ │ │ -
│ │ │ │ -
A specialized factory for StencilTable.
│ │ │ │ -
A specialized factory for LimitStencilTable.
│ │ │ │ -
Vertex stencil descriptor.
│ │ │ │ -
StencilReal()
Default constructor.
│ │ │ │ -
│ │ │ │ -
StencilReal(int *size, Index *indices, REAL *weights)
Constructor.
│ │ │ │ -
void Next()
Advance to the next stencil in the table.
│ │ │ │ -
StencilReal(StencilReal const &other)
Copy constructor.
│ │ │ │ -
│ │ │ │ -
Index const * GetVertexIndices() const
Returns the control vertices' indices.
│ │ │ │ -
int GetSize() const
Returns the size of the stencil.
│ │ │ │ -
│ │ │ │ -
int * GetSizePtr() const
Returns the size of the stencil as a pointer.
│ │ │ │ -
REAL const * GetWeights() const
Returns the interpolation weights.
│ │ │ │ -
Vertex stencil class wrapping the template for compatibility.
│ │ │ │ -
Stencil(BaseStencil const &other)
│ │ │ │ -
Stencil(int *size, Index *indices, float *weights)
│ │ │ │ -
StencilReal< float > BaseStencil
│ │ │ │ -
│ │ │ │ -
Table of subdivision stencils.
│ │ │ │ -
int GetNumControlVertices() const
Returns the number of control vertices indexed in the table.
│ │ │ │ -
std::vector< int > _sizes
│ │ │ │ -
friend class Far::PatchTableBuilder
│ │ │ │ -
void update(T1 const &srcBase, int numBase, T2 const &srcRef, U &dstValues, std::vector< REAL > const &valueWeights, Index start, Index end) const
│ │ │ │ -
void UpdateValues(T1 const &srcBase, int numBase, T2 const &srcRef, U &dstValues, Index start=-1, Index end=-1) const
│ │ │ │ -
std::vector< Index > const & GetControlIndices() const
Returns the indices of the control vertices.
│ │ │ │ -
│ │ │ │ -
StencilReal< REAL > operator[](Index index) const
Returns the stencil at index i in the table.
│ │ │ │ -
│ │ │ │ -
void update(T const &srcValues, U &dstValues, std::vector< REAL > const &valueWeights, Index start, Index end) const
│ │ │ │ -
std::vector< int > const & GetSizes() const
Returns the number of control vertices of each stencil in the table.
│ │ │ │ -
int GetNumStencils() const
Returns the number of stencils in the table.
│ │ │ │ -
virtual ~StencilTableReal()
│ │ │ │ -
std::vector< Index > const & GetOffsets() const
Returns the offset to a given stencil (factory may leave empty)
│ │ │ │ -
StencilReal< REAL > GetStencil(Index i) const
Returns a Stencil at index i in the table.
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
void Clear()
Clears the stencils from the table.
│ │ │ │ -
std::vector< Index > _offsets
│ │ │ │ -
std::vector< REAL > _weights
│ │ │ │ -
void resize(int nstencils, int nelems)
│ │ │ │ -
std::vector< REAL > const & GetWeights() const
Returns the stencil interpolation weights.
│ │ │ │ -
void UpdateValues(T1 const *srcBase, int numBase, T2 const *srcRef, U *dst, Index start=-1, Index end=-1) const
│ │ │ │ -
StencilTableReal(int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< REAL > const &weights, bool includeCoarseVerts, size_t firstOffset)
│ │ │ │ -
std::vector< Index > _indices
│ │ │ │ -
│ │ │ │ -
void reserve(int nstencils, int nelems)
│ │ │ │ -
void UpdateValues(T const *src, U *dst, Index start=-1, Index end=-1) const
│ │ │ │ -
void UpdateValues(T const &srcValues, U &dstValues, Index start=-1, Index end=-1) const
Updates point values based on the control values.
│ │ │ │ -
Stencil table class wrapping the template for compatibility.
│ │ │ │ -
StencilTable(int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< float > const &weights, bool includeCoarseVerts, size_t firstOffset)
│ │ │ │ -
StencilTable(int numControlVerts)
│ │ │ │ -
StencilTableReal< float > BaseTable
│ │ │ │ -
Stencil GetStencil(Index index) const
│ │ │ │ -
Stencil operator[](Index index) const
│ │ │ │ -
│ │ │ │ -
Limit point stencil descriptor.
│ │ │ │ -
REAL const * GetDuvWeights() const
Returns the uv derivative weights.
│ │ │ │ -
REAL const * GetDvWeights() const
Returns the v derivative weights.
│ │ │ │ -
void Next()
Advance to the next stencil in the table.
│ │ │ │ -
REAL const * GetDvvWeights() const
Returns the vv derivative weights.
│ │ │ │ -
LimitStencilReal(int *size, Index *indices, REAL *weights, REAL *duWeights=0, REAL *dvWeights=0, REAL *duuWeights=0, REAL *duvWeights=0, REAL *dvvWeights=0)
Constructor.
│ │ │ │ -
REAL const * GetDuWeights() const
Returns the u derivative weights.
│ │ │ │ -
REAL const * GetDuuWeights() const
Returns the uu derivative weights.
│ │ │ │ -
Limit point stencil class wrapping the template for compatibility.
│ │ │ │ -
LimitStencil(BaseStencil const &other)
│ │ │ │ -
LimitStencilReal< float > BaseStencil
│ │ │ │ -
LimitStencil(int *size, Index *indices, float *weights, float *duWeights=0, float *dvWeights=0, float *duuWeights=0, float *duvWeights=0, float *dvvWeights=0)
│ │ │ │ -
Table of limit subdivision stencils.
│ │ │ │ -
std::vector< REAL > const & GetDuuWeights() const
Returns the 'uu' derivative stencil interpolation weights.
│ │ │ │ -
LimitStencilReal< REAL > operator[](Index index) const
Returns the limit stencil at index i in the table.
│ │ │ │ -
std::vector< REAL > const & GetDvvWeights() const
Returns the 'vv' derivative stencil interpolation weights.
│ │ │ │ -
void UpdateDerivs(T const *src, U *uderivs, U *vderivs, int start=-1, int end=-1) const
│ │ │ │ -
void Update2ndDerivs(T const *src, T *uuderivs, U *uvderivs, U *vvderivs, int start=-1, int end=-1) const
│ │ │ │ -
std::vector< REAL > const & GetDvWeights() const
Returns the 'v' derivative stencil interpolation weights.
│ │ │ │ -
void Update2ndDerivs(T1 const *srcBase, int numBase, T2 const *srcRef, U *uuderivs, U *uvderivs, U *vvderivs, int start=-1, int end=-1) const
│ │ │ │ -
void UpdateDerivs(T const &srcValues, U &uderivs, U &vderivs, int start=-1, int end=-1) const
Updates derivative values based on the control values.
│ │ │ │ -
LimitStencilReal< REAL > GetLimitStencil(Index i) const
Returns a LimitStencil at index i in the table.
│ │ │ │ -
LimitStencilTableReal(int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< REAL > const &weights, std::vector< REAL > const &duWeights, std::vector< REAL > const &dvWeights, std::vector< REAL > const &duuWeights, std::vector< REAL > const &duvWeights, std::vector< REAL > const &dvvWeights, bool includeCoarseVerts, size_t firstOffset)
│ │ │ │ -
void Update2ndDerivs(T const &srcValues, U &uuderivs, U &uvderivs, U &vvderivs, int start=-1, int end=-1) const
Updates 2nd derivative values based on the control values.
│ │ │ │ -
std::vector< REAL > const & GetDuWeights() const
Returns the 'u' derivative stencil interpolation weights.
│ │ │ │ -
void Clear()
Clears the stencils from the table.
│ │ │ │ -
void Update2ndDerivs(T1 const &srcBase, int numBase, T2 const &srcRef, U &uuderivs, U &uvderivs, U &vvderivs, int start=-1, int end=-1) const
│ │ │ │ -
std::vector< REAL > const & GetDuvWeights() const
Returns the 'uv' derivative stencil interpolation weights.
│ │ │ │ -
void UpdateDerivs(T1 const &srcBase, int numBase, T2 const &srcRef, U &uderivs, U &vderivs, int start=-1, int end=-1) const
│ │ │ │ -
void UpdateDerivs(T1 const *srcBase, int numBase, T2 const *srcRef, U *uderivs, U *vderivs, int start=-1, int end=-1) const
│ │ │ │ -
Limit stencil table class wrapping the template for compatibility.
│ │ │ │ -
LimitStencilTableReal< float > BaseTable
│ │ │ │ -
LimitStencil GetLimitStencil(Index index) const
│ │ │ │ -
LimitStencilTable(int numControlVerts, std::vector< int > const &offsets, std::vector< int > const &sizes, std::vector< int > const &sources, std::vector< float > const &weights, std::vector< float > const &duWeights, std::vector< float > const &dvWeights, std::vector< float > const &duuWeights, std::vector< float > const &duvWeights, std::vector< float > const &dvvWeights, bool includeCoarseVerts, size_t firstOffset)
│ │ │ │ -
LimitStencil operator[](Index index) const
│ │ │ │ +
Container for arrays of parametric patches.
│ │ │ │ +
A specialized factory for StencilTable.
│ │ │ │ +
static StencilTableReal< REAL > const * Create(TopologyRefiner const &refiner, Options options=Options())
Instantiates StencilTable from TopologyRefiner that have been refined uniformly or adaptively.
│ │ │ │ +
static StencilTableReal< REAL > const * AppendLocalPointStencilTableFaceVarying(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, int channel=0, bool factorize=true)
Utility function for stencil splicing for local point face-varying stencils.
│ │ │ │ +
│ │ │ │ +
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
│ │ │ │ +
@ INTERPOLATE_VARYING
varying primvar stencils
│ │ │ │ +
@ INTERPOLATE_VERTEX
vertex primvar stencils
│ │ │ │ +
static StencilTableReal< REAL > const * AppendLocalPointStencilTableVarying(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, bool factorize=true)
Utility function for stencil splicing for local point varying stencils.
│ │ │ │ +
static StencilTableReal< REAL > const * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTableReal< REAL > const *baseStencilTable, StencilTableReal< REAL > const *localPointStencilTable, bool factorize=true)
Utility function for stencil splicing for local point stencils.
│ │ │ │ +
static StencilTableReal< REAL > const * Create(int numTables, StencilTableReal< REAL > const **tables)
Instantiates StencilTable by concatenating an array of existing stencil tables.
│ │ │ │ +
A specialized factory for LimitStencilTable.
│ │ │ │ +
│ │ │ │ +
@ INTERPOLATE_FACE_VARYING
face-varying primvar stencils
│ │ │ │ +
@ INTERPOLATE_VARYING
varying primvar stencils
│ │ │ │ +
@ INTERPOLATE_VERTEX
vertex primvar stencils
│ │ │ │ +
std::vector< LocationArray > LocationArrayVec
│ │ │ │ +
static LimitStencilTableReal< REAL > const * Create(TopologyRefiner const &refiner, LocationArrayVec const &locationArrays, StencilTableReal< REAL > const *cvStencils=0, PatchTable const *patchTable=0, Options options=Options())
Instantiates LimitStencilTable from a TopologyRefiner that has been refined either uniformly or adapt...
│ │ │ │ +
Vertex stencil descriptor.
│ │ │ │ +
Vertex stencil class wrapping the template for compatibility.
│ │ │ │ +
Table of subdivision stencils.
│ │ │ │ +
Stencil table class wrapping the template for compatibility.
│ │ │ │ +
Table of limit subdivision stencils.
│ │ │ │ +
Limit stencil table class wrapping the template for compatibility.
│ │ │ │ +
│ │ │ │ +
unsigned int factorizeIntermediateLevels
│ │ │ │ +
unsigned int maxLevel
generate stencils up to 'maxLevel'
│ │ │ │ +
│ │ │ │ +
unsigned int generateIntermediateLevels
vertices at all levels or highest only
│ │ │ │ +
unsigned int generateControlVerts
generate stencils for control-vertices
│ │ │ │ +
unsigned int generateOffsets
populate optional "_offsets" field
│ │ │ │ +
│ │ │ │ +
unsigned int interpolationMode
interpolation mode
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
unsigned int fvarChannel
face-varying channel to use
│ │ │ │ +
unsigned int interpolationMode
interpolation mode
│ │ │ │ +
unsigned int generate2ndDerivatives
Generate weights for 2nd derivatives.
│ │ │ │ +
unsigned int generate1stDerivatives
Generate weights for 1st derivatives.
│ │ │ │ +
Descriptor for limit surface locations.
│ │ │ │ +
REAL const * t
array of v coordinates
│ │ │ │ +
REAL const * s
array of u coordinates
│ │ │ │ +
│ │ │ │ +
int numLocations
number of (u,v) coordinates in the array
│ │ │ │ +
int ptexIdx
ptex face index
│ │ │ │ +
Stencil table factory class wrapping the template for compatibility.
│ │ │ │ +
static StencilTable const * AppendLocalPointStencilTableVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
│ │ │ │ +
static StencilTable const * Create(TopologyRefiner const &refiner, Options options=Options())
│ │ │ │ +
static StencilTable const * AppendLocalPointStencilTableFaceVarying(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, int channel=0, bool factorize=true)
│ │ │ │ +
static StencilTable const * AppendLocalPointStencilTable(TopologyRefiner const &refiner, StencilTable const *baseStencilTable, StencilTable const *localPointStencilTable, bool factorize=true)
│ │ │ │ +
static StencilTable const * Create(int numTables, StencilTable const **tables)
│ │ │ │ +
Stencil table factory class wrapping the template for compatibility.
│ │ │ │ +
static LimitStencilTable const * Create(TopologyRefiner const &refiner, LocationArrayVec const &locationArrays, StencilTable const *cvStencils=0, PatchTable const *patchTable=0, Options options=Options())
│ │ │ │ +
Stores topology data for a specified set of refinement options.
│ │ │ │