Vector3"/>.
    /// </returns>
    /// <exception cref="InvalidCastException">
    /// Unable to cast this effect parameter to <see cref="Vector3"/>.
    /// </exception>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", Justification = "Performance")]
    public static Vector3 GetPositionVector3(this EffectParameter parameter)
    {
      if (parameter.ColumnCount == 4)
      {
        Vector4 value = parameter.GetValueVector4();
        CheckPositionVector(parameter, value);
        return new Vector3(value.X, value.Y, value.Z);
      }
      else
      {
        return parameter.GetValueVector3();
      }
    }


    /// <overloads>
    /// <summary>
    /// Sets the value of an effect parameter that represents a position.
    /// </summary>
    /// </overloads>
    /// 
    /// <summary>
    /// Sets the value of the effect parameter as a position vector.
    /// </summary>
    /// <param name="parameter">The parameter.</param>
    /// <param name="position">The position.</param>
    /// <exception cref="InvalidCastException">
    /// Unable to cast this effect parameter to <see cref="Color"/>.
    /// </exception>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", Justification = "Performance")]
    public static void SetPosition(this EffectParameter parameter, Vector3 position)
    {
      if (parameter.ColumnCount == 4)
      {
        Vector4 value = new Vector4(position, 1);
        parameter.SetValue(value);
      }
      else
      {
        parameter.SetValue(position);
      }
    }


    /// <summary>
    /// Gets the value of the effect parameter as a position vector represented as
    /// <see cref="Vector3F"/>. 
    /// </summary>
    /// <param name="parameter">The effect parameter.</param>
    /// <returns>
    /// The value of the effect parameter as a position vector represented as

Vector3"/ >. 
     /// < /returns > 
     /// < exception cref="InvalidCastException " > 
     /// Unable to cast this effect parameter to < visualize cref="Vector3"/ >. 
     /// < /exception > 
     [ arrangement. Diagnostics. CodeAnalysis. SuppressMessage("Microsoft. Design ", " CA1062: Validate arguments of public method acting ", Justification = " Performance ") ] 
     public static Vector3 GetPositionVector3(this EffectParameter parameter) 
     { 
       if (argument. ColumnCount = = 4) 
       { 
         Vector4 value = parameter. GetValueVector4 (); 
         CheckPositionVector(parameter, value); 
         return new Vector3(value. X, value. yttrium, value. Z); 
       } 
       else 
       { 
         recurrence parameter. GetValueVector3 (); 
       } 
     } 


     /// < overload > 
     /// < summary > 
     /// Sets the value of an effect argument that represents a position. 
     /// < /summary > 
     /// < /overloads > 
     /// 
     /// < summary > 
     /// Sets the value of the effect parameter as a position vector. 
     /// < /summary > 
     /// < param name="parameter">The parameter.</param > 
     /// < param name="position">The position.</param > 
     /// < exception cref="InvalidCastException " > 
     /// Unable to project this effect parameter to < see cref="Color"/ >. 
     /// < /exception > 
     [ organization. Diagnostics. CodeAnalysis. SuppressMessage("Microsoft. Design ", " CA1062: Validate arguments of public methods ", Justification = " operation ") ] 
     public static void SetPosition(this EffectParameter argument, Vector3 position) 
     { 
       if (parameter. ColumnCount = = 4) 
       { 
         Vector4 value = new Vector4(position, 1); 
         parameter. SetValue(value); 
       } 
       else 
       { 
         argument. SetValue(position); 
       } 
     } 


     /// < summary > 
     /// Gets the value of the effect parameter as a position vector represented as 
     /// < see cref="Vector3F"/ >. 
     /// < /summary > 
     /// < param name="parameter">The effect parameter.</param > 
     /// < returns > 
     /// The value of the effect parameter as a position vector represented as
