#include "HYDROGUI_Tool.h"
#include "HYDROGUI_UpdateFlags.h"
#include "HYDROGUI_OCCSelector.h"
+#include "HYDROGUI_ZLayers.h"
#include <HYDROData_Document.h>
#include <HYDROData_GeomTool.h>
#include <gp_GTrsf.hxx>
#include <QDialog>
+#include <QDir>
#include <QTemporaryFile>
/**
{
HYDROGUI_Operation::startOperation();
+ // Set preview view manager
+ if ( !getPreviewManager() ) {
+ setPreviewManager( ::qobject_cast<OCCViewer_ViewManager*>(
+ module()->getApp()->getViewManager( OCCViewer_Viewer::Type(), true ) ) );
+ }
+
if ( !isApplyAndClose() ) {
return;
}
// Create temporary graphics file
QImage aQImage = myImage->Image();
- myTmpImageFile = new QTemporaryFile( anImageName );
+ myTmpImageFile = new QTemporaryFile( QDir::tempPath() + QDir::separator() + anImageName );
if ( !myTmpImageFile->open() ||
!aQImage.save( myTmpImageFile->fileName(), "PNG", 100 ) ) {
abort();
// update the object browser
module()->getApp()->updateObjectBrowser( true );
- // select the picture
- SUIT_DataOwnerPtrList aList( true );
- aList.append( SUIT_DataOwnerPtr( new LightApp_DataOwner( aGeomPictureEntry ) ) );
- selectionMgr()->setSelected(aList );
+ // browse the published GEOM picture
+ QStringList anEntries;
+ anEntries << aGeomPictureEntry;
+ browseObjects( anEntries );
// Add GEOM picture object entry to the list of temporary geom objects
myTmpGeomObjects << aGeomPictureEntry;
Handle(AIS_InteractiveContext) aCtx = NULL;
// Display preview
- if ( !getPreviewManager() ) {
- setPreviewManager( ::qobject_cast<OCCViewer_ViewManager*>(
- module()->getApp()->getViewManager( OCCViewer_Viewer::Type(), true ) ) );
- }
-
OCCViewer_ViewManager* aViewManager = getPreviewManager();
if ( aViewManager ) {
if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) {
}
}
+ QTransform aTrsf = myImage->Trsf();
+ QImage anImage = myImage->Image();
+ QRectF aRect( QPointF( 0, 0 ), QPointF( anImage.width(), anImage.height() ) );
+ aRect = aTrsf.mapRect( aRect );
+ aTrsf.setMatrix( aTrsf.m11(), aTrsf.m12(), aTrsf.m13(),
+ aTrsf.m21(), -aTrsf.m22(), aTrsf.m23(),
+ aTrsf.m31() + aRect.width() * 0.5, aTrsf.m32 () - aRect.height() * 0.5, aTrsf.m33() );
+
+ /*
QTransform aTrsf = myImage->Trsf();
gp_Mat aMat( aTrsf.m11(), aTrsf.m21(), 0,
aTrsf.m12(), -aTrsf.m22(), 0,
aTrsf.m32() - aRect.height() * 0.5, 0 );
BRepBuilderAPI_GTransform aBuilder( gp_GTrsf( aMat, aVec ) );
+ */
+ Handle(HYDROData_PolylineXY) aPolylineObj = Handle(HYDROData_PolylineXY)::DownCast( doc()->CreateObject( KIND_POLYLINEXY ) );
QStringList aNamesList;
for ( int i = 1; i <= aSubShapes.Length(); i++ ) {
TopoDS_Shape aSubShape = aSubShapes.Value( i );
// Transform the sub-shape
+ aPolylineObj->ImportShape( aSubShape );
+ aPolylineObj->Transform( aTrsf );
+
+ /*
aBuilder.Perform( aSubShape, Standard_True );
if ( aBuilder.IsDone() ) {
aSubShape = aBuilder.Shape();
- }
+ }*/
HYDROGUI_Shape* aShape = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
- aShape->setShape( aSubShape, true, false );
+ aShape->setShape( aPolylineObj->GetShape(), true, false );
aShape->setBorderColor( HYDROData_PolylineXY::DefaultWireColor(), false, false );
-
+
QString aPrefix = QString("%1_%2_%3").arg( myImage->GetName(), "Contour", QString::number( i ) );
QString aName = HYDROGUI_Tool::GenerateObjectName( module(), aPrefix, QStringList(), true );
myPolylineShapes.insert( aName, aShape);
aNamesList << aName;
}
+ aPolylineObj->Remove();
+
if ( !aCtx.IsNull() ) {
+ UpdateZLayersOfHilightPresentationsOfDisplayedObjects( aCtx, Graphic3d_ZLayerId_TopOSD );
aCtx->UpdateCurrentViewer();
}
return;
}
- Handle(AIS_InteractiveContext) aCtx = NULL;
OCCViewer_ViewManager* aViewManager = getPreviewManager();
+ Handle(AIS_InteractiveContext) aCtx = NULL;
if ( aViewManager ) {
if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) {
aCtx = aViewer->getAISContext();