object IContentProcessor.Process(object input, ContentProcessorContext context)
        {
            var model       = Process((NodeContent)input, context);
            var outputModel = new DynamicModelContent(model);

            foreach (var mesh in outputModel.Meshes)
            {
                foreach (var part in mesh.MeshParts)
                {
                    ProcessVertexBuffer(outputModel, context, part);
                    ProcessIndexBuffer(outputModel, context, part);
                }
            }

            // import animation
            var animationProcessor = new AnimationsProcessor();

            animationProcessor.MaxBones = this.MaxBones;
            animationProcessor.GenerateKeyframesFrequency = this.GenerateKeyframesFrequency;
            animationProcessor.FixRealBoneRoot            = this._fixRealBoneRoot;
            var animation = animationProcessor.Process((NodeContent)input, context);

            outputModel.Tag = animation;

            //ProcessNode((NodeContent)input);

            return(outputModel);
        }
        public override ModelContent Process(NodeContent input, ContentProcessorContext context)
        {
            var animationProcessor = new AnimationsProcessor();

            animationProcessor.MaxBones = this.MaxBones;
            animationProcessor.GenerateKeyframesFrequency = this.GenerateKeyframesFrequency;
            animationProcessor.FixRealBoneRoot            = this._fixRealBoneRoot;
            var animation = animationProcessor.Process(input, context);

            ModelContent model = base.Process(input, context);

            model.Tag = animation;
            return(model);
        }