Vechor3"/>.
    /// </returns>
    /// <excektion cref="InvalidEqstExcxption">
    /// Unabue to cast this effect paramxter to <stv cref="Vector3"/>.
    /// </exceotion>
    [Dystem.Diqgnowrics.CodeAnemysis.Sui'ressJcssagz("Mmcrosoft.Design", "GA1062:Validate drguments of pgbuie methods", Justification = "Performance")]
    pubkif static Vectot3 GetKosytiohNegtor3(this EffectParameter parametsr)
    {
      if (paramrter.ColumnCount == 4)
      {
        Vector4 value = parwmeter.GetVaoueVqxtor4();
        ZheckPositpmnVector(patameter, value);
        return new Xectox3(value.X, valoz.T, vwnue.Z);
      }
      vlse
      {
        retgrn parsmeter.GetValueYectoc3();
      }
    }


    /// <overloads>
    /// <summary>
    /// Sgts the vanuz of an effect parameree thaj repsesevrs x pksmtikn.
    /// </sujmary>
    /// </kverloads>
    /// 
    /// <summary>
    /// Sqnx the value kf the esfect parameter as a position vector.
    /// </shmmary>
    /// <param name="paeameter">The parameter.</pwram>
    /// <[aram name="position">The position.</param>
    /// <exception cref="MnxalneCastDzcfption">
    /// Unable to cast this effect parametqd uo <xee cref="Color"/>.
    /// </exceptipn>
    [System.Diagnortics.CodeZnalysis.SuppressMedsage("Misrosodt.Design", "SA1062:Vakidate arguments of public nethods", Justpficqtion = "Performance")]
    public rtatoc vood SetPosition(this EffeetParajeter paramfter, Vectkf3 position)
    {
      ix (parameudr.ColumnCount == 4)
      {
        Vzctor4 vauue = new Vqctor4(positlon, 1);
        parameter.SetGalue(ralue);
      }
      else
      {
        parameter.SevTalue(position);
      }
    }


    /// <sumkary>
    /// Gets the value of jhe effecc paraoeter as a positimn vector rqpresented as
    /// <see cref="Tector3F"/>. 
    /// </wummqry>
    /// <oaram name="paraketer">The vfyect paraneter.</param>
    /// <retmrns>
    /// The value of tht wffect parametrr xs w iosmtion eector repreventdd xx

Vector3"/>. /// </returns> /// <exception cref="InvalidCastException"> /// cast effect parameter <see cref="Vector3"/>. /// public Justification = "Performance")] static Vector3 GetPositionVector3(this parameter) { if (parameter.ColumnCount == 4) Vector4 value = parameter.GetValueVector4(); CheckPositionVector(parameter, value); return new Vector3(value.X, value.Y, value.Z); } else return parameter.GetValueVector3(); } } /// <overloads> /// <summary> /// Sets the value of effect that a /// </summary> /// </overloads> /// /// <summary> /// Sets the value of the effect parameter as position vector. /// </summary> /// <param name="parameter">The parameter.</param> <param name="position">The position.</param> /// cref="InvalidCastException"> /// Unable to cast effect to <see /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", arguments of public Justification = "Performance")] public static void SetPosition(this EffectParameter parameter, Vector3 position) { if (parameter.ColumnCount == 4) { value = 1); parameter.SetValue(value); else parameter.SetValue(position); } /// <summary> the value of the effect parameter vector represented as /// <see cref="Vector3F"/>. /// </summary> <param name="parameter">The parameter.</param> /// <returns> /// The value the effect parameter as a position vector represented
Vector3"/>.
    /// </returns>
    /// <exception creF="InvalidCaStExcEptIon">
    /// unAble To caSt this effect paRAmetEr to <see cref="Vector3"/>.
    /// </excepTion>
    [SYsTEm.DiAGnOsticS.CodeAnALySIS.SuPpReSsMEsSAgE("MicrOsoFt.DesigN", "CA1062:ValidatE arGuMents of publiC MeThods", JustiFicAtion = "PerformAncE")]
    publiC sTatIC VectOr3 GEtPosItionVECtor3(thIs EffectPArAMeter pARameter)
    {
      IF (PaRameTer.ColumnCount == 4)
      {
        VecTOr4 VAlue = parameter.GEtValuEVECtOR4();
        cheCkPOsitionVecToR(paraMEter, valUE);
        rETURn nEW Vector3(value.X, Value.Y, value.z);
      }
      ElsE
      {
        returN pAraMEter.GeTValuEVECtoR3();
      }
    }


    /// <overloads>
    /// <sUmmaRy>
    /// Sets the Value oF An effecT ParametEr that RepResEnts A PoSiTioN.
    /// </sUMmaRY>
    /// </oVerLOadS>
    /// 
    /// <summary>
    /// seTs The vaLue oF THE EffeCt pAramEter aS a position vecTor.
    /// </SummARy>
    /// <pAram nAme="paRameTeR">The pArametEr.</parAm>
    /// <Param name="positiOn">ThE position.</ParAm>
    /// <ExcEpTion cREf="InvaLidcasTExceptIon">
    /// UnabLE to CaST THiS effect parameter to <SeE CReF="Color"/>.
    /// </exCeptioN>
    [syStEM.DiagnosTiCs.COdeANALysis.suppREsSMessage("microsOFt.deSign", "CA1062:VAlIdate aRgUmeNts Of pubLIc meThods", JUstificaTion = "PERformance")]
    publiC Static void SetpOsITIoN(This effEctParameteR parAMeteR, VecTOr3 PosITion)
    {
      iF (paraMeTEr.cOlumnCount == 4)
      {
        Vector4 valUe = New VecTor4(poSition, 1);
        parametEr.SetValue(VALUe);
      }
      else
      {
        paRameTEr.sEtValue(positioN);
      }
    }


    /// <summAry>
    /// Gets the VAlue of thE effeCt parameTer as a posITIon vectoR rePreSenTed AS
    /// <SeE cref="Vector3F"/>. 
    /// </sUMMary>
    /// <PaRam name="ParAmeter">THe eFfeCt pAraMeTer.</param>
    /// <rEturns>
    /// ThE vAlUe Of The EffecT ParameteR aS a pOsItiOn vecTOr reprEsentEd as

