diff --git a/panda/src/linmath/lvecBase4_src.I b/panda/src/linmath/lvecBase4_src.I index 70a376a3bf..464cd6fa12 100644 --- a/panda/src/linmath/lvecBase4_src.I +++ b/panda/src/linmath/lvecBase4_src.I @@ -903,6 +903,14 @@ FLOATNAME(UnalignedLVecBase4)(const FLOATNAME(LVecBase4) ©) { set(copy[0], copy[1], copy[2], copy[3]); } +/** + * + */ +INLINE_LINMATH FLOATNAME(UnalignedLVecBase4):: +FLOATNAME(UnalignedLVecBase4)(FLOATTYPE fill_value) { + fill(fill_value); +} + /** * */ @@ -912,6 +920,19 @@ FLOATNAME(UnalignedLVecBase4)(FLOATTYPE x, FLOATTYPE y, FLOATTYPE z, FLOATTYPE w set(x, y, z, w); } +/** + * Sets each element of the vector to the indicated fill_value. This is + * particularly useful for initializing to zero. + */ +INLINE_LINMATH void FLOATNAME(UnalignedLVecBase4):: +fill(FLOATTYPE fill_value) { + TAU_PROFILE("void UnalignedLVecBase4::fill()", " ", TAU_USER); + _v(0) = fill_value; + _v(1) = fill_value; + _v(2) = fill_value; + _v(3) = fill_value; +} + /** * */ diff --git a/panda/src/linmath/lvecBase4_src.h b/panda/src/linmath/lvecBase4_src.h index b6e1a4df35..fdd81dad4b 100644 --- a/panda/src/linmath/lvecBase4_src.h +++ b/panda/src/linmath/lvecBase4_src.h @@ -230,8 +230,10 @@ PUBLISHED: INLINE_LINMATH FLOATNAME(UnalignedLVecBase4)() DEFAULT_CTOR; INLINE_LINMATH FLOATNAME(UnalignedLVecBase4)(const FLOATNAME(LVecBase4) ©); + INLINE_LINMATH FLOATNAME(UnalignedLVecBase4)(FLOATTYPE fill_value); INLINE_LINMATH FLOATNAME(UnalignedLVecBase4)(FLOATTYPE x, FLOATTYPE y, FLOATTYPE z, FLOATTYPE w); + INLINE_LINMATH void fill(FLOATTYPE fill_value); INLINE_LINMATH void set(FLOATTYPE x, FLOATTYPE y, FLOATTYPE z, FLOATTYPE w); INLINE_LINMATH FLOATTYPE operator [](int i) const;