public override CommandNode DeepClone(GameObject dataHolder) { CNJointGroups clone = CRTreeNode.CreateInstance <CNJointGroups>(dataHolder); clone.objectsA_ = ObjectsA.DeepClone(); clone.objectsB_ = ObjectsB.DeepClone(); clone.locatorsC_ = LocatorsC.DeepClone(); clone.Name = Name; clone.needsUpdate_ = needsUpdate_; clone.creationMode_ = creationMode_; clone.isRigidGlue_ = isRigidGlue_; clone.contactDistanceSearch_ = contactDistanceSearch_; clone.contactAreaMin_ = contactAreaMin_; clone.contactAngleMaxInDegrees_ = contactAngleMaxInDegrees_; clone.contactNumberMax_ = contactNumberMax_; clone.matchingDistanceSearch_ = matchingDistanceSearch_; clone.limitNumberOfActiveJoints_ = limitNumberOfActiveJoints_; clone.activeJointsMaxInABPair_ = activeJointsMaxInABPair_; clone.disableCollisionsByPairs_ = disableCollisionsByPairs_; clone.disableAllCollisionsOfAsWithBs_ = disableAllCollisionsOfAsWithBs_; clone.forcemaxMode_ = forcemaxMode_; clone.forceMax_ = forceMax_; clone.forceMaxRand_ = forceMaxRand_; clone.forceProfile_ = new AnimationCurve(); int nKeys = forceProfile_.length; Keyframe[] arrKeys = forceProfile_.keys; Keyframe[] arrClonedKey = new Keyframe[nKeys]; for (int i = 0; i < nKeys; i++) { arrClonedKey[i] = arrKeys[i]; } clone.forceProfile_.keys = arrClonedKey; clone.enableCollisionIfBreak_ = enableCollisionIfBreak_; clone.breakIfForceMax_ = breakIfForceMax_; clone.breakAllIfLeftFewUnbroken_ = breakAllIfLeftFewUnbroken_; clone.unbrokenNumberForBreakAll_ = unbrokenNumberForBreakAll_; clone.breakIfDistExcedeed_ = breakIfDistExcedeed_; clone.distanceForBreak_ = distanceForBreak_; clone.distanceForBreakRand_ = distanceForBreakRand_; clone.breakIfHinge_ = breakIfHinge_; clone.plasticity_ = plasticity_; clone.distanceForPlasticity_ = distanceForPlasticity_; clone.plasticityRateAcquired_ = plasticityRateAcquired_; return(clone); }
protected override void CloneData(CommandNode node) { base.CloneData(node); CNJointGroups clone = (CNJointGroups)node; clone.objectsA_ = ObjectsA.DeepClone(); clone.objectsB_ = ObjectsB.DeepClone(); clone.locatorsC_ = LocatorsC.DeepClone(); clone.delayedCreationTime_ = delayedCreationTime_; clone.creationMode_ = creationMode_; clone.isRigidGlue_ = isRigidGlue_; clone.contactDistanceSearch_ = contactDistanceSearch_; clone.contactAreaMin_ = contactAreaMin_; clone.contactAngleMaxInDegrees_ = contactAngleMaxInDegrees_; clone.contactNumberMax_ = contactNumberMax_; clone.matchingDistanceSearch_ = matchingDistanceSearch_; clone.limitNumberOfActiveJoints_ = limitNumberOfActiveJoints_; clone.activeJointsMaxInABPair_ = activeJointsMaxInABPair_; clone.disableCollisionsByPairs_ = disableCollisionsByPairs_; clone.disableAllCollisionsOfAsWithBs_ = disableAllCollisionsOfAsWithBs_; clone.forcemaxMode_ = forcemaxMode_; clone.forceMax_ = forceMax_; clone.forceMaxRand_ = forceMaxRand_; clone.forceProfile_ = forceProfile_.DeepClone(); clone.enableCollisionIfBreak_ = enableCollisionIfBreak_; clone.breakIfForceMax_ = breakIfForceMax_; clone.breakAllIfLeftFewUnbroken_ = breakAllIfLeftFewUnbroken_; clone.unbrokenNumberForBreakAll_ = unbrokenNumberForBreakAll_; clone.breakIfDistExcedeed_ = breakIfDistExcedeed_; clone.distanceForBreak_ = distanceForBreak_; clone.distanceForBreakRand_ = distanceForBreakRand_; clone.breakIfHinge_ = breakIfHinge_; clone.plasticity_ = plasticity_; clone.distanceForPlasticity_ = distanceForPlasticity_; clone.plasticityRateAcquired_ = plasticityRateAcquired_; clone.delayedCreationTime_ = delayedCreationTime_; clone.damping_ = damping_; }