/// <summary>
        /// create a new Casting node
        /// </summary>
        /// <param name="graph"></param>
        /// <param name="input"></param>
        /// <param name="output"></param>
        /// <param name="pos"></param>
        /// <returns></returns>
        public static NodeBase CreateNode(NodeGraph graph, VarType input, VarType output, Vector2 pos)
        {
            CastNode res = null;

            if (graph != null)
            {
                res = ScriptableObject.CreateInstance <CastNode>();
                res.Initialize();
                res.Construct(input, output);
                InitNode(res, graph, pos);
            }
            return(res);
        }