0026462: Visualization - selection does not adapt to line width change
[occt.git] / src / QABugs / QABugs_19.cxx
old mode 100755 (executable)
new mode 100644 (file)
index acff2f1..c396672
@@ -22,6 +22,7 @@
 #include <V3d_View.hxx>
 #include <TopoDS_Shape.hxx>
 #include <AIS_InteractiveContext.hxx>
+#include <AIS_LocalContext.hxx>
 #include <AIS_TexturedShape.hxx>
 #include <Image_PixMap.hxx>
 #include <Image_Color.hxx>
@@ -34,8 +35,6 @@
 
 #include <Precision.hxx>
 
-#include <PCollection_HAsciiString.hxx>
-
 #include <cstdio>
 #include <cmath>
 #include <iostream>
 #include <BRepAlgo_Cut.hxx>
 #include <NCollection_Map.hxx>
 #include <NCollection_Handle.hxx>
+#include <NCollection_IncAllocator.hxx>
 #include <TCollection_HAsciiString.hxx>
 #include <GeomFill_Trihedron.hxx>
 #include <BRepOffsetAPI_MakePipe.hxx>
-#include <Standard_Atomic.hxx>
+#include <TopExp_Explorer.hxx>
 
 #include <Standard_Version.hxx>
 
@@ -81,16 +81,6 @@ static Standard_Integer OCC230 (Draw_Interpretor& di, Standard_Integer argc, con
   return 0;
 }
 
-static Standard_Integer OCC142 (Draw_Interpretor& di, Standard_Integer /*argc*/, const char ** /*argv*/)
-{
-  for(Standard_Integer i= 0;i <= 20;i++){
-    Handle(PCollection_HAsciiString) pstr = new PCollection_HAsciiString("TEST");
-    pstr->Clear();
-  }
-  di << "OCC142: OK" << "\n";
-  return 0;
-}
-
 static Standard_Integer OCC23361 (Draw_Interpretor& di, Standard_Integer /*argc*/, const char ** /*argv*/)
 {
   gp_Pnt p(0, 0, 2);
@@ -212,7 +202,7 @@ static Standard_Integer OCC22980 (Draw_Interpretor& di, Standard_Integer /*argc*
 
 static Standard_Integer OCC23595 (Draw_Interpretor& di, Standard_Integer /*argc*/, const char** /*argv*/)
 {
-  const Handle(TDocStd_Application)& anApp = XCAFApp_Application::GetApplication();
+  Handle(TDocStd_Application) anApp = XCAFApp_Application::GetApplication();
   Handle(TDocStd_Document) aDoc;
   anApp->NewDocument ("XmlXCAF", aDoc);
   QCOMPARE (!aDoc.IsNull(), Standard_True);
@@ -391,12 +381,12 @@ static Standard_Address GeomConvertTest (Standard_Address data)
   GeomConvert_ApproxSurface aGAS (info->surf, 1e-4, GeomAbs_C1, GeomAbs_C1, 9, 9, 100, 1);
   if (!aGAS.IsDone()) {
     cout << "Error: ApproxSurface is not done!" << endl;
-    return Standard_False;
+    return 0;
   }
   const Handle(Geom_BSplineSurface)& aBSurf = aGAS.Surface();
   if (aBSurf.IsNull()) {
     cout << "Error: BSplineSurface is not created!" << endl;
-    return Standard_False;
+    return 0;
   }
   cout << "Number of UPoles:" << aBSurf->NbUPoles();
   if (aBSurf->NbUPoles() == info->nbupoles)
@@ -1740,7 +1730,7 @@ static void DoIsNull(Draw_Interpretor& di)
   HT aHandle;
   //    QVERIFY (aHandle.IsNull());
   QCOMPARE (aHandle.IsNull(), Standard_True);
-  const T* p = aHandle.Access();
+  const T* p = aHandle.get();
 #if OCC_VERSION_HEX > 0x060700
   //QVERIFY (!p);
   //QVERIFY (p == 0);
@@ -1751,7 +1741,7 @@ static void DoIsNull(Draw_Interpretor& di)
   aHandle = new T;
   //QVERIFY (!aHandle.IsNull());
   QCOMPARE (!aHandle.IsNull(), Standard_True);
-  p = aHandle.Access();
+  p = aHandle.get();
   //QVERIFY (p);
   //QVERIFY (p != 0);
   QCOMPARE (p != NULL, Standard_True);
@@ -1767,7 +1757,6 @@ static Standard_Integer OCC24533 (Draw_Interpretor& di, Standard_Integer n, cons
   if (n != 1) return 1;
 
   DoIsNull<Standard_Transient, Handle(Standard_Transient)>(di);
-  DoIsNull<Standard_Persistent, Handle(Standard_Persistent)>(di);
 
   return 0;
 }
@@ -1781,11 +1770,10 @@ public:
     std::cerr << "QABugs_HandleClass[" << this << "] " << theArgVec[0] << "\n";
     return 0;
   }
-  DEFINE_STANDARD_RTTI(QABugs_HandleClass) // Type definition
+  DEFINE_STANDARD_RTTI(QABugs_HandleClass, Standard_Transient) // Type definition
 };
 DEFINE_STANDARD_HANDLE    (QABugs_HandleClass, Standard_Transient)
-IMPLEMENT_STANDARD_HANDLE (QABugs_HandleClass, Standard_Transient)
-IMPLEMENT_STANDARD_RTTIEXT(QABugs_HandleClass, Standard_Transient)
+
 
 // Dummy class to test interface for compilation issues
 struct QABugs_NHandleClass
@@ -1987,233 +1975,6 @@ static Standard_Integer OCC24667 (Draw_Interpretor& di, Standard_Integer n, cons
   return 0;
 }
 
