예제 #1
0
        public override GaMultivector BasisBladeSignature(int id)
        {
            var basisBlade = GaMultivector.CreateBasisBlade(GaSpaceDimension, id);

            var sig = Gp(basisBlade, basisBlade);

            return(id.BasisBladeIdHasNegativeReverse() ? -sig : sig);
        }
예제 #2
0
 /// <summary>
 /// Convert this basis blade into a multivector value with unity coefficient of its single term
 /// </summary>
 /// <returns></returns>
 public AstValueMultivector ToMultivectorValue()
 {
     return(new AstValueMultivector(
                GMacValueMultivector.Create(
                    AssociatedFrame.MultivectorType,
                    GaMultivector.CreateBasisBlade(
                        AssociatedFrame.GaSpaceDimension,
                        BasisBladeId
                        )
                    )
                ));
 }
예제 #3
0
 public GaMultivector CreateUnitPseudoScalar()
 {
     return(GaMultivector.CreateBasisBlade(GaSpaceDimension, MaxBasisBladeId));
 }
예제 #4
0
        internal static GMacValueMultivector CreateBasisBlade(GMacFrameMultivector mvType, int id)
        {
            var mvCoefs = GaMultivector.CreateBasisBlade(mvType.ParentFrame.GaSpaceDimension, id);

            return(new GMacValueMultivector(mvType, mvCoefs));
        }