Open CASCADE, the 3D modelling kernel
3D modeling & numerical simulation

Open CASCADEShowroomGet it!Developer CornerSupport and ProductsAbout us
Technical overview
Areas of use
Advantages
FAQ
Screenshots
Shape factory
Shape gallery
Demonstrations
What's new
System requirements
Download Center
Public license
Documentation
Getting started
Forum
Open Source community
Training and e-learning
A la Carte Support
Value-added software
Complementary Components
Customer Corner
Company Profile
Marketing Materials
Contact Us
News
Home / Developer Corner / Forum / Why does AIS module not have AIS_Rectangle ?

Forum

Why does AIS module not have AIS_Rectangle ?
Venugopal Gudimetla2010/03/11 13:39

Hi, one more question not sure if it gets answered at all, but it's worth a try :

we have many AIS objects - point, circles, ellipses etc, but not rectangles why is that so ?, is there another way to construct AIS_Rectagles and display them ?

Thanks.
Jonathan Greig2010/03/12 01:22
You can create an AIS_Shape. The code below is based off of the Tutorial(Qt) MakeBottle function, but stripped down quite a bit. In fact, I do not use the AIS_Point/Line/Circle for any of my shapes. I'm not sure if using a AIS_Shape versus the other classes provides any performance benefits, but so far, it seems to be a solution I like so far that can be adapted many ways. If there is a better way, or any negatives to this approach, I'm all ears, as this is a solution that has worked for me.

[code]
void MyClass::MakeRect(const gp_Pnt point1, const gp_Pnt point2)
{
if(point1.X() == point2.X() || point1.Y() == point2.Y())
{ return; }

//Profile : Define Support Points
gp_Pnt pt1(point1.X(),point1.Y(),point1.Z());
gp_Pnt pt2(point1.X(),point2.Y(),point1.Z());
gp_Pnt pt3(point2.X(),point2.Y(),point1.Z());
gp_Pnt pt4(point2.X(),point1.Y(),point1.Z());

//Profile : Define the Geometry
Handle(Geom_TrimmedCurve) aSegment1 = GC_MakeSegment(pt1, pt2);
Handle(Geom_TrimmedCurve) aSegment2 = GC_MakeSegment(pt2, pt3);
Handle(Geom_TrimmedCurve) aSegment3 = GC_MakeSegment(pt3, pt4);
Handle(Geom_TrimmedCurve) aSegment4 = GC_MakeSegment(pt4, pt1);

//Profile : Define the Topology
TopoDS_Edge aEdge1 = BRepBuilderAPI_MakeEdge(aSegment1);
TopoDS_Edge aEdge2 = BRepBuilderAPI_MakeEdge(aSegment2);
TopoDS_Edge aEdge3 = BRepBuilderAPI_MakeEdge(aSegment3);
TopoDS_Edge aEdge4 = BRepBuilderAPI_MakeEdge(aSegment4);

TopoDS_Wire aWire1 = BRepBuilderAPI_MakeWire(aEdge1, aEdge2 , aEdge3, aEdge4);

TopoDS_Shape aRect=aWire1;
Handle(AIS_Shape) AISRect=new AIS_Shape(aRect);
Quantity_Color color(1.0,1.0,0,Quantity_TOC_RGB);
AISRect->SetColor(color);
getContext()->SetDisplayMode(AISRect,1,false);
getContext()->Display(AISRect, false);
}
[/code]
Venugopal Gudimetla2010/03/12 03:22
jonathan, greatly appreciate it...let me try it out and back and come back to you.
Thanks,
Venugopal
Venugopal Gudimetla2010/03/12 04:03
Hi Jonathan, it worked perfectly, that's exactly what I wanted..again thank you very much.

Venugopal.
 
 
Latest news
  • FAQ section updated
  • OPEN CASCADE Uses Intel ® Parallel Studio XE to Introduce Parallelism into SALOME SMESH Module
  • Open CASCADE Technology 6.5.2 is available for download!

  • © OPEN CASCADE 2000 - 2012  |  Search  |  Contacts   |  Site map