Exemplo n.º 1
0
        public override CommandNode DeepClone(GameObject dataHolder)
        {
            CNFracture clone = CRTreeNode.CreateInstance <CNFracture>(dataHolder);

            CloneData(clone);
            return(clone);
        }
Exemplo n.º 2
0
 public static T CreateInstance<T>(GameObject dataHolder, CRTreeNode parent)
   where T: CRTreeNode
 {
   T instance = dataHolder.AddComponent<T>();
   instance.Parent = parent;
   instance.Children = new CRTreeNodeList(instance);
   return instance;
 }
        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);
        }
        public void Traversal(CRTreeTraversalDelegate treeNodeTraversal)
        {
            treeNodeTraversal(this);

            for (int i = 0; i < ChildCount; ++i)
            {
                CRTreeNode childNode = Children[i];
                if (childNode != null)
                {
                    childNode.Traversal(treeNodeTraversal);
                }
            }
        }
Exemplo n.º 5
0
    public bool isAncestorOf(CRTreeNode node)
    {
      if (this == node.Parent )
      {
        return true;
      }

      while (node.Parent != null)
      {
        return isAncestorOf(node.Parent);
      }

      return false;
    }
Exemplo n.º 6
0
    //----------------------------------------------------------------------------------
    public override CommandNode DeepClone( GameObject go )
    {
      CNGroup clonedGroup = CRTreeNode.CreateInstance<CNGroup>(go);
      CloneData( clonedGroup );

      for ( int i = 0 ; i < ChildCount; ++i )
      {
        CommandNode child = (CommandNode) Children[i];
        CommandNode cloneChild = child.DeepClone( go );
        cloneChild.Parent = clonedGroup;
      }

      return clonedGroup;
    }
Exemplo n.º 7
0
        public void AddAfter(CRTreeNode node, CRTreeNode previousNode)
        {
            int indexOfPrevious = listTreeNode_.IndexOf(previousNode);

            if (indexOfPrevious == -1)
            {
                listTreeNode_.Insert(0, node);
            }
            else
            {
                listTreeNode_.Insert(indexOfPrevious + 1, node);
            }
            node.Parent = Parent;
        }
        public bool isAncestorOf(CRTreeNode node)
        {
            if (this == node.Parent)
            {
                return(true);
            }

            while (node.Parent != null)
            {
                return(isAncestorOf(node.Parent));
            }

            return(false);
        }
Exemplo n.º 9
0
    public void Traversal(CRTreeTraversalDelegate treeNodeTraversal, CRTreeAddConditionDelegate treeNodeAddCondition)
    {
      if (treeNodeAddCondition(this))
      {
        treeNodeTraversal(this);

        for (int i = 0; i < ChildCount; ++i)
        {
          CRTreeNode childNode = Children[i];
          if (childNode != null)
          {
            childNode.Traversal(treeNodeTraversal, treeNodeAddCondition);
          }
        }
      }
    }
        public override CommandNode DeepClone(GameObject dataHolder)
        {
            CNFracture clone = CRTreeNode.CreateInstance <CNFracture>(dataHolder);

            clone.field_ = Field.DeepClone();

            clone.Name = Name;

            clone.chopMode_                  = chopMode_;
            clone.doGlobalPattern_           = doGlobalPattern_;
            clone.nDesiredPieces_            = nDesiredPieces_;
            clone.seed_                      = seed_;
            clone.chopGeometry_              = chopGeometry_;
            clone.gridResolution_            = gridResolution_;
            clone.focusMode_                 = focusMode_;
            clone.densityRate_               = densityRate_;
            clone.transitionLength_          = transitionLength_;
            clone.referenceSystem_           = referenceSystem_;
            clone.referenceSystemAxis_       = referenceSystemAxis_;
            clone.rays_number_               = rays_number_;
            clone.rays_rateRand_             = rays_number_;
            clone.rings_numberInsideAnnulus_ = rings_numberInsideAnnulus_;
            clone.rings_intRadius_           = rings_numberInsideAnnulus_;
            clone.rings_extRadius_           = rings_extRadius_;
            clone.rings_intTransitionLength_ = rings_intTransitionLength_;
            clone.rings_extTransitionLength_ = rings_extTransitionLength_;
            clone.rings_intTransitionDecay_  = rings_intTransitionDecay_;
            clone.rings_extTransitionDecay_  = rings_extTransitionDecay_;
            clone.rings_rateRand_            = rings_rateRand_;
            clone.doCentralPiece_            = doCentralPiece_;
            clone.noiseRate_                 = noiseRate_;
            clone.twistRate_                 = twistRate_;
            clone.doExtrusionEffect_         = doExtrusionEffect_;
            clone.doCoordinate_              = doCoordinate_;
            clone.arrGameObject_chopped_     = arrGameObject_chopped_;
            clone.interiorMaterial_          = interiorMaterial_;

            clone.hideParentObjectsAuto_ = hideParentObjectsAuto_;
            clone.cropGeometry_          = cropGeometry_;
            clone.cropMode_       = cropMode_;
            clone.frontierPieces_ = frontierPieces_;
            clone.weldInOnePiece_ = weldInOnePiece_;

            return(clone);
        }
