当前位置: 首页>>代码示例>>C#>>正文


C# EffectNode类代码示例

本文整理汇总了C#中EffectNode的典型用法代码示例。如果您正苦于以下问题:C# EffectNode类的具体用法?C# EffectNode怎么用?C# EffectNode使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


EffectNode类属于命名空间,在下文中一共展示了EffectNode类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AttractionForceAffector

 public AttractionForceAffector(float magnitude, Vector3 pos, EffectNode node)
     : base(node)
 {
     Magnitude = magnitude;
     Position = pos;
     UseCurve = false;
 }
开发者ID:wskidmore,项目名称:mdc,代码行数:7,代码来源:Affector.cs

示例2: TimedSequenceEditorEffectEditor

        public TimedSequenceEditorEffectEditor(EffectNode effectNode)
        {
            InitializeComponent();

            _effectNode = effectNode;
            IEnumerable<IEffectEditorControl> controls = ApplicationServices.GetEffectEditorControls(_effectNode.Effect.Descriptor.TypeId);

            if (controls == null) {
                Label l = new Label();
                l.Text = "Can't find any effect editors that can edit this effect!";
                l.Anchor = AnchorStyles.None;
                tableLayoutPanelEffectEditors.Controls.Add(l);
                tableLayoutPanelEffectEditors.SetColumnSpan(l, 2);
                return;
            }

            _controls = new List<IEffectEditorControl>();
            object[] values = _effectNode.Effect.ParameterValues;

            // if there were multiple controls returned, or there was only a single control needed (ie. the efffect parameters had only
            // a single item) then add controls inside a ParameterEditor wrapper using editors for that type, and label them appropriately.
            // if it was only a single control returned, it must have matched the entire effect (by GUID or signature), so just dump the
            // control it, and let it deal with everything it needs to.
            if (controls.Count() > 1 || (controls.Count() == 1 && (_effectNode.Effect.Descriptor as IEffectModuleDescriptor).Parameters.Count == 1)) {
                _usedSingleControl = false;
                int i = 0;
                foreach (IEffectEditorControl ec in controls) {
                    // as it's a single control for a single parameter, it *should* take the corresponding indexed parameter from the effect.
                    // so pull that individual parameter out, and give it to the control as a single item. This is a bit of an assumption
                    // and seems...... prone to breaking. TODO: review.
                    ec.EffectParameterValues = values[i].AsEnumerable().ToArray();

                    ec.TargetEffect = effectNode.Effect;

                    Label l = new Label();
                    l.Width = 1;
                    l.Height = 1;
                    l.Text = _effectNode.Effect.Parameters[i].Name + ":";
                    l.AutoSize = true;
                    l.Anchor = AnchorStyles.None;
                    tableLayoutPanelEffectEditors.Controls.Add(l);

                    (ec as Control).Anchor = AnchorStyles.None;
                    tableLayoutPanelEffectEditors.Controls.Add(ec as Control);

                    // save the editor control into a list we can use as a reference later on, to pull the data back out of them in the right order.
                    _controls.Add(ec);
                    i++;
                }
            } else {
                _usedSingleControl = true;
                IEffectEditorControl control = controls.First();
                control.EffectParameterValues = _effectNode.Effect.ParameterValues;
                control.TargetEffect = effectNode.Effect;
                tableLayoutPanelEffectEditors.Controls.Add(control as Control);
                tableLayoutPanelEffectEditors.SetColumnSpan((control as Control), 2);

                _controls.Add(control);
            }
        }
开发者ID:kjburns31,项目名称:vixen-modules,代码行数:60,代码来源:TimedSequenceEditorEffectEditor.cs

示例3: TimedSequenceElement

		public TimedSequenceElement(EffectNode effectNode)
			: base()
		{
			StartTime = effectNode.StartTime;
			Duration = effectNode.TimeSpan;
			EffectNode = effectNode;
		}
开发者ID:stewmc,项目名称:vixen,代码行数:7,代码来源:TimedSequenceElement.cs

示例4: TimedSequenceElement

 public TimedSequenceElement(EffectNode effectNode)
     : base()
 {
     StartTime = effectNode.StartTime;
     Duration = effectNode.TimeSpan;
     EffectNode = effectNode;
     //BorderColor = Color.Black;
     //BackColor = Color.FromArgb(0, 0, 0, 0);
 }
开发者ID:Jchuchla,项目名称:vixen,代码行数:9,代码来源:TimedSequenceElement.cs

