Ejemplo n.º 1
0
        public Element(OpenMI.Standard.IElementSet set, int nElement)
        {
            Identity = new Identity(set.GetElementID(nElement));

            int nV = set.GetVertexCount(nElement);
            int nF = set.GetFaceCount(nElement);

            X = new double[nV];
            Y = new double[nV];

            bool hasZ = set.ElementType == OpenMI.Standard.ElementType.XYZPoint
                || set.ElementType == OpenMI.Standard.ElementType.XYZLine
                || set.ElementType == OpenMI.Standard.ElementType.XYZPolyLine
                || set.ElementType == OpenMI.Standard.ElementType.XYZPolygon
                || set.ElementType == OpenMI.Standard.ElementType.XYZPolyhedron;

            if (hasZ)
                Z = new double[nV];

            for (int n = 0; n < nV; ++n)
            {
                X[n] = set.GetXCoordinate(nElement, n);
                Y[n] = set.GetYCoordinate(nElement, n);

                if (hasZ)
                    Z[n] = set.GetZCoordinate(nElement, n);
            }

            if (nF > 0)
            {
                Faces = new int[nF][];

                for (int n = 0; n < nF; ++n)
                    Faces[n] = set.GetFaceVertexIndices(nElement, n);
            }
        }