Exemplo n.º 11
0
    //----------------------------------------------------------------------------------
    public override CommandNode DeepClone( GameObject go)
    {
      CNGroup clonedGroup = CRTreeNode.CreateInstance<CNGroup>(go);

      clonedGroup.field_ = field_.DeepClone();

      clonedGroup.Name               = Name;
      clonedGroup.IsOpen             = IsOpen;
      clonedGroup.isEffectRoot_      = isEffectRoot_;     

      for ( int i = 0 ; i < ChildCount; ++i )
      {
        CommandNode child = (CommandNode) Children[i];
        CommandNode cloneChild = child.DeepClone( go );
        cloneChild.Parent = clonedGroup;
      }

      return clonedGroup;
    }
Exemplo n.º 12
0
    public bool Find(CRTreeFindDelegate treeFindDelegate)
    {
      bool found = treeFindDelegate(this);

      for (int i = 0; i < ChildCount; ++i)
      {
        CRTreeNode childNode = Children[i];
        if (childNode != null)
        {
          found |= childNode.Find(treeFindDelegate);
          if (found)
          {
            return found;
          }
        }
      }

      return found;
    }
Exemplo n.º 13
0
    public void Traversal(CRTreeTraversalIndentationDelegate treeNodeTraversal, CRTreeAddConditionDelegate treeNodeAddCondition, CRTreeDescendConditionDelegate treeNodeDescendCondition, int indentation)
    {
      if (treeNodeAddCondition(this))
      {
        treeNodeTraversal(this, indentation);

        if (treeNodeDescendCondition(this))
        {
          for (int i = 0; i < ChildCount; ++i)
          {
            CRTreeNode childNode = Children[i];
            if (childNode != null)
            {
              childNode.Traversal(treeNodeTraversal, treeNodeAddCondition, treeNodeDescendCondition, indentation + 1);
            }
          }
        }
      }
    }
    public void e_addEffect()
    {
      GameObject dataHolder = TargetGetDataHolder().gameObject;
      
      CREffectData e = new CREffectData();
      string name    = "Empty Effect";
      
      e.SetDefault();

      e.name_                  = name;
      e.rootNode_              = CRTreeNode.CreateInstance<CNGroup>(dataHolder);
      e.rootNode_.IsEffectRoot = true;
      e.rootNode_.Name         = "root";

      e.subeffectsNode_ = CRTreeNode.CreateInstance<CNGroup>(dataHolder, e.rootNode_);
      e.subeffectsNode_.Name = "Subeffects";
      e.subeffectsNode_.IsSubeffectsFolder = true;
      
      CNGravity gravityDaemon = CRTreeNode.CreateInstance<CNGravity>(dataHolder, e.rootNode_);
      gravityDaemon.Name = "Gravity_0";
 
      effect = e;
    }
        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);
        }
Exemplo n.º 16
0
 public override CommandNode DeepClone(GameObject dataHolder)
 {
   CNJointGroups clone = CRTreeNode.CreateInstance<CNJointGroups>(dataHolder);      
   CloneData(clone);     
   return clone;
 }
Exemplo n.º 17
0
 public bool Contains(CRTreeNode node)
 {
     return(listTreeNode_.Contains(node));
 }
Exemplo n.º 18
0
 public bool Remove(CRTreeNode node)
 {
     return(listTreeNode_.Remove(node));
 }
Exemplo n.º 19
0
 public void Add(CRTreeNode node)
 {
     listTreeNode_.Add(node);
     node.Parent = Parent;
 }
Exemplo n.º 20
0
 public CRTreeNodeList(CRTreeNode parent)
 {
     this.Parent   = parent;
     listTreeNode_ = new List <CRTreeNode>();
 }