public void Build(ModelItem modelItem)
{
MeshList = new Dictionary<CSMesh, CSMatrixD>();
m_mat = new double[16];
COMApi.InwOpSelection oSel = ComApiBridge.ToInwOpSelection(new ModelItemCollection { modelItem });
m_Color = modelItem.Geometry.OriginalColor;
m_Transparancy = modelItem.Geometry.OriginalTransparency;
foreach (InwOaPath3 path in oSel.Paths())
{
InwOaPath3 path1 = path;
var fragments = path.Fragments()
.Cast<InwOaFragment3>()
.Where(x => IsFragmentOnPath(path1, x))
.ToList();
foreach (var fragment in fragments)
{
//Получаем текущую матрицу преобразования координат
m_CurrentTransformMatrix = fragment.GetLocalToWorldMatrix();
var matrix = (Array)(object)m_CurrentTransformMatrix.Matrix;
m_mat = matrix.Cast<double>().ToArray();
//Получаем текущую геометрию
fragment.GenerateSimplePrimitives(nwEVertexProperty.eNORMAL, this);
}
}
}