56 Commits
Author SHA1 Message Date
Garux 7bb1c1ba06 remove odd casts 2025-11-02 02:37:40 +05:00
Garux 5b380fd6fe remove explicit float literal specifiers 2025-11-02 01:27:42 +05:00
Garux 2f17128f06 remove some odd static_cast<> 2025-11-01 20:49:05 +05:00
Garux 17d6588d1a use std::fabs to avoid conversion to double 2025-11-01 19:08:32 +05:00
Garux 1285e9c9e5 * fix AP texture alignment deduction during bsp to map decompilation 2025-10-21 05:17:16 +05:00
Garux 66e15e9ba0 minor tweaks 2025-09-23 02:45:24 +05:00
Garux 86d08f9e93 use std::array for PlanePoints 2025-09-07 18:20:13 +05:00
Garux d7f3e9bd3f minor tweaks 2025-09-04 16:01:47 +05:00
Garux 5426732f28 minor tweaks 2025-09-02 05:04:33 +05:00
Garux 607d4c67ad tweak formatting 2025-02-05 15:59:29 +05:00
Garux df02774ff5 tweak StringOutputStream use
auto str = StringOutputStream()(bla) use form was not doing copy elision or move, but copy
2024-01-29 16:54:08 +06:00
Garux 9d3d204018 Qt 2022-10-27 09:10:31 +03:00
Garux 6c129e546f store winding points in double precision 2021-11-23 14:48:00 +03:00
Garux 0c390241c8 fix formatting 2021-10-26 18:16:24 +03:00
Garux 4471302857 add and use BasicVector3.vec2() 2021-06-23 16:51:03 +03:00
Garux 6c00419653 fix spelling 2021-05-24 20:23:09 +03:00
Garux 2222100316 indent classes, align by spaces 2021-03-24 00:25:15 +03:00
Garux 9c908392b9 fix warnings and error 2019-07-06 14:35:20 +03:00
Garux 2426697f65 UV Tool: add patch support
patch controls move modifiers: shift = only move along the axis with the biggest move, ctrl = snap hard to grid and povit lines
fix a couple of Patch::Calculate_AvgNormal() and Patch::NaturalTexture() problems
2019-06-10 15:17:57 +03:00
Garux aa99f4d254 * UV Tool (edit texture alignment of selected face) modifiers:
pivot control point and lines: ctrl = snap hard to face vertices and grid
		grid density controls: shift = change density of both axes synchronously, ctrl = power of two grid
		scale lines: shift = scale axes synchronously, ctrl = snap hard to vertices
		alt + m1 on grid = skew texture (is possible alright in BP and Valve220 map formats, not in AP); ctrl = snap hard to edges
		texture move: shift = only move along the axis with the biggest move, ctrl = snap grid lines hard to vertices and pivot
		rotate: shift = rotate with step of 15 degrees, ctrl = snap hard to edges
2019-05-19 10:30:44 +03:00
Garux ae1bd2c066 matrix4_for_normal_transform, matrix4_transformed_normal, plane3_transformed_affine_full functions 2018-05-16 14:16:43 +03:00
Garux b078ec3ad0 small cleaning 2018-04-04 13:34:12 +03:00
Garux 304d4760c4 * catch degenerate cases in texture vertex lock (ex: verts edit to noncontributing face, then back) 2018-04-04 12:02:53 +03:00
Garux b1e2f26124 use globalWarningStream() 2018-03-21 04:21:07 +03:00
Garux 062df0bc5f fix AP texlock, handle scale 0 in different way 2018-02-20 16:08:44 +03:00
Garux c878333c7b * m2 in Surface Inspector->fit width/height = fit width/height, keep height/width 2018-02-19 17:28:05 +03:00
Garux 4a6c809e7d * Valve220: optimize ST coords calculation (rotation value is irrelevant) 2018-01-24 13:01:47 +03:00
Garux cb2886cd97 * BP to AP, BP to 220, 220 to AP format conversions, Valve220 texture vertex lock: handle degenerate BP basis case 2018-01-24 00:13:35 +03:00
Garux 16ee5cc8c8 * Valve220 texture lock: catch QNAN, if projection direction is parallel to face 2018-01-23 04:52:34 +03:00
Garux 55a36d5543 * fix: consider rotation value for Valve220 arbitrary projections 2017-12-19 16:11:17 +03:00
Garux 723a615110 * texture locking during vertex and edge manipulations 2017-12-06 13:57:40 +03:00
Garux 533b842a00 * Valve220 to AP brush type conversion: one is lossless, when it is possible 2017-12-05 16:08:19 +03:00
Garux 9b644b4680 * BP to AP brush type conversion: one is lossless, when it is possible 2017-12-05 15:49:15 +03:00
Garux 7103ac23de * support scale 0 in AP Texdef_transformLocked 2017-12-05 14:39:14 +03:00
Garux 0e29985090 * support scale 0 in BP Texdef_transformLocked (is usable, while scaling faces in component mode by 0) 2017-12-04 21:42:03 +03:00
Garux 382ce2e691 * fix AP texture lock for faces with 45 degrees angle 2017-12-04 21:18:53 +03:00
Garux 1658f27ee6 * Valve220: keep basis on 'paintTexture&Projection' (shift+m3); 'projectTexture' (ctrl+shift+m3) performs basis copy 2017-11-10 14:56:35 +03:00
Garux 9c415afaae * swap shift+pgup/pgdn to match SI behavior (up = +value, down = -value) & to improve ergonomics
* invert BP fake angle to synchronise shift+pgup/pgdn behavior with rotation by SI
2017-10-19 13:11:44 +03:00
Garux c152cf02a4 * round AP and Valve220 rotation values to f.xx instead of int 2017-10-19 00:27:46 +03:00
Garux 62a5122ff8 rename TEXDEFTYPEID_HALFLIFE -> TEXDEFTYPEID_VALVE for consistency 2017-10-18 23:35:56 +03:00
Garux f4149f1549 * Valve220: use face projection by default
* Valve220: Project {axial, ortho, cam, from face} functions
	* conversions between AP, BP and Valve220 brush types; conversions to Brush Primitives and Valve220 formats are lossless
	* detect brush format and automatically convert to current one on map Import and Paste
	* Valve220: fixed Reset function, implemented Rotate one
	* Valve220: fix overwriting basis on brush clone/map import ( in Face( Face ) constructor )
	* BP: fix: normalize shift values during import, arbitrary projections and face->fit
	* Valve220: fix texture lock for scaling, fix for negative texdef.scale
