#include <AIS_InteractiveContext.hxx>
#include <AIS_LocalContext.hxx>
#include <AIS_TexturedShape.hxx>
-#include <BRepAlgo_Cut.hxx>
+#include <BRepAlgoAPI_Cut.hxx>
#include <BRepOffsetAPI_MakePipe.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
#include <BRepPrimAPI_MakeSphere.hxx>
// do some operation that will take considerable time compared with time of starting / stopping timers
BRepPrimAPI_MakeBox aBox (10., 10., 10.);
BRepPrimAPI_MakeSphere aSphere (10.);
- BRepAlgo_Cut aCutter (aBox.Shape(), aSphere.Shape());
+ BRepAlgoAPI_Cut aCutter (aBox.Shape(), aSphere.Shape());
aTM.Stop();
aPM.Stop();
{
TopoDS_Shape rshape = anormpro.Projection();
Handle(AIS_InteractiveObject) myShape = new AIS_Shape (rshape);
- myAISContext->SetColor(myShape, Quantity_Color(Quantity_NOC_YELLOW));
- myAISContext->Display(myShape, Standard_True);
+ myAISContext->SetColor (myShape, Quantity_Color(Quantity_NOC_YELLOW), Standard_False);
+ myAISContext->Display (myShape, Standard_True);
}
return 0;
TDataStd_Name::Set(labelA0, "ASSEMBLY");
TDF_Label component01 = XCAFDoc_DocumentTool::ShapeTool (aDoc->Main ())->AddComponent (labelA0, lab1, location0);
+ XCAFDoc_DocumentTool::ShapeTool (aDoc->Main ())->UpdateAssemblies();
Quantity_Color yellow(1,1,0, Quantity_TOC_RGB);
XCAFDoc_DocumentTool::ColorTool (labelA0)->SetColor (component01, yellow, XCAFDoc_ColorGen);
aTextureTypeArg.UpperCase();
if (aTextureTypeArg == "1D")
{
- anImage->InitWrapper (Image_PixMap::ImgRGB, (Standard_Byte*)aBitmap, 8, 1);
+ anImage->InitWrapper (Image_Format_RGB, (Standard_Byte*)aBitmap, 8, 1);
}
else if (aTextureTypeArg == "2D")
{
- anImage->InitTrash (Image_PixMap::ImgRGB, 8, 8);
+ anImage->InitTrash (Image_Format_RGB, 8, 8);
for (Standard_Integer aRow = 0; aRow < 8; ++aRow)
{
for (Standard_Integer aCol = 0; aCol < 8; ++aCol)
Handle(AIS_TexturedShape) aTexturedShape = new AIS_TexturedShape (aBlankShape);
aTexturedShape->SetTexturePixMap (anImage);
- anAISContext->Display (aTexturedShape, 3, 0);
+ anAISContext->Display (aTexturedShape, 3, 0, Standard_True);
return 0;
}
BRepBuilderAPI_MakeEdge anEdgeBuilder (aStart, anEnd);
TopoDS_Edge anEdge = anEdgeBuilder.Edge();
Handle(AIS_Shape) aTestAISShape = new AIS_Shape (anEdge);
- anAISContext->Display (aTestAISShape);
+ anAISContext->Display (aTestAISShape, Standard_True);
// 2. activate it in selection modes
TColStd_SequenceOfInteger aModes;
aModes.Append (AIS_Shape::SelectionMode ((TopAbs_ShapeEnum) TopAbs_VERTEX));
aModes.Append (AIS_Shape::SelectionMode ((TopAbs_ShapeEnum) TopAbs_EDGE));
+ Standard_DISABLE_DEPRECATION_WARNINGS
anAISContext->OpenLocalContext();
+ Standard_ENABLE_DEPRECATION_WARNINGS
anAISContext->Deactivate (aTestAISShape);
anAISContext->Load (aTestAISShape, -1, true);
for (Standard_Integer anIt = 1; anIt <= aModes.Length(); ++anIt)
// select entities in vertex selection mode
Handle(SelectMgr_Selection) aSelection = aTestAISShape->Selection (aModes (1));
+ Standard_DISABLE_DEPRECATION_WARNINGS
for (aSelection->Init(); aSelection->More(); aSelection->Next())
{
Handle(SelectBasics_SensitiveEntity) anEntity = aSelection->Sensitive()->BaseSensitive();
anAISContext->LocalContext()->AddOrRemoveSelected (anOwner);
}
+ Standard_ENABLE_DEPRECATION_WARNINGS
// select entities in edge selection mode
aSelection = aTestAISShape->Selection (aModes (2));
+ Standard_DISABLE_DEPRECATION_WARNINGS
for (aSelection->Init(); aSelection->More(); aSelection->Next())
{
Handle(SelectBasics_SensitiveEntity) anEntity = aSelection->Sensitive()->BaseSensitive();
anAISContext->LocalContext()->AddOrRemoveSelected (anOwner);
}
+ Standard_ENABLE_DEPRECATION_WARNINGS
// deactivate vertex mode and check clearing of outdated selection
anAISContext->Deactivate (aTestAISShape, aModes (1));
+ Standard_DISABLE_DEPRECATION_WARNINGS
anAISContext->LocalContext()->ClearOutdatedSelection (aTestAISShape, true);
+ Standard_ENABLE_DEPRECATION_WARNINGS
return 0;
}
BRepPrimAPI_MakeSphere aSphereBuilder (gp_Pnt (0.0, 0.0, 0.0), 1.0);
Handle(AIS_Shape) aSphere = new AIS_Shape (aSphereBuilder.Shape());
- anAISContext->Display (aSphere);
+ anAISContext->Display (aSphere, Standard_False);
for (Standard_Integer aChildIdx = 0; aChildIdx < 5; ++aChildIdx)
{
BRepPrimAPI_MakeSphere aBuilder (gp_Pnt (1.0 + aChildIdx, 1.0 + aChildIdx, 1.0 + aChildIdx), 1.0);
Handle(AIS_Shape) aChild = new AIS_Shape (aBuilder.Shape());
aSphere->AddChild (aChild);
- anAISContext->Display (aChild);
+ anAISContext->Display (aChild, Standard_False);
}
anAISContext->RecomputeSelectionOnly (aSphere);
+ anAISContext->UpdateCurrentViewer();
return 0;
}
Standard_Boolean toPrint = Standard_False;
if (theArgNb % 2 == 0)
{
- toPrint = Draw::Atoi (theArgVec[theArgNb - 1]);
+ toPrint = Draw::Atoi (theArgVec[theArgNb - 1]) != 0;
}
SelectMgr_SelectingVolumeManager* aMgr = new SelectMgr_SelectingVolumeManager();
Handle(AIS_InteractiveObject) aBox2 = new AIS_Shape (aBuilder2.Shape());
const Handle(AIS_InteractiveContext) aCtx = ViewerTest::GetAISContext();
- aCtx->OpenLocalContext();
- aCtx->Display (aBox1, 0, 2);
- aCtx->Display (aBox2, 0, 2);
+ aCtx->Display (aBox1, 0, 2, Standard_False);
+ aCtx->Display (aBox2, 0, 2, Standard_False);
ViewerTest::CurrentView()->FitAll();
- aCtx->SetWidth (aBox1, 3);
- aCtx->SetWidth (aBox2, 3);
+ aCtx->SetWidth (aBox1, 3, Standard_False);
+ aCtx->SetWidth (aBox2, 3, Standard_False);
- aCtx->MoveTo (305, 322, ViewerTest::CurrentView());
- aCtx->ShiftSelect();
- aCtx->MoveTo (103, 322, ViewerTest::CurrentView());
- aCtx->ShiftSelect();
+ aCtx->MoveTo (305, 322, ViewerTest::CurrentView(), Standard_False);
+ aCtx->ShiftSelect (Standard_False);
+ aCtx->MoveTo (103, 322, ViewerTest::CurrentView(), Standard_False);
+ aCtx->ShiftSelect (Standard_False);
if (aCtx->NbSelected() != 0)
{
theDI << "ERROR: no boxes must be selected!\n";
aCtx->SetSelectionSensitivity (aBox1, 2, 5);
- aCtx->MoveTo (305, 322, ViewerTest::CurrentView());
- aCtx->ShiftSelect();
+ aCtx->MoveTo (305, 322, ViewerTest::CurrentView(), Standard_False);
+ aCtx->ShiftSelect (Standard_False);
if (aCtx->NbSelected() != 1)
{
theDI << "ERROR: b1 was not selected\n";
return 1;
}
- aCtx->MoveTo (103, 322, ViewerTest::CurrentView());
- aCtx->ShiftSelect();
+ aCtx->MoveTo (103, 322, ViewerTest::CurrentView(), Standard_False);
+ aCtx->ShiftSelect (Standard_True);
if (aCtx->NbSelected() != 1)
{
theDI << "ERROR: b2 is selected after b1's tolerance increased\n";
// visualization of the box in the local mode with possibility to
// select box vertices
+ Standard_DISABLE_DEPRECATION_WARNINGS
aContext->OpenLocalContext();
+ Standard_ENABLE_DEPRECATION_WARNINGS
int aDispMode = 0;// wireframe
anAISIO->SetDisplayMode(aDispMode);
Standard_Integer Xp,Yp;
myV3dView->Convert(Xv,Yv,Xp,Yp);
- aContext->MoveTo(Xp,Yp, myV3dView);
- aContext->Select();
+ aContext->MoveTo (Xp, Yp, myV3dView, Standard_False);
+ aContext->Select (Standard_False);
bool aHasSelected = false;
for (aContext->InitSelected(); aContext->MoreSelected() && !aHasSelected; aContext->NextSelected()) {
Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
aContext->AddFilter(aFilter);
// update previous selection by hand
+ Standard_DISABLE_DEPRECATION_WARNINGS
aContext->LocalContext()->ClearOutdatedSelection(anAISIO, true);
+ Standard_ENABLE_DEPRECATION_WARNINGS
// check that there are no selected vertices
- aContext->Select();
+ aContext->Select (Standard_True);
aHasSelected = false;
for (aContext->InitSelected(); aContext->MoreSelected() && !aHasSelected; aContext->NextSelected()) {
Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
}
const TopAbs_ShapeEnum aSelType = AIS_Shape::SelectionType (Draw::Atoi (theArgv[1]));
+ Standard_DISABLE_DEPRECATION_WARNINGS
Standard_Integer aLocalCtxIdx = aCtx->OpenLocalContext();
aCtx->ActivateStandardMode (aSelType);
+ Standard_ENABLE_DEPRECATION_WARNINGS
theDI << aLocalCtxIdx;
return 0;
}
const Standard_Integer aCtxToClose = Draw::Atoi (theArgv[1]);
+ Standard_DISABLE_DEPRECATION_WARNINGS
aCtx->CloseLocalContext (aCtxToClose);
+ Standard_ENABLE_DEPRECATION_WARNINGS
return 0;
}
BRepBuilderAPI_MakeEdge anEdgeBuilder (aStart, anEnd);
TopoDS_Edge anEdge = anEdgeBuilder.Edge();
Handle(AIS_InteractiveObject) aTestAISShape = new AIS_Shape (anEdge);
- anAISContext->Display (aTestAISShape);
+ anAISContext->Display (aTestAISShape, Standard_False);
// activate it in selection modes
TColStd_SequenceOfInteger aModes;
aModes.Append (AIS_Shape::SelectionMode ((TopAbs_ShapeEnum) TopAbs_VERTEX));
- anAISContext->OpenLocalContext();
anAISContext->Deactivate (aTestAISShape);
anAISContext->Load (aTestAISShape, -1, true);
anAISContext->Activate (aTestAISShape, 0);
Handle(AIS_Shape)::DownCast (aTestAISShape)->Set (aVertexShape);
aTestAISShape->Redisplay();
- anAISContext->AddOrRemoveSelected (aTestAISShape);
+ anAISContext->AddOrRemoveSelected (aTestAISShape, Standard_True);
bool aValidShapeType = false;
for (anAISContext->InitSelected(); anAISContext->MoreSelected(); anAISContext->NextSelected())
// create separate group for text elements
Handle(Graphic3d_Group) aTextGroup = Prs3d_Root::NewGroup (thePresentation);
TCollection_ExtendedString aString ("YOU SHOULD SEE THIS TEXT", Standard_True);
- Prs3d_Text::Draw (thePresentation, myDrawer->TextAspect(), aString, gp_Ax2 (gp::Origin(), gp::DZ()));
+ Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePresentation), myDrawer->TextAspect(), aString, gp_Ax2 (gp::Origin(), gp::DZ()));
}
virtual void ComputeSelection (const Handle(SelectMgr_Selection)& /*theSelection*/,
return 1;
}
Handle(OCC27700_Text) aPresentation = new OCC27700_Text();
- aContext->Display (aPresentation);
+ aContext->Display (aPresentation, Standard_True);
+ return 0;
+}
+
+//========================================================================
+//function : OCC27757
+//purpose : Creates a box that has a sphere as child object and displays it
+//========================================================================
+static Standard_Integer OCC27757 (Draw_Interpretor& /*theDI*/, Standard_Integer /*theArgc*/, const char** theArgv)
+{
+ const Handle(AIS_InteractiveContext)& aCtx = ViewerTest::GetAISContext();
+ if (aCtx.IsNull())
+ {
+ std::cout << "No interactive context. Use 'vinit' command before " << theArgv[0] << "\n";
+ return 1;
+ }
+
+ TopoDS_Shape aBox = BRepPrimAPI_MakeBox (20.0, 20.0, 20.0).Shape();
+ TopoDS_Shape aSphere = BRepPrimAPI_MakeSphere (10.0).Shape();
+ gp_Trsf aTrsf;
+ aTrsf.SetTranslationPart (gp_Vec (20.0, 20.0, 0.0));
+ aSphere.Located (TopLoc_Location (aTrsf));
+
+
+ Handle(AIS_Shape) aBoxObj = new AIS_Shape (aBox);
+ Handle(AIS_Shape) aSphereObj = new AIS_Shape (aSphere);
+ aBoxObj->AddChild (aSphereObj);
+ aCtx->Display (aBoxObj, 1, 0, Standard_False);
+ aCtx->UpdateCurrentViewer();
+
+ return 0;
+}
+
+//========================================================================
+//function : OCC27818
+//purpose : Creates three boxes and highlights one of them with own style
+//========================================================================
+static Standard_Integer OCC27818 (Draw_Interpretor& /*theDI*/, Standard_Integer /*theArgc*/, const char** theArgv)
+{
+ const Handle(AIS_InteractiveContext)& aCtx = ViewerTest::GetAISContext();
+ if (aCtx.IsNull())
+ {
+ std::cout << "No interactive context. Use 'vinit' command before " << theArgv[0] << "\n";
+ return 1;
+ }
+
+ Handle(AIS_Shape) aBoxObjs[3];
+ for (Standard_Integer aBoxIdx = 0; aBoxIdx < 3; ++aBoxIdx)
+ {
+ TopoDS_Shape aBox = BRepPrimAPI_MakeBox (20.0, 20.0, 20.0).Shape();
+ aBoxObjs[aBoxIdx] = new AIS_Shape (aBox);
+ gp_Trsf aTrsf;
+ aTrsf.SetTranslationPart (gp_Vec (30.0 * aBoxIdx, 30.0 * aBoxIdx, 0.0));
+ aBoxObjs[aBoxIdx]->SetLocalTransformation (aTrsf);
+ aBoxObjs[aBoxIdx]->SetHilightMode (AIS_Shaded);
+ }
+
+ {
+ Handle(Prs3d_Drawer) aHiStyle = new Prs3d_Drawer();
+ aBoxObjs[1]->SetDynamicHilightAttributes (aHiStyle);
+ aHiStyle->SetDisplayMode (AIS_Shaded);
+ aHiStyle->SetColor (Quantity_NOC_RED);
+ aHiStyle->SetTransparency (0.8f);
+ }
+ {
+ Handle(Prs3d_Drawer) aSelStyle = new Prs3d_Drawer();
+ aBoxObjs[2]->SetHilightAttributes (aSelStyle);
+ aSelStyle->SetDisplayMode (AIS_Shaded);
+ aSelStyle->SetColor (Quantity_NOC_RED);
+ aSelStyle->SetTransparency (0.0f);
+ aSelStyle->SetZLayer (Graphic3d_ZLayerId_Topmost);
+ }
+
+ for (Standard_Integer aBoxIdx = 0; aBoxIdx < 3; ++aBoxIdx)
+ {
+ aCtx->Display (aBoxObjs[aBoxIdx], AIS_Shaded, 0, Standard_False);
+ }
+
+ aCtx->UpdateCurrentViewer();
+
+ return 0;
+}
+
+//========================================================================
+//function : OCC27893
+//purpose : Creates a box and selects it via AIS_InteractiveContext API
+//========================================================================
+static Standard_Integer OCC27893 (Draw_Interpretor& /*theDI*/, Standard_Integer /*theArgc*/, const char** theArgv)
+{
+ const Handle(AIS_InteractiveContext)& aCtx = ViewerTest::GetAISContext();
+ if (aCtx.IsNull())
+ {
+ std::cout << "No interactive context. Use 'vinit' command before " << theArgv[0] << "\n";
+ return 1;
+ }
+
+ TopoDS_Shape aBox = BRepPrimAPI_MakeBox (10.0, 10.0, 10.0).Shape();
+ Handle(AIS_InteractiveObject) aBoxObj = new AIS_Shape (aBox);
+ aCtx->Display (aBoxObj, AIS_Shaded, 0, Standard_False);
+ aCtx->SetSelected (aBoxObj, Standard_True);
+
+ return 0;
+}
+
+//========================================================================
+//function : OCC28310
+//purpose : Tests validness of iterator in AIS_InteractiveContext after
+// an removing object from it
+//========================================================================
+static Standard_Integer OCC28310 (Draw_Interpretor& /*theDI*/, Standard_Integer /*theArgc*/, const char** theArgv)
+{
+ const Handle(AIS_InteractiveContext)& aCtx = ViewerTest::GetAISContext();
+ if (aCtx.IsNull())
+ {
+ std::cout << "No interactive context. Use 'vinit' command before " << theArgv[0] << "\n";
+ return 1;
+ }
+
+ TopoDS_Shape aBox = BRepPrimAPI_MakeBox (10.0, 10.0, 10.0).Shape();
+ Handle(AIS_InteractiveObject) aBoxObj = new AIS_Shape (aBox);
+ aCtx->Display (aBoxObj, AIS_Shaded, 0, Standard_False);
+ ViewerTest::CurrentView()->FitAll();
+ aCtx->MoveTo (200, 200, ViewerTest::CurrentView(), Standard_True);
+ aCtx->Select(Standard_True);
+
+ aCtx->Remove (aBoxObj, Standard_True);
+ // nullify the object explicitly to simulate situation in project,
+ // when ::Remove is called from another method and the object is destroyed
+ // before ::DetectedInteractive is called
+ aBoxObj.Nullify();
+
+ for (aCtx->InitDetected(); aCtx->MoreDetected(); aCtx->NextDetected())
+ {
+ Handle(AIS_InteractiveObject) anObj = aCtx->DetectedInteractive();
+ }
+
return 0;
}
theCommands.Add ("OCC27700",
"OCC27700: Checks drawing text after setting interior style",
__FILE__, OCC27700, group);
+ theCommands.Add ("OCC27757",
+ "OCC27757: Creates a box that has a sphere as child object and displays it",
+ __FILE__, OCC27757, group);
+ theCommands.Add ("OCC27818",
+ "OCC27818: Creates three boxes and highlights one of them with own style",
+ __FILE__, OCC27818, group);
+ theCommands.Add ("OCC27893",
+ "OCC27893: Creates a box and selects it via AIS_InteractiveContext API",
+ __FILE__, OCC27893, group);
+ theCommands.Add("OCC28310",
+ "OCC28310: Tests validness of iterator in AIS_InteractiveContext after an removing object from it",
+ __FILE__, OCC28310, group);
return;
}