Issue 0020474: Symbols multi-defined in SMESHimpl.dll

This commit is contained in:
vsr 2009-09-14 13:21:39 +00:00
parent 44f899d82d
commit 5f21fe20f5
2 changed files with 49 additions and 16 deletions

View File

@ -3254,31 +3254,54 @@ void ElementsOnShape::process (const SMDS_MeshElement* theElemPtr)
TSequenceOfXYZ::TSequenceOfXYZ() TSequenceOfXYZ::TSequenceOfXYZ()
{} {}
TSequenceOfXYZ::TSequenceOfXYZ(size_type n) : std::vector<gp_XYZ>(n) TSequenceOfXYZ::TSequenceOfXYZ(size_type n) : myArray(n)
{} {}
TSequenceOfXYZ::TSequenceOfXYZ(size_type n, const value_type& t) : std::vector<gp_XYZ>(n,t) TSequenceOfXYZ::TSequenceOfXYZ(size_type n, const gp_XYZ& t) : myArray(n,t)
{} {}
TSequenceOfXYZ::TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ) : std::vector<gp_XYZ>(theSequenceOfXYZ) TSequenceOfXYZ::TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ) : myArray(theSequenceOfXYZ.myArray)
{} {}
template <class InputIterator> template <class InputIterator>
TSequenceOfXYZ::TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd): std::vector<gp_XYZ>(theBegin,theEnd) TSequenceOfXYZ::TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd): myArray(theBegin,theEnd)
{}
TSequenceOfXYZ::~TSequenceOfXYZ()
{} {}
TSequenceOfXYZ& TSequenceOfXYZ::operator=(const TSequenceOfXYZ& theSequenceOfXYZ) TSequenceOfXYZ& TSequenceOfXYZ::operator=(const TSequenceOfXYZ& theSequenceOfXYZ)
{ {
std::vector<gp_XYZ>::operator=(theSequenceOfXYZ); myArray = theSequenceOfXYZ.myArray;
return *this; return *this;
} }
std::vector<gp_XYZ>::reference TSequenceOfXYZ::operator()(size_type n) gp_XYZ& TSequenceOfXYZ::operator()(size_type n)
{ {
return std::vector<gp_XYZ>::operator[](n-1); return myArray[n-1];
} }
std::vector<gp_XYZ>::const_reference TSequenceOfXYZ::operator()(size_type n) const const gp_XYZ& TSequenceOfXYZ::operator()(size_type n) const
{ {
return std::vector<gp_XYZ>::operator[](n-1); return myArray[n-1];
}
void TSequenceOfXYZ::clear()
{
myArray.clear();
}
void TSequenceOfXYZ::reserve(size_type n)
{
myArray.reserve(n);
}
void TSequenceOfXYZ::push_back(const gp_XYZ& v)
{
myArray.push_back(v);
}
TSequenceOfXYZ::size_type TSequenceOfXYZ::size() const
{
return myArray.size();
} }

View File

@ -68,30 +68,40 @@ class gp_Pnt;
namespace SMESH{ namespace SMESH{
namespace Controls{ namespace Controls{
class SMESHCONTROLS_EXPORT TSequenceOfXYZ: public std::vector<gp_XYZ> class SMESHCONTROLS_EXPORT TSequenceOfXYZ
{ {
typedef std::vector<gp_XYZ>::size_type size_type;
public: public:
TSequenceOfXYZ(); TSequenceOfXYZ();
TSequenceOfXYZ(size_type n); TSequenceOfXYZ(size_type n);
TSequenceOfXYZ(size_type n, const value_type& t); TSequenceOfXYZ(size_type n, const gp_XYZ& t);
TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ); TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ);
template <class InputIterator> template <class InputIterator>
TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd); TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd);
~TSequenceOfXYZ();
TSequenceOfXYZ& operator=(const TSequenceOfXYZ& theSequenceOfXYZ); TSequenceOfXYZ& operator=(const TSequenceOfXYZ& theSequenceOfXYZ);
reference operator()(size_type n); gp_XYZ& operator()(size_type n);
const_reference operator()(size_type n) const; const gp_XYZ& operator()(size_type n) const;
void clear();
void reserve(size_type n);
void push_back(const gp_XYZ& v);
size_type size() const;
private: private:
reference operator[](size_type n); std::vector<gp_XYZ> myArray;
const_reference operator[](size_type n) const;
}; };
/* /*