-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
GetOperations()->SetNotDone();
//Create the Box
- Handle(GEOM_Object) anObject = GetOperations()->MakeBoxDXDYDZ(theDX, theDY, theDZ);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeBoxDXDYDZ(theDX, theDY, theDZ);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
//Set a not done flag
GetOperations()->SetNotDone();
- Handle(GEOM_Object) aPnt1 = GetObjectImpl(thePnt1);
- Handle(GEOM_Object) aPnt2 = GetObjectImpl(thePnt2);
+ Handle(::GEOM_Object) aPnt1 = GetObjectImpl(thePnt1);
+ Handle(::GEOM_Object) aPnt2 = GetObjectImpl(thePnt2);
if (aPnt1.IsNull() || aPnt2.IsNull()) return aGEOMObject._retn();
//Create the Box
- Handle(GEOM_Object) anObject = GetOperations()->MakeBoxTwoPnt(aPnt1, aPnt2);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeBoxTwoPnt(aPnt1, aPnt2);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
return aGEOMObject._retn();
//Create the Face
- Handle(GEOM_Object) anObject = GetOperations()->MakeFaceHW(theH, theW, theOrientation);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeFaceHW(theH, theW, theOrientation);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference object
- Handle(GEOM_Object) anObj = GetObjectImpl(theObj);
+ Handle(::GEOM_Object) anObj = GetObjectImpl(theObj);
if (anObj.IsNull())
return aGEOMObject._retn();
//Create the Face
- Handle(GEOM_Object) anObject = GetOperations()->MakeFaceObjHW(anObj, theH, theW);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeFaceObjHW(anObj, theH, theW);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
// Make Disk
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeDiskPntVecR(aPnt, aVec, theR);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt1 = GetObjectImpl(thePnt1);
- Handle(GEOM_Object) aPnt2 = GetObjectImpl(thePnt2);
- Handle(GEOM_Object) aPnt3 = GetObjectImpl(thePnt3);
+ Handle(::GEOM_Object) aPnt1 = GetObjectImpl(thePnt1);
+ Handle(::GEOM_Object) aPnt2 = GetObjectImpl(thePnt2);
+ Handle(::GEOM_Object) aPnt3 = GetObjectImpl(thePnt3);
if (aPnt1.IsNull() || aPnt2.IsNull() || aPnt3.IsNull()) return aGEOMObject._retn();
// Make Disk
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeDiskThreePnt(aPnt1, aPnt2, aPnt3);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
return aGEOMObject._retn();
//Create the Face
- Handle(GEOM_Object) anObject = GetOperations()->MakeDiskR(theR, theOrientation);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeDiskR(theR, theOrientation);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Create the Cylinder
- Handle(GEOM_Object) anObject = GetOperations()->MakeCylinderRH(theR, theH);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeCylinderRH(theR, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Create the Cylinder
- Handle(GEOM_Object) anObject = GetOperations()->MakeCylinderRHA(theR, theH, theA);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeCylinderRHA(theR, theH, theA);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Cylinder
- Handle(GEOM_Object) anObject = GetOperations()->MakeCylinderPntVecRH(aPnt, aVec, theR, theH);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeCylinderPntVecRH(aPnt, aVec, theR, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Cylinder
- Handle(GEOM_Object) anObject = GetOperations()->MakeCylinderPntVecRHA(aPnt, aVec, theR, theH, theA);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeCylinderPntVecRHA(aPnt, aVec, theR, theH, theA);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Create the Cone
- Handle(GEOM_Object) anObject = GetOperations()->MakeConeR1R2H(theR1, theR2, theH);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeConeR1R2H(theR1, theR2, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Cone
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeConePntVecR1R2H(aPnt, aVec, theR1, theR2, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Create the Cone
- Handle(GEOM_Object) anObject = GetOperations()->MakeSphereR(theR);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeSphereR(theR);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference point
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
if (aPnt.IsNull()) return aGEOMObject._retn();
//Create the Sphere
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeSpherePntR(aPnt, theR);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
// Make Torus
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeTorusRR(theRMajor, theRMinor);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference points
- Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aPnt = GetObjectImpl(thePnt);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
// Make Torus
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeTorusPntVecRR(aPnt, aVec, theRMajor, theRMinor);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aBase.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismVecH(aBase, aVec, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aBase.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismVecH2Ways(aBase, aVec, theH);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
if (aBase.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismVecH(aBase, aVec, theH, theScaleFactor);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
- Handle(GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
+ Handle(::GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
if (aBase.IsNull() || aPoint1.IsNull() || aPoint2.IsNull())
return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismTwoPnt(aBase, aPoint1, aPoint2);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
- Handle(GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
+ Handle(::GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
if (aBase.IsNull() || aPoint1.IsNull() || aPoint2.IsNull())
return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismTwoPnt2Ways(aBase, aPoint1, aPoint2);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
- Handle(GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aPoint1 = GetObjectImpl(thePoint1);
+ Handle(::GEOM_Object) aPoint2 = GetObjectImpl(thePoint2);
if (aBase.IsNull() || aPoint1.IsNull() || aPoint2.IsNull())
return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismTwoPnt(aBase, aPoint1, aPoint2, theScaleFactor);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
if (aBase.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismDXDYDZ(aBase, theDX, theDY, theDZ);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
if (aBase.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismDXDYDZ2Ways(aBase, theDX, theDY, theDZ);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
if (aBase.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakePrismDXDYDZ(aBase, theDX, theDY, theDZ, theScaleFactor);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
(GEOM::GEOM_Object_ptr theInitShape, GEOM::GEOM_Object_ptr theBase,
CORBA::Double theHeight,
CORBA::Double theAngle,
- CORBA::Boolean theFuse)
+ CORBA::Boolean theFuse,
+ CORBA::Boolean theInvert)
{
GEOM::GEOM_Object_var aGEOMObject;
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aInit = GetObjectImpl(theInitShape);
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aInit = GetObjectImpl(theInitShape);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
if (aBase.IsNull() || aInit.IsNull()) return aGEOMObject._retn();
//Create the Prism
- Handle(GEOM_Object) anObject = GetOperations()->MakeDraftPrism(aInit, aBase, theHeight, theAngle, theFuse);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeDraftPrism(aInit, aBase, theHeight, theAngle, theFuse, theInvert);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
* MakePipe
*/
//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipe
- (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr thePath)
+GEOM::ListOfGO *GEOM_I3DPrimOperations_i::MakePipe
+ (GEOM::GEOM_Object_ptr theBase,
+ GEOM::GEOM_Object_ptr thePath,
+ CORBA::Boolean IsGenerateGroups)
{
- GEOM::GEOM_Object_var aGEOMObject;
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
//Set a not done flag
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aPath = GetObjectImpl(thePath);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aPath = GetObjectImpl(thePath);
- if (aBase.IsNull() || aPath.IsNull()) return aGEOMObject._retn();
+ if (aBase.IsNull() || aPath.IsNull()) return aSeq._retn();
//Create the Pipe
- Handle(GEOM_Object) anObject =
- GetOperations()->MakePipe(aBase, aPath);
- if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
+ Handle(TColStd_HSequenceOfTransient) aHSeq =
+ GetOperations()->MakePipe(aBase, aPath, IsGenerateGroups);
+ if (!GetOperations()->IsDone() || aHSeq.IsNull())
+ return aSeq._retn();
- return GetObject(anObject);
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length(aLength);
+ for (Standard_Integer i = 1; i <= aLength; i++)
+ aSeq[i-1] = GetObject(Handle(::GEOM_Object)::DownCast(aHSeq->Value(i)));
+
+ return aSeq._retn();
}
//=============================================================================
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) anAxis = GetObjectImpl(theAxis);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) anAxis = GetObjectImpl(theAxis);
if (aBase.IsNull() || anAxis.IsNull()) return aGEOMObject._retn();
//Create the Revolution
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeRevolutionAxisAngle(aBase, anAxis, theAngle);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) anAxis = GetObjectImpl(theAxis);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) anAxis = GetObjectImpl(theAxis);
if (aBase.IsNull() || anAxis.IsNull()) return aGEOMObject._retn();
//Create the Revolution
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeRevolutionAxisAngle2Ways(aBase, anAxis, theAngle);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
*/
//=============================================================================
GEOM::GEOM_Object_ptr
-GEOM_I3DPrimOperations_i::MakeFilling(GEOM::GEOM_Object_ptr theShape,
- CORBA::Long theMinDeg,
- CORBA::Long theMaxDeg,
- CORBA::Double theTol2D,
- CORBA::Double theTol3D,
- CORBA::Long theNbIter,
+GEOM_I3DPrimOperations_i::MakeFilling(const GEOM::ListOfGO& theContours,
+ CORBA::Long theMinDeg,
+ CORBA::Long theMaxDeg,
+ CORBA::Double theTol2D,
+ CORBA::Double theTol3D,
+ CORBA::Long theNbIter,
GEOM::filling_oper_method theMethod,
- CORBA::Boolean theApprox)
+ CORBA::Boolean theApprox)
{
GEOM::GEOM_Object_var aGEOMObject;
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aShape = GetObjectImpl(theShape);
-
- if (aShape.IsNull()) return aGEOMObject._retn();
+ std::list< Handle(::GEOM_Object) > aShapes;
+ if (! GetListOfObjectsImpl( theContours, aShapes ))
+ return aGEOMObject._retn();
int aMethod = 0;
switch (theMethod) {
}
//Create the Solid
- Handle(GEOM_Object) anObject = GetOperations()->MakeFilling
- (aShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter,
- aMethod, theApprox);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeFilling
+ (aShapes, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, aMethod, theApprox);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
//Get the shapes
aLen = theSeqSections.length();
for (ind = 0; ind < aLen; ind++) {
- Handle(GEOM_Object) aSh = GetObjectImpl(theSeqSections[ind]);
+ Handle(::GEOM_Object) aSh = GetObjectImpl(theSeqSections[ind]);
if (!aSh.IsNull())
aSeqSections->Append(aSh);
}
return aGEOMObject._retn();
// Make shell or solid
- Handle(GEOM_Object) anObject =
+ Handle(::GEOM_Object) anObject =
GetOperations()->MakeThruSections(aSeqSections,theModeSolid,thePreci,theRuled);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
* MakePipeWithDifferentSections
*/
//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeWithDifferentSections
- (const GEOM::ListOfGO& theBases,
- const GEOM::ListOfGO& theLocations,
- GEOM::GEOM_Object_ptr thePath,
- CORBA::Boolean theWithContact,
- CORBA::Boolean theWithCorrections)
+GEOM::ListOfGO *GEOM_I3DPrimOperations_i::MakePipeWithDifferentSections
+ (const GEOM::ListOfGO &theBases,
+ const GEOM::ListOfGO &theLocations,
+ GEOM::GEOM_Object_ptr thePath,
+ CORBA::Boolean theWithContact,
+ CORBA::Boolean theWithCorrections,
+ CORBA::Boolean IsBySteps,
+ CORBA::Boolean IsGenerateGroups)
{
- GEOM::GEOM_Object_var aGEOMObject;
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
//Set a not done flag
GetOperations()->SetNotDone();
aNbLocs = theLocations.length();
if (aNbLocs && aNbBases != aNbLocs)
- return aGEOMObject._retn();
+ return aSeq._retn();
- Handle(GEOM_Object) aPath = GetObjectImpl(thePath);
+ Handle(::GEOM_Object) aPath = GetObjectImpl(thePath);
if (aPath.IsNull())
- return aGEOMObject._retn();
+ return aSeq._retn();
for (ind = 0; ind < aNbBases; ind++) {
- Handle(GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
if (aBase.IsNull())
continue;
if (aNbLocs)
{
- Handle(GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
+ Handle(::GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
if (aLoc.IsNull())
continue;
aSeqLocations->Append(aLoc);
aSeqBases->Append(aBase);
}
if (!aSeqBases->Length())
- return aGEOMObject._retn();
+ return aSeq._retn();
// Make pipe
- Handle(GEOM_Object) anObject =
- GetOperations()->MakePipeWithDifferentSections(aSeqBases,aSeqLocations ,aPath,
- theWithContact,theWithCorrections);
- if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
-
- return GetObject(anObject);
+ Handle(TColStd_HSequenceOfTransient) aHSeq =
+ GetOperations()->MakePipeWithDifferentSections
+ (aSeqBases, aSeqLocations,
+ aPath, theWithContact,
+ theWithCorrections, IsBySteps, IsGenerateGroups);
+ if (!GetOperations()->IsDone() || aHSeq.IsNull())
+ return aSeq._retn();
+
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length(aLength);
+ for (Standard_Integer i = 1; i <= aLength; i++)
+ aSeq[i-1] = GetObject(Handle(::GEOM_Object)::DownCast(aHSeq->Value(i)));
+
+ return aSeq._retn();
}
* MakePipeWithShellSections
*/
//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeWithShellSections
- (const GEOM::ListOfGO& theBases,
- const GEOM::ListOfGO& theSubBases,
- const GEOM::ListOfGO& theLocations,
- GEOM::GEOM_Object_ptr thePath,
- CORBA::Boolean theWithContact,
- CORBA::Boolean theWithCorrections)
+GEOM::ListOfGO *GEOM_I3DPrimOperations_i::MakePipeWithShellSections
+ (const GEOM::ListOfGO &theBases,
+ const GEOM::ListOfGO &theSubBases,
+ const GEOM::ListOfGO &theLocations,
+ GEOM::GEOM_Object_ptr thePath,
+ CORBA::Boolean theWithContact,
+ CORBA::Boolean theWithCorrections,
+ CORBA::Boolean IsGenerateGroups)
{
- GEOM::GEOM_Object_var aGEOMObject;
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
//Set a not done flag
GetOperations()->SetNotDone();
aNbLocs = theLocations.length();
if (aNbLocs && aNbBases != aNbLocs)
- return aGEOMObject._retn();
+ return aSeq._retn();
- Handle(GEOM_Object) aPath = GetObjectImpl(thePath);
+ Handle(::GEOM_Object) aPath = GetObjectImpl(thePath);
if (aPath.IsNull())
- return aGEOMObject._retn();
+ return aSeq._retn();
for (ind = 0; ind < aNbBases; ind++) {
- Handle(GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
if (aBase.IsNull())
continue;
if (aNbLocs) {
- Handle(GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
+ Handle(::GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
if (aLoc.IsNull())
continue;
aSeqLocations->Append(aLoc);
aSeqBases->Append(aBase);
if (aNbSubBases >= aNbBases) {
- Handle(GEOM_Object) aSubBase = GetObjectImpl(theSubBases[ind]);
+ Handle(::GEOM_Object) aSubBase = GetObjectImpl(theSubBases[ind]);
if (aSubBase.IsNull()) {
aSeqSubBases->Clear();
aNbSubBases = 0;
}
}
if (!aSeqBases->Length())
- return aGEOMObject._retn();
+ return aSeq._retn();
// Make pipe
- Handle(GEOM_Object) anObject =
- GetOperations()->MakePipeWithShellSections(aSeqBases, aSeqSubBases,
- aSeqLocations, aPath,
- theWithContact, theWithCorrections);
- if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
-
- return GetObject(anObject);
+ Handle(TColStd_HSequenceOfTransient) aHSeq =
+ GetOperations()->MakePipeWithShellSections
+ (aSeqBases, aSeqSubBases,
+ aSeqLocations, aPath,
+ theWithContact, theWithCorrections, IsGenerateGroups);
+ if (!GetOperations()->IsDone() || aHSeq.IsNull())
+ return aSeq._retn();
+
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length(aLength);
+ for (Standard_Integer i = 1; i <= aLength; i++)
+ aSeq[i-1] = GetObject(Handle(::GEOM_Object)::DownCast(aHSeq->Value(i)));
+
+ return aSeq._retn();
}
* MakePipeShellsWithoutPath
*/
//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeShellsWithoutPath
- (const GEOM::ListOfGO& theBases,
- const GEOM::ListOfGO& theLocations)
+GEOM::ListOfGO *GEOM_I3DPrimOperations_i::MakePipeShellsWithoutPath
+ (const GEOM::ListOfGO &theBases,
+ const GEOM::ListOfGO &theLocations,
+ CORBA::Boolean IsGenerateGroups)
{
- GEOM::GEOM_Object_var aGEOMObject;
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
//Set a not done flag
GetOperations()->SetNotDone();
aNbLocs = theLocations.length();
if (aNbLocs && aNbBases != aNbLocs)
- return aGEOMObject._retn();
+ return aSeq._retn();
for (ind = 0; ind < aNbBases; ind++) {
- Handle(GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBases[ind]);
if (aBase.IsNull())
continue;
if (aNbLocs) {
- Handle(GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
+ Handle(::GEOM_Object) aLoc = GetObjectImpl(theLocations[ind]);
if (aLoc.IsNull())
continue;
aSeqLocations->Append(aLoc);
}
if (!aSeqBases->Length())
- return aGEOMObject._retn();
+ return aSeq._retn();
// Make pipe
- Handle(GEOM_Object) anObject =
- GetOperations()->MakePipeShellsWithoutPath(aSeqBases,aSeqLocations);
+ Handle(TColStd_HSequenceOfTransient) aHSeq =
+ GetOperations()->MakePipeShellsWithoutPath
+ (aSeqBases, aSeqLocations, IsGenerateGroups);
- if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
+ if (!GetOperations()->IsDone() || aHSeq.IsNull())
+ return aSeq._retn();
- return GetObject(anObject);
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length(aLength);
+ for (Standard_Integer i = 1; i <= aLength; i++)
+ aSeq[i-1] = GetObject(Handle(::GEOM_Object)::DownCast(aHSeq->Value(i)));
+
+ return aSeq._retn();
}
//=============================================================================
* MakePipeBiNormalAlongVector
*/
//=============================================================================
-GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeBiNormalAlongVector
- (GEOM::GEOM_Object_ptr theBase,
- GEOM::GEOM_Object_ptr thePath,
- GEOM::GEOM_Object_ptr theVec)
+GEOM::ListOfGO *GEOM_I3DPrimOperations_i::MakePipeBiNormalAlongVector
+ (GEOM::GEOM_Object_ptr theBase,
+ GEOM::GEOM_Object_ptr thePath,
+ GEOM::GEOM_Object_ptr theVec,
+ CORBA::Boolean IsGenerateGroups)
{
- GEOM::GEOM_Object_var aGEOMObject;
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
//Set a not done flag
GetOperations()->SetNotDone();
//Get the reference objects
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase);
- Handle(GEOM_Object) aPath = GetObjectImpl(thePath);
- Handle(GEOM_Object) aVec = GetObjectImpl(theVec);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase);
+ Handle(::GEOM_Object) aPath = GetObjectImpl(thePath);
+ Handle(::GEOM_Object) aVec = GetObjectImpl(theVec);
- if (aBase.IsNull() || aPath.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
+ if (aBase.IsNull() || aPath.IsNull() || aVec.IsNull()) return aSeq._retn();
//Create the Pipe
- Handle(GEOM_Object) anObject =
- GetOperations()->MakePipeBiNormalAlongVector(aBase, aPath, aVec);
- if (!GetOperations()->IsDone() || anObject.IsNull())
- return aGEOMObject._retn();
-
- return GetObject(anObject);
+ Handle(TColStd_HSequenceOfTransient) aHSeq =
+ GetOperations()->MakePipeBiNormalAlongVector
+ (aBase, aPath, aVec, IsGenerateGroups);
+ if (!GetOperations()->IsDone() || aHSeq.IsNull())
+ return aSeq._retn();
+
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length(aLength);
+ for (Standard_Integer i = 1; i <= aLength; i++)
+ aSeq[i-1] = GetObject(Handle(::GEOM_Object)::DownCast(aHSeq->Value(i)));
+
+ return aSeq._retn();
}
//=============================================================================
*/
//=============================================================================
GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeThickening
- (GEOM::GEOM_Object_ptr theObject,
- CORBA::Double theOffset,
- CORBA::Boolean doCopy)
+ (GEOM::GEOM_Object_ptr theObject,
+ const GEOM::ListOfLong &theFacesIDs,
+ CORBA::Double theOffset,
+ CORBA::Boolean doCopy,
+ CORBA::Boolean theInside)
{
GEOM::GEOM_Object_var aGEOMObject;
//Set a not done flag
aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject);
//Get the basic object
- Handle(GEOM_Object) aBasicObject = GetObjectImpl(theObject);
+ Handle(::GEOM_Object) aBasicObject = GetObjectImpl(theObject);
if (aBasicObject.IsNull()) return aGEOMObject._retn();
-
+
+ // Get faces IDs.
+ Handle(TColStd_HArray1OfInteger) aFaceIDs;
+ Standard_Integer aNbIDs = theFacesIDs.length();
+ Standard_Integer i;
+
+ if (aNbIDs > 0) {
+ aFaceIDs = new TColStd_HArray1OfInteger (1, aNbIDs);
+
+ for (i = 0; i < aNbIDs; i++) {
+ aFaceIDs->SetValue(i + 1, theFacesIDs[i]);
+ }
+ }
+
//Create the thickened shape
if (doCopy)
{
- Handle(GEOM_Object) anObject = GetOperations()->MakeThickening(
- aBasicObject, theOffset, doCopy);
+ Handle(::GEOM_Object) anObject = GetOperations()->MakeThickening(
+ aBasicObject, aFaceIDs, theOffset, doCopy, theInside);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
}
else
{
- GetOperations()->MakeThickening(aBasicObject, theOffset, doCopy);
+ GetOperations()->MakeThickening(aBasicObject, aFaceIDs, theOffset, doCopy, theInside);
// Update GUI.
UpdateGUIForObject(theObject);
GetOperations()->SetNotDone();
// Get the reference objects
- Handle(GEOM_Object) aShape = GetObjectImpl(theShape);
- Handle(GEOM_Object) aBase1 = GetObjectImpl(theBase1);
- Handle(GEOM_Object) aBase2 = GetObjectImpl(theBase2);
+ Handle(::GEOM_Object) aShape = GetObjectImpl(theShape);
+ Handle(::GEOM_Object) aBase1 = GetObjectImpl(theBase1);
+ Handle(::GEOM_Object) aBase2 = GetObjectImpl(theBase2);
if (aShape.IsNull() || aBase1.IsNull() || aBase2.IsNull()) return aGEOMObject._retn();
// Create the Path
- Handle(GEOM_Object) anObject = GetOperations()->RestorePath(aShape, aBase1, aBase2);
+ Handle(::GEOM_Object) anObject = GetOperations()->RestorePath(aShape, aBase1, aBase2);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();
GetOperations()->SetNotDone();
// Get the reference objects
- Handle(GEOM_Object) aShape = GetObjectImpl(theShape);
+ Handle(::GEOM_Object) aShape = GetObjectImpl(theShape);
if (aShape.IsNull()) return aGEOMObject._retn();
Handle(TColStd_HSequenceOfTransient) aSeqBases1 = new TColStd_HSequenceOfTransient;
int aNbBases2 = theBase2.length();
for (ind = 0; ind < aNbBases1; ind++) {
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase1[ind]);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase1[ind]);
if (!aBase.IsNull())
aSeqBases1->Append(aBase);
}
for (ind = 0; ind < aNbBases2; ind++) {
- Handle(GEOM_Object) aBase = GetObjectImpl(theBase2[ind]);
+ Handle(::GEOM_Object) aBase = GetObjectImpl(theBase2[ind]);
if (!aBase.IsNull())
aSeqBases2->Append(aBase);
}
return aGEOMObject._retn();
// Create the Path
- Handle(GEOM_Object) anObject = GetOperations()->RestorePath(aShape, aSeqBases1, aSeqBases2);
+ Handle(::GEOM_Object) anObject = GetOperations()->RestorePath(aShape, aSeqBases1, aSeqBases2);
if (!GetOperations()->IsDone() || anObject.IsNull())
return aGEOMObject._retn();