public void GetSortedVerticesID(out int[] naked, out int[] clothed, out int[] corners) { List <int> clothed_temp = new List <int>(); List <int> naked_temp = new List <int>(); List <int> corners_temp = new List <int>(); foreach (int vKey in iM.VerticesKeys) { ITopologicVertex v = iM.GetVertexWithKey(vKey); if (v.V2HF != 0) { IElement e = iM.GetElementWithKey(v.GetElementID()); Int64 sibhe = e.GetSiblingHalfFacet(v.GetHalfFacetID()); if (sibhe != 0) { clothed_temp.Add(vKey); } else { if (IsCornerVertex(v.Key)) { corners_temp.Add(vKey); } else { naked_temp.Add(vKey); } } } } corners = corners_temp.ToArray(); naked = naked_temp.ToArray(); clothed = clothed_temp.ToArray(); }
public bool IsNakedVertex(int vKey) { ITopologicVertex v = iM.GetVertexWithKey(vKey); if (v.V2HF != 0) { IElement e = iM.GetElementWithKey(v.GetElementID()); Int64 sibhe = e.GetSiblingHalfFacet(v.GetHalfFacetID()); if (sibhe == 0) { return(true); } } return(false); }
public int[] GetNakedVerticesID() { List <int> naked = new List <int>(); foreach (int vKey in iM.VerticesKeys) { ITopologicVertex v = iM.GetVertexWithKey(vKey); if (v.V2HF != 0) { IElement e = iM.GetElementWithKey(v.GetElementID()); Int64 sibhe = e.GetSiblingHalfFacet(v.GetHalfFacetID()); if (sibhe == 0) { naked.Add(vKey); } } } return(naked.ToArray()); }
private void BuildVertexToHalfFacet(int vKey, int elementID, int halfFacetID) { ITopologicVertex v = GetVertexWithKey(vKey); if (v.V2HF == 0) { v.SetV2HF(elementID, halfFacetID); SetVertex(vKey, v); } if (_elements[elementID].GetSiblingHalfFacet(halfFacetID) == 0) { if (v.GetElementID() != elementID || v.GetHalfFacetID() != halfFacetID) { v.SetV2HF(elementID, halfFacetID); SetVertex(vKey, v); } } }