-#include <IGESControl_Reader.hxx>
-#include <IGESControl_Controller.hxx>
-#include <IGESData_IGESEntity.hxx>
-#include <BRepCheck_Analyzer.hxx>
-#include <PTColStd_TransientPersistentMap.hxx>
-#include <PTopoDS_HShape.hxx>
-#include <Storage_Data.hxx>
-#include <TopExp_Explorer.hxx>
-#include <MgtBRep.hxx>
-#include <FSD_File.hxx>
-#include <ShapeSchema.hxx>
-#include <TColStd_HSequenceOfTransient.hxx>
-#include <PTColStd_PersistentTransientMap.hxx>
-#include <Storage_Root.hxx>
-
-static Standard_Integer OCC24565 (Draw_Interpretor& di, Standard_Integer argc, const char** argv)
-{
-  if (argc != 3) {
-    di << "Usage : " << argv[0] << " FileNameIGS FileNameSTOR";
-    return 1;
-  }
-
-  Standard_CString sFileNameIGS = argv[1];
-  Standard_CString sFileNameSTOR = argv[2];
-
-  IGESControl_Reader ICReader;
-
-  /* * * * * * *
-   * Read the IGES file and make sure it is valid
-   *
-   * * * * * * */
-  IGESControl_Controller::Init();
-
-  if (!ICReader.ReadFile(sFileNameIGS)) {
-    printf("%s:%d - Error reading '%s'\n",__FUNCTION__,__LINE__,sFileNameIGS);fflush(stdout);
-    return -1;
-  }
-
-  int nbShapes = ICReader.NbShapes();
-
-  printf("%s:%d - nbShapes = '%d'\n",__FUNCTION__,__LINE__,nbShapes);fflush(stdout);
-
-  TopoDS_Shape Shape;
-  if(nbShapes == 0)
-    {
-      Handle(TColStd_HSequenceOfTransient) faces=ICReader.GiveList("iges-faces");
-      Handle(TColStd_HSequenceOfTransient) surfaceList=ICReader.GiveList("xst-transferrable-roots",faces);
-
-      if (surfaceList.IsNull())
-       {
-         printf("%s:%d - surfaceList.IsNull()\n",__FUNCTION__,__LINE__);fflush(stdout);
-         return -1;
-       }
-      BRep_Builder builder;
-      TopoDS_Compound* pC = new TopoDS_Compound();
-      builder.MakeCompound(*pC);
-
-      for (int j=1;j<=surfaceList->Length();j++)
-       {
-         Handle(IGESData_IGESEntity) igesEntity=Handle(IGESData_IGESEntity)::DownCast(surfaceList->Value(j));
-         if (igesEntity.IsNull()) continue;
-         ICReader.ClearShapes();
-         Standard_Boolean rv;
-         try {
-           rv=ICReader.TransferEntity(igesEntity);
-         }
-         catch (...) {
-           rv=Standard_False;
-         }
-         if (!rv) {
-           printf("%s:%d - Error transferring IGES entity\n",__FUNCTION__,__LINE__);fflush(stdout);
-           printf("%s:%d - FormNumber = %d, TypeNumber = %d\n",__FUNCTION__,__LINE__,igesEntity->FormNumber(),igesEntity->TypeNumber());fflush(stdout);
-           return -1;
-         }
-
-         TopoDS_Shape S;
-         try {
-           S=ICReader.Shape();
-         }
-         catch(...) {
-           printf("%s:%d - Error reading IGES entity\n",__FUNCTION__,__LINE__);fflush(stdout);
-           printf("%s:%d - FormNumber = %d, TypeNumber = %d\n",__FUNCTION__,__LINE__,igesEntity->FormNumber(),igesEntity->TypeNumber());fflush(stdout);
-           return -1;
-         }
-         if (S.IsNull()) {
-           printf("%s:%d - NULL Surface encountered\n",__FUNCTION__,__LINE__);
-           return -1;
-         }
-
-         try
-           {
-             builder.Add(*pC,S);
-           }
-         catch(...)
-           {
-             printf("%s: Exception adding face.\n",__FUNCTION__);
-           }
-       }
-      Shape = TopoDS_Shape(*pC);
-    }
-  else
-    {
-      Shape = ICReader.OneShape();
-    }
-  {
-    BRepCheck_Analyzer brca(Shape);
-
-    if(!brca.IsValid())
-      {
-       printf("%s: Invalid shape after reading IGES file.\n",__FUNCTION__);
-      }
-  }
-
-  /* * * * * * *
-   * Write the contents of the Shape to a STOR file
-   *
-   * * * * * * */
-  PTColStd_TransientPersistentMap aMapTP;
-  Handle(PTopoDS_HShape) aPShape_write;
-  Handle(Storage_Data) d_write=new Storage_Data;
-  char Name[32];
-
-  TopExp_Explorer Ex;
-  int i;
-  int max_i = 0;
-
-  for (i=0,Ex.Init(Shape,TopAbs_FACE);Ex.More();i++,Ex.Next())
-    {
-
-      max_i = i;
-      try {
-       aPShape_write=MgtBRep::Translate(Ex.Current(),aMapTP,MgtBRep_WithoutTriangle);
-      }
-      catch (...) {
-       printf("%s: Error translating surface '%d'\n",__FUNCTION__,i);
-      }
-               
-      sprintf(Name,"S%010d",i);
-               
-      {
-       BRepCheck_Analyzer brca(Ex.Current());
-       if(!brca.IsValid())
-         {
-           printf("INVALID face '%s' in the shape, which will be written to the STOR file.\n",Name);
-         }
-      }
-      try {
-       d_write->AddRoot(Name,aPShape_write);
-      }
-      catch (...) {
-       printf("%s: Error adding surface '%d', RootName = '%s'\n",__FUNCTION__,i,Name);
-      }
-    }
-  printf("%s: Going to write %d surfaces.\n",__FUNCTION__,max_i+1);
-
-  FSD_File f_write;
-  if(f_write.Open(sFileNameSTOR, Storage_VSWrite)!=Storage_VSOk)
-    {
-      printf("%s: Error opening file: %s\n", __FUNCTION__,sFileNameSTOR);
-      return -1;
-    }
-  Handle(ShapeSchema) s_write=new ShapeSchema;
-  s_write->Write(f_write,d_write);
-  f_write.Close();
-  printf("%s: Wrote to the STOR file.\n",__FUNCTION__);
-
-  /* * * * * * *
-   * Read the contents of the Shape from a STOR file
-   *
-   * * * * * * */
-  FSD_File f_read;
-  if(f_read.Open(sFileNameSTOR, Storage_VSRead)!=Storage_VSOk)
-    {
-      printf("%s: Error opening file: %s\n", __FUNCTION__,sFileNameSTOR);
-      return -1;
-    }
-  Handle(ShapeSchema) s_read=new ShapeSchema;
-  Handle(Storage_Data) d_read=s_read->Read(f_read);
-
-  Handle(Standard_Persistent) p;
-  Handle(Storage_Root) r;
-  Handle(PTopoDS_HShape) aPShape_read;
-  PTColStd_PersistentTransientMap aMapPT;
-  TopoDS_Shape S_read;
-
-  printf("%s: Extracting %d faces from the STOR file.\n",__FUNCTION__,max_i+1);
-  for(int i = 0; i <= max_i; ++i)
-    {
-      sprintf(Name,"S%010d",i);
-      r=d_read->Find(Name);
-      if(r.IsNull())
-       {
-         printf("%s:%d '%s' IsNull().\n",__FUNCTION__,__LINE__,Name);fflush(stdout);
-         continue;
-       }
-      p=r->Object();
-      aPShape_read = Handle(PTopoDS_HShape)::DownCast(p);
-      try {
-       MgtBRep::Translate(aPShape_read,aMapPT,S_read,MgtBRep_WithoutTriangle);
-      }
-      catch (Standard_Failure) {
-       Handle(Standard_Failure) E=Standard_Failure::Caught();
-       std::string str;
-       str="Exception: ";
-       str+=E->DynamicType()->Name();
-       str+=" => ";
-       str+=E->GetMessageString();
-       printf("%s(1): %s: %s\n",__FUNCTION__,Name,str.c_str());fflush(stdout);
-      }
-      catch (...) {
-       printf("%s(1): Unhandled exception in MgtBRep::Translate\n",__FUNCTION__);
-      }
-
-      BRepCheck_Analyzer brca(S_read);
-
-      if(!brca.IsValid())
-       {
-         printf("%s: Read INVALID face (%s)!\n",__FUNCTION__,Name);
-       }
-    }
-
-  printf("Completed.\n");fflush(stdout);
-
-  return 0;
-}
-
-#include <Handle_BRepTools_NurbsConvertModification.hxx>
 #include <BRepPrimAPI_MakeCylinder.hxx>
 #include <BRepBuilderAPI_Copy.hxx>
 #include <BRepTools_NurbsConvertModification.hxx>
