X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Document.cxx;h=7c9773ba065bbda794f090dc6bd689c2ba954a04;hb=c7cf59e092fe050003d1e556715e3ac97acf6bd4;hp=3568066a333787753c5577adcae0b68ca70ba34c;hpb=1769261ce115518c8718ab52c14b039c84a41afc;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Document.cxx b/src/HYDROData/HYDROData_Document.cxx index 3568066a..7c9773ba 100644 --- a/src/HYDROData/HYDROData_Document.cxx +++ b/src/HYDROData/HYDROData_Document.cxx @@ -1,8 +1,30 @@ +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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, or (at your option) any later version. +// +// 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/ or email : webmaster.salome@opencascade.com +// #include #include #include #include +#include #include #include @@ -647,6 +669,8 @@ HYDROData_Document::HYDROData_Document() myTransactionsAfterSave = 0; myLX = -1; myLY = -1; + + myInterpolatorsFactory = 0; } HYDROData_Document::HYDROData_Document(const Handle(TDocStd_Document)& theDoc) @@ -655,6 +679,8 @@ HYDROData_Document::HYDROData_Document(const Handle(TDocStd_Document)& theDoc) myTransactionsAfterSave = 0; myLX = -1; myLY = -1; + + myInterpolatorsFactory = 0; } HYDROData_Document::~HYDROData_Document() @@ -781,3 +807,38 @@ void HYDROData_Document::Transform( gp_XY& thePnt, bool IsToLocalCS ) const Transform( X, Y, IsToLocalCS ); thePnt = gp_XY( X, Y ); } + +HYDROData_InterpolatorsFactory* HYDROData_Document::GetInterpolatorsFactory() +{ + if ( !myInterpolatorsFactory ) { + myInterpolatorsFactory = new HYDROData_InterpolatorsFactory(); + } + + return myInterpolatorsFactory; +} + +HYDROData_IProfilesInterpolator* HYDROData_Document::GetInterpolator( const TCollection_AsciiString& theName ) const +{ + HYDROData_IProfilesInterpolator* anInterpolator = NULL; + + HYDROData_Document* aThat = const_cast( this ); + HYDROData_InterpolatorsFactory* aFactory = aThat->GetInterpolatorsFactory(); + if ( aFactory ) { + anInterpolator = aFactory->GetInterpolator( theName ); + } + + return anInterpolator; +} + +NCollection_Sequence HYDROData_Document::GetInterpolatorNames() const +{ + NCollection_Sequence aNames; + + HYDROData_Document* aThat = const_cast( this ); + HYDROData_InterpolatorsFactory* aFactory = aThat->GetInterpolatorsFactory(); + if ( aFactory ) { + aNames = aFactory->GetInterpolatorNames(); + } + + return aNames; +} \ No newline at end of file