2005-12-05 21:23:52 +05:00
|
|
|
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
|
|
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
|
|
|
//
|
|
|
|
// This library is free software; you can redistribute it and/or
|
|
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
|
|
// License as published by the Free Software Foundation; either
|
|
|
|
// version 2.1 of the License.
|
|
|
|
//
|
|
|
|
// This library is distributed in the hope that it will be useful
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
// Lesser General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU Lesser General Public
|
|
|
|
// License along with this library; if not, write to the Free Software
|
|
|
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
//
|
|
|
|
// See http://www.salome-platform.org/
|
|
|
|
//
|
2004-12-01 15:39:14 +05:00
|
|
|
|
|
|
|
#include "GEOM_Superv_i.hh"
|
2005-06-02 13:17:09 +06:00
|
|
|
#include "SALOME_LifeCycleCORBA.hxx"
|
2006-05-06 14:44:32 +06:00
|
|
|
|
|
|
|
#include CORBA_SERVER_HEADER(SALOME_Session)
|
|
|
|
#include "SALOMEDSClient_ClientFactory.hxx"
|
|
|
|
|
|
|
|
#define isNewStudy(a,b) (a > 0 && a != b)
|
|
|
|
|
2005-08-24 19:12:16 +06:00
|
|
|
using namespace std;
|
2004-12-01 15:39:14 +05:00
|
|
|
//=============================================================================
|
|
|
|
// constructor:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM_Superv_i::GEOM_Superv_i(CORBA::ORB_ptr orb,
|
|
|
|
PortableServer::POA_ptr poa,
|
|
|
|
PortableServer::ObjectId * contId,
|
|
|
|
const char *instanceName,
|
|
|
|
const char *interfaceName) :
|
|
|
|
Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GEOM_Superv_i");
|
|
|
|
|
|
|
|
_thisObj = this ;
|
|
|
|
_id = _poa->activate_object(_thisObj);
|
|
|
|
name_service = new SALOME_NamingService(_orb);
|
2004-12-17 16:18:33 +05:00
|
|
|
//get RootPOA (the default)
|
|
|
|
//myPOA = PortableServer::RefCountServantBase::_default_POA();
|
|
|
|
CORBA::Object_var anObj = _orb->resolve_initial_references("RootPOA");
|
|
|
|
myPOA = PortableServer::POA::_narrow(anObj);
|
2004-12-01 15:39:14 +05:00
|
|
|
|
2005-06-27 16:38:23 +06:00
|
|
|
setGeomEngine();
|
|
|
|
|
2004-12-01 15:39:14 +05:00
|
|
|
myStudyID = -1;
|
2006-05-06 14:44:32 +06:00
|
|
|
myLastStudyID = -1;
|
2004-12-01 15:39:14 +05:00
|
|
|
|
|
|
|
myBasicOp = GEOM::GEOM_IBasicOperations::_nil();
|
|
|
|
my3DPrimOp = GEOM::GEOM_I3DPrimOperations::_nil();
|
|
|
|
myBoolOp = GEOM::GEOM_IBooleanOperations::_nil();
|
|
|
|
myInsOp = GEOM::GEOM_IInsertOperations::_nil();
|
|
|
|
myTransfOp = GEOM::GEOM_ITransformOperations::_nil();
|
|
|
|
myShapesOp = GEOM::GEOM_IShapesOperations::_nil();
|
|
|
|
myBlocksOp = GEOM::GEOM_IBlocksOperations::_nil();
|
|
|
|
myCurvesOp = GEOM::GEOM_ICurvesOperations::_nil();
|
|
|
|
myLocalOp = GEOM::GEOM_ILocalOperations::_nil();
|
|
|
|
myGroupOp = GEOM::GEOM_IGroupOperations::_nil();
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// destructor
|
|
|
|
//=============================================================================
|
|
|
|
GEOM_Superv_i::~GEOM_Superv_i()
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::~GEOM_Superv_i");
|
|
|
|
delete name_service;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : register()
|
|
|
|
// purpose : register 'name' in 'name_service'
|
|
|
|
//============================================================================
|
|
|
|
void GEOM_Superv_i::register_name(char * name)
|
|
|
|
{
|
|
|
|
GEOM::GEOM_Superv_ptr g = GEOM::GEOM_Superv::_narrow(POA_GEOM::GEOM_Superv::_this());
|
|
|
|
name_service->Register(g, strdup(name));
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// setGEOMEngine:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::setGeomEngine()
|
|
|
|
{
|
|
|
|
// get GEOM_Gen engine
|
|
|
|
SALOME_LifeCycleCORBA* lcc = new SALOME_LifeCycleCORBA( name_service );
|
|
|
|
Engines::Component_var comp = lcc->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
|
|
|
|
|
|
|
myGeomEngine = GEOM::GEOM_Gen::_narrow(comp);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// SetStudyID:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::SetStudyID( CORBA::Long theId )
|
|
|
|
{
|
2006-05-06 14:44:32 +06:00
|
|
|
// mkr : PAL10770 -->
|
|
|
|
myLastStudyID = myStudyID;
|
|
|
|
|
|
|
|
CORBA::Object_ptr anObject = name_service->Resolve("/Kernel/Session");
|
|
|
|
if ( !CORBA::is_nil(anObject) ) {
|
|
|
|
SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
|
|
|
|
if ( !CORBA::is_nil(aSession) ) {
|
|
|
|
int aStudyID = aSession->GetActiveStudyId();
|
|
|
|
if ( theId != aStudyID && aStudyID > 0) { // mkr : IPAL12128
|
|
|
|
MESSAGE("Warning : given study ID theId="<<theId<<" is wrong and will be replaced by the value "<<aStudyID);
|
|
|
|
myStudyID = aStudyID;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
myStudyID = theId; // mkr : IPAL12128
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( isNewStudy(myLastStudyID,myStudyID) ) {
|
|
|
|
if (CORBA::is_nil(myGeomEngine)) setGeomEngine();
|
|
|
|
string anEngine = _orb->object_to_string( myGeomEngine );
|
|
|
|
|
|
|
|
CORBA::Object_var anObj = name_service->Resolve("/myStudyManager");
|
|
|
|
if ( !CORBA::is_nil(anObj) ) {
|
|
|
|
SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(anObj);
|
|
|
|
if ( !CORBA::is_nil(aStudyManager) ) {
|
|
|
|
_PTR(Study) aDSStudy = ClientFactory::Study(aStudyManager->GetStudyByID(myStudyID));
|
|
|
|
if ( aDSStudy ) {
|
|
|
|
_PTR(SComponent) aSCO = aDSStudy->FindComponent(myGeomEngine->ComponentDataType());
|
|
|
|
if ( aSCO ) {
|
|
|
|
_PTR(StudyBuilder) aBuilder = aDSStudy->NewBuilder();
|
|
|
|
if ( aBuilder ) aBuilder->LoadWith( aSCO, anEngine );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// mkr : PAL10770 <--
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
2004-12-17 16:18:33 +05:00
|
|
|
//=============================================================================
|
|
|
|
// CreateListOfGO:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfGO()
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::CreateListOfGO()");
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>();
|
|
|
|
return aListPtr->_this();
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// AddItemToListOfGO:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::AddItemToListOfGO(GEOM::GEOM_List_ptr& theList,
|
|
|
|
GEOM::GEOM_Object_ptr theObject)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::AddItemToListOfGO(...)");
|
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aList =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theList, myPOA).in())) {
|
|
|
|
aList->AddObject(theObject);
|
|
|
|
MESSAGE(" NewLength = "<<aList->GetList().length());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// CreateListOfLong:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfLong()
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::CreateListOfLong()");
|
|
|
|
GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>();
|
|
|
|
return aListPtr->_this();
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// AddItemToListOfLong:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::AddItemToListOfLong(GEOM::GEOM_List_ptr& theList,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Long theObject)
|
2004-12-17 16:18:33 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::AddItemToListOfLong(...)");
|
|
|
|
if (GEOM_List_i<GEOM::ListOfLong>* aList =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theList, myPOA).in())) {
|
|
|
|
aList->AddObject(theObject);
|
|
|
|
MESSAGE(" NewLength = "<<aList->GetList().length());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// CreateListOfDouble:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfDouble()
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::CreateListOfDouble()");
|
|
|
|
GEOM_List_i<GEOM::ListOfDouble>* aListPtr = new GEOM_List_i<GEOM::ListOfDouble>();
|
|
|
|
return aListPtr->_this();
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// AddItemToListOfDouble:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Double theObject)
|
2004-12-17 16:18:33 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::AddItemToListOfDouble(...)");
|
|
|
|
if (GEOM_List_i<GEOM::ListOfDouble>* aList =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theList, myPOA).in())) {
|
|
|
|
aList->AddObject(theObject);
|
|
|
|
MESSAGE(" NewLength = "<<aList->GetList().length());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-12-01 15:39:14 +05:00
|
|
|
//=============================================================================
|
|
|
|
// getBasicOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getBasicOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IBasicOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// get3DPrimOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::get3DPrimOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_I3DPrimOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getBoolOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getBoolOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IBooleanOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getInsOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getInsOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IInsertOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myInsOp = myGeomEngine->GetIInsertOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getTransfOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getTransfOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_ITransformOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myTransfOp = myGeomEngine->GetITransformOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getShapesOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getShapesOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IShapesOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getBlocksOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getBlocksOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IBlocksOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getCurvesOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getCurvesOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_ICurvesOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getLocalOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getLocalOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_ILocalOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myLocalOp = myGeomEngine->GetILocalOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// getGroupOp:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::getGroupOp()
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
// get GEOM_IGroupOperations interface
|
2006-05-06 14:44:32 +06:00
|
|
|
if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID))
|
|
|
|
myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID);
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
2004-12-17 16:18:33 +05:00
|
|
|
//=============================================================================
|
|
|
|
// GetServant:
|
|
|
|
//=============================================================================
|
|
|
|
PortableServer::ServantBase_var GEOM_Superv_i::GetServant(CORBA::Object_ptr theObject,
|
|
|
|
PortableServer::POA_ptr thePOA)
|
|
|
|
{
|
|
|
|
if(CORBA::is_nil(theObject)) return NULL;
|
|
|
|
PortableServer::Servant aServant = thePOA->reference_to_servant(theObject);
|
|
|
|
return aServant;
|
|
|
|
}
|
|
|
|
|
2004-12-01 15:39:14 +05:00
|
|
|
//============================================================================
|
|
|
|
// function : Save()
|
|
|
|
// purpose : save OCAF/Geom document
|
|
|
|
//============================================================================
|
|
|
|
SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent,
|
|
|
|
const char* theURL,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Boolean isMultiFile)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
SALOMEDS::TMPFile_var aStreamFile;
|
|
|
|
return aStreamFile._retn();
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : SaveASCII()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
|
|
|
|
const char* theURL,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Boolean isMultiFile)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
SALOMEDS::TMPFile_var aStreamFile;
|
|
|
|
return aStreamFile._retn();
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : Load()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent,
|
|
|
|
const SALOMEDS::TMPFile& theStream,
|
|
|
|
const char* theURL,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Boolean isMultiFile)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : LoadASCII()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
|
|
|
|
const SALOMEDS::TMPFile& theStream,
|
|
|
|
const char* theURL,
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Boolean isMultiFile)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : Close()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr theComponent)
|
2006-05-06 14:44:32 +06:00
|
|
|
{
|
|
|
|
}
|
2004-12-01 15:39:14 +05:00
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : ComponentDataType()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
char* GEOM_Superv_i::ComponentDataType()
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : IORToLocalPersistentID()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
char* GEOM_Superv_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
|
|
|
|
const char* IORString,
|
|
|
|
CORBA::Boolean isMultiFile,
|
|
|
|
CORBA::Boolean isASCII)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : LocalPersistentIDToIOR()
|
|
|
|
// purpose : Create/Load CORBA object from a persistent ref (an entry)
|
|
|
|
// : Used when a study is loaded
|
|
|
|
// : The IOR (IORName) of object created is returned
|
|
|
|
//============================================================================
|
|
|
|
char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
|
|
|
|
const char* aLocalPersistentID,
|
|
|
|
CORBA::Boolean isMultiFile,
|
|
|
|
CORBA::Boolean isASCII)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : CanPublishInStudy
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
2006-05-06 14:44:32 +06:00
|
|
|
CORBA::Boolean GEOM_Superv_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
return myGeomEngine->CanPublishInStudy(theIOR);
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : PublishInStudy
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
SALOMEDS::SObject_ptr GEOM_Superv_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
|
|
|
|
SALOMEDS::SObject_ptr theSObject,
|
|
|
|
CORBA::Object_ptr theObject,
|
|
|
|
const char* theName) throw (SALOME::SALOME_Exception)
|
|
|
|
{
|
|
|
|
if (CORBA::is_nil(myGeomEngine))
|
|
|
|
setGeomEngine();
|
|
|
|
return myGeomEngine->PublishInStudy(theStudy, theSObject, theObject, theName);
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : CanCopy()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::CanCopy(SALOMEDS::SObject_ptr theObject)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : CopyFrom()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
SALOMEDS::TMPFile* GEOM_Superv_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID)
|
|
|
|
{
|
|
|
|
SALOMEDS::TMPFile_var aStreamFile;
|
|
|
|
return aStreamFile._retn();
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : CanPaste()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID)
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// function : PasteInto()
|
|
|
|
// purpose :
|
|
|
|
//============================================================================
|
|
|
|
SALOMEDS::SObject_ptr GEOM_Superv_i::PasteInto(const SALOMEDS::TMPFile& theStream,
|
|
|
|
CORBA::Long theObjectID,
|
|
|
|
SALOMEDS::SObject_ptr theObject)
|
|
|
|
{
|
|
|
|
SALOMEDS::SObject_var aNewSO;
|
|
|
|
return aNewSO._retn();
|
|
|
|
}
|
|
|
|
|
|
|
|
//================= Primitives Construction : BasicOperations =================
|
|
|
|
//=============================================================================
|
|
|
|
// MakePointXYZ:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointXYZ(CORBA::Double theX,
|
|
|
|
CORBA::Double theY,
|
|
|
|
CORBA::Double theZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePointXYZ");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
// make vertex and return
|
|
|
|
return myBasicOp->MakePointXYZ(theX, theY, theZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePointWithReference:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointWithReference (GEOM::GEOM_Object_ptr theReference,
|
|
|
|
CORBA::Double theX,
|
|
|
|
CORBA::Double theY,
|
|
|
|
CORBA::Double theZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePointWithReference");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakePointWithReference(theReference, theX, theY, theZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePointOnCurve:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
|
|
|
|
CORBA::Double theParameter)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePointOnCurve");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakePointOnCurve(theRefCurve, theParameter);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeVectorDXDYDZ:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorDXDYDZ (CORBA::Double theDX,
|
|
|
|
CORBA::Double theDY,
|
|
|
|
CORBA::Double theDZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeVectorDXDYDZ");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakeVectorDXDYDZ(theDX, theDY, theDZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeVectorTwoPnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeVector");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakeVectorTwoPnt(thePnt1, thePnt2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeLineTwoPnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeLineTwoPnt");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakeLineTwoPnt(thePnt1, thePnt2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePlaneThreePnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt3,
|
|
|
|
CORBA::Double theTrimSize)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePlaneThreePnt");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePlanePntVec:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt,
|
|
|
|
GEOM::GEOM_Object_ptr theVec,
|
|
|
|
CORBA::Double theTrimSize)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePlanePntVec");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakePlanePntVec(thePnt, theVec, theTrimSize);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePlaneFace:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneFace (GEOM::GEOM_Object_ptr theFace,
|
|
|
|
CORBA::Double theTrimSize)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePlaneFace");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakePlaneFace(theFace, theTrimSize);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeMarker:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarker
|
|
|
|
(CORBA::Double theOX , CORBA::Double theOY , CORBA::Double theOZ,
|
|
|
|
CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ,
|
|
|
|
CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeMarker");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBasicOp->MakeMarker(theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//================= Primitives Construction : 3DPrimOperations ================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeBox:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBox (CORBA::Double theX1,
|
|
|
|
CORBA::Double theY1,
|
|
|
|
CORBA::Double theZ1,
|
|
|
|
CORBA::Double theX2,
|
|
|
|
CORBA::Double theY2,
|
|
|
|
CORBA::Double theZ2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeBox");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeBoxTwoPnt(myBasicOp->MakePointXYZ(theX1, theY1, theZ1),
|
|
|
|
myBasicOp->MakePointXYZ(theX2, theY2, theZ2));
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeBoxDXDYDZ:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxDXDYDZ (CORBA::Double theDX,
|
|
|
|
CORBA::Double theDY,
|
|
|
|
CORBA::Double theDZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeBoxDXDYDZ");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeBoxDXDYDZ(theDX, theDY, theDZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeBoxTwoPnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeBoxTwoPnt");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeBoxTwoPnt(thePnt1, thePnt2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCylinderPntVecRH:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theRadius,
|
|
|
|
CORBA::Double theHeight)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCylinderPntVecRH");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeCylinderPntVecRH(thePnt, theAxis, theRadius, theHeight);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCylinderRH:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderRH (CORBA::Double theR,
|
|
|
|
CORBA::Double theH)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCylinderRH");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeCylinderRH(theR, theH);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSphere:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere (CORBA::Double theX,
|
|
|
|
CORBA::Double theY,
|
|
|
|
CORBA::Double theZ,
|
|
|
|
CORBA::Double theRadius)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSphepe");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBasicOp();
|
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSphereR:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphereR (CORBA::Double theR)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSphereR");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeSphereR(theR);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSpherePntR:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt,
|
|
|
|
CORBA::Double theR)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSpherePntR");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeSpherePntR(thePnt, theR);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeTorusPntVecRR:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusPntVecRR (GEOM::GEOM_Object_ptr thePnt,
|
|
|
|
GEOM::GEOM_Object_ptr theVec,
|
|
|
|
CORBA::Double theRMajor,
|
|
|
|
CORBA::Double theRMinor)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeTorusPntVecRR");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeTorusRR:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusRR (CORBA::Double theRMajor,
|
|
|
|
CORBA::Double theRMinor)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeTorusRR");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeTorusRR(theRMajor, theRMinor);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeConePntVecR1R2H:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr thePnt,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theR1,
|
|
|
|
CORBA::Double theR2,
|
|
|
|
CORBA::Double theHeight)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeConePntVecR1R2H");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theHeight);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeConeR1R2H:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConeR1R2H (CORBA::Double theR1,
|
|
|
|
CORBA::Double theR2,
|
|
|
|
CORBA::Double theHeight)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeConeR1R2H");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeConeR1R2H(theR1, theR2, theHeight);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePrismVecH:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
|
|
|
|
GEOM::GEOM_Object_ptr theVec,
|
|
|
|
CORBA::Double theH)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePrismVecH");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakePrismVecH(theBase, theVec, theH);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePrismTwoPnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint1,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePrismTwoPnt");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakePrismTwoPnt(theBase, thePoint1, thePoint2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePipe:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipe (GEOM::GEOM_Object_ptr theBase,
|
|
|
|
GEOM::GEOM_Object_ptr thePath)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePipe");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakePipe(theBase, thePath);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeRevolutionAxisAngle:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theAngle)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeRevolutionAxisAngle(theBase, theAxis, theAngle);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFilling:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilling (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Long theMinDeg, CORBA::Long theMaxDeg,
|
|
|
|
CORBA::Double theTol2D, CORBA::Double theTol3D,
|
|
|
|
CORBA::Long theNbIter)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFilling");
|
2006-05-06 14:44:32 +06:00
|
|
|
get3DPrimOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter);
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================= BooleanOperations =============================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeBoolean:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoolean (GEOM::GEOM_Object_ptr theShape1,
|
|
|
|
GEOM::GEOM_Object_ptr theShape2,
|
|
|
|
CORBA::Long theOperation)
|
|
|
|
{
|
|
|
|
// theOperation indicates the operation to be done:
|
|
|
|
// 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeBoolean");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBoolOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBoolOp->MakeBoolean(theShape1, theShape2, theOperation);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFuse:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFuse (GEOM::GEOM_Object_ptr theShape1,
|
|
|
|
GEOM::GEOM_Object_ptr theShape2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFuse");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBoolOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBoolOp->MakeBoolean(theShape1, theShape2, 3);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePartition:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr theShapes,
|
|
|
|
GEOM::GEOM_List_ptr theTools,
|
|
|
|
GEOM::GEOM_List_ptr theKeepInside,
|
|
|
|
GEOM::GEOM_List_ptr theRemoveInside,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Short theLimit,
|
|
|
|
CORBA::Boolean theRemoveWebs,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theMaterials)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePartition");
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListImplS =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in());
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListImplT =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theTools, myPOA).in());
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListImplKI =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theKeepInside, myPOA).in());
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListImplRI =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theRemoveInside, myPOA).in());
|
|
|
|
GEOM_List_i<GEOM::ListOfLong>* aListImplM =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theMaterials, myPOA).in());
|
|
|
|
if (aListImplS && aListImplT && aListImplKI && aListImplRI && aListImplM) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getBoolOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(),
|
|
|
|
aListImplKI->GetList(), aListImplRI->GetList(),
|
|
|
|
theLimit, theRemoveWebs, aListImplM->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeHalfPartition:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr thePlane)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeHalfPartition");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBoolOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBoolOp->MakeHalfPartition(theShape, thePlane);
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================== InsertOperations =============================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCopy (GEOM::GEOM_Object_ptr theOriginal)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getInsOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myInsOp->MakeCopy(theOriginal);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// Export:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::Export (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
const char* theFileName,
|
|
|
|
const char* theFormatName)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::Export");
|
2006-05-06 14:44:32 +06:00
|
|
|
getInsOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
myInsOp->Export(theObject, theFileName, theFormatName);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// Import:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::Import (const char* theFileName,
|
|
|
|
const char* theFormatName)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::Import");
|
2006-05-06 14:44:32 +06:00
|
|
|
getInsOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myInsOp->Import(theFileName, theFormatName);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ImportTranslators:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::ImportTranslators (GEOM::string_array_out theFormats,
|
|
|
|
GEOM::string_array_out thePatterns)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ImportTranslators");
|
2006-05-06 14:44:32 +06:00
|
|
|
getInsOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
myInsOp->ImportTranslators(theFormats, thePatterns);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ExportTranslators:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::ExportTranslators (GEOM::string_array_out theFormats,
|
|
|
|
GEOM::string_array_out thePatterns)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ExportTranslators");
|
2006-05-06 14:44:32 +06:00
|
|
|
getInsOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
myInsOp->ExportTranslators(theFormats, thePatterns);
|
|
|
|
}
|
|
|
|
|
|
|
|
//============================= TransformOperations ===========================
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateTwoPoints:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPoints (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint1,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateTwoPoints");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateTwoPoints(theObject, thePoint1, thePoint2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateTwoPointsCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPointsCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint1,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateTwoPointsCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateTwoPointsCopy(theObject, thePoint1, thePoint2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateDXDYDZ:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
CORBA::Double theDX,
|
|
|
|
CORBA::Double theDY,
|
|
|
|
CORBA::Double theDZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateDXDYDZ");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateDXDYDZ(theObject, theDX, theDY, theDZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateDXDYDZCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
CORBA::Double theDX,
|
|
|
|
CORBA::Double theDY,
|
|
|
|
CORBA::Double theDZ)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateDXDYDZCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateVector:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVector (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theVector)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateVector");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateVector(theObject, theVector);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// TranslateVectorCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theVector)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::TranslateVectorCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->TranslateVectorCopy(theObject, theVector);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MultiTranslate1D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate1D (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theVector,
|
|
|
|
CORBA::Double theStep,
|
|
|
|
CORBA::Long theNbTimes)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MultiTranslate1D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MultiTranslate1D(theObject, theVector, theStep, theNbTimes);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MultiTranslate2D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate2D (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theVector1,
|
|
|
|
CORBA::Double theStep1,
|
|
|
|
CORBA::Long theNbTimes1,
|
|
|
|
GEOM::GEOM_Object_ptr theVector2,
|
|
|
|
CORBA::Double theStep2,
|
|
|
|
CORBA::Long theNbTimes2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MultiTranslate2D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
|
|
|
|
theVector2, theStep2, theNbTimes2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// Rotate:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::Rotate (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theAngle)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::Rotate");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->Rotate(theObject, theAxis, theAngle);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// RotateCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theAngle)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::RotateCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->RotateCopy(theObject, theAxis, theAngle);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MultiRotate1D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate1D (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Long theNbTimes)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MultiRotate1D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MultiRotate1D(theObject, theAxis, theNbTimes);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MultiRotate2D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate2D (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis,
|
|
|
|
CORBA::Double theAngle,
|
|
|
|
CORBA::Long theNbTimes1,
|
|
|
|
CORBA::Double theStep,
|
|
|
|
CORBA::Long theNbTimes2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MultiRotate2D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorPlane:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlane (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePlane)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorPlane");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorPlane(theObject, thePlane);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorPlaneCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePlane)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorPlaneCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorPlaneCopy(theObject, thePlane);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorAxis:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxis (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorAxis");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorAxis(theObject, theAxis);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorAxisCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theAxis)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorAxisCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorAxisCopy(theObject, theAxis);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorPoint:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPoint (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorPoint");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorPoint(theObject, thePoint);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MirrorPointCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPointCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MirrorPointCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->MirrorPointCopy(theObject, thePoint);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// OffsetShape:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShape (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
CORBA::Double theOffset)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::OffsetShape");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->OffsetShape(theObject, theOffset);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// OffsetShapeCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
CORBA::Double theOffset)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::OffsetShapeCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->OffsetShapeCopy(theObject, theOffset);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ScaleShape:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShape (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint,
|
|
|
|
CORBA::Double theFactor)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ScaleShape");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->ScaleShape(theObject, thePoint, theFactor);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ScaleShapeCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint,
|
|
|
|
CORBA::Double theFactor)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ScaleShapeCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->ScaleShapeCopy(theObject, thePoint, theFactor);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// PositionShape:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShape (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theStartLCS,
|
|
|
|
GEOM::GEOM_Object_ptr theEndLCS)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::PositionShape");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->PositionShape(theObject, theStartLCS, theEndLCS);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// PositionShapeCopy:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr theObject,
|
|
|
|
GEOM::GEOM_Object_ptr theStartLCS,
|
|
|
|
GEOM::GEOM_Object_ptr theEndLCS)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::PositionShapeCopy");
|
2006-05-06 14:44:32 +06:00
|
|
|
getTransfOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myTransfOp->PositionShapeCopy(theObject, theStartLCS, theEndLCS);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================== ShapesOperations ============================
|
|
|
|
//=============================================================================
|
|
|
|
// Make:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeEdge");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->MakeEdge(thePnt1, thePnt2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeWire:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeWire");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplEW =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theEdgesAndWires, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myShapesOp->MakeWire(aListImplEW->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFace:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFace (GEOM::GEOM_Object_ptr theWire,
|
|
|
|
CORBA::Boolean isPlanarWanted)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFace");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->MakeFace(theWire, isPlanarWanted);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFaceWires:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceWires (GEOM::GEOM_List_ptr theWires,
|
2004-12-01 15:39:14 +05:00
|
|
|
CORBA::Boolean isPlanarWanted)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFaceWires");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplW =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theWires, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myShapesOp->MakeFaceWires(aListImplW->GetList(), isPlanarWanted);
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeShell:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (GEOM::GEOM_List_ptr theFacesAndShells)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeShell");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplFS =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theFacesAndShells, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myShapesOp->MakeShell(aListImplFS->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSolidShell:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShell (GEOM::GEOM_Object_ptr theShell)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSolidShell");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->MakeSolidShell(theShell);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSolidShells:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShells (GEOM::GEOM_List_ptr theShells)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSolidShells");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplS =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShells, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myShapesOp->MakeSolidShells(aListImplS->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCompound:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCompound");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImpl =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myShapesOp->MakeCompound(aListImpl->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeGlueFaces:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Double theTolerance)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeGlueFaces");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->MakeGlueFaces(theShape, theTolerance);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeExplode:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Long theShapeType,
|
|
|
|
CORBA::Boolean isSorted)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeExplode");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
|
|
|
|
GEOM::ListOfGO* aList = myShapesOp->MakeExplode(theShape, theShapeType, isSorted);
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
|
|
|
|
MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
|
|
|
|
return aListPtr->_this();
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// NumberOfFaces:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Long GEOM_Superv_i::NumberOfFaces (GEOM::GEOM_Object_ptr theShape)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::NumberOfFaces");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->NumberOfFaces(theShape);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// NumberOfEdges:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::NumberOfEdges");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->NumberOfEdges(theShape);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ChangeOrientation:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr theShape)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ChangeOrientation");
|
2006-05-06 14:44:32 +06:00
|
|
|
getShapesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myShapesOp->ChangeOrientation(theShape);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//=============================== BlocksOperations ============================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeQuad4Vertices:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad4Vertices (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt3,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt4)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeQuad4Vertices");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeQuad4Vertices(thePnt1, thePnt2, thePnt3, thePnt4);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeQuad:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad (GEOM::GEOM_Object_ptr theEdge1,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge2,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge3,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge4)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeQuad");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeQuad(theEdge1, theEdge2, theEdge3, theEdge4);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeQuad2Edges:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeQuad2Edges");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeQuad2Edges(theEdge1, theEdge2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeHexa:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa (GEOM::GEOM_Object_ptr theFace1,
|
|
|
|
GEOM::GEOM_Object_ptr theFace2,
|
|
|
|
GEOM::GEOM_Object_ptr theFace3,
|
|
|
|
GEOM::GEOM_Object_ptr theFace4,
|
|
|
|
GEOM::GEOM_Object_ptr theFace5,
|
|
|
|
GEOM::GEOM_Object_ptr theFace6)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeHexa");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeHexa(theFace1, theFace2, theFace3, theFace4, theFace5, theFace6);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeHexa2Faces:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1,
|
|
|
|
GEOM::GEOM_Object_ptr theFace2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeHexa2Faces");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeHexa2Faces(theFace1, theFace2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetPoint:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetPoint (GEOM::GEOM_Object_ptr theShape,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Double theX,
|
|
|
|
CORBA::Double theY,
|
|
|
|
CORBA::Double theZ,
|
|
|
|
CORBA::Double theEpsilon)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetPoint");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetPoint(theShape, theX, theY, theZ, theEpsilon);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetEdge:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdge (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint1,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetEdge");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetEdge(theShape, thePoint1, thePoint2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetEdgeNearPoint:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetEdgeNearPoint");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetEdgeNearPoint(theShape, thePoint);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetFaceByPoints:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByPoints (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint1,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint2,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint3,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint4)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetFaceByPoints");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetFaceByEdges:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByEdges (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge1,
|
|
|
|
GEOM::GEOM_Object_ptr theEdge2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetFaceByEdges");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetFaceByEdges(theShape, theEdge1, theEdge2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetOppositeFace:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetOppositeFace (GEOM::GEOM_Object_ptr theBlock,
|
|
|
|
GEOM::GEOM_Object_ptr theFace)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetOppositeFace");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetOppositeFace(theBlock, theFace);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetFaceNearPoint:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetFaceNearPoint");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetFaceNearPoint(theShape, thePoint);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetFaceByNormale:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock,
|
|
|
|
GEOM::GEOM_Object_ptr theVector)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetFaceByNormale");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetFaceByNormale(theBlock, theVector);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// IsCompoundOfBlocks:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Long theMinNbFaces,
|
|
|
|
CORBA::Long theMaxNbFaces,
|
2004-12-01 15:39:14 +05:00
|
|
|
CORBA::Long& theNbBlocks)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::IsCompoundOfBlocks");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->IsCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces, theNbBlocks);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// CheckCompoundOfBlocks:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Boolean GEOM_Superv_i::CheckCompoundOfBlocks
|
|
|
|
(GEOM::GEOM_Object_ptr theCompound,
|
|
|
|
GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::CheckCompoundOfBlocks");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->CheckCompoundOfBlocks(theCompound, theErrors);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// PrintBCErrors:
|
|
|
|
//=============================================================================
|
|
|
|
char* GEOM_Superv_i::PrintBCErrors (GEOM::GEOM_Object_ptr theCompound,
|
|
|
|
const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::PrintBCErrors");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->PrintBCErrors(theCompound, theErrors);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// ExplodeCompoundOfBlocks:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Long theMinNbFaces,
|
|
|
|
CORBA::Long theMaxNbFaces)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::ExplodeCompoundOfBlocks");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::ListOfGO* aBlocks = myBlocksOp->ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces);
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
|
|
|
|
return aListPtr->_this();
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetBlockNearPoint:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound,
|
|
|
|
GEOM::GEOM_Object_ptr thePoint)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetBlockNearPoint");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->GetBlockNearPoint(theCompound, thePoint);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetBlockByParts:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockByParts (GEOM::GEOM_Object_ptr theCompound,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theParts)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetBlockByParts");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myBlocksOp->GetBlockByParts(theCompound, aListImplP->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetBlocksByParts:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound,
|
|
|
|
GEOM::GEOM_List_ptr theParts)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetBlocksByParts");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
|
|
|
|
GEOM::ListOfGO* aBlocks = myBlocksOp->GetBlocksByParts(theCompound, aListImplP->GetList());
|
|
|
|
GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
|
|
|
|
return aListPtr->_this();
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeMultiTransformation1D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Long theDirFace1,
|
|
|
|
CORBA::Long theDirFace2,
|
|
|
|
CORBA::Long theNbTimes)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeMultiTransformation1D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeMultiTransformation1D(theBlock, theDirFace1, theDirFace2, theNbTimes);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeMultiTransformation2D:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation2D
|
|
|
|
(GEOM::GEOM_Object_ptr theBlock,
|
2005-08-24 19:12:16 +06:00
|
|
|
CORBA::Long theDirFace1U,
|
|
|
|
CORBA::Long theDirFace2U,
|
|
|
|
CORBA::Long theNbTimesU,
|
|
|
|
CORBA::Long theDirFace1V,
|
|
|
|
CORBA::Long theDirFace2V,
|
|
|
|
CORBA::Long theNbTimesV)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeMultiTransformation2D");
|
2006-05-06 14:44:32 +06:00
|
|
|
getBlocksOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myBlocksOp->MakeMultiTransformation2D(theBlock,
|
|
|
|
theDirFace1U, theDirFace2U, theNbTimesU,
|
|
|
|
theDirFace1V, theDirFace2V, theNbTimesV);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================== CurvesOperations ============================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCirclePntVecR:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
|
|
|
|
GEOM::GEOM_Object_ptr theVector,
|
|
|
|
CORBA::Double theR)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCirclePntVecR");
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myCurvesOp->MakeCirclePntVecR(theCenter, theVector, theR);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeCircleThreePnt:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt3)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeCircleThreePnt");
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myCurvesOp->MakeCircleThreePnt(thePnt1, thePnt2, thePnt3);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeEllipse:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
|
|
|
|
GEOM::GEOM_Object_ptr theVector,
|
|
|
|
CORBA::Double theRMajor,
|
|
|
|
CORBA::Double theRMinor)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeEllipse");
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myCurvesOp->MakeEllipse(theCenter, theVector, theRMajor, theRMinor);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeArc:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArc (GEOM::GEOM_Object_ptr thePnt1,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt2,
|
|
|
|
GEOM::GEOM_Object_ptr thePnt3)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeArc");
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myCurvesOp->MakeArc(thePnt1, thePnt2, thePnt3);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakePolyline:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePolyline (GEOM::GEOM_List_ptr thePoints)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakePolyline");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myCurvesOp->MakePolyline(aListImplP->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSplineBezier:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineBezier (GEOM::GEOM_List_ptr thePoints)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSplineBezier");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myCurvesOp->MakeSplineBezier(aListImplP->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSplineInterpolation:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSplineInterpolation");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myCurvesOp->MakeSplineInterpolation(aListImplP->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeSketcher:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theWorkingPlane)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeSketcher");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfDouble>* aListImplWP =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theWorkingPlane, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getCurvesOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myCurvesOp->MakeSketcher(theCommand, aListImplWP->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================== LocalOperations =============================
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFilletAll:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletAll (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theR)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFilletAllMakeSketcher");
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myLocalOp->MakeFilletAll(theShape, theR);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFilletEdges:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theR,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theEdges)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFilletEdges");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfLong>* aListImplE =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myLocalOp->MakeFilletEdges(theShape, theR, aListImplE->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeFilletFaces:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theR,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theFaces)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeFilletFaces");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myLocalOp->MakeFilletFaces(theShape, theR, aListImplF->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeChamferAll:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeChamferAll");
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myLocalOp->MakeChamferAll(theShape, theD);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeChamferEdge:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theD1, CORBA::Double theD2,
|
|
|
|
CORBA::Long theFace1, CORBA::Long theFace2)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeChamferEdge");
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myLocalOp->MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeChamferFaces:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theD1, CORBA::Double theD2,
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr theFaces)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeChamferFaces");
|
2004-12-17 16:18:33 +05:00
|
|
|
if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
|
|
|
|
dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
return myLocalOp->MakeChamferFaces(theShape, theD1, theD2, aListImplF->GetList());
|
|
|
|
}
|
|
|
|
return NULL;
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// MakeArchimede:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArchimede (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
CORBA::Double theWeight,
|
|
|
|
CORBA::Double theWaterDensity,
|
|
|
|
CORBA::Double theMeshingDeflection)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::MakeArchimede");
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myLocalOp->MakeArchimede(theShape, theWeight, theWaterDensity, theMeshingDeflection);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetSubShapeIndexMakeFilletAll:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Long GEOM_Superv_i::GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape,
|
|
|
|
GEOM::GEOM_Object_ptr theSubShape)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetSubShapeIndexMakeArchimede");
|
2006-05-06 14:44:32 +06:00
|
|
|
getLocalOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myLocalOp->GetSubShapeIndex(theShape, theSubShape);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================== GroupOperations =============================
|
|
|
|
//=============================================================================
|
|
|
|
// CreateGroup:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::CreateGroup (GEOM::GEOM_Object_ptr theMainShape,
|
|
|
|
CORBA::Long theShapeType)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::CreateGroup");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myGroupOp->CreateGroup(theMainShape, theShapeType);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// AddObject:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::AddObject (GEOM::GEOM_Object_ptr theGroup,
|
|
|
|
CORBA::Long theSubShapeId)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::AddObject");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
myGroupOp->AddObject(theGroup, theSubShapeId);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// RemoveObject:
|
|
|
|
//=============================================================================
|
|
|
|
void GEOM_Superv_i::RemoveObject (GEOM::GEOM_Object_ptr theGroup,
|
|
|
|
CORBA::Long theSubShapeId)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::RemoveObject");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
myGroupOp->RemoveObject(theGroup, theSubShapeId);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetType:
|
|
|
|
//=============================================================================
|
|
|
|
CORBA::Long GEOM_Superv_i::GetType (GEOM::GEOM_Object_ptr theGroup)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetType");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myGroupOp->GetType(theGroup);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetMainShape:
|
|
|
|
//=============================================================================
|
|
|
|
GEOM::GEOM_Object_ptr GEOM_Superv_i::GetMainShape (GEOM::GEOM_Object_ptr theGroup)
|
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetMainShape");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-01 15:39:14 +05:00
|
|
|
return myGroupOp->GetMainShape(theGroup);
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// GetObjects:
|
|
|
|
//=============================================================================
|
2004-12-17 16:18:33 +05:00
|
|
|
GEOM::GEOM_List_ptr GEOM_Superv_i::GetObjects (GEOM::GEOM_Object_ptr theGroup)
|
2004-12-01 15:39:14 +05:00
|
|
|
{
|
|
|
|
MESSAGE("GEOM_Superv_i::GetObjects");
|
2006-05-06 14:44:32 +06:00
|
|
|
getGroupOp();
|
2004-12-17 16:18:33 +05:00
|
|
|
|
|
|
|
GEOM::ListOfLong* aList = myGroupOp->GetObjects(theGroup);
|
|
|
|
GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>(*(aList));
|
|
|
|
MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
|
|
|
|
return aListPtr->_this();
|
2004-12-01 15:39:14 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
//=====================================================================================
|
|
|
|
// EXPORTED METHODS
|
|
|
|
//=====================================================================================
|
|
|
|
extern "C"
|
|
|
|
{
|
|
|
|
PortableServer::ObjectId * GEOM_SupervEngine_factory(CORBA::ORB_ptr orb,
|
|
|
|
PortableServer::POA_ptr poa,
|
|
|
|
PortableServer::ObjectId * contId,
|
|
|
|
const char *instanceName,
|
|
|
|
const char * interfaceName)
|
|
|
|
{
|
|
|
|
GEOM_Superv_i * myGEOM_Superv_i = new GEOM_Superv_i(orb, poa, contId, instanceName, interfaceName);
|
|
|
|
myGEOM_Superv_i->register_name("/myGEOM_Superv");
|
|
|
|
return myGEOM_Superv_i->getId() ;
|
|
|
|
}
|
|
|
|
}
|