public ParticleStateControl(ParticleStateControlConstructionParams csParam)
            : base(csParam)
        {
            InitConstruction();

            NodeName = csParam.NodeName;

            //csParam.SetHostNodesContainerEvent -= InitGraphEvent;
            //csParam.SetHostNodesContainerEvent += InitGraphEvent;
            //InitGraphEvent();
            if (string.IsNullOrEmpty(NodeName))
            {
                NodeName = "ParticleState";
            }

            IsOnlyReturnValue = true;
            AddLinkPinInfo("ParticleStateControlDown", mCtrlValueLinkHandleDown, null);
            AddLinkPinInfo("ParticleStateControlUp", mCtrlValueLinkHandleUp, null);

            mCtrlValueLinkHandleDown.ResetDefaultFilter();
            mCtrlValueLinkHandleDown.ResetDefaultFilterByShape("ParticleStateControlUp");
            CreateObject.CreateObjectConstructionParams createobjparam = new CreateObject.CreateObjectConstructionParams();
            createobjparam.CreateType = csParam.CreateType;
            createObject = new CreateObject(createobjparam);
            createObject.CreateTemplateClas();

            createObject.SetPropertyChangedEvent(OnPropertyChanged);
        }
        public ParticleTextureCutControl(ParticleTextureCutControlConstructionParams csParam)
            : base(csParam)
        {
            InitConstruction();

            //var cpInfos = new List<CodeGenerateSystem.Base.CustomPropertyInfo>();
            //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "Name", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() }));
            //mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, true);

            //var clsType = mTemplateClassInstance.GetType();
            //var xNamePro = clsType.GetProperty("Name");
            //xNamePro.SetValue(mTemplateClassInstance, csParam.NodeName);

            NodeName = csParam.NodeName;

            if (string.IsNullOrEmpty(NodeName))
            {
                NodeName = "ParticleTextureCut";
            }

            IsOnlyReturnValue = true;
            AddLinkPinInfo("ParticleTextureCutControlDown", mCtrlValueLinkHandleDown, null);
            AddLinkPinInfo("ParticleTextureCutControlUp", mCtrlValueLinkHandleUp, null);

            mCtrlValueLinkHandleDown.ResetDefaultFilterBySystem("ParticleTextureCutControlUp");

            CreateObject.CreateObjectConstructionParams createobjparam = new CreateObject.CreateObjectConstructionParams();
            createobjparam.CreateType = csParam.CreateType;
            createObject = new CreateObject(createobjparam);
            createObject.CreateTemplateClas();

            createObject.SetPropertyChangedEvent(OnPropertyChanged);
        }
        public ParticleSystemControl(ParticleSystemControlConstructionParams csParam)
            : base(csParam)
        {
            InitConstruction();

            if (string.IsNullOrEmpty(csParam.NodeName))
            {
                csParam.NodeName = "ParticleSystem";//ParticleSystem
            }
            NodeName          = csParam.NodeName;
            IsOnlyReturnValue = true;
            AddLinkPinInfo("ParticleSystemControlDown", mCtrlValueLinkHandleDown, null);

            mCtrlValueLinkHandleDown.AddFilterData("ParticleShapeControlUp");
            mCtrlValueLinkHandleDown.ResetDefaultFilterBySystem();

            CreateObject.CreateObjectConstructionParams createobjparam = new CreateObject.CreateObjectConstructionParams();
            createobjparam.CreateType = csParam.CreateType;
            createObject = new CreateObject(createobjparam);
            createObject.CreateTemplateClas();
        }