반응형
[ 2010년에 작성된 글입니다. 지금은 다를 수 있습니다. ]
TopOpeBRep_ShapeIntersector 를 이용하면 TopoDS_Shape 관련 Intersection 정보를 구하는 건 거의 다 할 수 있을 것 같다.
그동안 IntTools_EdgeEdge, GeomAPI_IntCS, 등등을 이용해보려고 했으나, 대부분 Geom 형태의 데이터가 필요해서 역 변환을 하는 과정에서 문제가 생긴 것 같은데, Shape을 바로 사용할 수 있는 클래스가 있어서 다행이 문제가 해결됬다.
TopoDS_Edge line1 = BRepBuilderAPI_MakeEdge(gp_Pnt(-100, 0, m_fZPos), gp_Pnt(100, 0, m_fZPos));
TopOpeBRep_ShapeIntersector si0;
si0.InitIntersection(pscan->m_ScanShape, line1);
while (si0.MoreIntersection())
{
TopOpeBRep_FaceEdgeIntersector& fe = si0.ChangeFaceEdgeIntersector();
fe.InitPoint();
while (fe.MorePoint())
{
gp_Pnt aPoint = fe.Value();
TopoDS_Vertex aNewVertex = BRepBuilderAPI_MakeVertex(aPoint);
fe.NextPoint();
}
si0.NextIntersection();
}
반응형
'3D' 카테고리의 다른 글
[OSG] 초기 화면 비율 조정 (0) | 2021.03.13 |
---|---|
[OpenCASCADE] STL(Mesh) to Polygon 2 (0) | 2021.03.13 |
[OpenCASCADE] Gradient Background 표현하기 (0) | 2021.03.13 |
[OpenCASCADE] Intersection (Shape - Plane) (0) | 2021.03.13 |
[OpenCASCADE] STL(Mesh) to Polygon (0) | 2021.03.13 |