//for OCC graphic
#include <Aspect_DisplayConnection.hxx>
#include <WNT_Window.hxx>
-#include <Graphic3d.hxx>
-#include <Graphic3d_GraphicDRiver.hxx>
#include <OpenGl_GraphicDriver.hxx>
//for object display
#include <V3d_Viewer.hxx>
//brep tools
#include <BRep_Builder.hxx>
#include <BRepTools.hxx>
-#include <MgtBRep.hxx>
-#include <PTColStd_PersistentTransientMap.hxx>
-//csfdb I/E
-#include <FSD_File.hxx>
-#include <ShapeSchema.hxx>
-#include <Storage_Data.hxx>
-#include <Storage_HSeqOfRoot.hxx>
-#include <Storage_Root.hxx>
// iges I/E
#include <IGESControl_Reader.hxx>
#include <IGESControl_Controller.hxx>
#pragma comment(lib, "TKernel.lib")
#pragma comment(lib, "TKMath.lib")
#pragma comment(lib, "TKBRep.lib")
-#pragma comment(lib, "PTKernel.lib")
-#pragma comment(lib, "TKPShape.lib")
-#pragma comment(lib, "TKShapeSchema.lib")
#pragma comment(lib, "TKXSBase.lib")
#pragma comment(lib, "TKService.lib")
#pragma comment(lib, "TKV3d.lib")
return false;
}
- TCollection_ExtendedString a3DName("Visu3D");
- myViewer() = new V3d_Viewer (myGraphicDriver(), a3DName.ToExtString(),"", 1000.0,
- V3d_XposYnegZpos, Quantity_NOC_GRAY30,
- V3d_ZBUFFER,V3d_GOURAUD,V3d_WAIT,
- Standard_True, Standard_False);
-
+ myViewer() = new V3d_Viewer (myGraphicDriver());
myViewer()->SetDefaultLights();
myViewer()->SetLightOn();
myView() = myViewer()->CreateView();
if (!myView().IsNull())
{
myView()->SetComputedMode (Standard_False);
+ myView()->Redraw();
}
}
if (!myView().IsNull())
{
myView()->SetComputedMode (Standard_True);
+ myView()->Redraw();
}
}
/// <param name="theZoomFactor">Current zoom</param>
void Place(int theX, int theY, float theZoomFactor)
{
- Quantity_Factor aZoomFactor = theZoomFactor;
+ Standard_Real aZoomFactor = theZoomFactor;
if (!myView().IsNull())
{
myView()->Place(theX, theY, aZoomFactor);
{
if (!myAISContext().IsNull())
{
- myAISContext()->Select(theX1, theY1, theX2, theY2, myView());
+ myAISContext()->Select (theX1, theY1, theX2, theY2, myView(), Standard_True);
}
}
{
if (!myAISContext().IsNull())
{
- myAISContext()->Select();
+ myAISContext()->Select (Standard_True);
}
}
{
if ((!myAISContext().IsNull()) && (!myView().IsNull()))
{
- myAISContext()->MoveTo(theX, theY, myView());
+ myAISContext()->MoveTo (theX, theY, myView(), Standard_True);
}
}
{
if ((!myAISContext().IsNull()) && (!myView().IsNull()))
{
- myAISContext()->ShiftSelect(theX1, theY1, theX2, theY2, myView());
+ myAISContext()->ShiftSelect (theX1, theY1, theX2, theY2, myView(), Standard_True);
}
}
{
if (!myAISContext().IsNull())
{
- myAISContext()->ShiftSelect();
+ myAISContext()->ShiftSelect (Standard_True);
}
}
{
if (!myView().IsNull())
{
- myView()->SetProj(V3d_Xpos);
+ myView()->SetProj(V3d_Yneg);
}
}
{
if (!myView().IsNull())
{
- myView()->SetProj(V3d_Ypos);
+ myView()->SetProj(V3d_Xneg);
}
}
{
if (!myView().IsNull())
{
- myView()->SetProj(V3d_Xneg);
+ myView()->SetProj(V3d_Ypos);
}
}
{
if (!myView().IsNull())
{
- myView()->SetProj(V3d_Yneg);
+ myView()->SetProj(V3d_Xpos);
}
}
aCurrentMode=AIS_Shaded;
}
- if(myAISContext()->NbCurrents()==0 || myAISContext()->NbSelected()==0)
+ if(myAISContext()->NbSelected()==0)
{
- myAISContext()->SetDisplayMode(aCurrentMode);
+ myAISContext()->SetDisplayMode (aCurrentMode, Standard_False);
}
else
{
- for(myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent())
+ for(myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected())
{
- myAISContext()->SetDisplayMode(myAISContext()->Current(), theMode, Standard_False);
+ myAISContext()->SetDisplayMode (myAISContext()->SelectedInteractive(), theMode, Standard_False);
}
}
myAISContext()->UpdateCurrentViewer();
return;
}
Quantity_Color aCol = Quantity_Color(theR/255.,theG/255.,theB/255.,Quantity_TOC_RGB);
- for (;myAISContext()->MoreCurrent ();myAISContext()->NextCurrent ())
+ for (; myAISContext()->MoreSelected(); myAISContext()->NextSelected())
{
- myAISContext()->SetColor (myAISContext()->Current(),aCol.Name());
+ myAISContext()->SetColor (myAISContext()->SelectedInteractive(), aCol, Standard_False);
}
+ myAISContext()->UpdateCurrentViewer();
}
/// <summary>
theRed=255;
theGreen=255;
theBlue=255;
- Handle_AIS_InteractiveObject aCurrent ;
- Quantity_Color anObjCol;
- myAISContext()->InitCurrent();
- if (!myAISContext()->MoreCurrent())
+ Handle(AIS_InteractiveObject) aCurrent ;
+ myAISContext()->InitSelected();
+ if (!myAISContext()->MoreSelected())
{
return;
}
- aCurrent = myAISContext()->Current();
+ aCurrent = myAISContext()->SelectedInteractive();
if ( aCurrent->HasColor () )
{
- anObjCol = myAISContext()->Color(myAISContext()->Current());
- Quantity_Parameter r1, r2, r3;
+ Quantity_Color anObjCol;
+ myAISContext()->Color (aCurrent, anObjCol);
+ Standard_Real r1, r2, r3;
anObjCol.Values(r1, r2, r3, Quantity_TOC_RGB);
theRed=(int)r1*255;
theGreen=(int)r2*255;
{
return;
}
- for(myAISContext()->InitCurrent();myAISContext()->MoreCurrent();myAISContext()->NextCurrent())
- {
- myAISContext()->Erase(myAISContext()->Current(),Standard_True);
- }
- myAISContext()->ClearCurrents();
+
+ myAISContext()->EraseSelected (Standard_False);
+ myAISContext()->ClearSelected (Standard_True);
}
/// <summary>
{
return;
}
- for ( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent (); myAISContext()->NextCurrent () )
+ for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected())
{
- myAISContext()->SetMaterial( myAISContext()->Current(), (Graphic3d_NameOfMaterial)theMaterial );
+ myAISContext()->SetMaterial (myAISContext()->SelectedInteractive(), (Graphic3d_NameOfMaterial)theMaterial, Standard_False);
}
myAISContext()->UpdateCurrentViewer();
}
{
return;
}
- for( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextSelected() )
+ for( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() )
{
- myAISContext()->SetTransparency( myAISContext()->Current(), ((Standard_Real)theTrans) / 10.0 );
+ myAISContext()->SetTransparency (myAISContext()->SelectedInteractive(), ((Standard_Real)theTrans) / 10.0, Standard_False);
}
+ myAISContext()->UpdateCurrentViewer();
}
/// <summary>
{
return false;
}
- myAISContext()->InitCurrent();
- return myAISContext()->MoreCurrent() != Standard_False;
+ myAISContext()->InitSelected();
+ return myAISContext()->MoreSelected() != Standard_False;
}
/// <summary>
int aMode = -1;
bool OneOrMoreInShading = false;
bool OneOrMoreInWireframe = false;
- for (myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent())
+ for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected())
{
- if ( myAISContext()->IsDisplayed( myAISContext()->Current(), 1 ) )
+ if ( myAISContext()->IsDisplayed( myAISContext()->SelectedInteractive(), 1 ) )
{
OneOrMoreInShading = true;
}
- if ( myAISContext()->IsDisplayed( myAISContext()->Current(), 0 ) )
+ if ( myAISContext()->IsDisplayed( myAISContext()->SelectedInteractive(), 0 ) )
{
OneOrMoreInWireframe = true;
}
myView() = myAISContext()->CurrentViewer()->CreateView();
if (myGraphicDriver().IsNull())
{
- Handle(Aspect_DisplayConnection) aDisplayConnection;
- myGraphicDriver() = Graphic3d::InitGraphicDriver (aDisplayConnection);
+ myGraphicDriver() = new OpenGl_GraphicDriver (Handle(Aspect_DisplayConnection)());
}
Handle(WNT_Window) aWNTWindow = new WNT_Window (reinterpret_cast<HWND> (theWnd.ToPointer()));
myView()->SetWindow(aWNTWindow);
/// <summary>
///Get AISContext
/// </summary>
- Handle_AIS_InteractiveContext GetContext(void)
+ Handle(AIS_InteractiveContext) GetContext(void)
{
return myAISContext();
}
{
return false;
}
- if(myAISContext()->HasOpenedContext())
- {
- myAISContext()->CloseLocalContext();
- }
- myAISContext()->Display(new AIS_Shape(aShape));
- return true;
- }
-
- /// <summary>
- ///Import Csfdb file
- /// </summary>
- /// <param name="theFileName">Name of import file</param>
- bool ImportCsfdb(char* theFileName)
- {
- Standard_CString aFileName = (Standard_CString) theFileName;
- if ( FSD_File::IsGoodFileType(aFileName) != Storage_VSOk )
- {
- return false;
- }
-
- FSD_File aFileDriver;
- TCollection_AsciiString aName( aFileName );
- if ( aFileDriver.Open( aName, Storage_VSRead ) != Storage_VSOk )
- {
- return false;
- }
-
- Handle(ShapeSchema) aSchema = new ShapeSchema();
- Handle(Storage_Data) data = aSchema->Read( aFileDriver );
- if ( data->ErrorStatus() != Storage_VSOk )
- {
- return false;
- }
- aFileDriver.Close();
-
- Handle(Storage_HSeqOfRoot) aRoots = data->Roots();
- for ( int i = 1; i <= aRoots->Length() ; i++ )
- {
- Handle(Storage_Root) aStorRoot = aRoots->Value( i );
- Handle(Standard_Persistent) aStandPersistent = aStorRoot->Object();
- Handle(PTopoDS_HShape) aPShape = Handle(PTopoDS_HShape)::DownCast(aStandPersistent);
- if ( !aPShape.IsNull() )
- {
- PTColStd_PersistentTransientMap aMap;
- TopoDS_Shape aTShape;
- MgtBRep::Translate( aPShape, aMap, aTShape, MgtBRep_WithTriangle );
- myAISContext()->Display(new AIS_Shape(aTShape));
- }
- }
+ myAISContext()->Display (new AIS_Shape (aShape), Standard_True);
return true;
}
for ( int i = 1; i <= aNbShap; i++ )
{
TopoDS_Shape aShape = aReader.Shape( i );
- myAISContext()->Display(new AIS_Shape(aShape));
+ myAISContext()->Display (new AIS_Shape (aShape), Standard_False);
}
+ myAISContext()->UpdateCurrentViewer();
}
}
}
{
aReader.TransferRoots();
TopoDS_Shape aShape = aReader.OneShape();
- myAISContext()->Display(new AIS_Shape(aShape));
+ myAISContext()->Display (new AIS_Shape (aShape), Standard_False);
}
else
{
/// <param name="theFileName">Name of export file</param>
bool ExportBRep(char* theFileName)
{
- myAISContext()->InitCurrent();
- if (!myAISContext()->MoreCurrent())
+ myAISContext()->InitSelected();
+ if (!myAISContext()->MoreSelected())
{
return false;
}
- Handle_AIS_InteractiveObject anIO = myAISContext()->Current();
- Handle_AIS_Shape anIS = Handle_AIS_Shape::DownCast(anIO);
+ Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive();
+ Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast(anIO);
return BRepTools::Write (anIS->Shape(), (Standard_CString)theFileName) != Standard_False;
}
STEPControl_StepModelType aType = STEPControl_AsIs;
IFSelect_ReturnStatus aStatus;
STEPControl_Writer aWriter;
- for ( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent() )
+ for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() )
{
- Handle_AIS_InteractiveObject anIO = myAISContext()->Current();
- Handle_AIS_Shape anIS=Handle_AIS_Shape::DownCast(anIO);
+ Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive();
+ Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO);
TopoDS_Shape aShape = anIS->Shape();
aStatus = aWriter.Transfer( aShape , aType );
if ( aStatus != IFSelect_RetDone )
IGESControl_Writer aWriter( Interface_Static::CVal( "XSTEP.iges.unit" ),
Interface_Static::IVal( "XSTEP.iges.writebrep.mode" ) );
- for ( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent() )
+ for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() )
{
- Handle_AIS_InteractiveObject anIO = myAISContext()->Current();
- Handle_AIS_Shape anIS=Handle_AIS_Shape::DownCast(anIO);
+ Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive();
+ Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO);
TopoDS_Shape aShape = anIS->Shape();
aWriter.AddShape ( aShape );
}
BRep_Builder aBuilder;
aBuilder.MakeCompound( aRes );
- for ( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent() )
+ for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() )
{
- Handle_AIS_InteractiveObject anIO = myAISContext()->Current();
- Handle_AIS_Shape anIS=Handle_AIS_Shape::DownCast(anIO);
+ Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive();
+ Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO);
TopoDS_Shape aShape = anIS->Shape();
if ( aShape.IsNull() )
{
BRep_Builder aBuilder;
aBuilder.MakeCompound( aComp );
- for ( myAISContext()->InitCurrent(); myAISContext()->MoreCurrent(); myAISContext()->NextCurrent() )
+ for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() )
{
- Handle_AIS_InteractiveObject anIO = myAISContext()->Current();
- Handle_AIS_Shape anIS=Handle_AIS_Shape::DownCast(anIO);
+ Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive();
+ Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO);
TopoDS_Shape aShape = anIS->Shape();
if ( aShape.IsNull() )
{
isResult = ImportBrep(aFilename);
break;
case 1:
- isResult = ImportCsfdb(aFilename);
- break;
- case 2:
isResult = ImportStep(aFilename);
break;
- case 3:
+ case 2:
isResult = ImportIges(aFilename);
break;
default:
case 0:
isResult = ExportBRep(aFilename);
break;
- case 2:
+ case 1:
isResult = ExportStep(aFilename);
break;
- case 3:
+ case 2:
isResult = ExportIges(aFilename);
break;
- case 4:
+ case 3:
isResult = ExportVrml(aFilename);
break;
- case 5:
+ case 4:
isResult = ExportStl(aFilename);
break;
- case 6:
+ case 5:
isResult = Dump(aFilename);
break;
default:
private:
// fields
- NCollection_Haft<Handle_V3d_Viewer> myViewer;
- NCollection_Haft<Handle_V3d_View> myView;
- NCollection_Haft<Handle_AIS_InteractiveContext> myAISContext;
- NCollection_Haft<Handle_Graphic3d_GraphicDriver> myGraphicDriver;
+ NCollection_Haft<Handle(V3d_Viewer)> myViewer;
+ NCollection_Haft<Handle(V3d_View)> myView;
+ NCollection_Haft<Handle(AIS_InteractiveContext)> myAISContext;
+ NCollection_Haft<Handle(OpenGl_GraphicDriver)> myGraphicDriver;
};