Тема: acdbGetObjectMesh для объектов AcDbBody

Добрый день, подскажите, кто знает.

Функция
ACDB_PORT Acad::ErrorStatus acdbGetObjectMesh(
AcDbObject * pObj,
const AcDbFaceterSettings * faceter,
AcGePoint3dArray& vertexArray,
AcArray<Adesk::Int32>& faceArray,
AcGiFaceData*& faceData
);

судя по описанию работает только с Solid и Surface:
Tessellate existing solid or surface object to mesh data using the given faceter settings.
А для объектов типа AcDbBody vertexArray получается пустым.

Можно ли каким-нибудь образом получить меш для AcDbBody?

Спасибо.

Александр Ривилис пишет:

Думаю, что только при помощи BREP API.

я попытался сделать вот так:

void getPoints(
            AcDbObjectId id,
            AcGePoint3dArray &points )
{   
  AcBrBrep*pBrep = new AcBrBrep;
  pBrep->setSubentPath( AcDbFullSubentPath( id, kNullSubentId ));  
  AcBrBrepFaceTraverser brFaTrav; 
  for (brFaTrav.setBrep(*pBrep);!brFaTrav.done();brFaTrav.next()) 
  {       
    AcBrFaceLoopTraverser faLoTrav;      
    AcBrFace face;    
    brFaTrav.getFace(face);    
    for(faLoTrav.setFace(face);!faLoTrav.done();faLoTrav.next())
    {         
      AcBrLoopEdgeTraverser loEdTrav; 
      if(loEdTrav.setLoop(faLoTrav) == AcBr::eOk)
      {           
        for( ; !loEdTrav.done(); loEdTrav.next())
        {            
          AcBrEdge edge;   
          loEdTrav.getEdge(edge);
          AcBrVertex start;     
          edge.getVertex1( start );  
          AcGePoint3d pt;           
          start.getPoint( pt );    
          points.append( pt );       
        }          
      }    
    }   
  }
  delete pBrep;
}

Но получил лишь несколько точек на вершинах. Пробовал edge.getCurve(), а затем у кривой getSamplePoints(), но результат не тот.
Возможно кто-нибудь сталкивался с подобной задачей?

Re: acdbGetObjectMesh для объектов AcDbBody

Посмотри пример: utils\brep\samples\brepsamp - там есть различные методы для получения Mesh. Реализация команды BRMESH (функция meshModel)

Re: acdbGetObjectMesh для объектов AcDbBody

Александр, спасибо за наводку, всё получилось!

Re: acdbGetObjectMesh для объектов AcDbBody

Рад был помочь!