version 3.19.0
PIMathVectorT subvector methods PISystemTime::isNull() PISystemTime::Frequency::isNull() PISystemTime::toString() PISystemTime::fromString() PIVariant can handle strings with PISystemTime PIDateTime::toSystemTime() now returns null time from invalid strings
This commit is contained in:
@@ -127,6 +127,8 @@ public:
|
||||
Type & operator[](uint index) { return c[index]; }
|
||||
const Type & operator[](uint index) const { return c[index]; }
|
||||
Type at(uint index) const { return c[index]; }
|
||||
inline Type & element(uint index) { return c[index]; }
|
||||
inline const Type & element(uint index) const { return c[index]; }
|
||||
|
||||
_CVector & operator=(const Type & v) {
|
||||
PIMV_FOR c[i] = v;
|
||||
@@ -225,6 +227,53 @@ public:
|
||||
return tv;
|
||||
}
|
||||
|
||||
//! \~english
|
||||
//! \brief Returns this vector with another element type.
|
||||
//! \~russian
|
||||
//! \brief Возвращает этот вектор с другим типом элементов.
|
||||
template<typename T>
|
||||
PIMathVectorT<Size, T> toType() const {
|
||||
PIMathVectorT<Size, T> ret;
|
||||
PIMV_FOR ret[i] = element(i);
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english
|
||||
//! \brief Returns the subvector with size SubSize. Elements takes from coordinates "offset".
|
||||
//! \details
|
||||
//! \~russian
|
||||
//! \brief Возвращает подвектор с размерами SubSize. Элементы берутся с координат "offset".
|
||||
//! \details Координаты могут быть отрицательными. Возвращаемый подвектор может быть любого размера. Если исходные элементы выходят
|
||||
//! за границы исходного подвектора, то в подвекторе будут нули.
|
||||
template<uint SubSize>
|
||||
PIMathVectorT<SubSize, Type> subvector(int offset = 0) const {
|
||||
PIMathVectorT<SubSize, Type> ret;
|
||||
for (int i = 0; i < (int)SubSize; ++i) {
|
||||
int si = i + offset;
|
||||
if (si < 0 || si >= (int)Size) continue;
|
||||
ret[i] = element(si);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english
|
||||
//! \brief Set the subvector "v" in coordinates "index".
|
||||
//! \details
|
||||
//! \~russian
|
||||
//! \brief Устанавливает подвектор "v" в координаты "index".
|
||||
//! \details Присваивает значения из вектора "v" в область текущиего вектора, ограниченную
|
||||
//! размерами "v", самого вектор и границами, исходя из координат установки. Координаты могут быть отрицательными.
|
||||
//! Вектор "v" может быть любого размера. Возвращает ссылку на этот вектор.
|
||||
template<uint SubSize>
|
||||
PIMathVectorT<Size, Type> & setSubvector(int index, const PIMathVectorT<SubSize, Type> & v) {
|
||||
for (int i = 0; i < (int)SubSize; ++i) {
|
||||
int si = i + index;
|
||||
if (si < 0 || si >= (int)Size) continue;
|
||||
element(si) = v[i];
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
static _CVector cross(const _CVector & v1, const _CVector & v2) { return v1.cross(v2); }
|
||||
static _CVector dot(const _CVector & v1, const _CVector & v2) { return v1.dot(v2); }
|
||||
static _CVector mul(const _CVector & v1, const _CVector & v2) { return v1.mul(v2); }
|
||||
|
||||
Reference in New Issue
Block a user