View Issue Details

IDProjectCategoryView StatusLast Update
0005740DarkRadiantMap Editingpublic12.10.2021 17:55
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version2.13.0 
Target Version2.14.0Fixed in Version2.14.0 
Summary0005740: Step-rotating textures through the Surface Inspector should be using the center as pivot
DescriptionWhen changing the rotaiton/angle field in the entity inspector through the left/right arrows in the Surface Inspector, the corresponding commands "TexRotate +1" or "TexRotate -1" should be using the UV center point as rotation pivot. (Right now, hitting the rotate arrows moves the texture by hundreds of units in UV space, unless the face itself is already centered at the world origin.)
TagsNo tags attached.

Relationships

related to 0005768 resolvedgreebo Adjust Surface Inspector Shift/Scale/Rotation boxes to comply with the new texturing algorithms 

Activities

greebo

greebo

06.09.2021 04:02

administrator   ~0014334

Current behaviour as attached
rotate_face_textures_old.gif (1,522,684 bytes)
Dragofer

Dragofer

11.09.2021 21:25

developer   ~0014353

If I'm not misremembering, the Flip Horizontal and Flip Vertical actions could use a similar treatment because they mirror across the axis at the origin - so they, too, have the potential to catapult a UV island to the other end of the Texture Tool.
greebo

greebo

12.09.2021 04:17

administrator   ~0014355

Yeah, I know, they are already on my mental list. Lots of work on the road ahead.
greebo

greebo

01.10.2021 13:50

administrator   ~0014384

Need to work on patches too
greebo

greebo

12.10.2021 14:13

administrator   ~0014431

Improvement needed for texture aspect ratio != 1

Related Changesets

DarkRadiant: textransform a29bd814

2021-09-05 19:12:56

greebo

Details Diff
0005740: New experimental brush face texture rotation implementation, which rotates the texture using the UV centroid as pivot.
Lots of code to be refactored, and it appears we don't have a 3x3 Matrix type.
Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/brush/TextureProjection.cpp Diff File
mod - radiantcore/brush/TextureProjection.h Diff File

DarkRadiant: textransform 1368551a

2021-09-06 16:04:57

greebo

Details Diff
0005740: Refactoring. Introduce Matrix3, the little sister of Matrix4. Affected Issues
0005740
add - libs/math/Matrix3.h Diff File
mod - libs/math/Matrix4.h Diff File
add - libs/math/eigen.h Diff File
mod - test/Brush.cpp Diff File
mod - test/math/Matrix4.cpp Diff File
mod - tools/msvc/mathlib.vcxproj Diff File
mod - tools/msvc/mathlib.vcxproj.filters Diff File

DarkRadiant: textransform c6a8881e

2021-09-06 16:16:15

greebo

Details Diff
0005740: Set up unit test suite Affected Issues
0005740
mod - libs/math/Matrix3.h Diff File
add - test/math/Matrix3.cpp Diff File
mod - tools/msvc/Tests/Tests.vcxproj Diff File
mod - tools/msvc/Tests/Tests.vcxproj.filters Diff File

DarkRadiant: textransform b4fda762

2021-09-06 16:26:46

greebo

Details Diff
0005740: Port a few unit tests from the Matrix4 suite, as far as the class provides it Affected Issues
0005740
mod - libs/math/Matrix3.h Diff File
mod - test/CMakeLists.txt Diff File
mod - test/math/Matrix3.cpp Diff File

DarkRadiant: textransform 06c12ad3

2021-09-06 17:20:08

greebo

Details Diff
0005740: Matrix3 transformations Affected Issues
0005740
mod - libs/math/Matrix3.h Diff File
mod - test/math/Matrix3.cpp Diff File

DarkRadiant: textransform 330f1249

2021-09-08 04:34:09

greebo

Details Diff
0005740: Add a few test cases rotating some face texdefs on an angled brush. Affected Issues
0005740
mod - test/Brush.cpp Diff File
mod - test/algorithm/Primitives.h Diff File
add - test/resources/tdm/maps/simple_brushes.map Diff File

DarkRadiant: textransform 97156f2d

2021-09-08 18:12:03

greebo

Details Diff
0005740: Add named Matrix3 constructors for the simple transform types Affected Issues
0005740
mod - libs/math/Matrix3.h Diff File
mod - test/math/Matrix3.cpp Diff File

DarkRadiant: textransform c6c01ead

2021-09-08 18:58:06

greebo

Details Diff
0005740: Refactor Face::rotateTexdef to use the new Matrix3 class instead of custom Eigen Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File

DarkRadiant: textransform 78747549

2021-09-08 19:44:12

greebo

Details Diff
0005740: Rearrangement, introduce Face::setTexDefFromPoints which does the reverse calculation Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/brush/Face.h Diff File

DarkRadiant: master 447e282f

2021-09-09 14:17:22

greebo

Details Diff
0005740: Add missing inline qualifiers Affected Issues
0005740
mod - libs/math/Matrix3.h Diff File

DarkRadiant: master 2cc2f897

