#include <QMouseEvent>
#include <QLayout>
+//#define _DEVDEBUG_
+#include "HYDRO_trace.hxx"
+
class HYDROGUI_OverviewBand : public QtxPolyRubberBand
{
public:
void HYDROGUI_OverviewBand::drag( const QPoint& thePoint, bool isStart )
{
+ DEBTRACE("drag");
if( myIsDrag==isStart )
return;
void HYDROGUI_OverviewBand::dragging( const QPoint& thePoint )
{
+ DEBTRACE("dragging");
int n = myPoints.size();
QPoint delta = thePoint - myStartPnt;
for( int i=0; i<n; i++ )
QPoint c = center();
double x1, y1, z1, x2, y2, z2;
main->getView()->Convert( main->width()/2, main->height()/2, x1, y1, z1 );
-
+ DEBTRACE("x1, y1, z1 " << x1 << " " << y1 << " " << z1);
// Patch for OCCT 6.9.1, on 7.0.0 the moving of point to plane XY is not necessary
- gp_Dir dm = main->getView()->Camera()->Direction();
- double t1 = -z1/dm.Z();
- x1 += dm.X()*t1;
- y1 += dm.Y()*t1;
- z1 += dm.Z()*t1;
+// gp_Dir dm = main->getView()->Camera()->Direction();
+// double t1 = -z1/dm.Z();
+// x1 += dm.X()*t1;
+// y1 += dm.Y()*t1;
+// z1 += dm.Z()*t1;
+// DEBTRACE("x1, y1, z1 " << x1 << " " << y1 << " " << z1);
overview->getView()->Convert( c.x(), c.y(), x2, y2, z2 );
gp_Dir dov = overview->getView()->Camera()->Direction();
x2 += dov.X()*t2;
y2 += dov.Y()*t2;
z2 += dov.Z()*t2;
+ DEBTRACE("x2, y2, z2 " << x2 << " " << y2 << " " << z2);
gp_Trsf aTrsf;
aTrsf.SetTranslation( gp_Pnt( x1, y1, z1 ), gp_Pnt( x2, y2, z2 ) );
// Temporary patch for bug in OCCT 6.9.1
- Handle(Graphic3d_Camera) cam = main->getView()->Camera();
- gp_Dir u = cam->Up(), nu = u.Transformed (aTrsf);
- gp_Pnt e = cam->Eye(), ne = e.Transformed (aTrsf);
- gp_Pnt cen = cam->Center(), ncen = cen.Transformed (aTrsf);
-
- if (!nu.IsEqual (u, 0.0))
- cam->SetUp(nu);
-
- if (!ne.IsEqual (e, 0.0))
- cam->SetEye(ne);
-
- if (!ncen.IsEqual(cen, 0.0))
- cam->SetCenter (ncen);
+// Handle(Graphic3d_Camera) cam = main->getView()->Camera();
+// gp_Dir u = cam->Up(), nu = u.Transformed (aTrsf);
+// gp_Pnt e = cam->Eye(), ne = e.Transformed (aTrsf);
+// gp_Pnt cen = cam->Center(), ncen = cen.Transformed (aTrsf);
+//
+// if (!nu.IsEqual (u, 0.0))
+// {
+// cam->SetUp(nu);
+// DEBTRACE("nu " << nu.X() << " " << nu.Y() << " " << nu.Z());
+// }
+//
+// if (!ne.IsEqual (e, 0.0))
+// {
+// cam->SetEye(ne);
+// DEBTRACE("ne " << ne.X() << " " << ne.Y() << " " << ne.Z())
+// }
+//
+// if (!ncen.IsEqual(cen, 0.0))
+// {
+// cam->SetCenter (ncen);
+// DEBTRACE("ncen " << ncen.X() << " " << ncen.Y() << " " << ncen.Z())
+// }
//version for new OCCT:
- //main->getView()->Camera()->Transform( aTrsf );
+ main->getView()->Camera()->Transform( aTrsf );
main->repaint();
}
}
void HYDROGUI_Overview::CustomFitSelection() const
{
+ DEBTRACE("CustomFitSelection");
OCCViewer_ViewPort3d* main = getViewPort( true );
if( !main )
return;
typedef NCollection_DataMap<Handle(SelectMgr_SelectableObject), Handle(SelectMgr_IndexedMapOfOwner)>::Iterator AIS_MapIteratorOfMapOfObjectOwners1;
Bnd_Box HYDROGUI_Overview::BoundingForSelection() const
{
+ DEBTRACE("BoundingForSelection");
Handle(AIS_InteractiveContext) c = context();
Bnd_Box aBndSelected;