public void generateKeyframeFromBone(MDL0BoneNode b, int frame, bool allowOverwrite, bool generateOrigin)
 {
     if (!generateOrigin)
     {
         if (b.isOriginRot() && b.isOriginScale() && b.isOriginTrans())
         {
             //Console.WriteLine("      " + b + " has all values equal to origin. Not generating keyframes.");
             return;
         }
     }
     //Console.WriteLine(_numFrames);
     if (frame < ((CHR0Node)_parent)._numFrames)
     {
         //Console.WriteLine("        ROTATION IS: " + b.Rotation);
         if (generateOrigin || !b.isOriginRot())
         {
             //Console.WriteLine("          GENERATED");
             SetKeyframeOnlyRot(frame, b.Rotation);
         }
         //Console.WriteLine("        SCALE IS: " + b.Scale);
         if (generateOrigin || !b.isOriginScale())
         {
             //Console.WriteLine("          GENERATED");
             SetKeyframeOnlyScale(frame, b.Scale);
         }
         //Console.WriteLine("        TRANSLATION IS: " + b.Translation);
         if (generateOrigin || !b.isOriginTrans())
         {
             //Console.WriteLine("          GENERATED");
             SetKeyframeOnlyTrans(frame, b.Translation);
         }
     }
     SignalPropertyChange();
     UpdateProperties();
 }
        public CHR0EntryNode CreateEntryFromBone(MDL0BoneNode b, int framesToGenerate, bool generateOrigin)
        {
            CHR0EntryNode n = new CHR0EntryNode();

            if (!generateOrigin)
            {
                if (b.isOriginRot() && b.isOriginScale() && b.isOriginTrans())
                {
                    //Console.WriteLine("      " + b + " has all values equal to origin. Not generating keyframes.");
                    return(null);
                }
            }
            n._name = this.FindName(b.Name);
            AddChild(n);
            n.SetSize(_numFrames, Loop);
            //Console.WriteLine(_numFrames);
            for (int i = 0; i < framesToGenerate; ++i)
            {
                n.generateKeyframeFromBone(b, i, true, generateOrigin);
            }
            SignalPropertyChange();
            return(n);
        }