2021-09-09 14:18:50

greebo

Details Diff
0005740: Remove the old texture rotation code which was based on the fake textdef.
Add some comments about the 2x3 matrix texture projection in general.
Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/brush/TextureMatrix.cpp Diff File
mod - radiantcore/brush/TextureMatrix.h Diff File
mod - radiantcore/brush/TextureProjection.cpp Diff File
mod - radiantcore/brush/TextureProjection.h Diff File

DarkRadiant: master 8767805e

2021-10-01 13:50:38

greebo

Details Diff
0005740: Add unit test with the desired rotation behaviour of patches Affected Issues
0005740
mod - test/TextureManipulation.cpp Diff File

DarkRadiant: master e12b0535

2021-10-01 14:07:42

greebo

Details Diff
0005740: Patch textures rotate around their center now Affected Issues
0005740
mod - radiantcore/patch/Patch.cpp Diff File
mod - radiantcore/patch/Patch.h Diff File
mod - radiantcore/selection/algorithm/Texturing.cpp Diff File
mod - radiantcore/selection/algorithm/Texturing.h Diff File
mod - test/TextureManipulation.cpp Diff File

DarkRadiant: master cec9770e

2021-10-01 14:27:56

greebo

Details Diff
0005740: Face::rotateTexDef method is using the same rotator class as Patches Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/selection/algorithm/Texturing.cpp Diff File
mod - radiantcore/selection/algorithm/Texturing.h Diff File

DarkRadiant: master b1349f50

2021-10-12 14:16:27

greebo

Details Diff
0005740: Add IFace::getTextureAspectRatio() method plus unit tests. Affected Issues
0005740
mod - include/ibrush.h Diff File
mod - radiantcore/brush/Face.cpp Diff File
mod - radiantcore/brush/Face.h Diff File
mod - test/TextureManipulation.cpp Diff File

DarkRadiant: master 8f3f0f78

2021-10-12 14:19:54

greebo

Details Diff
0005740: Face rotations are now respecting the aspect ratio of the assigned editor image Affected Issues
0005740
mod - radiantcore/selection/algorithm/Texturing.cpp Diff File
mod - radiantcore/selection/algorithm/Texturing.h Diff File
mod - radiantcore/selection/textool/TextureToolSelectionSystem.cpp Diff File

DarkRadiant: master 04b4364d

2021-10-12 17:54:25

greebo

Details Diff
0005740: Better implementation of IFace::getTexelScale(). Add unit test checking the pivoted rotation preserving texel scale Affected Issues
0005740
mod - radiantcore/brush/Face.cpp Diff File
mod - test/TextureManipulation.cpp Diff File

Issue History

Date Modified Username Field Change
06.09.2021 03:55 greebo New Issue
06.09.2021 03:56 greebo Assigned To => greebo
06.09.2021 03:56 greebo Status new => assigned
06.09.2021 04:02 greebo Note Added: 0014334
06.09.2021 04:02 greebo File Added: rotate_face_textures_old.gif
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform a29bd814
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform 1368551a
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform c6a8881e
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform b4fda762
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform 06c12ad3
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform 330f1249
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform 97156f2d
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform c6c01ead
08.09.2021 19:44 greebo Changeset attached => DarkRadiant textransform 78747549
09.09.2021 17:21 greebo Changeset attached => DarkRadiant master 447e282f
09.09.2021 17:21 greebo Changeset attached => DarkRadiant master 2cc2f897
09.09.2021 17:26 greebo Target Version => 2.14.0
09.09.2021 17:26 greebo Status assigned => resolved
09.09.2021 17:26 greebo Resolution open => fixed
09.09.2021 17:26 greebo Fixed in Version => 2.14.0
11.09.2021 21:25 Dragofer Note Added: 0014353
12.09.2021 04:17 greebo Note Added: 0014355
01.10.2021 13:50 greebo Status resolved => assigned
01.10.2021 13:50 greebo Resolution fixed => reopened
01.10.2021 13:50 greebo Note Added: 0014384
01.10.2021 14:07 greebo Changeset attached => DarkRadiant master 8767805e
01.10.2021 14:07 greebo Changeset attached => DarkRadiant master e12b0535
01.10.2021 14:28 greebo Changeset attached => DarkRadiant master cec9770e
01.10.2021 14:28 greebo Status assigned => resolved
01.10.2021 14:28 greebo Resolution reopened => fixed
02.10.2021 07:03 greebo Relationship added related to 0005768
12.10.2021 14:13 greebo Status resolved => assigned
12.10.2021 14:13 greebo Resolution fixed => reopened
12.10.2021 14:13 greebo Note Added: 0014431
12.10.2021 17:54 greebo Changeset attached => DarkRadiant master b1349f50
12.10.2021 17:54 greebo Changeset attached => DarkRadiant master 8f3f0f78
12.10.2021 17:54 greebo Changeset attached => DarkRadiant master 04b4364d
12.10.2021 17:55 greebo Status assigned => resolved
12.10.2021 17:55 greebo Resolution reopened => fixed