Добрый день.
Есть свой примитив, который отображается как полилиния, причем некоторые сегменты мне нужно отобразить
другим цветом.
Adesk::Boolean AdskContainerEntity::subWorldDraw (AcGiWorldDraw *mode)
{
assertReadEnabled () ;
if (m_pPolyline)
{
int end = m_pPolyline->numVerts() - 1;
for (int i = 0; i < end; i++)
{
// Здесь устанавливаю нужный мне цвет для сегмента
//...
mode->rawGeometry()->pline(*m_pPolyline, i, 1);
}
}
return (AcDbEntity::subWorldDraw (mode)) ;
}
Все работает как нужно, но проблема в том, что когда примитив отображается как Proxy (не загружено приложение), то он невидим.
Если же рисовать полилинию целиком
Adesk::Boolean AdskContainerEntity::subWorldDraw (AcGiWorldDraw *mode)
{
assertReadEnabled () ;
if (m_pPolyline)
{
mode->geometry().pline(*m_pPolyline);
}
return (AcDbEntity::subWorldDraw (mode)) ;
}
Здесь как Proxy отображается правильно.
В чем может быть проблема?
P.S. Сразу скажу, что пробовал рисовать свою полилинию последовательными кусками при помощи
AcGiGeometry::polyline и AcGiGeometry::circularArc в зависимости от типа участка, здесь все нормально, но
я от него отказался, так как возникают другие проблемы (криво срабатывает привязка к нормали)