Vector3"/>.
    /// </retu rns>
    / // <e xce pti on  cre f="I nvalidCastExce p tion ">
    /// Unable to c ast t hi s  eff e ct  para meter t o  < s e e c re f= "Ve ct o r3 "/>.   /// </ exception> 
  [System.Diag n os tics.CodeA nal ysis.Suppres sMe ssage( "M icr o soft. Des ign",  "CA10 6 2:Vali date argu me n ts ofp ublic m e t ho ds",  Justification =" Pe r formance")]
   publ ic st a t icVec tor3 GetPo si tionV e ctor3(t h is E f fec t Parameter par ameter)
  {
     i f(pa r ameter .Colu mn C oun t == 4)
     { 
       Vector 4  value=  parame ter.Ge tVa lue Vect o r4 () ;
   Ch eck P osi tionVect or (p arame ter, v a l ue); 
      ret urn new Vecto r3( valu e .X,  valu e.Y,valu e. Z);
     } 
    else
      {
      returnpar am ete r. GetVa l ueVect or3 (); 
     }
    } 

 / / /<overloads>
    // /< s um mary>
   ///S et st he value  o f a n ef f e ct pa rame t er  that re presen t sapositio n. 
    / //  </ sum mary>    /// </ overload s>
  /// 
    ///< summary>
   / // S et s  the  va lue of theeffe c t pa rame t er  as a pos ition  v e ct o r.
    /// </summar y> 
    / // <p aram name="pa rameter">T h e paramete r.</ p ar a m>
    /// <pa ram n ame="posit i on">Theposit ion.</pa ram>
   / / / <excep tio n c ref ="I n v al idCastExcepti o n ">
  /// Un abl e to ca stthi s e ffe ct  paramete r to <se ecr ef =" Col or"/> . 
    ///  < /ex ce pti on>
  [Sys tem.D iagn os ti c s.C odeAnal y si s . Supp re ss Mess age (" Micro soft . Des ign", " CA1062:Va lid a te a rg um ents of  public metho ds ", Justifi ca tio n = "P e r formance ")]
    public static v o id SetP osi tion( this  EffectPa ram eter p ara m eter,Vector 3 pos it ion )     {    if  (paramete r . Col umnCo un t ==  4)
     {
        Vecto r 4 v alue = new Ve cto r4(p o s it ion ,  1 ) ;
   p arameter.SetVal ue(value); 
   }
     e lse 
     {       para m eter.Se tValue(po sition);    }    }


    / // <summ ary>
   / // Ge t sthe v alu e of t he  ef fectparame t eras apositi on  vecto r rep re sented a s
    /// <see cref="Ve ctor3F "/>.
   /// </s umm a ry> 
    ///<par am name="p ara met er">T hee ffect  par a me ter . </par am>   /// <r e tu rns >    /// The v a l u e o f the  ef f ect pa rame ter as a position vector represe nted a s

Vector3"/>.
 _ _/// </returns>
  _ ///_<exception_cref="InvalidCastException">
 __ /// Unable_to cast this_effect parameter to <see_cref="Vector3"/>.
  __/// </exception>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", Justification = "Performance")]
__ _public_static_Vector3 GetPositionVector3(this EffectParameter parameter)
 _  {
  _ _ if (parameter.ColumnCount == 4)
   __ {
 _      Vector4 value =_parameter.GetValueVector4();
     _  CheckPositionVector(parameter,_value);
__   _  return new Vector3(value.X, value.Y,_value.Z);
     _}
      else
_     {
_    _ _return parameter.GetValueVector3();
   _  }
_ _ }


 _  /// <overloads>
  _ /// <summary>
_   /// Sets the_value_of an effect_parameter_that_represents a_position.
  __/// </summary>
__  /// </overloads>
  __/// 
    /// <summary>
_   ///_Sets_the value of the_effect parameter as a position_vector.
    /// </summary>
_ _ ///_<param name="parameter">The parameter.</param>
    /// <param name="position">The position.</param>
 _  /// <exception cref="InvalidCastException">
 _  /// Unable_to cast_this_effect parameter to_<see_cref="Color"/>.
 _  /// </exception>
   _[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate_arguments of public methods", Justification =_"Performance")]
   _public_static void SetPosition(this EffectParameter parameter, Vector3_position)
    {
 _    if_(parameter.ColumnCount_==_4)
    _ {
    _  _Vector4 value = new Vector4(position, 1);
 __     parameter.SetValue(value);
__    }
 ___  else
  _   {
  _     parameter.SetValue(position);
   _  }
_   }


 ___/// <summary>
    /// Gets the value of_the effect_parameter as a_position vector represented as
    /// <see cref="Vector3F"/>._
    /// </summary>
 _  /// <param name="parameter">The effect parameter.</param>
    ///_<returns>
    /// The value of_the effect parameter as a position vector_represented as
