Esempio n. 1
0
        public double Area()
        {
            double areaSum = 0;

            foreach (AKT_MeshFace f in Faces)
            {
                AKT_Point3d a = aKT_Mesh.Vertices[f.A];
                AKT_Point3d b = aKT_Mesh.Vertices[f.B];
                AKT_Point3d c = aKT_Mesh.Vertices[f.C];
                AKT_Point3d d = aKT_Mesh.Vertices[f.D];

                AKT_Vector3d ab = a - b;
                AKT_Vector3d bc = b - c;

                double area = AKT_Vector3d.CrossProduct(ab, bc).Length;

                if (f.MeshType == MeshTypology.Triangular)
                {
                    area /= 2;
                }

                areaSum += area;
            }

            return(areaSum);
        }
Esempio n. 2
0
        public override AKT_Line To3DObject()
        {
            AKT_Point3d a    = from.To3DObject();
            AKT_Point3d b    = to.To3DObject();
            AKT_Line    line = new AKT_Line(a, b);

            return(line);
        }
Esempio n. 3
0
        public void Add(object obj)
        {
            AKT_Point3d k = (AKT_Point3d)obj;

            if (k != null)
            {
                AddPoints(k);
            }
        }
Esempio n. 4
0
 private void AddPoints(AKT_Point3d pnts)
 {
     AKT_Point3d[] p = new AKT_Point3d[] { pnts };
     if (_v == null || _v.Count() == 0)
     {
         this._v = p;
     }
     else
     {
         _v = this._v.Concat(p).ToArray();
     }
 }