2017-10-02 18:11:43 +03:00
Garux c3d11bca70 Radiant:
misc...
	* experimental fix of rendering scene and evaluating brush/patch representation TWICE on every transform (literally after every mouse move fraction)
2017-08-02 09:48:29 +03:00
Garux 6fa612373e Radiant:
misc...
	* new texture lock algorithm for BP map format, supporting any affine transformations
	* more robust texture lock algorithm for AP map format, locking what is possible to; also improves seamless face2face tex paste function
2017-08-02 09:48:12 +03:00
Garux fb7c979d42 Radiant:
misc...
	* place created simple patch mesh not in middle of bbox, but on edge to make result more usable
	* prefs-interface-layout-single scrollable toolbar
2017-08-02 09:47:35 +03:00
Garux da43652df1 Radiant:
binds...
	* ctrl + shift + m3/drag: project tex from face in tex clipboard to brushes(BP format) and curves

misc...
	* fixed and improved normal finding in patch texture autocap algorithm
	* removed axis cycling in patch cap texture; using autocap
	* patch cap texture: project, using brush texture projection math of current mapformat to make it seamless with brushes by default
	* Surface inspector->Project functions work for curves (in AP map format too)
2017-08-02 09:47:05 +03:00
Garux b0c4caa9d1 Radiant:
binds...
	* m3: apply texture name and alignment to selected primitives and faces
	cleaning
2017-08-02 09:46:24 +03:00
Garux a102c41b48 Radiant:
misc...
	* changed surface inspector behavior from 'set whole texture projection' to 'set modified value' (makes sense for multiple surfaces selected)
	* BP: surface inspector and Tex* binds scale texture by its axes, not world axes
	* BP: fix rotation of tex projection with scale S != scale T
	* BP: fix ruining nonregular tex projections by surface inspector (for example after fit/seamless/arbitrary projection)
	* jump over tex projection scale = 0 case, while modifying one (AP and BP)
2017-08-02 09:45:26 +03:00
Garux 492f00b729 Radiant:
misc...
	* fix scaling for doom3 brush format
	* Pointfile function: try to also load .pts leak line file (q1), if .lin isn't found
	* snap transform origin for flip commands
	* change light intensity save format from %f to %g to prevent .99999 on transforms
	* support 'stupid quake bug' (invert pitch in angles)(generic and miscmodel ents)(cfg: entities="quake" in .game)
	* clipper: place 1st and 2nd points far, 3rd near to ease 3 points clipping
2017-08-02 09:44:51 +03:00
Garux 9613511560 Radiant:
binds...
	* m2 drag in cam = sideways+updownways strafemode; do not enter/quit freelook, if long button press (>300ms)
	* m1 drag in freelook = sideways+updownways strafemode (mainly for visual editing)
	* ctrl + m3/drag = seamless brush face to face texture paste; works for any faces in BP mode, only axial ones in AP
	* ctrl + shift + a: select all visible brush faces and curves, textured by selected shader
		(more obvious way, than existing ones: components mode::faces->shift+a and find/replace to empty)
	* shift during creating brush = quadratic brush
	* drag clipper point + shift = constrain to axis with biggest move amount

misc...
	* -gamedetect command line option to enable game detection
	* don't disable aero by default; -aero command line option disables one
	* "Don't show" (during session) checkbox in Light Intensity dialog
	* fix: show-grid toggle hides grid, when snap-to-grid is off too
	* region mode: draw out of region part of grid in subtle style
	texbro tags button png icon
2017-08-02 09:42:58 +03:00
Garux 7e36f12449 Radiant:
binds...
	* Tab + mWheel in freelook: offset focus distance with dist2origin/8 step; exponentially, if moving far away

menus...
	* Misc->Colors->Themes->Blender/Dark color theme
misc...
	* surface inspector: renamed poorly named Axial button to Reset
	* arbitrary brush texture projections in brush primitives map format: axial, from ortho view, from cam
	* frame 2 frame time render stat
	* renamed confusingly named command GroupSelection to RegroupSelection
	* fix: changing clipper color via theme loading doesn't require restart
	* fix: changing CameraSelectedBrushColor, SelectedBrushColor don't require restart
2017-08-02 09:42:08 +03:00