示例5: _DataListener

 protected override bool _DataListener(IEffectNode effectNode)
 {
     //*** compensation delta, user-configurable
     IEffectNode contextRelativeEffectNode = new EffectNode(effectNode.Effect,
                                                            effectNode.StartTime + TimingSource.Position);
     Sequence.SequenceData.EffectData.AddData(contextRelativeEffectNode);
     // We don't want any handlers beyond the executor to get live data.
     return true;
 }
开发者ID:Jchuchla,项目名称:vixen,代码行数:9,代码来源:ScriptExecutor.cs

示例6: GetEmitRotation

 public Vector3 GetEmitRotation(EffectNode node)
 {
     Vector3 ret = Vector3.zero;
     //Set Direction:
     //NOTICE:SPHERE AND CIRCLE Emitter, default dir is spread from the center. not influenced with the IsRandomDir and VelocityAxis.
     if (Layer.EmitType == (int)EMITTYPE.SPHERE)
     {
         if (!Layer.SyncClient)
         {
             ret = node.Position - (Layer.ClientTransform.position + Layer.EmitPoint);
         }
         else
         {
             ret = node.Position - Layer.EmitPoint;
         }
     }
     else if (Layer.EmitType == (int)EMITTYPE.CIRCLE)
     {
         Vector3 dir;
         if (!Layer.SyncClient)
             dir = node.Position - (Layer.ClientTransform.position + Layer.EmitPoint);
         else
             dir = node.Position - Layer.EmitPoint;
         Vector3 target = Vector3.RotateTowards(dir, Layer.CircleDir, (90 - Layer.AngleAroundAxis) * Mathf.Deg2Rad, 1);
         Quaternion rot = Quaternion.FromToRotation(dir, target);
         ret = rot * dir;
     }
     else if (Layer.IsRandomDir)
     {
         //first, rotate y around z 30 degrees
         Quaternion rotY = Quaternion.Euler(0, 0, Layer.AngleAroundAxis);
         //second, rotate around y 360 random dir;
         Quaternion rotAround = Quaternion.Euler(0, Random.Range(0, 360), 0);
         //last, rotate the dir to OriVelocityAxis
         Quaternion rotTo = Quaternion.FromToRotation(Vector3.up, Layer.OriVelocityAxis);
         ret = rotTo * rotAround * rotY * Vector3.up;
     }
     else
     {
         ret = Layer.OriVelocityAxis;
     }
     return ret;
 }
开发者ID:wskidmore,项目名称:mdc,代码行数:43,代码来源:Emitter.cs

