DarkRadiant: master 0fef6252

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 29.01.2025 19:13 master 74cc6f97
Changeset BasicVector3 no longer implicitly casts to a C array

Remove the dangerous 'operator [const] T*' methods, replacing them with
explicit data() methods which can return a pointer to the storage, along
with operator[] to provide index-based lookup.

This also revealed that the cast to array was also being used (probably
inadvertently) to implement a couple of 'operator<' comparisons of
Vector3s, which is mathematically meaningless and semantically wrong,
because two identically-valued vectors would compare not equal. These
'operator<' methods did not appear to be used anywhere else so they have
been removed; this also removes the '__lt__' method implemented on the
Python Vector3 class.
mod - libs/math/Matrix3.h Diff File
mod - libs/math/Vector3.h Diff File
mod - libs/render/MeshVertex.h Diff File
mod - libs/render/VertexCb.h Diff File
mod - libs/wxutil/preview/RenderPreview.cpp Diff File
mod - plugins/script/interfaces/MathInterface.cpp Diff File
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/selection/SelectionMouseTools.cpp Diff File
mod - radiant/xyview/OrthoView.cpp Diff File
mod - radiantcore/clipper/ClipPoint.cpp Diff File
mod - radiantcore/rendersystem/backend/TextRenderer.h Diff File
mod - radiantcore/selection/textool/TextureToolRotateManipulator.cpp Diff File
mod - test/Selection.cpp Diff File
mod - test/math/Vector.cpp Diff File