- compiler error instead of run-time error when using a constructor which doesn't belongs to the vector's dimension
git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@1194 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -95,39 +95,44 @@ public:
|
|||||||
vectorize(v);
|
vectorize(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DIM == 2
|
||||||
/// special constructor for 2D vectors
|
/// special constructor for 2D vectors
|
||||||
inline VectorT(const Scalar& v0, const Scalar& v1) {
|
inline VectorT(const Scalar v0, const Scalar v1) {
|
||||||
assert(DIM==2);
|
|
||||||
Base::values_[0] = v0; Base::values_[1] = v1;
|
Base::values_[0] = v0; Base::values_[1] = v1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DIM == 3
|
||||||
/// special constructor for 3D vectors
|
/// special constructor for 3D vectors
|
||||||
inline VectorT(const Scalar& v0, const Scalar& v1, const Scalar& v2) {
|
inline VectorT(const Scalar v0, const Scalar v1, const Scalar v2) {
|
||||||
assert(DIM==3);
|
|
||||||
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2;
|
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DIM == 4
|
||||||
/// special constructor for 4D vectors
|
/// special constructor for 4D vectors
|
||||||
inline VectorT(const Scalar& v0, const Scalar& v1,
|
inline VectorT(const Scalar v0, const Scalar v1,
|
||||||
const Scalar& v2, const Scalar& v3) {
|
const Scalar v2, const Scalar v3) {
|
||||||
assert(DIM==4);
|
|
||||||
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2; Base::values_[3]=v3;
|
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2; Base::values_[3]=v3;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DIM == 5
|
||||||
/// special constructor for 5D vectors
|
/// special constructor for 5D vectors
|
||||||
inline VectorT(const Scalar& v0, const Scalar& v1, const Scalar& v2,
|
inline VectorT(const Scalar v0, const Scalar v1, const Scalar v2,
|
||||||
const Scalar& v3, const Scalar& v4) {
|
const Scalar v3, const Scalar v4) {
|
||||||
assert(DIM==5);
|
|
||||||
Base::values_[0]=v0; Base::values_[1]=v1;Base::values_[2]=v2; Base::values_[3]=v3; Base::values_[4]=v4;
|
Base::values_[0]=v0; Base::values_[1]=v1;Base::values_[2]=v2; Base::values_[3]=v3; Base::values_[4]=v4;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DIM == 6
|
||||||
/// special constructor for 6D vectors
|
/// special constructor for 6D vectors
|
||||||
inline VectorT(const Scalar& v0, const Scalar& v1, const Scalar& v2,
|
inline VectorT(const Scalar v0, const Scalar v1, const Scalar v2,
|
||||||
const Scalar& v3, const Scalar& v4, const Scalar& v5) {
|
const Scalar v3, const Scalar v4, const Scalar v5) {
|
||||||
assert(DIM==6);
|
|
||||||
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2;
|
Base::values_[0]=v0; Base::values_[1]=v1; Base::values_[2]=v2;
|
||||||
Base::values_[3]=v3; Base::values_[4]=v4; Base::values_[5]=v5;
|
Base::values_[3]=v3; Base::values_[4]=v4; Base::values_[5]=v5;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/// construct from a value array (explicit)
|
/// construct from a value array (explicit)
|
||||||
explicit inline VectorT(const Scalar _values[DIM]) {
|
explicit inline VectorT(const Scalar _values[DIM]) {
|
||||||
|
|||||||
Reference in New Issue
Block a user