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); } }