23 namespace SOP_TopoTransferEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
68 using namespace UT::Literal;
86 using namespace UT::Literal;
119 pname =
"group#"_UTsh;
124 psourcegroup =
""_UTsh;
125 ptargetgroup =
""_UTsh;
132 if (pballcolor != src.
pballcolor)
return false;
135 if (sourcepos != src.
sourcepos)
return false;
137 if (targetpos != src.
targetpos)
return false;
155 for (
int i = 0; i < list.
entries(); i++)
161 buf.
appendSprintf(
"%s", (list(i).enablegroup) ?
"true" :
"false");
163 buf.
appendSprintf(
"(%f, %f, %f)", list(i).pballcolor.x(), list(i).pballcolor.y(), list(i).pballcolor.z());
167 buf.
appendSprintf(
"%s", (list(i).usesourcepos) ?
"true" :
"false");
171 buf.
appendSprintf(
"%s", (list(i).usetargetpos) ?
"true" :
"false");
189 myEnableSolve =
true;
190 myEnableGeometryConstraints =
false;
191 myConstraintSelection = 0;
192 myConstraintSource =
""_UTsh;
196 myReductionPercentageSingle = 0.1;
197 myInitialReductionPercentage = 0.1;
201 myMaskTolerance = 1e-6;
202 myRigidprimitives =
""_UTsh;
203 myDistTolerance = 0.2;
204 myNormTolerance = 45;
206 mySolverIterations = 20;
209 myDebug_coarse_lvl = 0;
210 myDebug_coarse_iteration = 0;
211 myDebug_dense_lvl = 0;
212 myDebug_dense_iteration = 0;
213 myDebug_hessian_scaling =
true;
214 myDebug_use_marquadt =
true;
215 myParameter_tolerance = 0.0001;
218 myInitial_damping = 0.0001;
219 myDebug_save_meshes =
false;
220 myUseLandmarkLables =
true;
221 myLandmarkAttribute =
"landmark"_UTsh;
222 myEnableLandmarks =
true;
223 myNumlandmarkgroups.setSize(0);
224 myRigidMask =
"rigid_mask"_UTsh;
237 if (myEnableSolve != src.myEnableSolve)
return false;
238 if (myEnableGeometryConstraints != src.myEnableGeometryConstraints)
return false;
239 if (myConstraintSelection != src.myConstraintSelection)
return false;
240 if (myConstraintSource != src.myConstraintSource)
return false;
241 if (myIterations != src.myIterations)
return false;
242 if (myReducedLevels != src.myReducedLevels)
return false;
243 if (myReductionPercentage != src.myReductionPercentage)
return false;
244 if (myReductionPercentageSingle != src.myReductionPercentageSingle)
return false;
245 if (myInitialReductionPercentage != src.myInitialReductionPercentage)
return false;
246 if (myRigidWeights != src.myRigidWeights)
return false;
247 if (myLandmarkWeights != src.myLandmarkWeights)
return false;
248 if (myMaskMode != src.myMaskMode)
return false;
249 if (myMaskTolerance != src.myMaskTolerance)
return false;
250 if (myRigidprimitives != src.myRigidprimitives)
return false;
251 if (myDistTolerance != src.myDistTolerance)
return false;
252 if (myNormTolerance != src.myNormTolerance)
return false;
253 if (mySolverType != src.mySolverType)
return false;
254 if (mySolverIterations != src.mySolverIterations)
return false;
255 if (myGradientTolerance != src.myGradientTolerance)
return false;
256 if (myDebug_menu != src.myDebug_menu)
return false;
257 if (myDebug_coarse_lvl != src.myDebug_coarse_lvl)
return false;
258 if (myDebug_coarse_iteration != src.myDebug_coarse_iteration)
return false;
259 if (myDebug_dense_lvl != src.myDebug_dense_lvl)
return false;
260 if (myDebug_dense_iteration != src.myDebug_dense_iteration)
return false;
261 if (myDebug_hessian_scaling != src.myDebug_hessian_scaling)
return false;
262 if (myDebug_use_marquadt != src.myDebug_use_marquadt)
return false;
263 if (myParameter_tolerance != src.myParameter_tolerance)
return false;
264 if (myUse_tau != src.myUse_tau)
return false;
265 if (myTau != src.myTau)
return false;
266 if (myInitial_damping != src.myInitial_damping)
return false;
267 if (myDebug_save_meshes != src.myDebug_save_meshes)
return false;
268 if (myUseLandmarkLables != src.myUseLandmarkLables)
return false;
269 if (myLandmarkAttribute != src.myLandmarkAttribute)
return false;
270 if (myEnableLandmarks != src.myEnableLandmarks)
return false;
271 if (myNumlandmarkgroups != src.myNumlandmarkgroups)
return false;
272 if (myRigidMask != src.myRigidMask)
return false;
289 myEnableSolve =
true;
291 graph->
evalOpParm(myEnableSolve, nodeidx,
"enablesolve", time, 0);
292 myEnableGeometryConstraints =
false;
294 graph->
evalOpParm(myEnableGeometryConstraints, nodeidx,
"enablegeometryconstraints", time, 0);
295 myConstraintSelection = 0;
296 if (
true && ( (
true&&!(((getEnableGeometryConstraints()==0)))) ) )
297 graph->
evalOpParm(myConstraintSelection, nodeidx,
"constraintselection", time, 0);
298 myConstraintSource =
""_UTsh;
299 if (
true && ( (
true&&!(((
int64(getConstraintSelection())==0)))) ) )
300 graph->
evalOpParm(myConstraintSource, nodeidx,
"constraintsource", time, 0);
303 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, 0);
306 graph->
evalOpParm(myReducedLevels, nodeidx,
"reducedlevels", time, 0);
308 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==1)))) ) )
309 graph->
evalOpParm(myReductionPercentage, nodeidx,
"reductionpercentage", time, 0);
310 myReductionPercentageSingle = 0.1;
311 if (
true && ( (
true&&!(((
int64(getReducedLevels())>1))||((getEnableGeometryConstraints()==1)))) ) )
312 graph->
evalOpParm(myReductionPercentageSingle, nodeidx,
"reductionpercentage_single", time, 0);
313 myInitialReductionPercentage = 0.1;
314 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==0)))) ) )
315 graph->
evalOpParm(myInitialReductionPercentage, nodeidx,
"initialreductionpercentage", time, 0);
318 graph->
evalOpParm(myRigidWeights, nodeidx,
"rigidweights", time, 0);
321 graph->
evalOpParm(myLandmarkWeights, nodeidx,
"landmarkweights", time, 0);
324 graph->
evalOpParm(myMaskMode, nodeidx,
"maskmode", time, 0);
325 myMaskTolerance = 1e-6;
326 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
327 graph->
evalOpParm(myMaskTolerance, nodeidx,
"masktolerance", time, 0);
328 myRigidprimitives =
""_UTsh;
330 graph->
evalOpParm(myRigidprimitives, nodeidx,
"rigidprimitives", time, 0);
331 myDistTolerance = 0.2;
333 graph->
evalOpParm(myDistTolerance, nodeidx,
"disttolerance", time, 0);
334 myNormTolerance = 45;
336 graph->
evalOpParm(myNormTolerance, nodeidx,
"normtolerance", time, 0);
339 graph->
evalOpParm(mySolverType, nodeidx,
"solvertype", time, 0);
340 mySolverIterations = 20;
341 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
342 graph->
evalOpParm(mySolverIterations, nodeidx,
"solveriterations", time, 0);
344 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
345 graph->
evalOpParm(myGradientTolerance, nodeidx,
"gradienttolerance", time, 0);
348 graph->
evalOpParm(myDebug_menu, nodeidx,
"debug_menu", time, 0);
349 myDebug_coarse_lvl = 0;
350 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
351 graph->
evalOpParm(myDebug_coarse_lvl, nodeidx,
"debug_coarse_lvl", time, 0);
352 myDebug_coarse_iteration = 0;
353 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
354 graph->
evalOpParm(myDebug_coarse_iteration, nodeidx,
"debug_coarse_iteration", time, 0);
355 myDebug_dense_lvl = 0;
356 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
357 graph->
evalOpParm(myDebug_dense_lvl, nodeidx,
"debug_dense_lvl", time, 0);
358 myDebug_dense_iteration = 0;
359 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
360 graph->
evalOpParm(myDebug_dense_iteration, nodeidx,
"debug_dense_iteration", time, 0);
361 myDebug_hessian_scaling =
true;
363 graph->
evalOpParm(myDebug_hessian_scaling, nodeidx,
"debug_hessian_scaling", time, 0);
364 myDebug_use_marquadt =
true;
366 graph->
evalOpParm(myDebug_use_marquadt, nodeidx,
"debug_use_marquadt", time, 0);
367 myParameter_tolerance = 0.0001;
369 graph->
evalOpParm(myParameter_tolerance, nodeidx,
"parameter_tolerance", time, 0);
372 graph->
evalOpParm(myUse_tau, nodeidx,
"use_tau", time, 0);
374 if (
true && ( (
true&&!(((getUse_tau()!=1)))) ) )
375 graph->
evalOpParm(myTau, nodeidx,
"tau", time, 0);
376 myInitial_damping = 0.0001;
377 if (
true && ( (
true&&!(((getUse_tau()==1)))) ) )
378 graph->
evalOpParm(myInitial_damping, nodeidx,
"initial_damping", time, 0);
379 myDebug_save_meshes =
false;
381 graph->
evalOpParm(myDebug_save_meshes, nodeidx,
"debug_save_meshes", time, 0);
382 myUseLandmarkLables =
true;
383 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0)))) ) )
384 graph->
evalOpParm(myUseLandmarkLables, nodeidx,
"uselandmarklabels", time, 0);
385 myLandmarkAttribute =
"landmark"_UTsh;
386 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0))||((getUseLandmarkLables()==0)))) ) )
387 graph->
evalOpParm(myLandmarkAttribute, nodeidx,
"landmarkattrib", time, 0);
388 myEnableLandmarks =
true;
389 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1)))) ) )
390 graph->
evalOpParm(myEnableLandmarks, nodeidx,
"enablelandmarks", time, 0);
391 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) )
394 graph->
evalOpParm(length, nodeidx,
"numlandmarkgroups", time, 0);
395 if (length < 0) length = 0;
396 myNumlandmarkgroups.setSize(length);
403 auto && _curentry = myNumlandmarkgroups(i);
405 _curentry.enablegroup =
true;
406 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) )
407 graph->
evalOpParmInst(_curentry.enablegroup, nodeidx,
"enablegroup#", parmidx, offsets, time, 0, 2-1);
409 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0)))) ) )
410 graph->
evalOpParmInst(_curentry.pballcolor, nodeidx,
"pballcolor#", parmidx, offsets, time, 0, 2-1);
411 _curentry.pname =
"group#"_UTsh;
412 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0)))) ) )
413 graph->
evalOpParmInst(_curentry.pname, nodeidx,
"pname#", parmidx, offsets, time, 0, 2-1);
414 _curentry.usesourcepos =
true;
415 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0)))) ) )
416 graph->
evalOpParmInst(_curentry.usesourcepos, nodeidx,
"usesourcepos#", parmidx, offsets, time, 0, 2-1);
417 _curentry.sourcepos =
""_UTsh;
418 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0))||((_curentry.usesourcepos==0)))) ) )
419 graph->
evalOpParmInst(_curentry.sourcepos, nodeidx,
"sourcepos#", parmidx, offsets, time, 0, 2-1);
420 _curentry.usetargetpos =
true;
421 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0)))) ) )
422 graph->
evalOpParmInst(_curentry.usetargetpos, nodeidx,
"usetargetpos#", parmidx, offsets, time, 0, 2-1);
423 _curentry.targetpos =
""_UTsh;
424 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0))||((_curentry.usetargetpos==0)))) ) )
425 graph->
evalOpParmInst(_curentry.targetpos, nodeidx,
"targetpos#", parmidx, offsets, time, 0, 2-1);
426 _curentry.psourcegroup =
""_UTsh;
427 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0))||((_curentry.usesourcepos==1)))) ) )
428 graph->
evalOpParmInst(_curentry.psourcegroup, nodeidx,
"psourcegroup#", parmidx, offsets, time, 0, 2-1);
429 _curentry.ptargetgroup =
""_UTsh;
430 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0))||((_curentry.enablegroup==0))||((_curentry.usetargetpos==1)))) ) )
431 graph->
evalOpParmInst(_curentry.ptargetgroup, nodeidx,
"ptargetgroup#", parmidx, offsets, time, 0, 2-1);
436 myNumlandmarkgroups.clear();
437 myRigidMask =
"rigid_mask"_UTsh;
438 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
439 graph->
evalOpParm(myRigidMask, nodeidx,
"rigidmask", time, 0);
455 template <
typename T>
462 if (idx.
size() != instance.
size()+1)
467 coerceValue(value, myEnableSolve);
470 coerceValue(value, myEnableGeometryConstraints);
473 coerceValue(value, myConstraintSelection);
476 coerceValue(value, myConstraintSource);
479 coerceValue(value, myIterations);
482 coerceValue(value, myReducedLevels);
485 coerceValue(value, myReductionPercentage);
488 coerceValue(value, myReductionPercentageSingle);
491 coerceValue(value, myInitialReductionPercentage);
494 coerceValue(value, myRigidWeights);
497 coerceValue(value, myLandmarkWeights);
500 coerceValue(value, myMaskMode);
503 coerceValue(value, myMaskTolerance);
506 coerceValue(value, myRigidprimitives);
509 coerceValue(value, myDistTolerance);
512 coerceValue(value, myNormTolerance);
515 coerceValue(value, mySolverType);
518 coerceValue(value, mySolverIterations);
521 coerceValue(value, myGradientTolerance);
524 coerceValue(value, myDebug_menu);
527 coerceValue(value, myDebug_coarse_lvl);
530 coerceValue(value, myDebug_coarse_iteration);
533 coerceValue(value, myDebug_dense_lvl);
536 coerceValue(value, myDebug_dense_iteration);
539 coerceValue(value, myDebug_hessian_scaling);
542 coerceValue(value, myDebug_use_marquadt);
545 coerceValue(value, myParameter_tolerance);
548 coerceValue(value, myUse_tau);
551 coerceValue(value, myTau);
554 coerceValue(value, myInitial_damping);
557 coerceValue(value, myDebug_save_meshes);
560 coerceValue(value, myUseLandmarkLables);
563 coerceValue(value, myLandmarkAttribute);
566 coerceValue(value, myEnableLandmarks);
570 coerceValue(value, myNumlandmarkgroups.entries());
571 else if (instance[0] < myNumlandmarkgroups.entries())
573 auto && _data = myNumlandmarkgroups(instance[0]);
577 coerceValue(value, _data.enablegroup);
580 coerceValue(value, _data.pballcolor);
583 coerceValue(value, _data.pname);
586 coerceValue(value, _data.usesourcepos);
589 coerceValue(value, _data.sourcepos);
592 coerceValue(value, _data.usetargetpos);
595 coerceValue(value, _data.targetpos);
598 coerceValue(value, _data.psourcegroup);
601 coerceValue(value, _data.ptargetgroup);
608 coerceValue(value, myRigidMask);
624 { doGetParmValue(idx, instance, value); }
626 { doGetParmValue(idx, instance, value); }
628 { doGetParmValue(idx, instance, value); }
630 { doGetParmValue(idx, instance, value); }
632 { doGetParmValue(idx, instance, value); }
634 { doGetParmValue(idx, instance, value); }
636 { doGetParmValue(idx, instance, value); }
638 { doGetParmValue(idx, instance, value); }
640 { doGetParmValue(idx, instance, value); }
642 { doGetParmValue(idx, instance, value); }
644 { doGetParmValue(idx, instance, value); }
646 template <
typename T>
653 if (idx.
size() != instance.
size()+1)
658 coerceValue(myEnableSolve, ( ( value ) ));
661 coerceValue(myEnableGeometryConstraints, ( ( value ) ));
664 coerceValue(myConstraintSelection, clampMinValue(0, clampMaxValue(1, value ) ));
667 coerceValue(myConstraintSource, ( ( value ) ));
670 coerceValue(myIterations, clampMinValue(1, ( value ) ));
673 coerceValue(myReducedLevels, clampMinValue(1, ( value ) ));
676 coerceValue(myReductionPercentage, clampMinValue(0.05, clampMaxValue(1, value ) ));
679 coerceValue(myReductionPercentageSingle, clampMinValue(0.05, clampMaxValue(1, value ) ));
682 coerceValue(myInitialReductionPercentage, clampMinValue(0.05, clampMaxValue(1, value ) ));
685 coerceValue(myRigidWeights, clampMinValue(0, ( value ) ));
688 coerceValue(myLandmarkWeights, clampMinValue(0, ( value ) ));
691 coerceValue(myMaskMode, clampMinValue(0, clampMaxValue(1, value ) ));
694 coerceValue(myMaskTolerance, clampMinValue(0.0, clampMaxValue(1, value ) ));
697 coerceValue(myRigidprimitives, ( ( value ) ));
700 coerceValue(myDistTolerance, clampMinValue(0.0001, ( value ) ));
703 coerceValue(myNormTolerance, clampMinValue(1, clampMaxValue(180, value ) ));
706 coerceValue(mySolverType, clampMinValue(0, clampMaxValue(1, value ) ));
709 coerceValue(mySolverIterations, clampMinValue(1, ( value ) ));
712 coerceValue(myGradientTolerance, clampMinValue(0.00001, clampMaxValue(1.0, value ) ));
715 coerceValue(myDebug_menu, clampMinValue(0, clampMaxValue(2, value ) ));
718 coerceValue(myDebug_coarse_lvl, ( ( value ) ));
721 coerceValue(myDebug_coarse_iteration, ( ( value ) ));
724 coerceValue(myDebug_dense_lvl, ( ( value ) ));
727 coerceValue(myDebug_dense_iteration, ( ( value ) ));
730 coerceValue(myDebug_hessian_scaling, ( ( value ) ));
733 coerceValue(myDebug_use_marquadt, ( ( value ) ));
736 coerceValue(myParameter_tolerance, ( ( value ) ));
739 coerceValue(myUse_tau, ( ( value ) ));
742 coerceValue(myTau, ( ( value ) ));
745 coerceValue(myInitial_damping, ( ( value ) ));
748 coerceValue(myDebug_save_meshes, ( ( value ) ));
751 coerceValue(myUseLandmarkLables, ( ( value ) ));
754 coerceValue(myLandmarkAttribute, ( ( value ) ));
757 coerceValue(myEnableLandmarks, ( ( value ) ));
763 coerceValue(newsize, value);
764 if (newsize < 0) newsize = 0;
765 myNumlandmarkgroups.setSize(newsize);
771 myNumlandmarkgroups.setSizeIfNeeded(instance[0]+1);
772 auto && _data = myNumlandmarkgroups(instance[0]);
776 coerceValue(_data.enablegroup, value);
779 coerceValue(_data.pballcolor, value);
782 coerceValue(_data.pname, value);
785 coerceValue(_data.usesourcepos, value);
788 coerceValue(_data.sourcepos, value);
791 coerceValue(_data.usetargetpos, value);
794 coerceValue(_data.targetpos, value);
797 coerceValue(_data.psourcegroup, value);
800 coerceValue(_data.ptargetgroup, value);
807 coerceValue(myRigidMask, ( ( value ) ));
814 { doSetParmValue(idx, instance, value); }
816 { doSetParmValue(idx, instance, value); }
818 { doSetParmValue(idx, instance, value); }
820 { doSetParmValue(idx, instance, value); }
822 { doSetParmValue(idx, instance, value); }
824 { doSetParmValue(idx, instance, value); }
826 { doSetParmValue(idx, instance, value); }
828 { doSetParmValue(idx, instance, value); }
830 { doSetParmValue(idx, instance, value); }
832 { doSetParmValue(idx, instance, value); }
834 { doSetParmValue(idx, instance, value); }
852 if (fieldnum.
size() < 1)
857 return "enablesolve";
859 return "enablegeometryconstraints";
861 return "constraintselection";
863 return "constraintsource";
867 return "reducedlevels";
869 return "reductionpercentage";
871 return "reductionpercentage_single";
873 return "initialreductionpercentage";
875 return "rigidweights";
877 return "landmarkweights";
881 return "masktolerance";
883 return "rigidprimitives";
885 return "disttolerance";
887 return "normtolerance";
891 return "solveriterations";
893 return "gradienttolerance";
897 return "debug_coarse_lvl";
899 return "debug_coarse_iteration";
901 return "debug_dense_lvl";
903 return "debug_dense_iteration";
905 return "debug_hessian_scaling";
907 return "debug_use_marquadt";
909 return "parameter_tolerance";
915 return "initial_damping";
917 return "debug_save_meshes";
919 return "uselandmarklabels";
921 return "landmarkattrib";
923 return "enablelandmarks";
925 if (fieldnum.
size() == 1)
926 return "numlandmarkgroups";
930 return "enablegroup#";
932 return "pballcolor#";
936 return "usesourcepos#";
940 return "usetargetpos#";
944 return "psourcegroup#";
946 return "ptargetgroup#";
959 if (fieldnum.
size() < 1)
960 return PARM_UNSUPPORTED;
1000 return PARM_VECTOR2;
1002 return PARM_INTEGER;
1004 return PARM_INTEGER;
1006 return PARM_INTEGER;
1008 return PARM_INTEGER;
1010 return PARM_INTEGER;
1012 return PARM_INTEGER;
1014 return PARM_INTEGER;
1018 return PARM_INTEGER;
1024 return PARM_INTEGER;
1026 return PARM_INTEGER;
1030 return PARM_INTEGER;
1032 if (fieldnum.
size() == 1)
1033 return PARM_MULTIPARM;
1034 switch (fieldnum[1])
1037 return PARM_INTEGER;
1039 return PARM_VECTOR3;
1043 return PARM_INTEGER;
1047 return PARM_INTEGER;
1056 return PARM_UNSUPPORTED;
1061 return PARM_UNSUPPORTED;
1066 { is.
bread(&v, 1); }
1097 loadData(is, rampdata);
1115 int typelen = colon - data.
buffer();
1127 { UTwrite(os, &v); }
1129 {
int64 iv =
v; UTwrite(os, &iv); }
1131 { UTwrite<fpreal64>(os, &
v); }
1133 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1135 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1136 UTwrite<fpreal64>(os, &v.
z()); }
1138 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1139 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1151 if (s) s->save(ostr);
1152 result = ostr.
str();
1153 saveData(os, result);
1160 ostr << s->getDataTypeToken();
1162 s->saveBinary(ostr);
1164 result = ostr.
str();
1165 saveData(os, result);
1173 saveData(os, myEnableSolve);
1174 saveData(os, myEnableGeometryConstraints);
1175 saveData(os, myConstraintSelection);
1176 saveData(os, myConstraintSource);
1177 saveData(os, myIterations);
1178 saveData(os, myReducedLevels);
1179 saveData(os, myReductionPercentage);
1180 saveData(os, myReductionPercentageSingle);
1181 saveData(os, myInitialReductionPercentage);
1182 saveData(os, myRigidWeights);
1183 saveData(os, myLandmarkWeights);
1184 saveData(os, myMaskMode);
1185 saveData(os, myMaskTolerance);
1186 saveData(os, myRigidprimitives);
1187 saveData(os, myDistTolerance);
1188 saveData(os, myNormTolerance);
1189 saveData(os, mySolverType);
1190 saveData(os, mySolverIterations);
1191 saveData(os, myGradientTolerance);
1192 saveData(os, myDebug_menu);
1193 saveData(os, myDebug_coarse_lvl);
1194 saveData(os, myDebug_coarse_iteration);
1195 saveData(os, myDebug_dense_lvl);
1196 saveData(os, myDebug_dense_iteration);
1197 saveData(os, myDebug_hessian_scaling);
1198 saveData(os, myDebug_use_marquadt);
1199 saveData(os, myParameter_tolerance);
1200 saveData(os, myUse_tau);
1201 saveData(os, myTau);
1202 saveData(os, myInitial_damping);
1203 saveData(os, myDebug_save_meshes);
1204 saveData(os, myUseLandmarkLables);
1205 saveData(os, myLandmarkAttribute);
1206 saveData(os, myEnableLandmarks);
1209 UTwrite(os, &length);
1212 auto && _curentry = myNumlandmarkgroups(i);
1214 saveData(os, _curentry.enablegroup);
1215 saveData(os, _curentry.pballcolor);
1216 saveData(os, _curentry.pname);
1217 saveData(os, _curentry.usesourcepos);
1218 saveData(os, _curentry.sourcepos);
1219 saveData(os, _curentry.usetargetpos);
1220 saveData(os, _curentry.targetpos);
1221 saveData(os, _curentry.psourcegroup);
1222 saveData(os, _curentry.ptargetgroup);
1226 saveData(os, myRigidMask);
1239 loadData(is, myEnableSolve);
1240 loadData(is, myEnableGeometryConstraints);
1241 loadData(is, myConstraintSelection);
1242 loadData(is, myConstraintSource);
1243 loadData(is, myIterations);
1244 loadData(is, myReducedLevels);
1245 loadData(is, myReductionPercentage);
1246 loadData(is, myReductionPercentageSingle);
1247 loadData(is, myInitialReductionPercentage);
1248 loadData(is, myRigidWeights);
1249 loadData(is, myLandmarkWeights);
1250 loadData(is, myMaskMode);
1251 loadData(is, myMaskTolerance);
1252 loadData(is, myRigidprimitives);
1253 loadData(is, myDistTolerance);
1254 loadData(is, myNormTolerance);
1255 loadData(is, mySolverType);
1256 loadData(is, mySolverIterations);
1257 loadData(is, myGradientTolerance);
1258 loadData(is, myDebug_menu);
1259 loadData(is, myDebug_coarse_lvl);
1260 loadData(is, myDebug_coarse_iteration);
1261 loadData(is, myDebug_dense_lvl);
1262 loadData(is, myDebug_dense_iteration);
1263 loadData(is, myDebug_hessian_scaling);
1264 loadData(is, myDebug_use_marquadt);
1265 loadData(is, myParameter_tolerance);
1266 loadData(is, myUse_tau);
1267 loadData(is, myTau);
1268 loadData(is, myInitial_damping);
1269 loadData(is, myDebug_save_meshes);
1270 loadData(is, myUseLandmarkLables);
1271 loadData(is, myLandmarkAttribute);
1272 loadData(is, myEnableLandmarks);
1275 is.
read(&length, 1);
1276 myNumlandmarkgroups.setSize(length);
1279 auto && _curentry = myNumlandmarkgroups(i);
1281 loadData(is, _curentry.enablegroup);
1282 loadData(is, _curentry.pballcolor);
1283 loadData(is, _curentry.pname);
1284 loadData(is, _curentry.usesourcepos);
1285 loadData(is, _curentry.sourcepos);
1286 loadData(is, _curentry.usetargetpos);
1287 loadData(is, _curentry.targetpos);
1288 loadData(is, _curentry.psourcegroup);
1289 loadData(is, _curentry.ptargetgroup);
1293 loadData(is, myRigidMask);
1303 if (!thissop)
return getEnableSolve();
1305 OP_Utils::evalOpParm(result, thissop,
"enablesolve", cookparms.
getCookTime(), 0);
1313 if (!thissop)
return getEnableGeometryConstraints();
1315 OP_Utils::evalOpParm(result, thissop,
"enablegeometryconstraints", cookparms.
getCookTime(), 0);
1323 if (!thissop)
return getConstraintSelection();
1325 OP_Utils::evalOpParm(result, thissop,
"constraintselection", cookparms.
getCookTime(), 0);
1333 if (!thissop)
return getConstraintSource();
1335 OP_Utils::evalOpParm(result, thissop,
"constraintsource", cookparms.
getCookTime(), 0);
1343 if (!thissop)
return getIterations();
1345 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1353 if (!thissop)
return getReducedLevels();
1355 OP_Utils::evalOpParm(result, thissop,
"reducedlevels", cookparms.
getCookTime(), 0);
1363 if (!thissop)
return getReductionPercentage();
1365 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage", cookparms.
getCookTime(), 0);
1373 if (!thissop)
return getReductionPercentageSingle();
1375 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage_single", cookparms.
getCookTime(), 0);
1383 if (!thissop)
return getInitialReductionPercentage();
1385 OP_Utils::evalOpParm(result, thissop,
"initialreductionpercentage", cookparms.
getCookTime(), 0);
1393 if (!thissop)
return getRigidWeights();
1395 OP_Utils::evalOpParm(result, thissop,
"rigidweights", cookparms.
getCookTime(), 0);
1403 if (!thissop)
return getLandmarkWeights();
1405 OP_Utils::evalOpParm(result, thissop,
"landmarkweights", cookparms.
getCookTime(), 0);
1413 if (!thissop)
return getMaskMode();
1415 OP_Utils::evalOpParm(result, thissop,
"maskmode", cookparms.
getCookTime(), 0);
1423 if (!thissop)
return getMaskTolerance();
1425 OP_Utils::evalOpParm(result, thissop,
"masktolerance", cookparms.
getCookTime(), 0);
1433 if (!thissop)
return getRigidprimitives();
1435 OP_Utils::evalOpParm(result, thissop,
"rigidprimitives", cookparms.
getCookTime(), 0);
1443 if (!thissop)
return getDistTolerance();
1445 OP_Utils::evalOpParm(result, thissop,
"disttolerance", cookparms.
getCookTime(), 0);
1453 if (!thissop)
return getNormTolerance();
1455 OP_Utils::evalOpParm(result, thissop,
"normtolerance", cookparms.
getCookTime(), 0);
1463 if (!thissop)
return getSolverType();
1465 OP_Utils::evalOpParm(result, thissop,
"solvertype", cookparms.
getCookTime(), 0);
1473 if (!thissop)
return getSolverIterations();
1475 OP_Utils::evalOpParm(result, thissop,
"solveriterations", cookparms.
getCookTime(), 0);
1483 if (!thissop)
return getGradientTolerance();
1485 OP_Utils::evalOpParm(result, thissop,
"gradienttolerance", cookparms.
getCookTime(), 0);
1493 if (!thissop)
return getDebug_menu();
1495 OP_Utils::evalOpParm(result, thissop,
"debug_menu", cookparms.
getCookTime(), 0);
1503 if (!thissop)
return getDebug_coarse_lvl();
1505 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_lvl", cookparms.
getCookTime(), 0);
1513 if (!thissop)
return getDebug_coarse_iteration();
1515 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_iteration", cookparms.
getCookTime(), 0);
1523 if (!thissop)
return getDebug_dense_lvl();
1525 OP_Utils::evalOpParm(result, thissop,
"debug_dense_lvl", cookparms.
getCookTime(), 0);
1533 if (!thissop)
return getDebug_dense_iteration();
1535 OP_Utils::evalOpParm(result, thissop,
"debug_dense_iteration", cookparms.
getCookTime(), 0);
1543 if (!thissop)
return getDebug_hessian_scaling();
1545 OP_Utils::evalOpParm(result, thissop,
"debug_hessian_scaling", cookparms.
getCookTime(), 0);
1553 if (!thissop)
return getDebug_use_marquadt();
1555 OP_Utils::evalOpParm(result, thissop,
"debug_use_marquadt", cookparms.
getCookTime(), 0);
1563 if (!thissop)
return getParameter_tolerance();
1565 OP_Utils::evalOpParm(result, thissop,
"parameter_tolerance", cookparms.
getCookTime(), 0);
1573 if (!thissop)
return getUse_tau();
1575 OP_Utils::evalOpParm(result, thissop,
"use_tau", cookparms.
getCookTime(), 0);
1583 if (!thissop)
return getTau();
1585 OP_Utils::evalOpParm(result, thissop,
"tau", cookparms.
getCookTime(), 0);
1593 if (!thissop)
return getInitial_damping();
1595 OP_Utils::evalOpParm(result, thissop,
"initial_damping", cookparms.
getCookTime(), 0);
1603 if (!thissop)
return getDebug_save_meshes();
1605 OP_Utils::evalOpParm(result, thissop,
"debug_save_meshes", cookparms.
getCookTime(), 0);
1613 if (!thissop)
return getUseLandmarkLables();
1615 OP_Utils::evalOpParm(result, thissop,
"uselandmarklabels", cookparms.
getCookTime(), 0);
1623 if (!thissop)
return getLandmarkAttribute();
1625 OP_Utils::evalOpParm(result, thissop,
"landmarkattrib", cookparms.
getCookTime(), 0);
1633 if (!thissop)
return getEnableLandmarks();
1635 OP_Utils::evalOpParm(result, thissop,
"enablelandmarks", cookparms.
getCookTime(), 0);
1643 if (!thissop)
return getNumlandmarkgroups().entries();
1645 OP_Utils::evalOpParm(result, thissop,
"numlandmarkgroups", cookparms.
getCookTime(), 0);
1649 {
return opinstNumlandmarkgroups_enablegroup(cookparms, &_idx); }
1653 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).enablegroup);
1655 _parmidx[1-1] = _idx[1-1] + 1;
1658 OP_Utils::evalOpParmInst(result, thissop,
"enablegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1662 {
return opinstNumlandmarkgroups_pballcolor(cookparms, &_idx); }
1666 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).pballcolor);
1668 _parmidx[1-1] = _idx[1-1] + 1;
1671 OP_Utils::evalOpParmInst(result, thissop,
"pballcolor#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1675 {
return opinstNumlandmarkgroups_pname(cookparms, &_idx); }
1679 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).
pname);
1681 _parmidx[1-1] = _idx[1-1] + 1;
1684 OP_Utils::evalOpParmInst(result, thissop,
"pname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1688 {
return opinstNumlandmarkgroups_usesourcepos(cookparms, &_idx); }
1692 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usesourcepos);
1694 _parmidx[1-1] = _idx[1-1] + 1;
1697 OP_Utils::evalOpParmInst(result, thissop,
"usesourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1701 {
return opinstNumlandmarkgroups_sourcepos(cookparms, &_idx); }
1705 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).sourcepos);
1707 _parmidx[1-1] = _idx[1-1] + 1;
1710 OP_Utils::evalOpParmInst(result, thissop,
"sourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1714 {
return opinstNumlandmarkgroups_usetargetpos(cookparms, &_idx); }
1718 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usetargetpos);
1720 _parmidx[1-1] = _idx[1-1] + 1;
1723 OP_Utils::evalOpParmInst(result, thissop,
"usetargetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1727 {
return opinstNumlandmarkgroups_targetpos(cookparms, &_idx); }
1731 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).targetpos);
1733 _parmidx[1-1] = _idx[1-1] + 1;
1736 OP_Utils::evalOpParmInst(result, thissop,
"targetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1740 {
return opinstNumlandmarkgroups_psourcegroup(cookparms, &_idx); }
1744 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).psourcegroup);
1746 _parmidx[1-1] = _idx[1-1] + 1;
1749 OP_Utils::evalOpParmInst(result, thissop,
"psourcegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1753 {
return opinstNumlandmarkgroups_ptargetgroup(cookparms, &_idx); }
1757 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).ptargetgroup);
1759 _parmidx[1-1] = _idx[1-1] + 1;
1762 OP_Utils::evalOpParmInst(result, thissop,
"ptargetgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1771 if (!thissop)
return getRigidMask();
1773 OP_Utils::evalOpParm(result, thissop,
"rigidmask", cookparms.
getCookTime(), 0);
1779 bool myEnableGeometryConstraints;
1780 int64 myConstraintSelection;
1783 int64 myReducedLevels;
1785 fpreal64 myReductionPercentageSingle;
1786 fpreal64 myInitialReductionPercentage;
1795 int64 mySolverIterations;
1798 int64 myDebug_coarse_lvl;
1799 int64 myDebug_coarse_iteration;
1800 int64 myDebug_dense_lvl;
1801 int64 myDebug_dense_iteration;
1802 bool myDebug_hessian_scaling;
1803 bool myDebug_use_marquadt;
1808 bool myDebug_save_meshes;
1809 bool myUseLandmarkLables;
1811 bool myEnableLandmarks;
void setDistTolerance(fpreal64 val)
bool opNumlandmarkgroups_usetargetpos(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, bool v)
bool getDebug_hessian_scaling() const
GLenum GLuint GLenum GLsizei const GLchar * buf
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setLandmarkAttribute(const UT_StringHolder &val)
static void saveData(std::ostream &os, int64 v)
const char * getNestParmName(TempIndex fieldnum) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setUseLandmarkLables(bool val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setMaskMode(MaskMode val)
MaskMode opMaskMode(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNumlandmarkgroups_ptargetgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opinstNumlandmarkgroups_targetpos(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool isParmColorRamp(exint idx) const override
fpreal64 opMaskTolerance(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D getRigidWeights() const
const UT_StringHolder & getRigidMask() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
exint bread(int32 *buffer, exint asize=1)
SolverType getSolverType() const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
UT_Vector2T< fpreal64 > UT_Vector2D
fpreal64 getParameter_tolerance() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void loadFromOpSubclass(const LoadParms &loadparms) override
void setDebug_dense_iteration(int64 val)
bool opinstNumlandmarkgroups_enablegroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
UT_StringHolder opNumlandmarkgroups_psourcegroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
bool operator!=(const SOP_TopoTransferParms &src) const
SYS_FORCE_INLINE const char * buffer() const
fpreal64 opNormTolerance(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLsizei GLsizei * length
UT_Vector2D getLandmarkWeights() const
bool opinstNumlandmarkgroups_usesourcepos(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getUseLandmarkLables() const
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
bool opDebug_hessian_scaling(const SOP_NodeVerb::CookParms &cookparms) const
int64 getSolverIterations() const
fpreal64 getInitialReductionPercentage() const
void setDebug_use_marquadt(bool val)
**But if you need a result
void setSolverType(SolverType val)
int64 opIterations(const SOP_NodeVerb::CookParms &cookparms) const
void setSolverIterations(int64 val)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, UT_Vector4D v)
fpreal64 opInitial_damping(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
UT_StringHolder opRigidprimitives(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opLandmarkAttribute(const SOP_NodeVerb::CookParms &cookparms) const
void setConstraintSource(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_StringHolder s)
UT_StringHolder ptargetgroup
virtual NodeIdx getInput(NodeIdx idx, int input, bool markused=false) const =0
constexpr SYS_FORCE_INLINE T & x() noexcept
UT_StringHolder targetpos
void setDebug_dense_lvl(int64 val)
Debug_menu opDebug_menu(const SOP_NodeVerb::CookParms &cookparms) const
void setReducedLevels(int64 val)
fpreal64 getReductionPercentageSingle() const
UT_StringHolder opNumlandmarkgroups_sourcepos(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opNumlandmarkgroups_enablegroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
UT_StringHolder opConstraintSource(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_TopoTransferParms &src) const
bool getDebug_use_marquadt() const
int64 getDebug_dense_lvl() const
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opDebug_save_meshes(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setEnableSolve(bool val)
const UT_StringHolder & getRigidprimitives() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
fpreal64 opDistTolerance(const SOP_NodeVerb::CookParms &cookparms) const
void setRigidMask(const UT_StringHolder &val)
void setReductionPercentage(UT_Vector2D val)
bool opDebug_use_marquadt(const SOP_NodeVerb::CookParms &cookparms) const
void setDebug_save_meshes(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_Vector2D getReductionPercentage() const
UT_Vector3D opinstNumlandmarkgroups_pballcolor(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
fpreal64 opParameter_tolerance(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getConstraintSource() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
fpreal64 getNormTolerance() const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
constexpr SYS_FORCE_INLINE T & z() noexcept
bool load(UT_IStream &is)
int64 opDebug_dense_iteration(const SOP_NodeVerb::CookParms &cookparms) const
int64 getDebug_coarse_lvl() const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool opNumlandmarkgroups_usesourcepos(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_Vector2D opRigidWeights(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opGradientTolerance(const SOP_NodeVerb::CookParms &cookparms) const
void setTau(fpreal64 val)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
int64 opDebug_dense_lvl(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
UT_StringHolder psourcegroup
bool opinstNumlandmarkgroups_usetargetpos(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
Debug_menu getDebug_menu() const
fpreal64 getInitial_damping() const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
fpreal64 opReductionPercentageSingle(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
fpreal64 getMaskTolerance() const
int64 opSolverIterations(const SOP_NodeVerb::CookParms &cookparms) const
bool getEnableSolve() const
UT_Vector3T< fpreal64 > UT_Vector3D
static void loadData(UT_IStream &is, UT_Vector2I &v)
const UT_Array< Numlandmarkgroups > & getNumlandmarkgroups() const
int64 opDebug_coarse_iteration(const SOP_NodeVerb::CookParms &cookparms) const
int64 opDebug_coarse_lvl(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
bool operator!=(const Numlandmarkgroups &src) const
UT_StringHolder createString(const UT_Array< Numlandmarkgroups > &list) const
void setIterations(int64 val)
void setConstraintSelection(ConstraintSelection val)
SolverType opSolverType(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opRigidMask(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opinstNumlandmarkgroups_sourcepos(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setLandmarkWeights(UT_Vector2D val)
ConstraintSelection getConstraintSelection() const
void setEnableLandmarks(bool val)
MaskMode getMaskMode() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool opEnableSolve(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
int64 getIterations() const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
static void loadData(UT_IStream &is, bool &v)
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Vector3I &v)
void save(std::ostream &os) const
ConstraintSelection opConstraintSelection(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
exint entries() const
Alias of size(). size() is preferred.
UT_Vector2D getGradientTolerance() const
void setInitial_damping(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
UT_Vector3D opNumlandmarkgroups_pballcolor(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_Vector2D opLandmarkWeights(const SOP_NodeVerb::CookParms &cookparms) const
void setReductionPercentageSingle(fpreal64 val)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
fpreal64 opInitialReductionPercentage(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
DEP_MicroNode * depnode() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setDebug_coarse_iteration(int64 val)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
UT_StringHolder opinstNumlandmarkgroups_psourcegroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNormTolerance(fpreal64 val)
exint getNestNumParms(TempIndex idx) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opEnableLandmarks(const SOP_NodeVerb::CookParms &cookparms) const
void setDebug_coarse_lvl(int64 val)
bool getEnableGeometryConstraints() const
void setGradientTolerance(UT_Vector2D val)
int64 getDebug_dense_iteration() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
fpreal getCookTime() const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setParameter_tolerance(fpreal64 val)
int64 getReducedLevels() const
UT_Vector2D opReductionPercentage(const SOP_NodeVerb::CookParms &cookparms) const
void setEnableGeometryConstraints(bool val)
void setUse_tau(bool val)
UT_StringHolder sourcepos
bool operator==(const Numlandmarkgroups &src) const
const char * findChar(int c) const
exint opNumlandmarkgroups(const SOP_NodeVerb::CookParms &cookparms) const
bool getEnableLandmarks() const
bool opEnableGeometryConstraints(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getLandmarkAttribute() const
void setInitialReductionPercentage(fpreal64 val)
bool opUseLandmarkLables(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void saveData(std::ostream &os, UT_Vector2D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
void setMaskTolerance(fpreal64 val)
void setRigidprimitives(const UT_StringHolder &val)
fpreal64 opTau(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNumlandmarkgroups_targetpos(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setDebug_menu(Debug_menu val)
UT_StringHolder opinstNumlandmarkgroups_pname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
int64 opReducedLevels(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool opUse_tau(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNumlandmarkgroups_pname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & y() noexcept
void setNumlandmarkgroups(const UT_Array< Numlandmarkgroups > &val)
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Vector3D v)
void setDebug_hessian_scaling(bool val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
UT_StringHolder opinstNumlandmarkgroups_ptargetgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE UT_StringHolder getToken(ConstraintSelection enum_value)
bool getDebug_save_meshes() const
fpreal64 getDistTolerance() const
static void saveData(std::ostream &os, fpreal64 v)
constexpr SYS_FORCE_INLINE T & x() noexcept
int64 getDebug_coarse_iteration() const
void setRigidWeights(UT_Vector2D val)