Wed, 09/18/2002 - 01:06
Hi,
I have built myself a TopoDS_Shape called nosecap. Its basically a hemi-sphere with a chunk cut off with a constant X plane. I am using explorer to investigate the faces of the nosecap and determine which one is in this constant X plane. I then want to glue this face to the same face on another shape I have built. Here is the code with a ? indicating where I am stuck:
TopoDS_Face foundface;
TopoExp_Explorer ex;
for(ex.Init(nosecap,TopAbs_Face);ex.more; ex.Next) {
TopoDS_Face facenow = TopoDS::Face(ex.Current());
Handle(Geom_Surface) surface = BRep_Tool::Surface(facenow);
if ( ? )
{
foundface = facenow;
}
I want to check if the "surface" is in a plane of constant X. I can't figure out how to do this. Any suggestions?
Cathy
Wed, 09/18/2002 - 14:40
Hi Cathy,
you can try :
if ( surface->IsKind(STANDARD_TYPE(Geom_Plane)))
{
Handle_Geom_Plane plane = Handle_Geom_Plane::DownCast(surface);
Standard_Real A,B,C,D;
plane->Coefficients(A,B,C,D);
if ( A != 0 && B == 0 && C == 0 )
{
//the plane is parallel to YZ plane at x=-D/A
}
}
HTH,
Stephane
Wed, 09/18/2002 - 19:46
Thanks Stephane!
I was looking for something like IsKind but for some reason missed it in my exploration through the documentation.
I didn't even think of getting the plane coefficients and testing them.
Great ideas! Thanks so much.
Cathy