mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-03-31 12:29:52 +05:00
PAL10015. Implement GetShapesOnQuadrangle()
This commit is contained in:
parent
144514e2fe
commit
848e92b3ee
@ -699,6 +699,67 @@ GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnSphere
|
||||
return aSeq._retn();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* GetShapesOnQuadrangle
|
||||
*/
|
||||
//=============================================================================
|
||||
GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnQuadrangle
|
||||
(GEOM::GEOM_Object_ptr theShape,
|
||||
CORBA::Long theShapeType,
|
||||
GEOM::GEOM_Object_ptr theTopLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theTopRigthPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomRigthPoint,
|
||||
GEOM::shape_state theState)
|
||||
{
|
||||
GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
|
||||
|
||||
//Set a not done flag
|
||||
GetOperations()->SetNotDone();
|
||||
|
||||
if (theShape == NULL ||
|
||||
theTopLeftPoint == NULL ||
|
||||
theTopRigthPoint == NULL ||
|
||||
theBottomLeftPoint == NULL ||
|
||||
theBottomRigthPoint == NULL )
|
||||
return aSeq._retn();
|
||||
|
||||
//Get the reference objects
|
||||
Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theShape->GetEntry());
|
||||
Handle(GEOM_Object) aTopLeftPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theTopLeftPoint->GetEntry());
|
||||
Handle(GEOM_Object) aTopRigthPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theTopRigthPoint->GetEntry());
|
||||
Handle(GEOM_Object) aBottomLeftPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theBottomLeftPoint->GetEntry());
|
||||
Handle(GEOM_Object) aBottomRigthPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theBottomRigthPoint->GetEntry());
|
||||
|
||||
if (aShape.IsNull() ||
|
||||
aTopLeftPoint.IsNull() ||
|
||||
aTopRigthPoint.IsNull() ||
|
||||
aBottomLeftPoint.IsNull() ||
|
||||
aBottomRigthPoint.IsNull() )
|
||||
return aSeq._retn();
|
||||
|
||||
//Get Shapes On Quadrangle
|
||||
Handle(TColStd_HSequenceOfTransient) aHSeq = GetOperations()->GetShapesOnQuadrangle
|
||||
(aShape, theShapeType,
|
||||
aTopLeftPoint, aTopRigthPoint, aBottomLeftPoint, aBottomRigthPoint,
|
||||
ShapeState(theState));
|
||||
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();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* GetShapesOnPlaneIDs
|
||||
@ -821,6 +882,67 @@ GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnSphereIDs
|
||||
return aSeq._retn();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* GetShapesOnQuadrangleIDs
|
||||
*/
|
||||
//=============================================================================
|
||||
GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnQuadrangleIDs
|
||||
(GEOM::GEOM_Object_ptr theShape,
|
||||
CORBA::Long theShapeType,
|
||||
GEOM::GEOM_Object_ptr theTopLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theTopRigthPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomRigthPoint,
|
||||
GEOM::shape_state theState)
|
||||
{
|
||||
GEOM::ListOfLong_var aSeq = new GEOM::ListOfLong;
|
||||
|
||||
//Set a not done flag
|
||||
GetOperations()->SetNotDone();
|
||||
|
||||
if (theShape == NULL ||
|
||||
theTopLeftPoint == NULL ||
|
||||
theTopRigthPoint == NULL ||
|
||||
theBottomLeftPoint == NULL ||
|
||||
theBottomRigthPoint == NULL )
|
||||
return aSeq._retn();
|
||||
|
||||
//Get the reference objects
|
||||
Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theShape->GetEntry());
|
||||
Handle(GEOM_Object) aTopLeftPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theTopLeftPoint->GetEntry());
|
||||
Handle(GEOM_Object) aTopRigthPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theTopRigthPoint->GetEntry());
|
||||
Handle(GEOM_Object) aBottomLeftPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theBottomLeftPoint->GetEntry());
|
||||
Handle(GEOM_Object) aBottomRigthPoint = GetOperations()->GetEngine()->GetObject
|
||||
(theShape->GetStudyID(), theBottomRigthPoint->GetEntry());
|
||||
|
||||
if (aShape.IsNull() ||
|
||||
aTopLeftPoint.IsNull() ||
|
||||
aTopRigthPoint.IsNull() ||
|
||||
aBottomLeftPoint.IsNull() ||
|
||||
aBottomRigthPoint.IsNull() )
|
||||
return aSeq._retn();
|
||||
|
||||
//Get Shapes On Quadrangle
|
||||
Handle(TColStd_HSequenceOfInteger) aHSeq = GetOperations()->GetShapesOnQuadrangleIDs
|
||||
(aShape, theShapeType,
|
||||
aTopLeftPoint, aTopRigthPoint, aBottomLeftPoint, aBottomRigthPoint,
|
||||
ShapeState(theState));
|
||||
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] = aHSeq->Value(i);
|
||||
|
||||
return aSeq._retn();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
* GetInPlace
|
||||
|
@ -82,6 +82,14 @@ class GEOM_IShapesOperations_i :
|
||||
CORBA::Double theRadius,
|
||||
GEOM::shape_state theState);
|
||||
|
||||
GEOM::ListOfGO* GetShapesOnQuadrangle (GEOM::GEOM_Object_ptr theShape,
|
||||
CORBA::Long theShapeType,
|
||||
GEOM::GEOM_Object_ptr theTopLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theTopRigthPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomRigthPoint,
|
||||
GEOM::shape_state theState);
|
||||
|
||||
GEOM::ListOfLong* GetShapesOnPlaneIDs (GEOM::GEOM_Object_ptr theShape,
|
||||
CORBA::Long theShapeType,
|
||||
GEOM::GEOM_Object_ptr theAx1,
|
||||
@ -99,6 +107,14 @@ class GEOM_IShapesOperations_i :
|
||||
CORBA::Double theRadius,
|
||||
GEOM::shape_state theState);
|
||||
|
||||
GEOM::ListOfLong* GetShapesOnQuadrangleIDs (GEOM::GEOM_Object_ptr theShape,
|
||||
CORBA::Long theShapeType,
|
||||
GEOM::GEOM_Object_ptr theTopLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theTopRigthPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomLeftPoint,
|
||||
GEOM::GEOM_Object_ptr theBottomRigthPoint,
|
||||
GEOM::shape_state theState);
|
||||
|
||||
GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere,
|
||||
GEOM::GEOM_Object_ptr theShapeWhat);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user