23 namespace SOP_TopoTransferEnums
70 pname =
"group#"_UTsh;
75 psourcegroup =
""_UTsh;
76 ptargetgroup =
""_UTsh;
83 if (pballcolor != src.
pballcolor)
return false;
86 if (sourcepos != src.
sourcepos)
return false;
88 if (targetpos != src.
targetpos)
return false;
106 for (
int i = 0; i < list.
entries(); i++)
112 buf.
appendSprintf(
"%s", (list(i).enablegroup) ?
"true" :
"false");
114 buf.
appendSprintf(
"(%f, %f, %f)", list(i).pballcolor.x(), list(i).pballcolor.y(), list(i).pballcolor.z());
118 buf.
appendSprintf(
"%s", (list(i).usesourcepos) ?
"true" :
"false");
122 buf.
appendSprintf(
"%s", (list(i).usetargetpos) ?
"true" :
"false");
140 myEnableSolve =
true;
141 myEnableGeometryConstraints =
false;
142 myConstraintSelection = 0;
143 myConstraintSource =
""_UTsh;
147 myReductionPercentageSingle = 0.1;
148 myInitialReductionPercentage = 0.1;
152 myMaskTolerance = 1e-6;
153 myRigidprimitives =
""_UTsh;
154 myDistTolerance = 0.2;
155 myNormTolerance = 45;
157 mySolverIterations = 20;
160 myDebug_coarse_lvl = 0;
161 myDebug_coarse_iteration = 0;
162 myDebug_dense_lvl = 0;
163 myDebug_dense_iteration = 0;
164 myDebug_hessian_scaling =
true;
165 myDebug_use_marquadt =
true;
166 myParameter_tolerance = 0.0001;
169 myInitial_damping = 0.0001;
170 myDebug_save_meshes =
false;
171 myUseLandmarkLables =
true;
172 myLandmarkAttribute =
"landmark"_UTsh;
173 myEnableLandmarks =
true;
174 myNumlandmarkgroups.setSize(0);
175 myRigidMask =
"rigid_mask"_UTsh;
188 if (myEnableSolve != src.myEnableSolve)
return false;
189 if (myEnableGeometryConstraints != src.myEnableGeometryConstraints)
return false;
190 if (myConstraintSelection != src.myConstraintSelection)
return false;
191 if (myConstraintSource != src.myConstraintSource)
return false;
192 if (myIterations != src.myIterations)
return false;
193 if (myReducedLevels != src.myReducedLevels)
return false;
194 if (myReductionPercentage != src.myReductionPercentage)
return false;
195 if (myReductionPercentageSingle != src.myReductionPercentageSingle)
return false;
196 if (myInitialReductionPercentage != src.myInitialReductionPercentage)
return false;
197 if (myRigidWeights != src.myRigidWeights)
return false;
198 if (myLandmarkWeights != src.myLandmarkWeights)
return false;
199 if (myMaskMode != src.myMaskMode)
return false;
200 if (myMaskTolerance != src.myMaskTolerance)
return false;
201 if (myRigidprimitives != src.myRigidprimitives)
return false;
202 if (myDistTolerance != src.myDistTolerance)
return false;
203 if (myNormTolerance != src.myNormTolerance)
return false;
204 if (mySolverType != src.mySolverType)
return false;
205 if (mySolverIterations != src.mySolverIterations)
return false;
206 if (myGradientTolerance != src.myGradientTolerance)
return false;
207 if (myDebug_menu != src.myDebug_menu)
return false;
208 if (myDebug_coarse_lvl != src.myDebug_coarse_lvl)
return false;
209 if (myDebug_coarse_iteration != src.myDebug_coarse_iteration)
return false;
210 if (myDebug_dense_lvl != src.myDebug_dense_lvl)
return false;
211 if (myDebug_dense_iteration != src.myDebug_dense_iteration)
return false;
212 if (myDebug_hessian_scaling != src.myDebug_hessian_scaling)
return false;
213 if (myDebug_use_marquadt != src.myDebug_use_marquadt)
return false;
214 if (myParameter_tolerance != src.myParameter_tolerance)
return false;
215 if (myUse_tau != src.myUse_tau)
return false;
216 if (myTau != src.myTau)
return false;
217 if (myInitial_damping != src.myInitial_damping)
return false;
218 if (myDebug_save_meshes != src.myDebug_save_meshes)
return false;
219 if (myUseLandmarkLables != src.myUseLandmarkLables)
return false;
220 if (myLandmarkAttribute != src.myLandmarkAttribute)
return false;
221 if (myEnableLandmarks != src.myEnableLandmarks)
return false;
222 if (myNumlandmarkgroups != src.myNumlandmarkgroups)
return false;
223 if (myRigidMask != src.myRigidMask)
return false;
240 myEnableSolve =
true;
242 graph->
evalOpParm(myEnableSolve, nodeidx,
"enablesolve", time, 0);
243 myEnableGeometryConstraints =
false;
245 graph->
evalOpParm(myEnableGeometryConstraints, nodeidx,
"enablegeometryconstraints", time, 0);
246 myConstraintSelection = 0;
247 if (
true && ( (
true&&!(((getEnableGeometryConstraints()==0)))) ) )
248 graph->
evalOpParm(myConstraintSelection, nodeidx,
"constraintselection", time, 0);
249 myConstraintSource =
""_UTsh;
250 if (
true && ( (
true&&!(((
int64(getConstraintSelection())==0)))) ) )
251 graph->
evalOpParm(myConstraintSource, nodeidx,
"constraintsource", time, 0);
254 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, 0);
257 graph->
evalOpParm(myReducedLevels, nodeidx,
"reducedlevels", time, 0);
259 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==1)))) ) )
260 graph->
evalOpParm(myReductionPercentage, nodeidx,
"reductionpercentage", time, 0);
261 myReductionPercentageSingle = 0.1;
262 if (
true && ( (
true&&!(((
int64(getReducedLevels())>1))||((getEnableGeometryConstraints()==1)))) ) )
263 graph->
evalOpParm(myReductionPercentageSingle, nodeidx,
"reductionpercentage_single", time, 0);
264 myInitialReductionPercentage = 0.1;
265 if (
true && ( (
true&&!(((
int64(getReducedLevels())<=1))||((getEnableGeometryConstraints()==0)))) ) )
266 graph->
evalOpParm(myInitialReductionPercentage, nodeidx,
"initialreductionpercentage", time, 0);
269 graph->
evalOpParm(myRigidWeights, nodeidx,
"rigidweights", time, 0);
272 graph->
evalOpParm(myLandmarkWeights, nodeidx,
"landmarkweights", time, 0);
275 graph->
evalOpParm(myMaskMode, nodeidx,
"maskmode", time, 0);
276 myMaskTolerance = 1e-6;
277 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
278 graph->
evalOpParm(myMaskTolerance, nodeidx,
"masktolerance", time, 0);
279 myRigidprimitives =
""_UTsh;
281 graph->
evalOpParm(myRigidprimitives, nodeidx,
"rigidprimitives", time, 0);
282 myDistTolerance = 0.2;
284 graph->
evalOpParm(myDistTolerance, nodeidx,
"disttolerance", time, 0);
285 myNormTolerance = 45;
287 graph->
evalOpParm(myNormTolerance, nodeidx,
"normtolerance", time, 0);
290 graph->
evalOpParm(mySolverType, nodeidx,
"solvertype", time, 0);
291 mySolverIterations = 20;
292 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
293 graph->
evalOpParm(mySolverIterations, nodeidx,
"solveriterations", time, 0);
295 if (
true && ( (
true&&!(((
int64(getSolverType())!=0)))) ) )
296 graph->
evalOpParm(myGradientTolerance, nodeidx,
"gradienttolerance", time, 0);
299 graph->
evalOpParm(myDebug_menu, nodeidx,
"debug_menu", time, 0);
300 myDebug_coarse_lvl = 0;
301 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
302 graph->
evalOpParm(myDebug_coarse_lvl, nodeidx,
"debug_coarse_lvl", time, 0);
303 myDebug_coarse_iteration = 0;
304 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=1)))) ) )
305 graph->
evalOpParm(myDebug_coarse_iteration, nodeidx,
"debug_coarse_iteration", time, 0);
306 myDebug_dense_lvl = 0;
307 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
308 graph->
evalOpParm(myDebug_dense_lvl, nodeidx,
"debug_dense_lvl", time, 0);
309 myDebug_dense_iteration = 0;
310 if (
true && ( (
true&&!(((
int64(getDebug_menu())!=2)))) ) )
311 graph->
evalOpParm(myDebug_dense_iteration, nodeidx,
"debug_dense_iteration", time, 0);
312 myDebug_hessian_scaling =
true;
314 graph->
evalOpParm(myDebug_hessian_scaling, nodeidx,
"debug_hessian_scaling", time, 0);
315 myDebug_use_marquadt =
true;
317 graph->
evalOpParm(myDebug_use_marquadt, nodeidx,
"debug_use_marquadt", time, 0);
318 myParameter_tolerance = 0.0001;
320 graph->
evalOpParm(myParameter_tolerance, nodeidx,
"parameter_tolerance", time, 0);
323 graph->
evalOpParm(myUse_tau, nodeidx,
"use_tau", time, 0);
325 if (
true && ( (
true&&!(((getUse_tau()!=1)))) ) )
326 graph->
evalOpParm(myTau, nodeidx,
"tau", time, 0);
327 myInitial_damping = 0.0001;
328 if (
true && ( (
true&&!(((getUse_tau()==1)))) ) )
329 graph->
evalOpParm(myInitial_damping, nodeidx,
"initial_damping", time, 0);
330 myDebug_save_meshes =
false;
332 graph->
evalOpParm(myDebug_save_meshes, nodeidx,
"debug_save_meshes", time, 0);
333 myUseLandmarkLables =
true;
334 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0)))) ) )
335 graph->
evalOpParm(myUseLandmarkLables, nodeidx,
"uselandmarklabels", time, 0);
336 myLandmarkAttribute =
"landmark"_UTsh;
337 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==0))||(((graph->
getInput(nodeidx,3)>=0)==0))||((getUseLandmarkLables()==0)))) ) )
338 graph->
evalOpParm(myLandmarkAttribute, nodeidx,
"landmarkattrib", time, 0);
339 myEnableLandmarks =
true;
340 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1)))) ) )
341 graph->
evalOpParm(myEnableLandmarks, nodeidx,
"enablelandmarks", time, 0);
342 if (
true && ( (!((((graph->
getInput(nodeidx,2)>=0)==1)&&((graph->
getInput(nodeidx,3)>=0)==1))||((getEnableLandmarks()==0)))) ) )
345 graph->
evalOpParm(length, nodeidx,
"numlandmarkgroups", time, 0);
346 if (length < 0) length = 0;
347 myNumlandmarkgroups.setSize(length);
354 auto && _curentry = myNumlandmarkgroups(i);
356 _curentry.enablegroup =
true;
357 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)))) ) )
358 graph->
evalOpParmInst(_curentry.enablegroup, nodeidx,
"enablegroup#", parmidx, offsets, time, 0, 2-1);
360 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)))) ) )
361 graph->
evalOpParmInst(_curentry.pballcolor, nodeidx,
"pballcolor#", parmidx, offsets, time, 0, 2-1);
362 _curentry.pname =
"group#"_UTsh;
363 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)))) ) )
364 graph->
evalOpParmInst(_curentry.pname, nodeidx,
"pname#", parmidx, offsets, time, 0, 2-1);
365 _curentry.usesourcepos =
true;
366 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)))) ) )
367 graph->
evalOpParmInst(_curentry.usesourcepos, nodeidx,
"usesourcepos#", parmidx, offsets, time, 0, 2-1);
368 _curentry.sourcepos =
""_UTsh;
369 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)))) ) )
370 graph->
evalOpParmInst(_curentry.sourcepos, nodeidx,
"sourcepos#", parmidx, offsets, time, 0, 2-1);
371 _curentry.usetargetpos =
true;
372 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)))) ) )
373 graph->
evalOpParmInst(_curentry.usetargetpos, nodeidx,
"usetargetpos#", parmidx, offsets, time, 0, 2-1);
374 _curentry.targetpos =
""_UTsh;
375 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)))) ) )
376 graph->
evalOpParmInst(_curentry.targetpos, nodeidx,
"targetpos#", parmidx, offsets, time, 0, 2-1);
377 _curentry.psourcegroup =
""_UTsh;
378 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)))) ) )
379 graph->
evalOpParmInst(_curentry.psourcegroup, nodeidx,
"psourcegroup#", parmidx, offsets, time, 0, 2-1);
380 _curentry.ptargetgroup =
""_UTsh;
381 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)))) ) )
382 graph->
evalOpParmInst(_curentry.ptargetgroup, nodeidx,
"ptargetgroup#", parmidx, offsets, time, 0, 2-1);
387 myNumlandmarkgroups.clear();
388 myRigidMask =
"rigid_mask"_UTsh;
389 if (
true && ( (
true&&!(((
int64(getMaskMode())==0)))) ) )
390 graph->
evalOpParm(myRigidMask, nodeidx,
"rigidmask", time, 0);
406 template <
typename T>
413 if (idx.
size() != instance.
size()+1)
522 else if (instance[0] < myNumlandmarkgroups.entries())
524 auto && _data = myNumlandmarkgroups(instance[0]);
575 { doGetParmValue(idx, instance, value); }
577 { doGetParmValue(idx, instance, value); }
579 { doGetParmValue(idx, instance, value); }
581 { doGetParmValue(idx, instance, value); }
583 { doGetParmValue(idx, instance, value); }
585 { doGetParmValue(idx, instance, value); }
587 { doGetParmValue(idx, instance, value); }
589 { doGetParmValue(idx, instance, value); }
591 { doGetParmValue(idx, instance, value); }
593 { doGetParmValue(idx, instance, value); }
595 { doGetParmValue(idx, instance, value); }
597 template <
typename T>
604 if (idx.
size() != instance.
size()+1)
612 coerceValue(myEnableGeometryConstraints, ( ( value ) ));
672 coerceValue(myDebug_coarse_iteration, ( ( value ) ));
678 coerceValue(myDebug_dense_iteration, ( ( value ) ));
681 coerceValue(myDebug_hessian_scaling, ( ( value ) ));
715 if (newsize < 0) newsize = 0;
716 myNumlandmarkgroups.setSize(newsize);
722 myNumlandmarkgroups.setSizeIfNeeded(instance[0]+1);
723 auto && _data = myNumlandmarkgroups(instance[0]);
765 { doSetParmValue(idx, instance, value); }
767 { doSetParmValue(idx, instance, value); }
769 { doSetParmValue(idx, instance, value); }
771 { doSetParmValue(idx, instance, value); }
773 { doSetParmValue(idx, instance, value); }
775 { doSetParmValue(idx, instance, value); }
777 { doSetParmValue(idx, instance, value); }
779 { doSetParmValue(idx, instance, value); }
781 { doSetParmValue(idx, instance, value); }
783 { doSetParmValue(idx, instance, value); }
785 { doSetParmValue(idx, instance, value); }
803 if (fieldnum.
size() < 1)
808 return "enablesolve";
810 return "enablegeometryconstraints";
812 return "constraintselection";
814 return "constraintsource";
818 return "reducedlevels";
820 return "reductionpercentage";
822 return "reductionpercentage_single";
824 return "initialreductionpercentage";
826 return "rigidweights";
828 return "landmarkweights";
832 return "masktolerance";
834 return "rigidprimitives";
836 return "disttolerance";
838 return "normtolerance";
842 return "solveriterations";
844 return "gradienttolerance";
848 return "debug_coarse_lvl";
850 return "debug_coarse_iteration";
852 return "debug_dense_lvl";
854 return "debug_dense_iteration";
856 return "debug_hessian_scaling";
858 return "debug_use_marquadt";
860 return "parameter_tolerance";
866 return "initial_damping";
868 return "debug_save_meshes";
870 return "uselandmarklabels";
872 return "landmarkattrib";
874 return "enablelandmarks";
876 if (fieldnum.
size() == 1)
877 return "numlandmarkgroups";
881 return "enablegroup#";
883 return "pballcolor#";
887 return "usesourcepos#";
891 return "usetargetpos#";
895 return "psourcegroup#";
897 return "ptargetgroup#";
910 if (fieldnum.
size() < 1)
911 return PARM_UNSUPPORTED;
983 if (fieldnum.
size() == 1)
984 return PARM_MULTIPARM;
1017 { is.
bread(&v, 1); }
1031 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1033 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1035 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1048 loadData(is, rampdata);
1066 int typelen = colon - data.
buffer();
1078 { UTwrite(os, &v); }
1080 {
int64 iv =
v; UTwrite(os, &iv); }
1082 { UTwrite<fpreal64>(os, &
v); }
1084 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1086 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1087 UTwrite<fpreal64>(os, &v.
z()); }
1089 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1090 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1102 if (s) s->save(ostr);
1103 result = ostr.
str();
1104 saveData(os, result);
1111 ostr << s->getDataTypeToken();
1113 s->saveBinary(ostr);
1115 result = ostr.
str();
1116 saveData(os, result);
1124 saveData(os, myEnableSolve);
1125 saveData(os, myEnableGeometryConstraints);
1126 saveData(os, myConstraintSelection);
1127 saveData(os, myConstraintSource);
1128 saveData(os, myIterations);
1129 saveData(os, myReducedLevels);
1130 saveData(os, myReductionPercentage);
1131 saveData(os, myReductionPercentageSingle);
1132 saveData(os, myInitialReductionPercentage);
1133 saveData(os, myRigidWeights);
1134 saveData(os, myLandmarkWeights);
1135 saveData(os, myMaskMode);
1136 saveData(os, myMaskTolerance);
1137 saveData(os, myRigidprimitives);
1138 saveData(os, myDistTolerance);
1139 saveData(os, myNormTolerance);
1140 saveData(os, mySolverType);
1141 saveData(os, mySolverIterations);
1142 saveData(os, myGradientTolerance);
1143 saveData(os, myDebug_menu);
1144 saveData(os, myDebug_coarse_lvl);
1145 saveData(os, myDebug_coarse_iteration);
1146 saveData(os, myDebug_dense_lvl);
1147 saveData(os, myDebug_dense_iteration);
1148 saveData(os, myDebug_hessian_scaling);
1149 saveData(os, myDebug_use_marquadt);
1150 saveData(os, myParameter_tolerance);
1151 saveData(os, myUse_tau);
1152 saveData(os, myTau);
1153 saveData(os, myInitial_damping);
1154 saveData(os, myDebug_save_meshes);
1155 saveData(os, myUseLandmarkLables);
1156 saveData(os, myLandmarkAttribute);
1157 saveData(os, myEnableLandmarks);
1160 UTwrite(os, &length);
1163 auto && _curentry = myNumlandmarkgroups(i);
1165 saveData(os, _curentry.enablegroup);
1166 saveData(os, _curentry.pballcolor);
1167 saveData(os, _curentry.pname);
1168 saveData(os, _curentry.usesourcepos);
1169 saveData(os, _curentry.sourcepos);
1170 saveData(os, _curentry.usetargetpos);
1171 saveData(os, _curentry.targetpos);
1172 saveData(os, _curentry.psourcegroup);
1173 saveData(os, _curentry.ptargetgroup);
1177 saveData(os, myRigidMask);
1190 loadData(is, myEnableSolve);
1191 loadData(is, myEnableGeometryConstraints);
1192 loadData(is, myConstraintSelection);
1193 loadData(is, myConstraintSource);
1194 loadData(is, myIterations);
1195 loadData(is, myReducedLevels);
1196 loadData(is, myReductionPercentage);
1197 loadData(is, myReductionPercentageSingle);
1198 loadData(is, myInitialReductionPercentage);
1199 loadData(is, myRigidWeights);
1200 loadData(is, myLandmarkWeights);
1201 loadData(is, myMaskMode);
1202 loadData(is, myMaskTolerance);
1203 loadData(is, myRigidprimitives);
1204 loadData(is, myDistTolerance);
1205 loadData(is, myNormTolerance);
1206 loadData(is, mySolverType);
1207 loadData(is, mySolverIterations);
1208 loadData(is, myGradientTolerance);
1209 loadData(is, myDebug_menu);
1210 loadData(is, myDebug_coarse_lvl);
1211 loadData(is, myDebug_coarse_iteration);
1212 loadData(is, myDebug_dense_lvl);
1213 loadData(is, myDebug_dense_iteration);
1214 loadData(is, myDebug_hessian_scaling);
1215 loadData(is, myDebug_use_marquadt);
1216 loadData(is, myParameter_tolerance);
1217 loadData(is, myUse_tau);
1218 loadData(is, myTau);
1219 loadData(is, myInitial_damping);
1220 loadData(is, myDebug_save_meshes);
1221 loadData(is, myUseLandmarkLables);
1222 loadData(is, myLandmarkAttribute);
1223 loadData(is, myEnableLandmarks);
1226 is.
read(&length, 1);
1227 myNumlandmarkgroups.setSize(length);
1230 auto && _curentry = myNumlandmarkgroups(i);
1232 loadData(is, _curentry.enablegroup);
1233 loadData(is, _curentry.pballcolor);
1234 loadData(is, _curentry.pname);
1235 loadData(is, _curentry.usesourcepos);
1236 loadData(is, _curentry.sourcepos);
1237 loadData(is, _curentry.usetargetpos);
1238 loadData(is, _curentry.targetpos);
1239 loadData(is, _curentry.psourcegroup);
1240 loadData(is, _curentry.ptargetgroup);
1244 loadData(is, myRigidMask);
1254 if (!thissop)
return getEnableSolve();
1256 OP_Utils::evalOpParm(result, thissop,
"enablesolve", cookparms.
getCookTime(), 0);
1264 if (!thissop)
return getEnableGeometryConstraints();
1266 OP_Utils::evalOpParm(result, thissop,
"enablegeometryconstraints", cookparms.
getCookTime(), 0);
1274 if (!thissop)
return getConstraintSelection();
1276 OP_Utils::evalOpParm(result, thissop,
"constraintselection", cookparms.
getCookTime(), 0);
1284 if (!thissop)
return getConstraintSource();
1286 OP_Utils::evalOpParm(result, thissop,
"constraintsource", cookparms.
getCookTime(), 0);
1294 if (!thissop)
return getIterations();
1296 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1304 if (!thissop)
return getReducedLevels();
1306 OP_Utils::evalOpParm(result, thissop,
"reducedlevels", cookparms.
getCookTime(), 0);
1314 if (!thissop)
return getReductionPercentage();
1316 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage", cookparms.
getCookTime(), 0);
1324 if (!thissop)
return getReductionPercentageSingle();
1326 OP_Utils::evalOpParm(result, thissop,
"reductionpercentage_single", cookparms.
getCookTime(), 0);
1334 if (!thissop)
return getInitialReductionPercentage();
1336 OP_Utils::evalOpParm(result, thissop,
"initialreductionpercentage", cookparms.
getCookTime(), 0);
1344 if (!thissop)
return getRigidWeights();
1346 OP_Utils::evalOpParm(result, thissop,
"rigidweights", cookparms.
getCookTime(), 0);
1354 if (!thissop)
return getLandmarkWeights();
1356 OP_Utils::evalOpParm(result, thissop,
"landmarkweights", cookparms.
getCookTime(), 0);
1364 if (!thissop)
return getMaskMode();
1366 OP_Utils::evalOpParm(result, thissop,
"maskmode", cookparms.
getCookTime(), 0);
1374 if (!thissop)
return getMaskTolerance();
1376 OP_Utils::evalOpParm(result, thissop,
"masktolerance", cookparms.
getCookTime(), 0);
1384 if (!thissop)
return getRigidprimitives();
1386 OP_Utils::evalOpParm(result, thissop,
"rigidprimitives", cookparms.
getCookTime(), 0);
1394 if (!thissop)
return getDistTolerance();
1396 OP_Utils::evalOpParm(result, thissop,
"disttolerance", cookparms.
getCookTime(), 0);
1404 if (!thissop)
return getNormTolerance();
1406 OP_Utils::evalOpParm(result, thissop,
"normtolerance", cookparms.
getCookTime(), 0);
1414 if (!thissop)
return getSolverType();
1416 OP_Utils::evalOpParm(result, thissop,
"solvertype", cookparms.
getCookTime(), 0);
1424 if (!thissop)
return getSolverIterations();
1426 OP_Utils::evalOpParm(result, thissop,
"solveriterations", cookparms.
getCookTime(), 0);
1434 if (!thissop)
return getGradientTolerance();
1436 OP_Utils::evalOpParm(result, thissop,
"gradienttolerance", cookparms.
getCookTime(), 0);
1444 if (!thissop)
return getDebug_menu();
1446 OP_Utils::evalOpParm(result, thissop,
"debug_menu", cookparms.
getCookTime(), 0);
1454 if (!thissop)
return getDebug_coarse_lvl();
1456 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_lvl", cookparms.
getCookTime(), 0);
1464 if (!thissop)
return getDebug_coarse_iteration();
1466 OP_Utils::evalOpParm(result, thissop,
"debug_coarse_iteration", cookparms.
getCookTime(), 0);
1474 if (!thissop)
return getDebug_dense_lvl();
1476 OP_Utils::evalOpParm(result, thissop,
"debug_dense_lvl", cookparms.
getCookTime(), 0);
1484 if (!thissop)
return getDebug_dense_iteration();
1486 OP_Utils::evalOpParm(result, thissop,
"debug_dense_iteration", cookparms.
getCookTime(), 0);
1494 if (!thissop)
return getDebug_hessian_scaling();
1496 OP_Utils::evalOpParm(result, thissop,
"debug_hessian_scaling", cookparms.
getCookTime(), 0);
1504 if (!thissop)
return getDebug_use_marquadt();
1506 OP_Utils::evalOpParm(result, thissop,
"debug_use_marquadt", cookparms.
getCookTime(), 0);
1514 if (!thissop)
return getParameter_tolerance();
1516 OP_Utils::evalOpParm(result, thissop,
"parameter_tolerance", cookparms.
getCookTime(), 0);
1524 if (!thissop)
return getUse_tau();
1526 OP_Utils::evalOpParm(result, thissop,
"use_tau", cookparms.
getCookTime(), 0);
1534 if (!thissop)
return getTau();
1536 OP_Utils::evalOpParm(result, thissop,
"tau", cookparms.
getCookTime(), 0);
1544 if (!thissop)
return getInitial_damping();
1546 OP_Utils::evalOpParm(result, thissop,
"initial_damping", cookparms.
getCookTime(), 0);
1554 if (!thissop)
return getDebug_save_meshes();
1556 OP_Utils::evalOpParm(result, thissop,
"debug_save_meshes", cookparms.
getCookTime(), 0);
1564 if (!thissop)
return getUseLandmarkLables();
1566 OP_Utils::evalOpParm(result, thissop,
"uselandmarklabels", cookparms.
getCookTime(), 0);
1574 if (!thissop)
return getLandmarkAttribute();
1576 OP_Utils::evalOpParm(result, thissop,
"landmarkattrib", cookparms.
getCookTime(), 0);
1584 if (!thissop)
return getEnableLandmarks();
1586 OP_Utils::evalOpParm(result, thissop,
"enablelandmarks", cookparms.
getCookTime(), 0);
1594 if (!thissop)
return getNumlandmarkgroups().entries();
1596 OP_Utils::evalOpParm(result, thissop,
"numlandmarkgroups", cookparms.
getCookTime(), 0);
1600 {
return opinstNumlandmarkgroups_enablegroup(cookparms, &_idx); }
1604 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).enablegroup);
1606 _parmidx[1-1] = _idx[1-1] + 1;
1609 OP_Utils::evalOpParmInst(result, thissop,
"enablegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1613 {
return opinstNumlandmarkgroups_pballcolor(cookparms, &_idx); }
1617 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).pballcolor);
1619 _parmidx[1-1] = _idx[1-1] + 1;
1622 OP_Utils::evalOpParmInst(result, thissop,
"pballcolor#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1626 {
return opinstNumlandmarkgroups_pname(cookparms, &_idx); }
1630 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).
pname);
1632 _parmidx[1-1] = _idx[1-1] + 1;
1635 OP_Utils::evalOpParmInst(result, thissop,
"pname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1639 {
return opinstNumlandmarkgroups_usesourcepos(cookparms, &_idx); }
1643 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usesourcepos);
1645 _parmidx[1-1] = _idx[1-1] + 1;
1648 OP_Utils::evalOpParmInst(result, thissop,
"usesourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1652 {
return opinstNumlandmarkgroups_sourcepos(cookparms, &_idx); }
1656 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).sourcepos);
1658 _parmidx[1-1] = _idx[1-1] + 1;
1661 OP_Utils::evalOpParmInst(result, thissop,
"sourcepos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1665 {
return opinstNumlandmarkgroups_usetargetpos(cookparms, &_idx); }
1669 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).usetargetpos);
1671 _parmidx[1-1] = _idx[1-1] + 1;
1674 OP_Utils::evalOpParmInst(result, thissop,
"usetargetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1678 {
return opinstNumlandmarkgroups_targetpos(cookparms, &_idx); }
1682 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).targetpos);
1684 _parmidx[1-1] = _idx[1-1] + 1;
1687 OP_Utils::evalOpParmInst(result, thissop,
"targetpos#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1691 {
return opinstNumlandmarkgroups_psourcegroup(cookparms, &_idx); }
1695 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).psourcegroup);
1697 _parmidx[1-1] = _idx[1-1] + 1;
1700 OP_Utils::evalOpParmInst(result, thissop,
"psourcegroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1704 {
return opinstNumlandmarkgroups_ptargetgroup(cookparms, &_idx); }
1708 if (!thissop)
return (myNumlandmarkgroups(_idx[0]).ptargetgroup);
1710 _parmidx[1-1] = _idx[1-1] + 1;
1713 OP_Utils::evalOpParmInst(result, thissop,
"ptargetgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1722 if (!thissop)
return getRigidMask();
1724 OP_Utils::evalOpParm(result, thissop,
"rigidmask", cookparms.
getCookTime(), 0);
1730 bool myEnableGeometryConstraints;
1731 int64 myConstraintSelection;
1734 int64 myReducedLevels;
1736 fpreal64 myReductionPercentageSingle;
1737 fpreal64 myInitialReductionPercentage;
1746 int64 mySolverIterations;
1749 int64 myDebug_coarse_lvl;
1750 int64 myDebug_coarse_iteration;
1751 int64 myDebug_dense_lvl;
1752 int64 myDebug_dense_iteration;
1753 bool myDebug_hessian_scaling;
1754 bool myDebug_use_marquadt;
1759 bool myDebug_save_meshes;
1760 bool myUseLandmarkLables;
1762 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
T clampMaxValue(fpreal maxvalue, const T &src) 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
T clampMinValue(fpreal minvalue, const T &src) 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 coerceValue(T &result, const S &src) const
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)
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
OP_NodeParms & operator=(const OP_NodeParms &)=default
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
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)