@@ -2223,7 +1984,7 @@ static TopoDS_Shape CreateTestShape (int& theShapeNb)
   BRep_Builder aBuilder;
   aBuilder.MakeCompound (aComp);
   //NURBS modifier is used to increase footprint of each shape
-  Handle_BRepTools_NurbsConvertModification aNurbsModif = new BRepTools_NurbsConvertModification;
+  Handle(BRepTools_NurbsConvertModification) aNurbsModif = new BRepTools_NurbsConvertModification;
   TopoDS_Shape aRefShape = BRepPrimAPI_MakeCylinder (50., 100.).Solid();
   BRepTools_Modifier aModifier (aRefShape, aNurbsModif);
   if (aModifier.IsDone()) {
@@ -2290,7 +2051,7 @@ static Standard_Integer OCC24755 (Draw_Interpretor& di, Standard_Integer n, cons
 
   Handle(TDocStd_Application) anApp = new AppStdL_Application;
   Handle(TDocStd_Document) aDoc;
-  anApp->NewDocument ("MDTV-Standard", aDoc);
+  anApp->NewDocument ("BinOcaf", aDoc);
   TDF_Label aLab = aDoc->Main();
   TDataStd_Integer::Set (aLab, 0);
   TDataStd_Name::Set (aLab, "test");
@@ -2510,7 +2271,7 @@ static Standard_Integer OCC25004 (Draw_Interpretor& theDI,
                                   Standard_Integer /*theNArg*/,
                                   const char** /*theArgs*/)
 {
-  math_MultipleVarFunction* aFunc = new BraninFunction();
+  BraninFunction aFunc;
 
   math_Vector aLower(1,2), aUpper(1,2);
   aLower(1) = -5;
@@ -2533,7 +2294,7 @@ static Standard_Integer OCC25004 (Draw_Interpretor& theDI,
       aCurrPnt1(1) = aLower(1) + (aUpper(1) - aLower(1)) * (i - 1) / (aGridOrder - 1.0);
       aCurrPnt1(2) = aLower(2) + (aUpper(2) - aLower(2)) * (j - 1) / (aGridOrder - 1.0);
 
-      aFunc->Value(aCurrPnt1, aFuncValues(idx));
+      aFunc.Value(aCurrPnt1, aFuncValues(idx));
       idx++;
     }
   }
@@ -2564,7 +2325,7 @@ static Standard_Integer OCC25004 (Draw_Interpretor& theDI,
         aLipConst = C;
     }
 
-  math_GlobOptMin aFinder(aFunc, aLower, aUpper, aLipConst);
+  math_GlobOptMin aFinder(&aFunc, aLower, aUpper, aLipConst);
   aFinder.Perform();
   //(-pi , 12.275), (pi , 2.275), (9.42478, 2.475)
 
@@ -2793,7 +2554,7 @@ static Standard_Integer OCC23010 (Draw_Interpretor& di, Standard_Integer argc, c
   std::string fileName=argv[1];
   mOcafApplication *mCasApp = new mOcafApplication();
   Handle(TDocStd_Document) doc;
-  mCasApp->NewDocument("MDTV-XCAF", doc);
+  mCasApp->NewDocument("BinXCAF", doc);
   STEPCAFControl_Reader stepReader;
   IFSelect_ReturnStatus status = stepReader.ReadFile (fileName.c_str());
   if (status != IFSelect_RetDone)
@@ -3389,6 +3150,92 @@ static Standard_Integer OCC25547(
   return 0;
 }
 
+static Standard_Integer OCC26139 (Draw_Interpretor& theDI,
+                                  Standard_Integer  argc,
+                                  const char **     argv)
+{
+
+  Handle(AIS_InteractiveContext) aCtx = ViewerTest::GetAISContext();
+  if (aCtx.IsNull())
+  {
+    theDI << "Use 'vinit' command before " << argv[0] << "\n";
+    return 1;
+  }
+
+  Standard_Integer aBoxGridSize = 100;
+  Standard_Integer aCompGridSize = 3;
+  Standard_Real aBoxSize = 5.0;
+
+  if (argc > 1)
+  {
+    for (Standard_Integer anArgIdx = 1; anArgIdx < argc; ++anArgIdx)
+    {
+      TCollection_AsciiString anArg (argv[anArgIdx]);
+      anArg.LowerCase();
+      if (anArg == "-boxgrid")
+      {
+        aBoxGridSize = Draw::Atoi (argv[++anArgIdx]);
+      }
+      else if (anArg == "-compgrid")
+      {
+        aCompGridSize = Draw::Atoi (argv[++anArgIdx]);
+      }
+      else if (anArg == "-boxsize")
+      {
+        aBoxSize = Draw::Atof (argv[++anArgIdx]);
+      }
+    }
+  }
+
+  NCollection_List<Handle(AIS_Shape)> aCompounds;
+  for (Standard_Integer aCompGridX = 0; aCompGridX < aCompGridSize; ++aCompGridX)
+  {
+    for (Standard_Integer aCompGridY = 0; aCompGridY < aCompGridSize; ++aCompGridY)
+    {
+      BRep_Builder aBuilder;
+      TopoDS_Compound aComp;
+      aBuilder.MakeCompound (aComp);
+      for (Standard_Integer aBoxGridX = 0; aBoxGridX < aBoxGridSize; ++aBoxGridX)
+      {
+        for (Standard_Integer aBoxGridY = 0; aBoxGridY < aBoxGridSize; ++aBoxGridY)
+        {
+          BRepPrimAPI_MakeBox aBox (gp_Pnt (aBoxGridX * aBoxSize, aBoxGridY * aBoxSize, 0.0),
+                                    aBoxSize, aBoxSize, aBoxSize);
+          aBuilder.Add (aComp, aBox.Shape());
+        }
+      }
+      gp_Trsf aTrsf;
+      aTrsf.SetTranslation (gp_Vec (aBoxGridSize * aBoxSize * aCompGridX,
+                                    aBoxGridSize * aBoxSize * aCompGridY,
+                                    0.0));
+      TopLoc_Location aLoc (aTrsf);
+      aComp.Located (aLoc);
+      aCompounds.Append (new AIS_Shape (aComp));
+    }
+  }
+
+  OSD_Timer aTimer;
+  for (NCollection_List<Handle(AIS_Shape)>::Iterator aCompIter (aCompounds); aCompIter.More(); aCompIter.Next())
+  {
+    aTimer.Start();
+    aCtx->Display (aCompIter.Value(), Standard_False);
+    aTimer.Stop();
+    theDI << "Display time: " << aTimer.ElapsedTime() << "\n";
+    aTimer.Reset();
+  }
+
+  aTimer.Reset();
+  aTimer.Start();
+  for (NCollection_List<Handle(AIS_Shape)>::Iterator aCompIter (aCompounds); aCompIter.More(); aCompIter.Next())
+  {
+    aCtx->Remove (aCompIter.Value(), Standard_False);
+  }
+  aTimer.Stop();
+  theDI << "Remove time: " << aTimer.ElapsedTime() << "\n";
+
+  return 0;
+}
+
 #include <TColStd_DataMapIteratorOfDataMapOfIntegerInteger.hxx>
 #include <TColStd_DataMapOfIntegerInteger.hxx>
 #include <OSD.hxx>
@@ -3551,6 +3398,131 @@ static Standard_Integer OCC24881 (Draw_Interpretor& di, Standard_Integer narg ,
   return 0;
 }
 
+//=======================================================================
+//function : OCC26172
+//purpose  :
+//=======================================================================
+static Standard_Integer OCC26172 (Draw_Interpretor& theDI, Standard_Integer theArgNb, const char** theArgVec)
+{
+  if (theArgNb != 1)
+  {
+    std::cerr << "Error: wrong number of arguments! See usage:\n";
+    theDI.PrintHelp (theArgVec[0]);
+    return 1;
+  }
+
+  Handle(AIS_InteractiveContext) anAISContext = ViewerTest::GetAISContext();
+  if(anAISContext.IsNull())
+  {
+    std::cerr << "Error: no active view. Please call vinit.\n";
+    return 1;
+  }
+
+  gp_Pnt aStart (100, 100, 100);
+  gp_Pnt anEnd (300, 400, 600);
+  BRepBuilderAPI_MakeEdge anEdgeBuilder (aStart, anEnd);
+  TopoDS_Edge anEdge = anEdgeBuilder.Edge();
+  Handle(AIS_Shape) aTestAISShape = new AIS_Shape (anEdge);
+  anAISContext->Display (aTestAISShape);
+
+  // 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));
+
+  anAISContext->OpenLocalContext();
+  anAISContext->Deactivate (aTestAISShape);
+  anAISContext->Load (aTestAISShape, -1, true);
+  for (Standard_Integer anIt = 1; anIt <= aModes.Length(); ++anIt)
+  {
+    anAISContext->Activate (aTestAISShape, aModes (anIt));
+  }
+
+  // select entities in vertex selection mode
+  Handle(SelectMgr_Selection) aSelection = aTestAISShape->Selection (aModes (1));
+  for (aSelection->Init(); aSelection->More(); aSelection->Next())
+  {
+    Handle(SelectBasics_SensitiveEntity) anEntity = aSelection->Sensitive()->BaseSensitive();
+    if (anEntity.IsNull())
+    {
+      continue;
+    }
+
+    Handle(SelectMgr_EntityOwner) anOwner =
+      Handle(SelectMgr_EntityOwner)::DownCast (anEntity->OwnerId());
+
+    if (anOwner.IsNull())
+    {
+      continue;
+    }
+
+    anAISContext->LocalContext()->AddOrRemoveSelected (anOwner);
+  }
+
+  // select entities in edge selection mode
+  aSelection = aTestAISShape->Selection (aModes (2));
+  for (aSelection->Init(); aSelection->More(); aSelection->Next())
+  {
+    Handle(SelectBasics_SensitiveEntity) anEntity = aSelection->Sensitive()->BaseSensitive();
+    if (anEntity.IsNull())
+    {
+      continue;
+    }
+
+    Handle(SelectMgr_EntityOwner) anOwner =
+      Handle(SelectMgr_EntityOwner)::DownCast (anEntity->OwnerId());
+
+    if (anOwner.IsNull())
+    {
+      continue;
+    }
+
+    anAISContext->LocalContext()->AddOrRemoveSelected (anOwner);
+  }
+
+  // deactivate vertex mode and check clearing of outdated selection
+  anAISContext->Deactivate (aTestAISShape, aModes (1));
+  anAISContext->LocalContext()->ClearOutdatedSelection (aTestAISShape, true);
+
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26284
+//purpose  :
+//=======================================================================
+static Standard_Integer OCC26284 (Draw_Interpretor& theDI, Standard_Integer theArgNb, const char** theArgVec)
+{
+  if (theArgNb != 1)
+  {
+    std::cerr << "Error: wrong number of arguments! See usage:\n";
+    theDI.PrintHelp (theArgVec[0]);
+    return 1;
+  }
+
+  Handle(AIS_InteractiveContext) anAISContext = ViewerTest::GetAISContext();
+  if (anAISContext.IsNull())
+  {
+    std::cerr << "Error: no active view. Please call vinit.\n";
+    return 1;
+  }
+
+  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);
+  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->RecomputeSelectionOnly (aSphere);
+
+  return 0;
+}
+
 #include <IntTools_Context.hxx>
 #include <GeomAPI_ProjectPointOnSurf.hxx>
 
@@ -3607,6 +3579,7 @@ Standard_Integer xprojponf (Draw_Interpretor& di,
 //purpose  :
 //=======================================================================
 #include <BRepMesh_CircleTool.hxx>
+#include <SelectMgr_EntityOwner.hxx>
 
 static Standard_Boolean inspect_point(const gp_XY&        thePoint,
                                       const gp_XY&        theCenter,
@@ -3690,6 +3663,432 @@ static Standard_Integer OCC24923(
   return 0;
 }
 
+#include <TColGeom_Array1OfBSplineCurve.hxx>
+#include <TColStd_Array1OfReal.hxx>
+#include <TColGeom_HArray1OfBSplineCurve.hxx>
+#include <GeomConvert.hxx>
+
+//=======================================================================
+//function : OCC26446
+//purpose  : 
+//=======================================================================
+Standard_Integer OCC26446 (Draw_Interpretor& di, 
+                           Standard_Integer n, 
+                           const char** a)
+{
+  if (n != 4) {
+    di << "Usage: OCC26446 r c1 c2" << "\n";
+    return 1;
+  }
+
+  Handle(Geom_BSplineCurve) aCurve1 =
+    Handle(Geom_BSplineCurve)::DownCast(DrawTrSurf::GetCurve(a[2]));
+  Handle(Geom_BSplineCurve) aCurve2 = 
+    Handle(Geom_BSplineCurve)::DownCast(DrawTrSurf::GetCurve(a[3]));
+
+  if (aCurve1.IsNull()) {
+    di << a[2] << " is not a BSpline curve" << "\n";
+       return 1;
+  }
+
+  if (aCurve2.IsNull()) {
+    di << a[3] << " is not a BSpline curve" << "\n";
+       return 1;
+  }
+
+  TColGeom_Array1OfBSplineCurve          aCurves     (0, 1);
+  TColStd_Array1OfReal                   aTolerances (0, 0);
+  Standard_Real                          aTolConf    = 1.e-3;
+  Standard_Real                          aTolClosure = Precision::Confusion();
+  Handle(TColGeom_HArray1OfBSplineCurve) aConcatCurves;
+  Handle(TColStd_HArray1OfInteger)       anIndices;
+
+  aCurves.SetValue(0, aCurve1);
+  aCurves.SetValue(1, aCurve2);
+  aTolerances.SetValue(0, aTolConf);
+
+  GeomConvert::ConcatC1(aCurves,
+                        aTolerances,
+                        anIndices,
+                        aConcatCurves,
+                        Standard_False,
+                        aTolClosure);
+
+  Handle(Geom_BSplineCurve) aResult =
+    aConcatCurves->Value(aConcatCurves->Lower());
+
+  DrawTrSurf::Set(a[1], aResult);
+  return 0;
+}
+
+static Standard_Integer OCC26448 (Draw_Interpretor& theDI, Standard_Integer, const char **)
+{
+  TColStd_SequenceOfReal aSeq1, aSeq2;
+  aSeq1.Append(11.);
+  aSeq1.Prepend (aSeq2);
+  theDI << "TCollection: 11 -> " << aSeq1.First() << "\n";
+
+  NCollection_Sequence<Standard_Real> nSeq1, nSeq2;
+  nSeq1.Append(11.);
+  nSeq1.Prepend (nSeq2);
+  theDI << "NCollection: 11 -> " << nSeq1.First() << "\n";
+
+  theDI << "OK";
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26407
+//purpose  :
+//=======================================================================
+#include <BRepBuilderAPI_MakeWire.hxx>
+#include <BRepBuilderAPI_MakeEdge.hxx>
+#include <BRepMesh_IncrementalMesh.hxx>
+#include <TCollection_AsciiString.hxx>
+static Standard_Integer OCC26407 (Draw_Interpretor& theDI, Standard_Integer theArgNb, const char** theArgVec)
+{
+  if (theArgNb != 2)
+  {
+    std::cerr << "Error: wrong number of arguments! See usage:\n";
+    theDI.PrintHelp (theArgVec[0]);
+    return 1;
+  }
+
+  // Construct vertices.
+  std::vector<TopoDS_Vertex> wire_vertices;
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(587.90000000000009094947, 40.6758179230516248026106, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(807.824182076948432040808, 260.599999999999965893949, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(644.174182076948454778176, 424.249999999999943156581, 88.5000000000000142108547)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(629.978025792618950617907, 424.25, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(793.628025792618700506864, 260.599999999999852207111, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(587.900000000000204636308, 54.8719742073813492311274, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(218.521974207381418864315, 424.250000000000056843419, 88.5)));
+  wire_vertices.push_back(BRepBuilderAPI_MakeVertex(gp_Pnt(204.325817923051886282337, 424.249999999999943156581, 88.5)));
+
+  // Construct wire.
+  BRepBuilderAPI_MakeWire wire_builder;
+  for (size_t i = 0; i < wire_vertices.size(); i++)
+  {
+    const TopoDS_Vertex &v = wire_vertices[i];
+    const TopoDS_Vertex &w = wire_vertices[(i+1) % wire_vertices.size()];
+
+    wire_builder.Add(BRepBuilderAPI_MakeEdge(v, w));
+  }
+
+  // Create face and triangulate it.
+  // Construct face.
+  gp_Pnt v0 = BRep_Tool::Pnt(wire_vertices[0]);
+  gp_Pnt v1 = BRep_Tool::Pnt(wire_vertices[1]);
+  gp_Pnt v2 = BRep_Tool::Pnt(wire_vertices[wire_vertices.size() - 1]);
+
+  gp_Vec face_normal = gp_Vec(v0, v1).Crossed(gp_Vec(v0, v2));
+
+  TopoDS_Face face = BRepBuilderAPI_MakeFace(gp_Pln(v0, face_normal), wire_builder);
+  BRepMesh_IncrementalMesh m(face, 1e-7);
+
+  if (m.GetStatusFlags() != 0)
+  {
+    theDI << "Failed. Status for face constructed from vertices: " << m.GetStatusFlags() << "\n";
+    return 1;
+  }
+  DBRep::Set(theArgVec[1], face);
+  char buf[256];
+  sprintf(buf, "isos %s 0", theArgVec[1]);
+  theDI.Eval(buf);
+
+  sprintf(buf, "triangles %s", theArgVec[1]);
+  theDI.Eval(buf);
+
+  theDI.Eval("smallview; fit");
+
+  theDI << "Test completed\n";
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26485
+//purpose  :
+//=======================================================================
+#include <Poly.hxx>
+static Standard_Integer OCC26485 (Draw_Interpretor& theDI, Standard_Integer theArgNb, const char** theArgVec)
+{
+  if (theArgNb != 2)
+  {
+    std::cerr << "Error: wrong number of arguments! See usage:\n";
+    theDI.PrintHelp (theArgVec[0]);
+    return 1;
+  }
+
+  TopoDS_Shape aShape = DBRep::Get(theArgVec[1]);
+  if (aShape.IsNull())
+  {
+    theDI << "Failed. Null shape\n";
+    return 1;
+  }
+
+  Standard_Boolean isFailed = Standard_False;
+  TopExp_Explorer aExplorer(aShape, TopAbs_FACE);
+  for (; aExplorer.More(); aExplorer.Next())
+  {
+    const TopoDS_Face& aFace = TopoDS::Face( aExplorer.Current() );
+    TopLoc_Location L = TopLoc_Location();
+    const Handle(Poly_Triangulation)& aT = BRep_Tool::Triangulation( aFace , L );
+
+    if(aT.IsNull())
+      continue;
+
+    Poly::ComputeNormals(aT);
+    const TColgp_Array1OfPnt&       aVertices = aT->Nodes();
+    const TShort_Array1OfShortReal& aNormals  = aT->Normals();
+
+    // Number of nodes in the triangulation
+    int aVertexNb = aT->Nodes().Length();
+    if (aVertexNb*3 != aNormals.Length())
+    {
+      theDI << "Failed. Different number of normals vs. vertices\n";
+      return 1;
+    }
+
+    // Get each vertex index, checking common vertexes between shapes
+    for( int i=0; i < aVertexNb; i++ )
+    {
+      gp_Pnt aPoint = aVertices.Value( i+1 );
+      gp_Vec aNormal = gp_Vec(
+        aNormals.Value( i*3 + 1 ),
+        aNormals.Value( i*3 + 2 ),
+        aNormals.Value( i*3 + 3 ) );
+
+      if (aNormal.X() == 0 && aNormal.Y() == 0 && aNormal.Z() == 1)
+      {
+        char buf[256];
+        sprintf(buf, "fail_%d", i+1);
+        theDI << "Failed. Point " << buf << ": "
+              << aPoint.X() << " "
+              << aPoint.Y() << " "
+              << aPoint.Z() << "\n";
+
+        DrawTrSurf::Set (buf, aPoint);
+      }
+    }
+  }
+
+  theDI << (isFailed ? "Test failed" : "Test completed") << "\n";
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26553
+//purpose  :
+//=======================================================================
+#include <BRepBuilderAPI_MakeWire.hxx>
+
+static Standard_Integer OCC26553 (Draw_Interpretor& theDI, Standard_Integer theArgc, const char** theArgv)
+{
+  if (theArgc < 2)
+  {
+    theDI << "Error: path to file with shell is missing\n";
+    return 1;
+  }
+
+  BRep_Builder aBuilder;
+  TopoDS_Shape aShell;
+  BRepTools::Read(aShell, theArgv[1], aBuilder);
+
+  if (aShell.IsNull())
+  {
+    theDI << "Error: shell not loaded\n";
+    return 1;
+  }
+
+  TopoDS_Edge aPipeEdge = BRepBuilderAPI_MakeEdge (gp_Pnt (0, 0, 0), gp_Pnt (0, 0, 10));
+  TopoDS_Wire aPipeWire = BRepBuilderAPI_MakeWire(aPipeEdge).Wire();
+
+  BRepOffsetAPI_MakePipe aPipeBuilder(aPipeWire, aShell);
+  if (!aPipeBuilder.IsDone())
+  {
+    theDI << "Error: failed to create pipe\n";
+    return 1;
+  }
+
+  for (TopExp_Explorer aShapeExplorer(aShell, TopAbs_EDGE); aShapeExplorer.More(); aShapeExplorer.Next ()) {
+    const TopoDS_Shape& aGeneratedShape = aPipeBuilder.Generated(aPipeEdge, aShapeExplorer.Current());
+    if (aGeneratedShape.IsNull())
+    {
+      theDI << "Error: null shape\n";
+      return 1;
+    }
+  }
+
+  theDI << "History returned successfully\n";
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26195
+//purpose  :
+//=======================================================================
+#include <SelectMgr_SelectingVolumeManager.hxx>
+#include <BRepBuilderAPI_MakePolygon.hxx>
+#include <Geom_CartesianPoint.hxx>
+#include <AIS_Line.hxx>
+#include <Aspect_Window.hxx>
+static Standard_Integer OCC26195 (Draw_Interpretor& theDI, Standard_Integer theArgNb, const char** theArgVec)
+{
+  if (theArgNb < 3)
+  {
+    std::cerr << "Error: wrong number of arguments! See usage:\n";
+    theDI.PrintHelp (theArgVec[0]);
+    return 1;
+  }
+
+  if (ViewerTest::GetAISContext().IsNull())
+  {
+    std::cerr << "Error: No opened context!\n";
+    return 1;
+  }
+
+  gp_Pnt2d aPxPnt1, aPxPnt2;
+  aPxPnt1.SetX (Draw::Atof (theArgVec[1]));
+  aPxPnt1.SetY (Draw::Atof (theArgVec[2]));
+  if (theArgNb > 4)
+  {
+    aPxPnt2.SetX (Draw::Atof (theArgVec[3]));
+    aPxPnt2.SetY (Draw::Atof (theArgVec[4]));
+  }
+  Standard_Boolean toPrint = Standard_False;
+  if (theArgNb % 2 == 0)
+  {
+    toPrint = Draw::Atoi (theArgVec[theArgNb - 1]);
+  }
+
+  SelectMgr_SelectingVolumeManager* aMgr = new SelectMgr_SelectingVolumeManager();
+  aMgr->SetActiveSelectionType (theArgNb > 4 ?
+    SelectMgr_SelectingVolumeManager::Box : SelectMgr_SelectingVolumeManager::Point);
+  aMgr->SetCamera (ViewerTest::CurrentView()->Camera());
+  aMgr->SetPixelTolerance (ViewerTest::GetAISContext()->PixelTolerance());
+  Standard_Integer aWidth, aHeight;
+  ViewerTest::CurrentView()->View()->Window()->Size (aWidth, aHeight);
+  aMgr->SetWindowSize (aWidth, aHeight);
+  if (theArgNb > 4)
+  {
+    aMgr->BuildSelectingVolume (aPxPnt1, aPxPnt2);
+  }
+  else
+  {
+    aMgr->BuildSelectingVolume (aPxPnt1);
+  }
+  const gp_Pnt* aVerts = aMgr->GetVertices();
+  gp_Pnt aNearPnt = aMgr->GetNearPnt();
+  gp_Pnt aFarPnt  = aMgr->GetFarPnt();
+  BRepBuilderAPI_MakePolygon aWireBldrs[4];
+
+  aWireBldrs[0].Add (gp_Pnt (aVerts[0].X(), aVerts[0].Y(), aVerts[0].Z()));
+  aWireBldrs[0].Add (gp_Pnt (aVerts[4].X(), aVerts[4].Y(), aVerts[4].Z()));
+  aWireBldrs[0].Add (gp_Pnt (aVerts[6].X(), aVerts[6].Y(), aVerts[6].Z()));
+  aWireBldrs[0].Add (gp_Pnt (aVerts[2].X(), aVerts[2].Y(), aVerts[2].Z()));
+  aWireBldrs[0].Add (gp_Pnt (aVerts[0].X(), aVerts[0].Y(), aVerts[0].Z()));
+
+  aWireBldrs[1].Add (gp_Pnt (aVerts[4].X(), aVerts[4].Y(), aVerts[4].Z()));
+  aWireBldrs[1].Add (gp_Pnt (aVerts[5].X(), aVerts[5].Y(), aVerts[5].Z()));
+  aWireBldrs[1].Add (gp_Pnt (aVerts[7].X(), aVerts[7].Y(), aVerts[7].Z()));
+  aWireBldrs[1].Add (gp_Pnt (aVerts[6].X(), aVerts[6].Y(), aVerts[6].Z()));
+  aWireBldrs[1].Add (gp_Pnt (aVerts[4].X(), aVerts[4].Y(), aVerts[4].Z()));
+
+  aWireBldrs[2].Add (gp_Pnt (aVerts[1].X(), aVerts[1].Y(), aVerts[1].Z()));
+  aWireBldrs[2].Add (gp_Pnt (aVerts[5].X(), aVerts[5].Y(), aVerts[5].Z()));
+  aWireBldrs[2].Add (gp_Pnt (aVerts[7].X(), aVerts[7].Y(), aVerts[7].Z()));
+  aWireBldrs[2].Add (gp_Pnt (aVerts[3].X(), aVerts[3].Y(), aVerts[3].Z()));
+  aWireBldrs[2].Add (gp_Pnt (aVerts[1].X(), aVerts[1].Y(), aVerts[1].Z()));
+
+  aWireBldrs[3].Add (gp_Pnt (aVerts[0].X(), aVerts[0].Y(), aVerts[0].Z()));
+  aWireBldrs[3].Add (gp_Pnt (aVerts[1].X(), aVerts[1].Y(), aVerts[1].Z()));
+  aWireBldrs[3].Add (gp_Pnt (aVerts[3].X(), aVerts[3].Y(), aVerts[3].Z()));
+  aWireBldrs[3].Add (gp_Pnt (aVerts[2].X(), aVerts[2].Y(), aVerts[2].Z()));
+  aWireBldrs[3].Add (gp_Pnt (aVerts[0].X(), aVerts[0].Y(), aVerts[0].Z()));
+
+  TopoDS_Compound aComp;
+  BRep_Builder    aCompBuilder;
+  aCompBuilder.MakeCompound (aComp);
+  for (Standard_Integer aWireIdx = 0; aWireIdx < 4; ++aWireIdx)
+  {
+    aCompBuilder.Add (aComp, aWireBldrs[aWireIdx].Shape());
+  }
+  DBRep::Set ("c", aComp);
+
+  Handle(AIS_InteractiveObject) aCmp = new AIS_Shape (aComp);
+  aCmp->SetColor (Quantity_NOC_GREEN);
+  ViewerTest::Display ("c", aCmp, Standard_True, Standard_True);
+
+  Handle(Geom_CartesianPoint) aPnt1 = new Geom_CartesianPoint (aNearPnt);
+  Handle(Geom_CartesianPoint) aPnt2 = new Geom_CartesianPoint (aFarPnt);
+
+  Handle(AIS_Line) aLine = new AIS_Line (aPnt1, aPnt2);
+  ViewerTest::Display ("l", aLine, Standard_True, Standard_True);
+
+  if (toPrint)
+  {
+    theDI << "Near: " << aNearPnt.X() << " " << aNearPnt.Y() << " " << aNearPnt.Z() << "\n";
+    theDI << "Far: " << aFarPnt.X() << " " << aFarPnt.Y() << " " << aFarPnt.Z() << "\n";
+  }
+
+  return 0;
+}
+
+//=======================================================================
+//function : OCC26462
+//purpose  :
+//=======================================================================
+static Standard_Integer OCC26462 (Draw_Interpretor& theDI, Standard_Integer /*theArgNb*/, const char** /*theArgVec*/)
+{
+  if (ViewerTest::GetAISContext().IsNull())
+  {
+    std::cerr << "Error: No opened context!\n";
+    return 1;
+  }
+
+  BRepPrimAPI_MakeBox aBuilder1 (gp_Pnt (10.0, 10.0, 0.0), 10.0, 10.0, 10.0);
+  BRepPrimAPI_MakeBox aBuilder2 (10.0, 10.0, 10.0);
+  Handle(AIS_InteractiveObject) aBox1 = new AIS_Shape (aBuilder1.Shape());
+  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);
+  ViewerTest::CurrentView()->FitAll();
+  aCtx->SetWidth (aBox1, 3);
+  aCtx->SetWidth (aBox2, 3);
+
+  aCtx->MoveTo (305, 322, ViewerTest::CurrentView());
+  aCtx->ShiftSelect();
+  aCtx->MoveTo (103, 322, ViewerTest::CurrentView());
+  aCtx->ShiftSelect();
+  if (aCtx->NbSelected() != 0)
+  {
+    theDI << "ERROR: no boxes must be selected!\n";
+    return 1;
+  }
+
+  aCtx->SetSelectionSensitivity (aBox1, 2, 5);
+
+  aCtx->MoveTo (305, 322, ViewerTest::CurrentView());
+  aCtx->ShiftSelect();
+  if (aCtx->NbSelected() != 1)
+  {
+    theDI << "ERROR: b1 was not selected\n";
+    return 1;
+  }
+  aCtx->MoveTo (103, 322, ViewerTest::CurrentView());
+  aCtx->ShiftSelect();
+  if (aCtx->NbSelected() != 1)
+  {
+    theDI << "ERROR: b2 is selected after b1's tolerance increased\n";
+    return 1;
+  }
+
+  return 0;
+}
+
 void QABugs::Commands_19(Draw_Interpretor& theCommands) {
   const char *group = "QABugs";
 
@@ -3701,7 +4100,6 @@ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
                    __FILE__, aNClassPtr, &QABugs_NHandleClass::NHandleProc, group);
 
   theCommands.Add ("OCC230", "OCC230 TrimmedCurve Pnt2d Pnt2d", __FILE__, OCC230, group);
-  theCommands.Add ("OCC142", "OCC142", __FILE__, OCC142, group);
   theCommands.Add ("OCC23361", "OCC23361", __FILE__, OCC23361, group);
   theCommands.Add ("OCC23237", "OCC23237", __FILE__, OCC23237, group); 
   theCommands.Add ("OCC22980", "OCC22980", __FILE__, OCC22980, group);
@@ -3728,7 +4126,6 @@ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
   theCommands.Add ("OCC24086", "OCC24086 face wire", __FILE__, OCC24086, group);
   theCommands.Add ("OCC24622", "OCC24622 texture={1D|2D}\n Tests sourcing of 1D/2D pixmaps for AIS_TexturedShape", __FILE__, OCC24622, group);
   theCommands.Add ("OCC24667", "OCC24667 result Wire_spine Profile [Mode [Approx]], no args to get help", __FILE__, OCC24667, group);
-  theCommands.Add ("OCC24565", "OCC24565 FileNameIGS FileNameSTOR", __FILE__, OCC24565, group);
   theCommands.Add ("OCC24755", "OCC24755", __FILE__, OCC24755, group);
   theCommands.Add ("OCC24834", "OCC24834", __FILE__, OCC24834, group);
   theCommands.Add ("OCC24889", "OCC24889", __FILE__, OCC24889, group);
@@ -3758,7 +4155,26 @@ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
                    __FILE__, OCC25545, group);
   theCommands.Add ("OCC25547", "OCC25547", __FILE__, OCC25547, group);
   theCommands.Add ("OCC24881", "OCC24881 shape", __FILE__, OCC24881, group);
+  theCommands.Add ("OCC26172", "OCC26172", __FILE__, OCC26172, group);
   theCommands.Add ("xprojponf", "xprojponf p f", __FILE__, xprojponf, group);
   theCommands.Add ("OCC24923", "OCC24923", __FILE__, OCC24923, group);
+  theCommands.Add ("OCC26139", "OCC26139 [-boxsize value] [-boxgrid value] [-compgrid value]", __FILE__, OCC26139, group);
+  theCommands.Add ("OCC26284", "OCC26284", __FILE__, OCC26284, group);
+  theCommands.Add ("OCC26446", "OCC26446 r c1 c2", __FILE__, OCC26446, group);
+  theCommands.Add ("OCC26448", "OCC26448: check method Prepend() of sequence", __FILE__, OCC26448, group);
+  theCommands.Add ("OCC26407", "OCC26407 result_name", __FILE__, OCC26407, group);
+  theCommands.Add ("OCC26485", "OCC26485 shape", __FILE__, OCC26485, group);
+  theCommands.Add ("OCC26553", "OCC26553 file_path", __FILE__, OCC26553, group);
+  theCommands.Add ("OCC26195",
+                   "OCC26195: x1_pix y1_pix [x2_pix y2_pix] [toPrintPixelCoord 0|1]"
+                   "\n\t\t: Draws rectangular selecting frustum defined by point selection in pixel coordinates"
+                   "\n\t\t: [x1_pix, y1_pix] or rectangular selection in pixel coordinates [x1_pix, y1_pix,"
+                   "\n\t\t: x2_pix, y2_pix]."
+                   "\n\t\t: [toPrintPixelCoord 0|1] - prints 3d projection of pixel coordinate or center of"
+                   "\n\t\t: selecting rectangle onto near and far view frustum planes",
+                   __FILE__, OCC26195, group);
+  theCommands.Add ("OCC26462",
+                   "OCC26462: Checks the ability to manage sensitivity of a particular selection mode in local context",
+                   __FILE__, OCC26462, group);
   return;
 }