( self, parameterised, parameter, data, parameterList=[], invertList=False )
| 465 | self._applyHierarchy( parameterised, c.parameters(), data["_classValue_"], parameterList, invertList ) |
| 466 | |
| 467 | def _applyClassVector( self, parameterised, parameter, data, parameterList=[], invertList=False ) : |
| 468 | |
| 469 | if not isinstance( parameter, IECore.ClassVectorParameter ) : |
| 470 | IECore.msg( |
| 471 | IECore.Msg.Level.Warning, |
| 472 | "IECore.BasicPreset", |
| 473 | "Unable to restore to '%s' (%s) as it isnt a ClassVectorParameter" |
| 474 | % ( parameter.name, parameter ) |
| 475 | ) |
| 476 | return |
| 477 | |
| 478 | overwrite = self.parameters()["overwriteMatchingComponents"].getTypedValue() |
| 479 | |
| 480 | names = data["_classNames_"] |
| 481 | versions = data["_classVersions_"] |
| 482 | paramNames = data["_classOrder_"] |
| 483 | |
| 484 | for i in range( len( data["_classNames_"] ) ) : |
| 485 | |
| 486 | # We still have the class information, even if |
| 487 | # there were no parameter values saved. |
| 488 | if paramNames[i] not in data["_values_"] : |
| 489 | continue |
| 490 | |
| 491 | if overwrite: |
| 492 | |
| 493 | c = None |
| 494 | |
| 495 | if paramNames[i] in parameter: |
| 496 | c = parameter.getClass( paramNames[i], True ) |
| 497 | |
| 498 | if not c or c[1:] != ( paramNames[i], names[i], versions[i] ) : |
| 499 | parameter.setClass( paramNames[i], names[i], versions[i] ) |
| 500 | |
| 501 | c = parameter.getClass( paramNames[i], True ) |
| 502 | |
| 503 | else: |
| 504 | |
| 505 | c = self._addClassToVector( |
| 506 | parameter, |
| 507 | paramNames[i], |
| 508 | names[i], |
| 509 | versions[i], |
| 510 | ) |
| 511 | |
| 512 | |
| 513 | self._applyHierarchy( |
| 514 | parameterised, |
| 515 | c[0].parameters(), |
| 516 | data["_values_"][ paramNames[i] ], |
| 517 | parameterList, |
| 518 | invertList |
| 519 | ) |
| 520 | |
| 521 | def _addClassToVector( self, parameter, parameterName, className, classVersion ) : |
| 522 |
no test coverage detected