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;
292 myEnableSolve =
true;
294 graph->
evalOpParm(myEnableSolve, nodeidx,
"enablesolve", time, graph->
isDirect()?
nullptr:depnode);
295 myEnableGeometryConstraints =
false;
297 graph->
evalOpParm(myEnableGeometryConstraints, nodeidx,
"enablegeometryconstraints", time, graph->
isDirect()?
nullptr:depnode);
298 myConstraintSelection = 0;
299 if (
true && ( (
true&&!(((getEnableGeometryConstraints()==0)))) ) )
300 graph->
evalOpParm(myConstraintSelection, nodeidx,
"constraintselection", time, graph->
isDirect()?
nullptr:depnode);
301 myConstraintSource =
""_UTsh;
302 if (
true && ( (
true&&!(((
int64(getConstraintSelection())==0)))) ) )
303 graph->
evalOpParm(myConstraintSource, nodeidx,
"constraintsource", time, graph->
isDirect()?
nullptr:depnode);
306 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, graph->
isDirect()?
nullptr:depnode);
309 graph->
evalOpParm(myReducedLevels, nodeidx,
"reducedlevels", time, graph->
isDirect()?
nullptr:depnode);
311 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==1)))) ) )
312 graph->
evalOpParm(myReductionPercentage, nodeidx,
"reductionpercentage", time, graph->
isDirect()?
nullptr:depnode);
313 myReductionPercentageSingle = 0.1;
314 if (
true && ( (
true&&!(((
int64(getReducedLevels())>1))||((getEnableGeometryConstraints()==1)))) ) )
315 graph->
evalOpParm(myReductionPercentageSingle, nodeidx,
"reductionpercentage_single", time, graph->
isDirect()?
nullptr:depnode);
316 myInitialReductionPercentage = 0.1;
317 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==0)))) ) )
318 graph->
evalOpParm(myInitialReductionPercentage, nodeidx,
"initialreductionpercentage", time, graph->
isDirect()?
nullptr:depnode);
321 graph->
evalOpParm(myRigidWeights, nodeidx,
"rigidweights", time, graph->
isDirect()?
nullptr:depnode);
324 graph->
evalOpParm(myLandmarkWeights, nodeidx,
"landmarkweights", time, graph->
isDirect()?
nullptr:depnode);
327 graph->
evalOpParm(myMaskMode, nodeidx,
"maskmode", time, graph->
isDirect()?
nullptr:depnode);
328 myMaskTolerance = 1e-6;
329 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
330 graph->
evalOpParm(myMaskTolerance, nodeidx,
"masktolerance", time, graph->
isDirect()?
nullptr:depnode);
331 myRigidprimitives =
""_UTsh;
333 graph->
evalOpParm(myRigidprimitives, nodeidx,
"rigidprimitives", time, graph->
isDirect()?
nullptr:depnode);
334 myDistTolerance = 0.2;
336 graph->
evalOpParm(myDistTolerance, nodeidx,
"disttolerance", time, graph->
isDirect()?
nullptr:depnode);
337 myNormTolerance = 45;
339 graph->
evalOpParm(myNormTolerance, nodeidx,
"normtolerance", time, graph->
isDirect()?
nullptr:depnode);
342 graph->
evalOpParm(mySolverType, nodeidx,
"solvertype", time, graph->
isDirect()?
nullptr:depnode);
343 mySolverIterations = 20;
344 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
345 graph->
evalOpParm(mySolverIterations, nodeidx,
"solveriterations", time, graph->
isDirect()?
nullptr:depnode);
347 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
348 graph->
evalOpParm(myGradientTolerance, nodeidx,
"gradienttolerance", time, graph->
isDirect()?
nullptr:depnode);
351 graph->
evalOpParm(myDebug_menu, nodeidx,
"debug_menu", time, graph->
isDirect()?
nullptr:depnode);
352 myDebug_coarse_lvl = 0;
353 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
354 graph->
evalOpParm(myDebug_coarse_lvl, nodeidx,
"debug_coarse_lvl", time, graph->
isDirect()?
nullptr:depnode);
355 myDebug_coarse_iteration = 0;
356 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
357 graph->
evalOpParm(myDebug_coarse_iteration, nodeidx,
"debug_coarse_iteration", time, graph->
isDirect()?
nullptr:depnode);
358 myDebug_dense_lvl = 0;
359 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
360 graph->
evalOpParm(myDebug_dense_lvl, nodeidx,
"debug_dense_lvl", time, graph->
isDirect()?
nullptr:depnode);
361 myDebug_dense_iteration = 0;
362 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
363 graph->
evalOpParm(myDebug_dense_iteration, nodeidx,
"debug_dense_iteration", time, graph->
isDirect()?
nullptr:depnode);
364 myDebug_hessian_scaling =
true;
366 graph->
evalOpParm(myDebug_hessian_scaling, nodeidx,
"debug_hessian_scaling", time, graph->
isDirect()?
nullptr:depnode);
367 myDebug_use_marquadt =
true;
369 graph->
evalOpParm(myDebug_use_marquadt, nodeidx,
"debug_use_marquadt", time, graph->
isDirect()?
nullptr:depnode);
370 myParameter_tolerance = 0.0001;
372 graph->
evalOpParm(myParameter_tolerance, nodeidx,
"parameter_tolerance", time, graph->
isDirect()?
nullptr:depnode);
375 graph->
evalOpParm(myUse_tau, nodeidx,
"use_tau", time, graph->
isDirect()?
nullptr:depnode);
377 if (
true && ( (
true&&!(((getUse_tau()!=1)))) ) )
379 myInitial_damping = 0.0001;
380 if (
true && ( (
true&&!(((getUse_tau()==1)))) ) )
381 graph->
evalOpParm(myInitial_damping, nodeidx,
"initial_damping", time, graph->
isDirect()?
nullptr:depnode);
382 myDebug_save_meshes =
false;
384 graph->
evalOpParm(myDebug_save_meshes, nodeidx,
"debug_save_meshes", time, graph->
isDirect()?
nullptr:depnode);
385 myUseLandmarkLables =
true;
386 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0)))) ) )
387 graph->
evalOpParm(myUseLandmarkLables, nodeidx,
"uselandmarklabels", time, graph->
isDirect()?
nullptr:depnode);
388 myLandmarkAttribute =
"landmark"_UTsh;
389 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0))||((getUseLandmarkLables()==0)))) ) )
390 graph->
evalOpParm(myLandmarkAttribute, nodeidx,
"landmarkattrib", time, graph->
isDirect()?
nullptr:depnode);
391 myEnableLandmarks =
true;
392 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1)))) ) )
393 graph->
evalOpParm(myEnableLandmarks, nodeidx,
"enablelandmarks", time, graph->
isDirect()?
nullptr:depnode);
394 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) )
397 graph->
evalOpParm(length, nodeidx,
"numlandmarkgroups", time, graph->
isDirect()?
nullptr:depnode);
398 if (length < 0) length = 0;
399 myNumlandmarkgroups.setSize(length);
406 auto && _curentry = myNumlandmarkgroups(i);
408 _curentry.enablegroup =
true;
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)))) ) )
410 graph->
evalOpParmInst(_curentry.enablegroup, nodeidx,
"enablegroup#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
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.pballcolor, nodeidx,
"pballcolor#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
414 _curentry.pname =
"group#"_UTsh;
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.pname, nodeidx,
"pname#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
417 _curentry.usesourcepos =
true;
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)))) ) )
419 graph->
evalOpParmInst(_curentry.usesourcepos, nodeidx,
"usesourcepos#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
420 _curentry.sourcepos =
""_UTsh;
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))||((_curentry.usesourcepos==0)))) ) )
422 graph->
evalOpParmInst(_curentry.sourcepos, nodeidx,
"sourcepos#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
423 _curentry.usetargetpos =
true;
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)))) ) )
425 graph->
evalOpParmInst(_curentry.usetargetpos, nodeidx,
"usetargetpos#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
426 _curentry.targetpos =
""_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.usetargetpos==0)))) ) )
428 graph->
evalOpParmInst(_curentry.targetpos, nodeidx,
"targetpos#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
429 _curentry.psourcegroup =
""_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.usesourcepos==1)))) ) )
431 graph->
evalOpParmInst(_curentry.psourcegroup, nodeidx,
"psourcegroup#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
432 _curentry.ptargetgroup =
""_UTsh;
433 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)))) ) )
434 graph->
evalOpParmInst(_curentry.ptargetgroup, nodeidx,
"ptargetgroup#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
439 myNumlandmarkgroups.clear();
440 myRigidMask =
"rigid_mask"_UTsh;
441 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
442 graph->
evalOpParm(myRigidMask, nodeidx,
"rigidmask", time, graph->
isDirect()?
nullptr:depnode);
458 template <
typename T>
465 if (idx.
size() != instance.
size()+1)
470 coerceValue(value, myEnableSolve);
473 coerceValue(value, myEnableGeometryConstraints);
476 coerceValue(value, myConstraintSelection);
479 coerceValue(value, myConstraintSource);
482 coerceValue(value, myIterations);
485 coerceValue(value, myReducedLevels);
488 coerceValue(value, myReductionPercentage);
491 coerceValue(value, myReductionPercentageSingle);
494 coerceValue(value, myInitialReductionPercentage);
497 coerceValue(value, myRigidWeights);
500 coerceValue(value, myLandmarkWeights);
503 coerceValue(value, myMaskMode);
506 coerceValue(value, myMaskTolerance);
509 coerceValue(value, myRigidprimitives);
512 coerceValue(value, myDistTolerance);
515 coerceValue(value, myNormTolerance);
518 coerceValue(value, mySolverType);
521 coerceValue(value, mySolverIterations);
524 coerceValue(value, myGradientTolerance);
527 coerceValue(value, myDebug_menu);
530 coerceValue(value, myDebug_coarse_lvl);
533 coerceValue(value, myDebug_coarse_iteration);
536 coerceValue(value, myDebug_dense_lvl);
539 coerceValue(value, myDebug_dense_iteration);
542 coerceValue(value, myDebug_hessian_scaling);
545 coerceValue(value, myDebug_use_marquadt);
548 coerceValue(value, myParameter_tolerance);
551 coerceValue(value, myUse_tau);
554 coerceValue(value, myTau);
557 coerceValue(value, myInitial_damping);
560 coerceValue(value, myDebug_save_meshes);
563 coerceValue(value, myUseLandmarkLables);
566 coerceValue(value, myLandmarkAttribute);
569 coerceValue(value, myEnableLandmarks);
573 coerceValue(value, myNumlandmarkgroups.entries());
574 else if (instance[0] < myNumlandmarkgroups.entries())
576 auto && _data = myNumlandmarkgroups(instance[0]);
580 coerceValue(value, _data.enablegroup);
583 coerceValue(value, _data.pballcolor);
586 coerceValue(value, _data.pname);
589 coerceValue(value, _data.usesourcepos);
592 coerceValue(value, _data.sourcepos);
595 coerceValue(value, _data.usetargetpos);
598 coerceValue(value, _data.targetpos);
601 coerceValue(value, _data.psourcegroup);
604 coerceValue(value, _data.ptargetgroup);
611 coerceValue(value, myRigidMask);
627 { doGetParmValue(idx, instance, value); }
629 { doGetParmValue(idx, instance, value); }
631 { doGetParmValue(idx, instance, value); }
633 { doGetParmValue(idx, instance, value); }
635 { doGetParmValue(idx, instance, value); }
637 { doGetParmValue(idx, instance, value); }
639 { doGetParmValue(idx, instance, value); }
641 { doGetParmValue(idx, instance, value); }
643 { doGetParmValue(idx, instance, value); }
645 { doGetParmValue(idx, instance, value); }
647 { doGetParmValue(idx, instance, value); }
649 template <
typename T>
656 if (idx.
size() != instance.
size()+1)
661 coerceValue(myEnableSolve, ( ( value ) ));
664 coerceValue(myEnableGeometryConstraints, ( ( value ) ));
667 coerceValue(myConstraintSelection, clampMinValue(0, clampMaxValue(1, value ) ));
670 coerceValue(myConstraintSource, ( ( value ) ));
673 coerceValue(myIterations, clampMinValue(1, ( value ) ));
676 coerceValue(myReducedLevels, clampMinValue(1, ( value ) ));
679 coerceValue(myReductionPercentage, clampMinValue(0.05, clampMaxValue(1, value ) ));
682 coerceValue(myReductionPercentageSingle, clampMinValue(0.05, clampMaxValue(1, value ) ));
685 coerceValue(myInitialReductionPercentage, clampMinValue(0.05, clampMaxValue(1, value ) ));
688 coerceValue(myRigidWeights, clampMinValue(0, ( value ) ));
691 coerceValue(myLandmarkWeights, clampMinValue(0, ( value ) ));
694 coerceValue(myMaskMode, clampMinValue(0, clampMaxValue(1, value ) ));
697 coerceValue(myMaskTolerance, clampMinValue(0.0, clampMaxValue(1, value ) ));
700 coerceValue(myRigidprimitives, ( ( value ) ));
703 coerceValue(myDistTolerance, clampMinValue(0.0001, ( value ) ));
706 coerceValue(myNormTolerance, clampMinValue(1, clampMaxValue(180, value ) ));
709 coerceValue(mySolverType, clampMinValue(0, clampMaxValue(1, value ) ));
712 coerceValue(mySolverIterations, clampMinValue(1, ( value ) ));
715 coerceValue(myGradientTolerance, clampMinValue(0.00001, clampMaxValue(1.0, value ) ));
718 coerceValue(myDebug_menu, clampMinValue(0, clampMaxValue(2, value ) ));
721 coerceValue(myDebug_coarse_lvl, ( ( value ) ));
724 coerceValue(myDebug_coarse_iteration, ( ( value ) ));
727 coerceValue(myDebug_dense_lvl, ( ( value ) ));
730 coerceValue(myDebug_dense_iteration, ( ( value ) ));
733 coerceValue(myDebug_hessian_scaling, ( ( value ) ));
736 coerceValue(myDebug_use_marquadt, ( ( value ) ));
739 coerceValue(myParameter_tolerance, ( ( value ) ));
742 coerceValue(myUse_tau, ( ( value ) ));
745 coerceValue(myTau, ( ( value ) ));
748 coerceValue(myInitial_damping, ( ( value ) ));
751 coerceValue(myDebug_save_meshes, ( ( value ) ));
754 coerceValue(myUseLandmarkLables, ( ( value ) ));
757 coerceValue(myLandmarkAttribute, ( ( value ) ));
760 coerceValue(myEnableLandmarks, ( ( value ) ));
766 coerceValue(newsize, value);
767 if (newsize < 0) newsize = 0;
768 myNumlandmarkgroups.setSize(newsize);
774 myNumlandmarkgroups.setSizeIfNeeded(instance[0]+1);
775 auto && _data = myNumlandmarkgroups(instance[0]);
779 coerceValue(_data.enablegroup, value);
782 coerceValue(_data.pballcolor, value);
785 coerceValue(_data.pname, value);
788 coerceValue(_data.usesourcepos, value);
791 coerceValue(_data.sourcepos, value);
794 coerceValue(_data.usetargetpos, value);
797 coerceValue(_data.targetpos, value);
800 coerceValue(_data.psourcegroup, value);
803 coerceValue(_data.ptargetgroup, value);
810 coerceValue(myRigidMask, ( ( value ) ));
817 { doSetParmValue(idx, instance, value); }
819 { doSetParmValue(idx, instance, value); }
821 { doSetParmValue(idx, instance, value); }
823 { doSetParmValue(idx, instance, value); }
825 { doSetParmValue(idx, instance, value); }
827 { doSetParmValue(idx, instance, value); }
829 { doSetParmValue(idx, instance, value); }
831 { doSetParmValue(idx, instance, value); }
833 { doSetParmValue(idx, instance, value); }
835 { doSetParmValue(idx, instance, value); }
837 { doSetParmValue(idx, instance, value); }
855 if (fieldnum.
size() < 1)
860 return "enablesolve";
862 return "enablegeometryconstraints";
864 return "constraintselection";
866 return "constraintsource";
870 return "reducedlevels";
872 return "reductionpercentage";
874 return "reductionpercentage_single";
876 return "initialreductionpercentage";
878 return "rigidweights";
880 return "landmarkweights";
884 return "masktolerance";
886 return "rigidprimitives";
888 return "disttolerance";
890 return "normtolerance";
894 return "solveriterations";
896 return "gradienttolerance";
900 return "debug_coarse_lvl";
902 return "debug_coarse_iteration";
904 return "debug_dense_lvl";
906 return "debug_dense_iteration";
908 return "debug_hessian_scaling";
910 return "debug_use_marquadt";
912 return "parameter_tolerance";
918 return "initial_damping";
920 return "debug_save_meshes";
922 return "uselandmarklabels";
924 return "landmarkattrib";
926 return "enablelandmarks";
928 if (fieldnum.
size() == 1)
929 return "numlandmarkgroups";
933 return "enablegroup#";
935 return "pballcolor#";
939 return "usesourcepos#";
943 return "usetargetpos#";
947 return "psourcegroup#";
949 return "ptargetgroup#";
962 if (fieldnum.
size() < 1)
963 return PARM_UNSUPPORTED;
1001 return PARM_INTEGER;
1003 return PARM_VECTOR2;
1005 return PARM_INTEGER;
1007 return PARM_INTEGER;
1009 return PARM_INTEGER;
1011 return PARM_INTEGER;
1013 return PARM_INTEGER;
1015 return PARM_INTEGER;
1017 return PARM_INTEGER;
1021 return PARM_INTEGER;
1027 return PARM_INTEGER;
1029 return PARM_INTEGER;
1033 return PARM_INTEGER;
1035 if (fieldnum.
size() == 1)
1036 return PARM_MULTIPARM;
1037 switch (fieldnum[1])
1040 return PARM_INTEGER;
1042 return PARM_VECTOR3;
1046 return PARM_INTEGER;
1050 return PARM_INTEGER;
1059 return PARM_UNSUPPORTED;
1064 return PARM_UNSUPPORTED;
1069 { is.
bread(&v, 1); }
1100 loadData(is, rampdata);
1118 int typelen = colon - data.
buffer();
1130 { UTwrite(os, &v); }
1132 {
int64 iv =
v; UTwrite(os, &iv); }
1134 { UTwrite<fpreal64>(os, &
v); }
1136 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1138 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1139 UTwrite<fpreal64>(os, &v.
z()); }
1141 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1142 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1154 if (s) s->save(ostr);
1155 result = ostr.
str();
1156 saveData(os, result);
1163 ostr << s->getDataTypeToken();
1165 s->saveBinary(ostr);
1167 result = ostr.
str();
1168 saveData(os, result);
1176 saveData(os, myEnableSolve);
1177 saveData(os, myEnableGeometryConstraints);
1178 saveData(os, myConstraintSelection);
1179 saveData(os, myConstraintSource);
1180 saveData(os, myIterations);
1181 saveData(os, myReducedLevels);
1182 saveData(os, myReductionPercentage);
1183 saveData(os, myReductionPercentageSingle);
1184 saveData(os, myInitialReductionPercentage);
1185 saveData(os, myRigidWeights);
1186 saveData(os, myLandmarkWeights);
1187 saveData(os, myMaskMode);
1188 saveData(os, myMaskTolerance);
1189 saveData(os, myRigidprimitives);
1190 saveData(os, myDistTolerance);
1191 saveData(os, myNormTolerance);
1192 saveData(os, mySolverType);
1193 saveData(os, mySolverIterations);
1194 saveData(os, myGradientTolerance);
1195 saveData(os, myDebug_menu);
1196 saveData(os, myDebug_coarse_lvl);
1197 saveData(os, myDebug_coarse_iteration);
1198 saveData(os, myDebug_dense_lvl);
1199 saveData(os, myDebug_dense_iteration);
1200 saveData(os, myDebug_hessian_scaling);
1201 saveData(os, myDebug_use_marquadt);
1202 saveData(os, myParameter_tolerance);
1203 saveData(os, myUse_tau);
1204 saveData(os, myTau);
1205 saveData(os, myInitial_damping);
1206 saveData(os, myDebug_save_meshes);
1207 saveData(os, myUseLandmarkLables);
1208 saveData(os, myLandmarkAttribute);
1209 saveData(os, myEnableLandmarks);
1212 UTwrite(os, &length);
1215 auto && _curentry = myNumlandmarkgroups(i);
1217 saveData(os, _curentry.enablegroup);
1218 saveData(os, _curentry.pballcolor);
1219 saveData(os, _curentry.pname);
1220 saveData(os, _curentry.usesourcepos);
1221 saveData(os, _curentry.sourcepos);
1222 saveData(os, _curentry.usetargetpos);
1223 saveData(os, _curentry.targetpos);
1224 saveData(os, _curentry.psourcegroup);
1225 saveData(os, _curentry.ptargetgroup);
1229 saveData(os, myRigidMask);
1242 loadData(is, myEnableSolve);
1243 loadData(is, myEnableGeometryConstraints);
1244 loadData(is, myConstraintSelection);
1245 loadData(is, myConstraintSource);
1246 loadData(is, myIterations);
1247 loadData(is, myReducedLevels);
1248 loadData(is, myReductionPercentage);
1249 loadData(is, myReductionPercentageSingle);
1250 loadData(is, myInitialReductionPercentage);
1251 loadData(is, myRigidWeights);
1252 loadData(is, myLandmarkWeights);
1253 loadData(is, myMaskMode);
1254 loadData(is, myMaskTolerance);
1255 loadData(is, myRigidprimitives);
1256 loadData(is, myDistTolerance);
1257 loadData(is, myNormTolerance);
1258 loadData(is, mySolverType);
1259 loadData(is, mySolverIterations);
1260 loadData(is, myGradientTolerance);
1261 loadData(is, myDebug_menu);
1262 loadData(is, myDebug_coarse_lvl);
1263 loadData(is, myDebug_coarse_iteration);
1264 loadData(is, myDebug_dense_lvl);
1265 loadData(is, myDebug_dense_iteration);
1266 loadData(is, myDebug_hessian_scaling);
1267 loadData(is, myDebug_use_marquadt);
1268 loadData(is, myParameter_tolerance);
1269 loadData(is, myUse_tau);
1270 loadData(is, myTau);
1271 loadData(is, myInitial_damping);
1272 loadData(is, myDebug_save_meshes);
1273 loadData(is, myUseLandmarkLables);
1274 loadData(is, myLandmarkAttribute);
1275 loadData(is, myEnableLandmarks);
1278 is.
read(&length, 1);
1279 myNumlandmarkgroups.setSize(length);
1282 auto && _curentry = myNumlandmarkgroups(i);
1284 loadData(is, _curentry.enablegroup);
1285 loadData(is, _curentry.pballcolor);
1286 loadData(is, _curentry.pname);
1287 loadData(is, _curentry.usesourcepos);
1288 loadData(is, _curentry.sourcepos);
1289 loadData(is, _curentry.usetargetpos);
1290 loadData(is, _curentry.targetpos);
1291 loadData(is, _curentry.psourcegroup);
1292 loadData(is, _curentry.ptargetgroup);
1296 loadData(is, myRigidMask);
1306 if (!thissop)
return getEnableSolve();
1308 OP_Utils::evalOpParm(result, thissop,
"enablesolve", cookparms.
getCookTime(), 0);
1316 if (!thissop)
return getEnableGeometryConstraints();
1318 OP_Utils::evalOpParm(result, thissop,
"enablegeometryconstraints", cookparms.
getCookTime(), 0);
1326 if (!thissop)
return getConstraintSelection();
1328 OP_Utils::evalOpParm(result, thissop,
"constraintselection", cookparms.
getCookTime(), 0);
1336 if (!thissop)
return getConstraintSource();
1338 OP_Utils::evalOpParm(result, thissop,
"constraintsource", cookparms.
getCookTime(), 0);
1346 if (!thissop)
return getIterations();
1348 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1356 if (!thissop)
return getReducedLevels();
1358 OP_Utils::evalOpParm(result, thissop,
"reducedlevels", cookparms.
getCookTime(), 0);
1366 if (!thissop)
return getReductionPercentage();
1368 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage", cookparms.
getCookTime(), 0);
1376 if (!thissop)
return getReductionPercentageSingle();
1378 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage_single", cookparms.
getCookTime(), 0);
1386 if (!thissop)
return getInitialReductionPercentage();
1388 OP_Utils::evalOpParm(result, thissop,
"initialreductionpercentage", cookparms.
getCookTime(), 0);
1396 if (!thissop)
return getRigidWeights();
1398 OP_Utils::evalOpParm(result, thissop,
"rigidweights", cookparms.
getCookTime(), 0);
1406 if (!thissop)
return getLandmarkWeights();
1408 OP_Utils::evalOpParm(result, thissop,
"landmarkweights", cookparms.
getCookTime(), 0);
1416 if (!thissop)
return getMaskMode();
1418 OP_Utils::evalOpParm(result, thissop,
"maskmode", cookparms.
getCookTime(), 0);
1426 if (!thissop)
return getMaskTolerance();
1428 OP_Utils::evalOpParm(result, thissop,
"masktolerance", cookparms.
getCookTime(), 0);
1436 if (!thissop)
return getRigidprimitives();
1438 OP_Utils::evalOpParm(result, thissop,
"rigidprimitives", cookparms.
getCookTime(), 0);
1446 if (!thissop)
return getDistTolerance();
1448 OP_Utils::evalOpParm(result, thissop,
"disttolerance", cookparms.
getCookTime(), 0);
1456 if (!thissop)
return getNormTolerance();
1458 OP_Utils::evalOpParm(result, thissop,
"normtolerance", cookparms.
getCookTime(), 0);
1466 if (!thissop)
return getSolverType();
1468 OP_Utils::evalOpParm(result, thissop,
"solvertype", cookparms.
getCookTime(), 0);
1476 if (!thissop)
return getSolverIterations();
1478 OP_Utils::evalOpParm(result, thissop,
"solveriterations", cookparms.
getCookTime(), 0);
1486 if (!thissop)
return getGradientTolerance();
1488 OP_Utils::evalOpParm(result, thissop,
"gradienttolerance", cookparms.
getCookTime(), 0);
1496 if (!thissop)
return getDebug_menu();
1498 OP_Utils::evalOpParm(result, thissop,
"debug_menu", cookparms.
getCookTime(), 0);
1506 if (!thissop)
return getDebug_coarse_lvl();
1508 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_lvl", cookparms.
getCookTime(), 0);
1516 if (!thissop)
return getDebug_coarse_iteration();
1518 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_iteration", cookparms.
getCookTime(), 0);
1526 if (!thissop)
return getDebug_dense_lvl();
1528 OP_Utils::evalOpParm(result, thissop,
"debug_dense_lvl", cookparms.
getCookTime(), 0);
1536 if (!thissop)
return getDebug_dense_iteration();
1538 OP_Utils::evalOpParm(result, thissop,
"debug_dense_iteration", cookparms.
getCookTime(), 0);
1546 if (!thissop)
return getDebug_hessian_scaling();
1548 OP_Utils::evalOpParm(result, thissop,
"debug_hessian_scaling", cookparms.
getCookTime(), 0);
1556 if (!thissop)
return getDebug_use_marquadt();
1558 OP_Utils::evalOpParm(result, thissop,
"debug_use_marquadt", cookparms.
getCookTime(), 0);
1566 if (!thissop)
return getParameter_tolerance();
1568 OP_Utils::evalOpParm(result, thissop,
"parameter_tolerance", cookparms.
getCookTime(), 0);
1576 if (!thissop)
return getUse_tau();
1578 OP_Utils::evalOpParm(result, thissop,
"use_tau", cookparms.
getCookTime(), 0);
1586 if (!thissop)
return getTau();
1588 OP_Utils::evalOpParm(result, thissop,
"tau", cookparms.
getCookTime(), 0);
1596 if (!thissop)
return getInitial_damping();
1598 OP_Utils::evalOpParm(result, thissop,
"initial_damping", cookparms.
getCookTime(), 0);
1606 if (!thissop)
return getDebug_save_meshes();
1608 OP_Utils::evalOpParm(result, thissop,
"debug_save_meshes", cookparms.
getCookTime(), 0);
1616 if (!thissop)
return getUseLandmarkLables();
1618 OP_Utils::evalOpParm(result, thissop,
"uselandmarklabels", cookparms.
getCookTime(), 0);
1626 if (!thissop)
return getLandmarkAttribute();
1628 OP_Utils::evalOpParm(result, thissop,
"landmarkattrib", cookparms.
getCookTime(), 0);
1636 if (!thissop)
return getEnableLandmarks();
1638 OP_Utils::evalOpParm(result, thissop,
"enablelandmarks", cookparms.
getCookTime(), 0);
1646 if (!thissop)
return getNumlandmarkgroups().entries();
1648 OP_Utils::evalOpParm(result, thissop,
"numlandmarkgroups", cookparms.
getCookTime(), 0);
1652 {
return opinstNumlandmarkgroups_enablegroup(cookparms, &_idx); }
1656 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).enablegroup);
1658 _parmidx[1-1] = _idx[1-1] + 1;
1661 OP_Utils::evalOpParmInst(result, thissop,
"enablegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1665 {
return opinstNumlandmarkgroups_pballcolor(cookparms, &_idx); }
1669 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).pballcolor);
1671 _parmidx[1-1] = _idx[1-1] + 1;
1674 OP_Utils::evalOpParmInst(result, thissop,
"pballcolor#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1678 {
return opinstNumlandmarkgroups_pname(cookparms, &_idx); }
1682 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).
pname);
1684 _parmidx[1-1] = _idx[1-1] + 1;
1687 OP_Utils::evalOpParmInst(result, thissop,
"pname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1691 {
return opinstNumlandmarkgroups_usesourcepos(cookparms, &_idx); }
1695 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usesourcepos);
1697 _parmidx[1-1] = _idx[1-1] + 1;
1700 OP_Utils::evalOpParmInst(result, thissop,
"usesourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1704 {
return opinstNumlandmarkgroups_sourcepos(cookparms, &_idx); }
1708 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).sourcepos);
1710 _parmidx[1-1] = _idx[1-1] + 1;
1713 OP_Utils::evalOpParmInst(result, thissop,
"sourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1717 {
return opinstNumlandmarkgroups_usetargetpos(cookparms, &_idx); }
1721 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usetargetpos);
1723 _parmidx[1-1] = _idx[1-1] + 1;
1726 OP_Utils::evalOpParmInst(result, thissop,
"usetargetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1730 {
return opinstNumlandmarkgroups_targetpos(cookparms, &_idx); }
1734 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).targetpos);
1736 _parmidx[1-1] = _idx[1-1] + 1;
1739 OP_Utils::evalOpParmInst(result, thissop,
"targetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1743 {
return opinstNumlandmarkgroups_psourcegroup(cookparms, &_idx); }
1747 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).psourcegroup);
1749 _parmidx[1-1] = _idx[1-1] + 1;
1752 OP_Utils::evalOpParmInst(result, thissop,
"psourcegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1756 {
return opinstNumlandmarkgroups_ptargetgroup(cookparms, &_idx); }
1760 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).ptargetgroup);
1762 _parmidx[1-1] = _idx[1-1] + 1;
1765 OP_Utils::evalOpParmInst(result, thissop,
"ptargetgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1774 if (!thissop)
return getRigidMask();
1776 OP_Utils::evalOpParm(result, thissop,
"rigidmask", cookparms.
getCookTime(), 0);
1782 bool myEnableGeometryConstraints;
1783 int64 myConstraintSelection;
1786 int64 myReducedLevels;
1788 fpreal64 myReductionPercentageSingle;
1789 fpreal64 myInitialReductionPercentage;
1798 int64 mySolverIterations;
1801 int64 myDebug_coarse_lvl;
1802 int64 myDebug_coarse_iteration;
1803 int64 myDebug_dense_lvl;
1804 int64 myDebug_dense_iteration;
1805 bool myDebug_hessian_scaling;
1806 bool myDebug_use_marquadt;
1811 bool myDebug_save_meshes;
1812 bool myUseLandmarkLables;
1814 bool myEnableLandmarks;
void setDistTolerance(fpreal64 val)
virtual NodeIdx getInput(NodeIdx idx, OP_InputIdx input, bool markused=false) const =0
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
GLsizei const GLfloat * value
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
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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
virtual UT_StringHolder baseGetSignature() 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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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
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)