Commit Graph

102 Commits

Author SHA1 Message Date
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 684187c4ec fix clipping whole brush by clipper after 3ce07bb310
fix rotate manipulator selection after aa99f4d254
2019-06-01 19:25:01 +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 3ce07bb310 change points order in plane3_for_points( const BasicVector3<Element>& p0, const BasicVector3<Element>& p1, const BasicVector3<Element>& p2 )
to be consistent over the related code
to omit points swap there and there
2019-05-01 12:38:58 +03:00
Garux 71c63fbdc6 * fix alt + m1 indirect faces picking, when object is partially or fully out of camera view
refactor math functions
2019-04-28 20:54:29 +03:00
Garux 1628abfd0f calm down -Wdelete-non-virtual-dtor warnings
remove -Wno-non-virtual-dtor from makefile (what does it do anyway? -Wdelete-non-virtual-dtor is part of -Wall)
2019-02-26 19:08:47 +03:00
Garux 07d3008b96 calm down fall through warnings 2019-02-22 23:50:10 +03:00
Garux 74a3da969c * ctrl + r: clone stuff and repeat recent transforms; clipper tool toggle resets transforms stack 2019-01-18 15:00:06 +03:00
Garux bcbbde0b35 remove debug prints 2018-12-13 19:31:23 +03:00
Garux 9eff327c70 refactor brush transform evaluation code to reduce amount of unneeded evaluations to 0
improvable: don't evaluateBRep on shader changed, perhaps more
fix: brush vertex manip: no vertexModeFree() after identity transform (mouse forth and back / rotate dialog 0 / insertion w/o move) = selects vertices on undo
fix: brush vertex manip: tex vertex lock: broken for 220
use brush::vertexmode code to delete selected brush components
2018-12-13 19:13:26 +03:00
Garux 868ff8fe50 * insert brush vertices in vertex mode by clicking with no ones selected 2018-12-11 13:19:07 +03:00
Garux 9a2886e624 add build tool skeleton; does nothing, button is hidden 2018-12-10 23:01:09 +03:00
Garux 1ae93ef20c also merge clipper points on CSGWrapMerge command 2018-11-15 01:02:37 +03:00
Garux 29998d8e8f * improve rotation manipulations consistency in camera 2018-10-31 11:23:08 +03:00
Garux c49be81280 use TranslateFreeXY_Z in 2d in DragManipulator & ClipManipulator 2018-10-30 13:29:12 +03:00
Garux 8508ee720e * XY + Z style of transform manipulator translations 2018-10-30 12:31:04 +03:00
Garux 74f2f5a5b4 * improve skew manipulation consistency in camera 2018-10-30 11:32:32 +03:00
Garux b6fd6e803f * 3d camera clipper: move points in XY + Z style with shift, ctrl, alt; snap to grid with ctrl 2018-10-30 01:04:34 +03:00
Garux 053df17a35 binds... * clipper::enter, shift+enter, doubleclick: merge brushes and components with clipper points, if no cut occured 2018-10-22 13:58:36 +03:00
Garux 2a3ca3a44f binds... * alt + m2 in camera: orbit around clicked point 2018-10-07 02:20:29 +03:00
Garux 9c91f4fa78 binds... * alt + m1 in camera: new resizing mode for brushes, curves and doom3 lights with direct and indirect selection methods 2018-10-06 02:31:05 +03:00
Garux afdf2a76e0 make Scene_BoundsSelected lazily evaluatable 2018-08-19 16:40:48 +03:00
Garux 3706e1131a binds...
* m3: copy texture name, alignment +new: color, light power, color
	* alt + m3/drag: paste texture name (to pointed and selected stuff)
	* shift + m3/drag: paste texture name, alignment +new: light power
	* ctrl + m3/drag: paste texture seamlessly between brush faces +new: light color
	* ctrl + shift + m3/drag: project texture from copied brush face +new: paste light power, color
	* alt + ctrl/shift/ctrl+shift + m3/drag: respective texture alignment paste w/o texture name