示例7: InitAffectors

    protected List<Affector> InitAffectors(EffectNode node)
    {
        List<Affector> AffectorList = new List<Affector>();

        if (UVAffectorEnable)
        {
            UVAnimation uvAnim = new UVAnimation();
            if (UVType == 1)
            {
                float perWidth = OriUVDimensions.x / Cols;
                float perHeight = Mathf.Abs(OriUVDimensions.y / Rows);
                Vector2 cellSize = new Vector2(perWidth, perHeight);
                uvAnim.BuildUVAnim(OriTopLeftUV, cellSize, Cols, Rows, Cols * Rows);
            }
            UVDimension = uvAnim.UVDimensions[0];
            UVTopLeft = uvAnim.frames[0];

            if (uvAnim.frames.Length != 1)
            {
                uvAnim.loopCycles = LoopCircles;
                Affector aft = new UVAffector(uvAnim, UVTime, node, RandomStartFrame);
                AffectorList.Add(aft);
            }
        }
        else
        {
            UVDimension = OriUVDimensions;
            UVTopLeft = OriTopLeftUV;
        }

        if (RotAffectorEnable && RotateType != RSTYPE.NONE)
        {
            Affector aft;
            if (RotateType == RSTYPE.CURVE)
                aft = new RotateAffector(RotateCurve, node);
            else
                aft = new RotateAffector(DeltaRot, node);
            AffectorList.Add(aft);
        }
        if (ScaleAffectorEnable && ScaleType != RSTYPE.NONE)
        {
            Affector aft;

            if (UseSameScaleCurve)
                ScaleYCurve = ScaleXCurve;

            if (ScaleType == RSTYPE.CURVE)
                aft = new ScaleAffector(ScaleXCurve, ScaleYCurve, node);
            else
                aft = new ScaleAffector(DeltaScaleX, DeltaScaleY, node);
            AffectorList.Add(aft);
        }
        if (ColorAffectorEnable /*&& ColorAffectType != 0*/)
        {
            ColorAffector aft = new ColorAffector(this, node);
            AffectorList.Add(aft);
        }
        if (JetAffectorEnable)
        {
            Affector aft = new JetAffector(JetMag,JetMagType,JetCurve,node);
            AffectorList.Add(aft);
        }
        if (VortexAffectorEnable)
        {
            Affector aft;
            aft = new VortexAffector(VortexObj, VortexMagType, VortexMag, VortexCurve, VortexDirection, VortexInheritRotation, node);

            AffectorList.Add(aft);
        }
        if (UVRotAffectorEnable)
        {
            Affector aft;

            float xscroll = UVRotXSpeed;
            float yscroll = UVRotYSpeed;
            if (RandomUVRotateSpeed)
            {
                xscroll = Random.Range(UVRotXSpeed,UVRotXSpeedMax);
                yscroll = Random.Range(UVRotYSpeed,UVRotYSpeedMax);
            }

            aft = new UVRotAffector(xscroll, yscroll, node);
            AffectorList.Add(aft);
        }

        if (GravityAffectorEnable)
        {
            Affector aft;
            aft = new GravityAffector(GravityObject, GravityAftType, GravityMagType, IsGravityAccelerate,GravityDirection, GravityMag, GravityCurve, node);
            AffectorList.Add(aft);

            if (GravityAftType == GAFTTYPE.Spherical && GravityObject == null)
            {
                Debug.LogWarning("Gravity Object is missing, automatically set to effect layer self:" + gameObject.name);
                GravityObject = transform;
            }

        }
        if (AirAffectorEnable)
        {
//.........这里部分代码省略.........
开发者ID:sylafrs,项目名称:rugby,代码行数:101,代码来源:EffectLayer.cs

示例8: Init

    protected void Init()
    {
        //added 2012.6.24
        InitCollision();

        Owner = transform.parent.gameObject.GetComponent<XffectComponent>();
        if (Owner == null)
            Debug.LogError("you must set EffectLayer to be XffectComponent's child.");

        //fixed 2012.6.2. ignoring the red errors.
        if (ClientTransform == null)
        {
            Debug.LogWarning("effect layer: "+ gameObject.name + " haven't assign a client transform, automaticly set to itself.");
            ClientTransform = transform;
        }
        AvailableENodes = new EffectNode[MaxENodes];
        ActiveENodes = new EffectNode[MaxENodes];
        for (int i = 0; i < MaxENodes; i++)
        {
            EffectNode n = new EffectNode(i, ClientTransform, SyncClient, this);
            List<Affector> afts = InitAffectors(n);
            n.SetAffectorList(afts);
            if (RenderType == 0)
                n.SetType(SpriteWidth, SpriteHeight, (STYPE)SpriteType, (ORIPOINT)OriPoint, SpriteUVStretch, 60f);
            else if (RenderType == 1)
            {
                float rwidth = RibbonWidth;
                float rlen = RibbonLen;
                if (UseRandomRibbon)
                {
                    rwidth = Random.Range(RibbonWidthMin, RibbonWidthMax);
                    rlen = Random.Range(RibbonLenMin, RibbonLenMax);
                }
                n.SetType(FaceToObject, FaceObject, rwidth, MaxRibbonElements, rlen, ClientTransform.position + EmitPoint, StretchType, 60f);
            }
            else if (RenderType == 2)
            {
                n.SetType(ConeSize,ConeSegment,ConeAngle, transform.rotation * OriVelocityAxis,0,60f,UseConeAngleChange,ConeDeltaAngle);
            }
            else if (RenderType == 3)
            {
                Vector3 dir = Vector3.zero;
                if (OriVelocityAxis == Vector3.zero)
                {
                    OriVelocityAxis = Vector3.up;
                }

                dir = transform.rotation * OriVelocityAxis;

                n.SetType(CMesh,dir,60f);
            }

            AvailableENodes[i] = n;
        }
        AvailableNodeCount = MaxENodes;
        emitter = new Emitter(this);
    }
开发者ID:sylafrs,项目名称:rugby,代码行数:57,代码来源:EffectLayer.cs

示例9: RemoveActiveNode

 public void RemoveActiveNode(EffectNode node)
 {
     if (AvailableNodeCount == MaxENodes)
         Debug.LogError("out index!");
     if (ActiveENodes[node.Index] == null) //already removed
         return;
     ActiveENodes[node.Index] = null;
     AvailableENodes[node.Index] = node;
     AvailableNodeCount++;
 }
开发者ID:sylafrs,项目名称:rugby,代码行数:10,代码来源:EffectLayer.cs

示例10: AddActiveNode

 public void AddActiveNode(EffectNode node)
 {
     if (AvailableNodeCount == 0)
         Debug.LogError("out index!");
     if (AvailableENodes[node.Index] == null) //already added
         return;
     ActiveENodes[node.Index] = node;
     AvailableENodes[node.Index] = null;
     AvailableNodeCount--;
 }
开发者ID:sylafrs,项目名称:rugby,代码行数:10,代码来源:EffectLayer.cs

示例11: RotateAffector

 public RotateAffector(float delta, EffectNode node)
     : base(node)
 {
     Type = RSTYPE.SIMPLE;
     Delta = delta;
 }
开发者ID:wskidmore,项目名称:mdc,代码行数:6,代码来源:Affector.cs

示例12: setupNewElementFromNode

 private TimedSequenceElement setupNewElementFromNode(EffectNode node)
 {
     TimedSequenceElement element = new TimedSequenceElement(node);
     element.ContentChanged += ElementContentChangedHandler;
     element.TimeChanged += ElementTimeChangedHandler;
     return element;
 }
开发者ID:komby,项目名称:vixen,代码行数:7,代码来源:TimedSequenceEditorForm.cs

示例13: addElementForEffectNodeTPL

        /// <summary>
        /// Populates the TimelineControl grid with a new TimedSequenceElement for the given EffectNode.
        /// Will add a single TimedSequenceElement to in each row that each targeted element of
        /// the EffectNode references. It will also add callbacks to event handlers for the element.
        /// </summary>
        /// <param name="node">The EffectNode to make element(s) in the grid for.</param>
        private TimedSequenceElement addElementForEffectNodeTPL(EffectNode node)
        {
            TimedSequenceElement element = setupNewElementFromNode(node);

            // for the effect, make a single element and add it to every row that represents its target elements
            node.Effect.TargetNodes.AsParallel().WithCancellation(cancellationTokenSource.Token)
                .ForAll(target =>
                            {
                                if (_elementNodeToRows.ContainsKey(target))
                                {
                                    // Add the element to each row that represents the element this command is in.
                                    foreach (Row row in _elementNodeToRows[target])
                                    {
                                        if (!_effectNodeToElement.ContainsKey(node))
                                        {
                                            _effectNodeToElement[node] = element;
                                        }
                                        row.AddElement(element);
                                    }
                                }
                                else
                                {
                                    // we don't have a row for the element this effect is referencing; most likely, the row has
                                    // been deleted, or we're opening someone else's sequence, etc. Big fat TODO: here for that, then.
                                    // dunno what we want to do: prompt to add new elements for them? map them to others? etc.
                                    const string message = "No Timeline.Row is associated with a target ElementNode for this EffectNode. It now exists in the sequence, but not in the GUI.";
                                    Logging.Error(message);
                                    MessageBox.Show(message);
                                }
                            });
            TimelineControl.grid.RenderElement(element);
            return element;
        }
开发者ID:komby,项目名称:vixen,代码行数:39,代码来源:TimedSequenceEditorForm.cs

示例14: RemoveEffectNodeAndElement

        public void RemoveEffectNodeAndElement(EffectNode node)
        {
            //Debug.WriteLine("{0}   RemoveEffectNodeAndElement(InstanceId={1})", (int)DateTime.Now.TimeOfDay.TotalMilliseconds, node.Effect.InstanceId);

            // Lookup this effect node's Timeline Element
            TimedSequenceElement tse = (TimedSequenceElement)_effectNodeToElement[node];

            foreach (Row row in TimelineControl) // Remove the element from all rows
                row.RemoveElement(tse);

            // TODO: Unnecessary?
            tse.ContentChanged -= ElementContentChangedHandler; // Unregister event handlers
            tse.TimeChanged -= ElementTimeChangedHandler;

            _effectNodeToElement.Remove(node); // Remove the effect node from the map
            _sequence.RemoveData(node); // Remove the effect node from sequence
        }
开发者ID:komby,项目名称:vixen,代码行数:17,代码来源:TimedSequenceEditorForm.cs

示例15: LinearForceAffector

 public LinearForceAffector(Vector3 force, EffectNode node)
     : base(node)
 {
     Force = force;
 }
开发者ID:wskidmore,项目名称:mdc,代码行数:5,代码来源:Affector.cs


注:本文中的EffectNode类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。