Wed, 06/04/2008 - 14:40
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(void)
{
char * filename="czg.brep";
gp_Pnt p0(0.0,0.0,0.0);
gp_Circ circle0,circle1;
circle0.SetLocation(p0);
circle0.SetRadius(4.0);
circle0.SetAxis(gp::OZ());
circle1.SetLocation(p0);
circle1.SetRadius(2.0);
circle1.SetAxis(gp::OZ());
//the outer circle
Handle_Geom_Circle cir0=GC_MakeCircle (circle0);
TopoDS_Edge edge0=BRepBuilderAPI_MakeEdge(cir0);
TopoDS_Wire wire0=BRepBuilderAPI_MakeWire(edge0);
TopoDS_Face face0=BRepBuilderAPI_MakeFace(wire0);
//the inner circle
Handle_Geom_Circle cir1=GC_MakeCircle (circle1);
TopoDS_Edge edge1=BRepBuilderAPI_MakeEdge(cir1);
TopoDS_Wire wire1=BRepBuilderAPI_MakeWire(edge1);
TopoDS_Face face1=BRepBuilderAPI_MakeFace(wire1);
TopoDS_Shape face3=BRepAlgoAPI_Cut(face0,face1);
BRepClass3d_SolidClassifier classifier(face3,p1,1.0e-3);
if(classifier.State()==TopAbs_IN)std::cout
if(classifier.State()==TopAbs_OUT)std::cout
if(classifier.State()==TopAbs_ON) std::cout
if(classifier.State()==TopAbs_UNKNOWN)std::cout
return 1;
}
Wed, 06/04/2008 - 14:42
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(void)
{
char * filename="czg.brep";
gp_Pnt p0(0.0,0.0,0.0);
gp_Circ circle0,circle1;
circle0.SetLocation(p0);
circle0.SetRadius(4.0);
circle0.SetAxis(gp::OZ());
circle1.SetLocation(p0);
circle1.SetRadius(2.0);
circle1.SetAxis(gp::OZ());
//the outer circle
Handle_Geom_Circle cir0=GC_MakeCircle (circle0);
TopoDS_Edge edge0=BRepBuilderAPI_MakeEdge(cir0);
TopoDS_Wire wire0=BRepBuilderAPI_MakeWire(edge0);
TopoDS_Face face0=BRepBuilderAPI_MakeFace(wire0);
//the inner circle
Handle_Geom_Circle cir1=GC_MakeCircle (circle1);
TopoDS_Edge edge1=BRepBuilderAPI_MakeEdge(cir1);
TopoDS_Wire wire1=BRepBuilderAPI_MakeWire(edge1);
TopoDS_Face face1=BRepBuilderAPI_MakeFace(wire1);
TopoDS_Shape face3=BRepAlgoAPI_Cut(face0,face1);
gp_Pnt p1(0.0,0.0,2.0);
std::cout<<"the number of Face is "<
Wed, 06/04/2008 - 15:13
I have not tried your code, but you might try using the BRepClass_FaceClassifier instead of BRepClass3d_SolidClassifier, since you are not actually working with a solid object.