fix void NormalizeColor( Vector3& color )
fix: reset texture clipboard texdef on selection in texbro (was only resetting scales)
2018-08-11 23:36:50 +03:00
Garux 7908a2b593 simplify TextureBrowser_GetSelectedShader, TextureBrowser_SetSelectedShader usage
assuming, that we have only TextureBrowser
2018-08-03 17:32:57 +03:00
Garux 94e01fdb0a camera 2 points clipper: use likely more worthy split plane, if current axial one does not intersect selection bounds 2018-08-02 09:42:29 +03:00
Garux 5c48131eba * rectangular selector gestures, enabling select, deselect and toggle behaviors 2018-07-23 16:25:32 +03:00
Garux d6389acf21 fix TranslateFreeXY_Z usage for entities with non identity origin 2018-06-30 12:40:29 +03:00
Garux ed151906bd * bindable commands EntityMovePrimitivesToLast, EntityMovePrimitivesToFirst, EntityUngroup, EntityUngroupPrimitives 2018-06-24 21:25:53 +03:00
Garux 9f6a467e1e * handle degenerate cases of 2 points clipper in camera (points on the line of view direction) 2018-06-17 17:05:58 +03:00
Garux 5a78874f9b * selector size: bump default 8->12
clipper's one = user preference + 4
			hardcode for pivoted manipulators to 8 (since their size is constant)
2018-06-10 23:37:45 +03:00
Garux 78c97a6625 * disable clipper cut action on doubleclick, if click has set second point 2018-06-10 01:44:01 +03:00
Garux f51000c0d0 3d cam: DragNewBrush: improve big grid handling 2018-06-08 21:30:38 +03:00
Garux 2f38cfb4a3 * default (QE) tool: new translation styles: "XY plane + Z with Alt", "View plane + Forward with Alt" (prefs->Selection->Move style in 3D) 2018-06-04 19:22:07 +03:00
Garux c0b6f2169a * statusbar: show selected brushes/patches/entities counts, if anything is selected; total, if not 2018-06-01 02:23:07 +03:00
Garux 6f8a0668a3 add and use VolumeTest/View.getViewDir() 2018-05-18 01:55:20 +03:00
Garux e1bc4a8ba9 fix quaternion_for_unit_vectors, quaternion_normalised
RotateFree got lower (realistic) sensitivity
2018-05-16 02:59:18 +03:00
Garux a18a5d7c9b * snap Clipper points to brush planes, edges and vertices (in 3d camera) 2018-05-15 02:43:10 +03:00
Garux 813cd70fd3 add vector3_max_abs_component_index, vector3_min_abs_component_index functions 2018-05-14 22:35:31 +03:00
Garux 05ea23c623 reimplement: * m1x2 on clipper point = do clip 2018-05-11 18:01:10 +03:00
Garux a42709f80a reimplement: * ctrl + m1: quick clipper mode (quits one after split done) (in 2d) 2018-05-11 02:27:52 +03:00
Garux 522cac75dc * preferences->Clipper->"Reset Flipped State" (on cut done and on manipulator changed), "Reset Points on Split", "2 Points in 2D Views" 2018-05-10 02:31:08 +03:00
Garux 7088653115 * clipper tool total rewrite; works in 3d viewport
* fix: update BrushClipPlane rendering on selection change
	* clipper points are draggable right after been dropped
2018-05-09 00:24:02 +03:00
Garux 9930b8842b make rectangular selector minimal size independent on g_SELECT_EPSILON, allow any non zero size 2018-05-04 11:02:04 +03:00
Garux 050c0559be * turn off 64u deep selection of components in QE tool 2018-04-29 21:02:16 +03:00
Garux 412e6cc60a shorten RadiantWindowObserver.ModifierFlags m_state code 2018-04-29 19:56:50 +03:00
Garux 1d4f115517 * preferences->Selection->Selector size (pixels) 2018-04-29 19:12:42 +03:00
Garux 446ab50511 really support mouse_moved_epsilon system in camera freelook
use FreezePointer chain for freelook selections/manipulaions instead of extra gtk motion handler (fixes one step latency in window observer aswell)
2018-04-17 14:26:49 +03:00
Garux 93aef246ea * support mouse_moved_epsilon system in camera freelook + refactor RadiantWindowObserver 2018-04-14 23:12:53 +03:00
Garux 3ae4188e3d simplify planeselectables if( camera ) check 2018-04-13 00:14:32 +03:00
Garux 417051921e DragNewBrush: when no testselestion: offset based on gridsize to handle big grid 2018-04-10 18:02:34 +03:00