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_;
    }
        public override CommandNode DeepClone(GameObject dataHolder)
        {
            CNServos clone = CRTreeNode.CreateInstance <CNServos>(dataHolder);

            clone.objectsA_ = ObjectsA.DeepClone();
            clone.objectsB_ = ObjectsB.DeepClone();

            clone.Name = Name;

            clone.isLinearOrAngular_ = isLinearOrAngular_;

            clone.isPositionOrVelocity_ = isPositionOrVelocity_;
            clone.isCreateModeNearest_  = isCreateModeNearest_;
            clone.isCreateModeChain_    = isCreateModeChain_;

            clone.isFreeX_ = isFreeX_;
            clone.isFreeY_ = isFreeY_;
            clone.isFreeZ_ = isFreeZ_;

            clone.isBlockedX_ = isBlockedX_;
            clone.isBlockedY_ = isBlockedY_;
            clone.isBlockedZ_ = isBlockedZ_;

            clone.disableCollisionByPairs_ = disableCollisionByPairs_;

            clone.targetExternal_LOCAL_ = targetExternal_LOCAL_;

            clone.reactionTime_      = reactionTime_;
            clone.overreactionDelta_ = overreactionDelta_;;

            clone.speedMax_ = speedMax_;
            clone.powerMax_ = powerMax_;
            clone.forceMax_ = forceMax_;

            clone.brakePowerMax_ = brakePowerMax_;
            clone.brakeForceMax_ = brakeForceMax_;

            clone.isBreakIfDist_ = isBreakIfDist_;

            clone.isBreakIfAng_ = isBreakIfAng_;

            clone.breakDistance_       = breakDistance_;
            clone.breakAngleInDegrees_ = breakAngleInDegrees_;

            clone.dampingForce_ = dampingForce_;

            clone.distStepToDefineMultiplierDependingOnDist_ = distStepToDefineMultiplierDependingOnDist_;

            clone.functionMultiplierDependingOnDist_ = new AnimationCurve();

            int nKeys = functionMultiplierDependingOnDist_.length;

            Keyframe[] arrKeys = functionMultiplierDependingOnDist_.keys;

            Keyframe[] arrClonedKey = new Keyframe[nKeys];

            for (int i = 0; i < nKeys; i++)
            {
                arrClonedKey[i] = arrKeys[i];
            }
            clone.functionMultiplierDependingOnDist_.keys = arrClonedKey;

            clone.multiplier_ = multiplier_;
            return(clone);
        }
Exemple #4
0
        protected override void CloneData(CommandNode node)
        {
            base.CloneData(node);

            CNServos clone = (CNServos)node;

            clone.objectsA_ = ObjectsA.DeepClone();
            clone.objectsB_ = ObjectsB.DeepClone();

            clone.isLinearOrAngular_ = isLinearOrAngular_;

            clone.isPositionOrVelocity_ = isPositionOrVelocity_;
            clone.isCreateModeNearest_  = isCreateModeNearest_;
            clone.isCreateModeChain_    = isCreateModeChain_;

            clone.localSystem_ = localSystem_;

            clone.isFreeX_ = isFreeX_;
            clone.isFreeY_ = isFreeY_;
            clone.isFreeZ_ = isFreeZ_;

            clone.isBlockedX_ = isBlockedX_;
            clone.isBlockedY_ = isBlockedY_;
            clone.isBlockedZ_ = isBlockedZ_;

            clone.disableCollisionByPairs_ = disableCollisionByPairs_;

            clone.targetExternal_LOCAL_ = targetExternal_LOCAL_;

            if (targetExternal_LOCAL_NEW_ != null)
            {
                clone.targetExternal_LOCAL_NEW_ = targetExternal_LOCAL_NEW_.DeepClone();
            }

            clone.reactionTime_      = reactionTime_;
            clone.overreactionDelta_ = overreactionDelta_;;

            clone.speedMax_     = speedMax_;
            clone.maximumSpeed_ = maximumSpeed_;
            clone.powerMax_     = powerMax_;
            clone.maximumPower_ = maximumPower_;
            clone.forceMax_     = forceMax_;
            clone.maximumForce_ = maximumForce_;

            clone.brakePowerMax_        = brakePowerMax_;
            clone.maximumBrakePowerMax_ = maximumBrakePowerMax_;
            clone.brakeForceMax_        = brakeForceMax_;
            clone.maximumBrakeForceMax_ = maximumBrakeForceMax_;

            clone.isBreakIfDist_ = isBreakIfDist_;
            clone.isBreakIfAng_  = isBreakIfAng_;

            clone.breakDistance_       = breakDistance_;
            clone.breakAngleInDegrees_ = breakAngleInDegrees_;

            clone.dampingForce_ = dampingForce_;

            clone.distStepToDefineMultiplierDependingOnDist_ = distStepToDefineMultiplierDependingOnDist_;
            clone.functionMultiplierDependingOnDist_         = functionMultiplierDependingOnDist_.DeepClone();

            clone.multiplier_ = multiplier_;
        }