Commit Graph

657 Commits

Author SHA1 Message Date
Garux 6d080c01e0 turn FaceTexdef_importTokens / exportTokens: bad texdef assertions to console warning, as in practice it does more annoyance, than use, for end user 2019-03-07 16:14:36 +03:00
Garux 7a2084b405 fix: set color for RENDER_TEXT 2019-03-07 15:45:55 +03:00
Garux 4382b5f6d9 * bobToolz::Vis Viewer repair (shows current vis cluster brush drawsurfaces in green and rest visible ones in other colours for Q3 and Wolf/QL .bsp):
don't crash on bsp w/o vis
		don't crash with origin in the void (includes inside of structural brush)(do reset)
		grab point to analyse from camera position with nothing selected; grab from any objects selection too
		fix rendering issues
		read surfaces written by q3map2 correctly + faster rendering code
		print number of loaded drawsurfaces to console for evaluation of optimization done
		fix a couple of of leaks and crashes after new/delete
2019-03-07 11:29:59 +03:00
Garux af720a7f32 remove convhull_3d.h 2019-02-28 00:00:54 +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 2dd78b7b97 fix use after free in RenderableCamWorkzone
somehow it was grabbed by ogl too late here, if sizing info wasn't rendering
2019-02-23 00:01:12 +03:00
Garux d2dceca361 fix constness 2019-02-22 23:56:17 +03:00
Garux 7c2d05f399 fix 'might be considered always true' warning 2019-02-22 23:53:39 +03:00
Garux 07d3008b96 calm down fall through warnings 2019-02-22 23:50:10 +03:00
Garux eb95c73416 Winding_Draw fix use after scope 2019-02-22 23:44:51 +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 7bcb57562f preserve brush detail state during vertex manipulations 2019-01-17 00:00:14 +03:00
Garux b7bfa11b55 * entity inspector::smartEdit: display real key names
* entity inspector::smartEdit: show tooltips with extended names and descriptions for keys and flags
2019-01-11 21:25:31 +03:00
Garux fb53d5094a some more sensible gui default sizes 2019-01-11 18:35:37 +03:00
Garux e7fbe45319 build monitoring: change timeout value back to 25, as 8 results in radiant, taking one cpu thread for some reason
buffered stream is quick enough anyway
2019-01-07 19:26:17 +03:00
Garux 168e085d8e * "BuildMenu" preference: store filename (def. build_menu.xml) instead of absolute path for portability; absolute path is supported too, if set
* fix: load customized build_menu.xml from settings folder on the very first start and with senseless "BuildMenu" value
2018-12-26 16:20:43 +03:00
Garux 90d272e0a8 fix commit 9186d18353 , handle 'no vertices selected' case properly 2018-12-25 22:50:18 +03:00
Garux 4dc9b18f70 * fix brush shader names handling by bobtoolz (was writting empty shader name = crash on map save, at least "textures/" is expected)
complain about patch and brush shader names harder
2018-12-24 23:44:57 +03:00
Garux 9186d18353 optimize vertices reselection during vertex manipulations 2018-12-24 00:08:55 +03:00
Garux ab0f376d4a * lower Winding_Clip ON_EPSILON to play with weird brushes w/o error 2018-12-23 23:46:22 +03:00
Garux 2f867c99d9 * fix crashy assertions on vertices/edges selection (also = during vertex manipulations)
by removing not needed anymore update_move_planepts_vertex code
	* disable points snapping to .125 grid during edge manipulation (already disabled for vertex mode)
2018-12-23 23:44:13 +03:00
Garux 13481405ac improve workaround of slow fontconfig start 2018-12-21 11:48:34 +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 907c0b1265 minus Brush_textureChanged(); call, faces are getting deselected anyway 2018-12-10 21:08:52 +03:00
Garux 51c798fd9c * Snap to grid in a component mode: snap whole objects, if no components selected
* Snap brush/its vertices to grid: rebuild brush from snapped vertices with optional texture vertex lock
2018-12-10 21:00:33 +03:00
Garux 3f3230ed2a remove debug prints 2018-12-10 17:51:41 +03:00
Garux 435c41b73b * new vertex editing mode, preserving non modified vertices (=adding/removing faces automatically)
with debug prints
2018-12-10 17:50:40 +03:00
Garux 389030e05d fix cached brush face centroid tracking 2018-12-05 15:19:12 +03:00
Garux 70167de13b switch CSG_build_hull to https://github.com/akuukka/quickhull lib, feels robust enough
use -std=c++11
2018-12-01 15:43:26 +03:00
Garux 058ae2697e use original brush for CSG_DeleteComponents result and try to for CSG_WrapMerge to preserve selection on undo 2018-11-24 01:49:58 +03:00
Garux adc6adf50e delete duplicate code, enable search in find/replace dialog in selected in component mode 2018-11-23 16:50:27 +03:00
Garux 1ae93ef20c also merge clipper points on CSGWrapMerge command 2018-11-15 01:02:37 +03:00
Garux a88202f6c1 CSG_build_hull: use bruteforce, when is reasonable (double facehoof) 2018-11-15 00:16:39 +03:00
Garux d83d5977b7 * fix: update component modes toolbar buttons on entering clipper mode 2018-11-14 22:38:00 +03:00
Garux c611be157a * also filter "textures/common/donotenter" by Botclips filter 2018-11-01 02:24:12 +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 736f89026f use convhull_3d for quicker hull calculation 2018-10-22 18:36:38 +03:00
Garux 70254905c8 fix: crash in CSG::BrushDeleteSelected (again(likely-)) 2018-10-22 16:09:11 +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 07bc303c2d * arbitrary rotation dialog fix: also handle extra precision of values on execution by button press 2018-10-21 23:01:12 +03:00
Garux 2836989099 binds... * z, backspace (DeleteSelection): also delete selected components (vertices/edges/faces) of brush in a component mode 2018-10-18 20:14:29 +03:00
Garux 0f7af6aaa4 binds... * shift + u: new uniform CSG wrap merge algorithm, merging selected brushes and/or components 2018-10-16 01:20:09 +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 cf885ea4ea use OpenGLRenderable to draw camera workzone for proper sorting and smoother states management 2018-09-25 20:50:04 +03:00
Garux 2d35f656f9 * represent grid by 3d camera workzone 2018-09-24 20:35:57 +03:00
Garux cdd1676a59 minus inclusion, a bit of correctness in FBO_fallback 2018-08-29 00:12:00 +03:00
Garux e7fec22b52 * rewrite and fix 2d background image feature; fix bug on intels (glPushAttrib) 2018-08-28 23:58:02 +03:00
Garux 1f4143ece2 * render size info in 3d camera 2018-08-28 16:06:47 +03:00
Garux 82ff22882d * render workzone in 3d camera 2018-08-20 23:33:33 +03:00
Garux 601ca95fbf simplify XYWnd::PaintSizeInfo slightly 2018-08-19 19:57:02 +03:00
Garux afdf2a76e0 make Scene_BoundsSelected lazily evaluatable 2018-08-19 16:40:48 +03:00
Garux c5f2279f4a * render direction arrow for group entities, having angle/angles key set or having angle/angles/direction attribute in .ent
draw condition relies on entity.getKeyValue, which also provides default values; thus removed default "0" for all group entities in .def loader
mind to add entity.getOnlySpecifiedKeyValue func or perform by visitor?
2018-08-16 20:00:58 +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 461410f1a9 * fix automatic connection names resolving of cloned entities
issue was:
	create entity 1, clone to 2,3; connect 1-2, 2-3 = 1-3 connected; 2-3, 1-2/3-2 2-1 = ok; create all ones via menu/clone-make-unique/ctrl+c +v = ok
	clone-make-unique is broken, when operating with cloned entities, connected 3-2, 2-1 (ctrl+c +v too)
2018-07-27 20:21:42 +03:00
Garux cc997fd5a1 * fix clone, clone-make-unique, select all of type, expand selection to entities/primitives for maps w/o worldspawn 2018-07-27 19:11:53 +03:00
Garux 5c48131eba * rectangular selector gestures, enabling select, deselect and toggle behaviors 2018-07-23 16:25:32 +03:00
Garux 6ce87c04ac * update Texture Quality (mip level) preference without restart 2018-07-10 12:49:23 +03:00
Garux c3a110bf2c fix old mipmaps code: tex size could be = 0 2018-07-10 01:13:47 +03:00
Garux f83dc2e891 * use external textures mipmaps generation, draw NPoT textures correctly 2018-07-10 00:54:35 +03:00
Garux d6389acf21 fix TranslateFreeXY_Z usage for entities with non identity origin 2018-06-30 12:40:29 +03:00
Garux ac87395f6c * preferences->Clipper->On DoubleClick do: clip or split (def = split) 2018-06-24 22:50:15 +03:00
Garux 962df6a60e remove duplicated ViewEntityInfo command 2018-06-24 21:34:09 +03:00
Garux ed151906bd * bindable commands EntityMovePrimitivesToLast, EntityMovePrimitivesToFirst, EntityUngroup, EntityUngroupPrimitives 2018-06-24 21:25:53 +03:00
Garux 645c2f479c comment out Scene_parentSelected() codes 2018-06-24 19:24:16 +03:00
Garux f0057a86f4 * bindable commands FitTextureWidth, FitTextureHeight, FitTextureWidthOnly, FitTextureHeightOnly 2018-06-24 13:14:54 +03:00
Garux 59c05fa390 fix coincident UndoableCommand name "patchCreateCaps" 2018-06-24 12:16:08 +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 b5e9d98bc7 status_grid tooltip_markup 2018-06-09 22:51:26 +03:00
Garux 367e13e880 * map objects counts statusbar icons
* omit textures/ prefix in texture clipboard status
2018-06-09 22:04:23 +03:00
Garux fd1e14864a * enable entity->killconnect for game type="q1" 2018-06-09 00:47:16 +03:00
Garux f51000c0d0 3d cam: DragNewBrush: improve big grid handling 2018-06-08 21:30:38 +03:00
Garux aff5c8093e * up/down floor walker: examine all types of scene nodes (was brushes only)
consider only top/down and selected instances (was whole scene)
				fix jam at close coords
				also jump to bottommost coord of considered objects
2018-06-08 21:05:47 +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 24c02facb2 refactor status text, status labels 2018-05-31 16:16:47 +03:00
Garux 6b8a1980af * add statusbar->patches count 2018-05-31 12:38:43 +03:00
Garux 4a59d83139 simplify void NormalizeColor( Vector3& color ) 2018-05-24 23:16:59 +03:00
Garux bf6e29d9c6 * remove entity->ungroup command: change classname to worldspawn does equal job; 'create worldspawn' click ungroups selected primitives only 2018-05-24 22:56:46 +03:00
Garux 66197713a5 simplify ParentSelectedBrushesToEntityWalker
add comments to EntitySetClassnameSelected
2018-05-24 21:37:39 +03:00
Garux 17a7e2f413 * replace reGroup command with simpler to use Move Primitives to Entity one (select primitives to move, select target entity primitive, go)
fix crashes in Entity_ungroupSelected, Entity_connectSelected
rename entity commands uniformly for simpler search in the list
2018-05-24 18:21:38 +03:00
Garux 6f8a0668a3 add and use VolumeTest/View.getViewDir() 2018-05-18 01:55:20 +03:00
Garux 4542d9da3c * Valve220: transform basis in special way with texture lock off 2018-05-16 16:40:54 +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 e1bc4a8ba9 fix quaternion_for_unit_vectors, quaternion_normalised
RotateFree got lower (realistic) sensitivity
2018-05-16 02:59:18 +03:00
Garux 0a4d325f85 fix slow mass (de)selection in clipper mode 2018-05-15 02:55:05 +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 af9850510f prevent cursor change GDK_BLANK_CURSOR->g_clipper_cursor during freelook 2018-05-14 13:36:44 +03:00
Garux b2a911c9b1 * fix: update BrushClipPlane rendering on undo 2018-05-14 12:54:02 +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 8339ebfb23 remove code 2018-05-09 02:01:21 +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 b06c551866 * fix qer_alphafunc equal/greater/less/lequal alphatest modes (was always 'gequal') 2018-05-04 11:30:23 +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 9114385dda * fix mixed up ViewFront and ViewSide commands, NextView menu entry typo 2018-04-28 22:10:07 +03:00
Garux 1e58fb2d7d * change GDK_KP_Home, GDK_KP_Page_Down, GDK_KP_End binds to GDK_KP_7, GDK_KP_3, GDK_KP_1: works under Windows at least 2018-04-28 21:33:12 +03:00
Garux 7c5d79da6b * texbro: show tags frame on M2 release after small or zero move to enable (m2 drag = scroll pan) with tags on 2018-04-28 20:18:06 +03:00
Garux 10c2b9bbd2 * check move amount (56 pixels) in M2 toggle freelook or keep strafemode condition to allow fast strafe moves 2018-04-26 19:23:35 +03:00
Garux 16c00ac54c * fix backslashes in opened by cmd line map path = fix duplicates in recent maps list 2018-04-21 23:26:40 +03:00
Garux 460df292ff * preferences->Camera->Time to Max Speed slider (camera key moves acceleration) 2018-04-21 02:17:52 +03:00
Garux 600963629c * preferences->Camera->Scroll Move Speed slider
* change freelook move speed units to game units; expand range; simplify
	* print speed values on change by CameraSpeedDec/CameraSpeedInc commands to console
2018-04-21 01:13:08 +03:00
Garux 065505b71b * remove hack, making freelook move speed fps dependent and harsh move start 2018-04-20 23:17:23 +03:00
Garux a3201f1954 * camera strafe: m1 one is disableable by mode 'none'
do not block strafe by pressed shift in up/forward modes
			enable forward strafe with only shift pressed in 'both' modes (no ctrl is required)
2018-04-20 16:38:20 +03:00
Garux 0cae576d5e * preferences->Camera->Strafe Speed slider 2018-04-20 13:59:49 +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 d636107f68 * lower alt+m2 (2d zoom) sensitivity 2018-04-14 18:12:52 +03:00
Garux 3ae4188e3d simplify planeselectables if( camera ) check 2018-04-13 00:14:32 +03:00
Garux 652de9bb8f * entity based structural/detail filters depend on brushtypes="quake" in .game to make detail surfaceflags usable for quake 1 2018-04-10 20:51:41 +03:00
Garux 417051921e DragNewBrush: when no testselestion: offset based on gridsize to handle big grid 2018-04-10 18:02:34 +03:00
Garux 1eff801967 new algorithm for DragNewBrush Transform in camera 2018-04-06 23:27:46 +03:00
Garux 48d75b777d * brush creation in camera; alt = modify height 2018-04-06 12:26:06 +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 21db492d73 * build monitoring: determine if pending stack got monitorable commands, use non monitorable path, if not
* preferences->Build->Dump non Monitored Builds Log (default = no)
2018-03-30 01:47:28 +03:00
Garux b9dca3b000 * build system: prevent empty commands execution 2018-03-30 00:34:50 +03:00
Garux 8fbc462525 * select only plane of planeselectables in camera (since it's not easy to select multiple ones on purpose anyway) 2018-03-29 00:53:43 +03:00
Garux 75852ff0a1 robust algorithm for DragPlanes selection (Patch, Doom3Light) 2018-03-28 14:38:32 +03:00
Garux 73605bf94b robust algorithm for indirect Brush faces selection 2018-03-27 01:15:16 +03:00
Garux ed50787ee8 even more robust algorithm for Transform manipulator bbox faces pickup 2018-03-26 20:35:09 +03:00
Garux fce4ba0d67 new more robust algorithm for Transform manipulator bbox faces pickup 2018-03-26 19:05:03 +03:00
Garux 3222052652 fix and improve Transform manipulator bbox faces pickup 2018-03-21 22:48:10 +03:00
Garux 3da4012f1e add required message_flush calls 2018-03-21 20:59:30 +03:00
Garux fd656d274a * orange console warnings 2018-03-21 16:07:40 +03:00
Garux cf580963c2 more globalWarningStream() globalErrorStream() use 2018-03-21 16:06:22 +03:00
Garux b1e2f26124 use globalWarningStream() 2018-03-21 04:21:07 +03:00
Garux 54a98ed5e8 * fix RadiantSelectionSystem::getSelectionAABB() for PlaneSelectables 2018-03-21 03:03:41 +03:00
Garux 45a38ae48e * introduce globalWarningStream() 2018-03-15 01:18:16 +03:00
Garux 5bf0dd5243 q3map2: * buffered broadcast xml stream to dramatically increase compilation monitoring speed 2018-03-13 22:51:30 +03:00
Garux 0bf509dc1a * fix: FBO creation was random
* disable MSAA with samples = 0, even if more is forced via driver
2018-03-05 13:48:48 +03:00
Garux 552d0ac083 bind * shift + n: brush texture reset + patch texture cap 2018-03-04 17:37:28 +03:00
Garux 2859ea7e9c * Valve220: fix uninitialized texture buffer basis 2018-03-04 13:52:34 +03:00
Garux 658cbe45ba * menu Brush->Copy/PasteFaceTexture: show contextual Copy/Paste commands (dependant on faces selected) 2018-03-04 12:46:45 +03:00
Garux 357beaa46d * texbro: show all used textures on 'flush and reload shaders' 2018-03-03 15:05:30 +03:00
Garux ef94020d67 * texbro tree: display only wad names + full paths as tooltips
* texbro tree: do not try to load root of texture directories group
2018-03-03 13:08:18 +03:00
Garux 1d3094de94 use static boolean TextureBrowser::wads, clean the code 2018-03-02 19:19:29 +03:00
Garux 565f7fc6db * Entity Inspector->smartedit: enable array, target, targetname, skin attribute types
* Entity Inspector->smartedit: enable texture attribute type, add full shader path autocompletion
	* fix lags, caused by texture entries autocompletion
2018-03-01 04:01:18 +03:00
Garux 286f784ecf * Entity Inspector->smartedit->color chooser sets actual key, was always _color 2018-02-28 13:15:05 +03:00
Garux 5b226482b8 * Entity Inspector->smartedit angle(s), direction fields: add "set from camera view direction" button 2018-02-24 14:08:41 +03:00
Garux eae7ac024a clean namedentity, forward declarations, ostream_write 2018-02-22 18:56:53 +03:00
Garux 327fa13d54 add killconnect command only for mGameType=nexuiz (.game type="nexuiz"); was confusing bindlist readers 2018-02-21 17:15:10 +03:00
Garux 81cc314ff5 * support q1 liquids filtering with entities="quake" in .game 2018-02-21 14:58:41 +03:00
Garux ad68a7232d * toggle transform origin lock by clicking it
* represent locked transform origin with special colours
2018-02-21 12:49:10 +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 c1b9b17635 * do 'project from face' in face2face seamless function for parallel faces 2018-02-19 13:09:10 +03:00
Garux 1b673b1a76 refactored EntityClass usage to only store being a miscmodel in miscmodel_is bool + set it on setting classname
* miscmodel filter: simplify and support miscmodels, defined by new way (xml .ent)
2018-02-19 00:40:51 +03:00
Garux feedf4919e consider func_detail* in Map Info dialog 2018-02-18 20:56:18 +03:00
Garux 024e6bd667 fix possible typo in LoadMapFile primitives count report 2018-02-18 20:22:09 +03:00
Garux 86a8aec283 * turn SI->project texture radiobuttons to label and 3 buttons to save clicks 2018-02-18 18:52:44 +03:00
Garux 6ac153f2f0 3 decimals precision for SI->fit hopefully will be enough 2018-02-18 16:08:19 +03:00
Garux 9b6e1e3b9e transform manipulator: add selected renderable lines last to get highlighted ones rendered on top in 2d 2018-02-18 16:03:16 +03:00
Garux faae287567 * transform manipulator: add rotate transformation with handles in corner points 2018-02-16 13:47:58 +03:00
Garux 63afbecab6 * fix accidental negative rotation by rotate tool in camera, caused by low precision 2018-02-15 13:13:44 +03:00
Garux 22cba3641a import c359b728f6
Try ~/.{prefix} on Apple OS X if /Library/Application Support/{prefix+1} fails.
2018-02-07 22:43:13 +03:00
Garux 1f31e94aca undo 'numeric GtkSpinButtons in SI, arbitrary rotation dialog' (aint flexible enough for input) 2018-02-04 20:56:45 +03:00
Garux f91df90d58 remove const_cast hack and memory leak in 'load doubleclicked texture's directory' 2018-02-04 19:38:08 +03:00
Garux 339d078bc6 fix/improve camera near_z usage 2018-02-04 16:55:25 +03:00
Garux c22187907e * entity inspector -> clear all: keep origin key 2018-02-03 09:03:59 +03:00
Garux b8f2cffa3f reformat gtktheme.cpp 2018-02-03 00:27:09 +03:00
Garux a5865dce55 * entity based structural/detail filters for entities="quake" in .game 2018-02-01 13:34:58 +03:00
Garux f9157a6993 * point entities are understood as miscmodels, if <model attribute is present in xml .ent definition
* <model key= is not hardcoded to 'model' anymore, can use 'mdl'(q1) or w/e
2018-01-31 23:14:30 +03:00
Garux 387c4c0846 * prefs->game->paths: +Extra Resource Path option 2018-01-30 16:02:07 +03:00
Garux d747bd6111 * move path settings to separate preferences group to simplify finding one 2018-01-28 18:08:57 +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 fc7c69df97 * transform manipulator: draw arrowheads, while some line is selected for skew 2018-01-19 20:56:31 +03:00
Garux 31c1b27853 * transform manipulator: add scale transformation; bbox resizing style 2018-01-18 23:40:47 +03:00
Garux ad0f9ea6cc make m_bFaceFill aka "Colorize selection" saveable 2018-01-17 08:58:54 +03:00
Garux 78db33ff4a * fix crash, if renaming tag w/o shaders assigned 2018-01-16 14:40:16 +03:00
Garux 98937beb75 * transform manipulator: also perform translation, if grabbed bbox 2018-01-11 21:01:40 +03:00
Garux d3b1bfaefa * restyle manipulators icons in GtkRadiant 1.5 way 2018-01-11 15:20:55 +03:00
Garux 14ee12354d * new manipulator, applying skew transform 2018-01-11 14:20:05 +03:00
Garux fadace9d69 more clear preference name to expose its effect better 2018-01-05 14:41:02 +03:00
Garux fd04e52a06 * disable MSAA in Texture Browser, even if forced via driver 2017-12-20 15:57:44 +03:00
Garux 55a36d5543 * fix: consider rotation value for Valve220 arbitrary projections 2017-12-19 16:11:17 +03:00
Garux 5c0859be8d * increase precision of camera mouse sensitivity setting from int to float to make it adapted for new hardware/software
* change mouse sensitivity handling by factor of 3 (old default 3 == new default 9)
2017-12-16 10:28:38 +03:00
Garux aeaeb2a3e6 * statusbar: del "R:" info (rotate increment from SI)
+current map format info (F:AP/BP/220)
		+explanatory tooltip, describing shown infos
2017-12-15 15:58:52 +03:00
Garux fd7429d45f * change default Map Info window position to centered 2017-12-15 13:47:01 +03:00
Garux 2417ac196c * fix: reread values from SI on FitTexture command 2017-12-15 03:59:10 +03:00
Garux b4d81fac21 * close Map Info dialog by ESC 2017-12-15 03:24:42 +03:00
Garux 9f1690ed64 * fix unwanted brush face texture transformations on brush resizing with texture lock on 2017-12-11 16:53:01 +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 4b5390e6cf remove sleep code and all references 2017-11-11 12:22:30 +03:00
Garux 4511d1b5b1 * deselect components on HideSelected(): could be texturized or edited implicitly 2017-11-11 11:58:33 +03:00
Garux 3426be50bf * fix: reset hide button on Map_Free() 2017-11-11 11:52:08 +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 618d31bc96 * fix: don't exclude worldspawn node on region() functions, so newly created brushes are visible afterwards
* fix: region() functions work for entities, having model, which is instantiated multiple times in a scene
	* warn on Map_RegionBrush with none selected
	* fix: 'region set brush' is deleting ultimateselected only (is using one to get bounds)
	* deselect components on any region() function: could be texturized or edited implicitly
	* allow 'region set selection' in components mode
	* Map_RegionXY: deselect anything (could leave stuff selected + invisible)
2017-11-05 22:58:59 +03:00
Garux bd28ec81f7 * View->Show->Entity Connections option 2017-10-27 23:32:29 +03:00
Garux 9b2109a5ee * don't save .map and snapshots during .reg (region) compilations 2017-10-27 10:48:13 +03:00
Garux 3d3592c1f0 * preferences->Camera->Colorize selection option (filling highlighting), def=on
* fix: selected faces wire color is updated immediately on colour theme change
2017-10-27 10:47:15 +03:00
Garux 5761c6006b GtkSpinButtons are numeric only in SI, arbitrary rotation dialog, preferences
SI: fit: fewer trailing zeros
SI: rotate: page_increment = 45 (activatable by scroll click on arrows; RMB = min/max)
2017-10-19 21:51:22 +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 2adf7f8a4f improve textureProjectionSetSelected -rotation output in BP mode 2017-10-19 10:15:59 +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 4ecd635bfc * increased Patch::Calculate_AvgNormal() robustness; affects Patch::CapTexture() & Patch::ProjectTexture() 2017-10-18 15:02:55 +03:00
Garux 097c1e8fc5 * Valve220: fix patch.CapTexture (patch had invalid control points: define basis)
* Curve->Simple patch mesh: CapTexture() instead of NaturalTexture() for convinience
2017-10-02 20:44:36 +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 65e6d4a560 del douplicated code in seamless texturing->line 2017-09-17 11:52:23 +03:00
Garux 0b3f42ffbc * "BrushAlwaysCaulk" option is saveable for brush types other than q3
* brush format is preference for [maptypes, brushtypes]: [mapq1, quake], [mapq2, quake2], [mapq3, quake3]:
		preferences->Brush->Brush type: Axial projection, Brush primitives, Valve 220
	* autodetect brush type on map opening
	* brush face surfaceflags are optional on loading for flexibility
	* 'Snap planes to integer grid' option is always off by default
2017-09-16 16:37:39 +03:00
Garux 4e4b8e1407 * texbro->search entry: ESC = clear
* entity list+: search entry with start/any position modes:
		mouse wheel, uparrow/downarrow = scroll through search results
		ESC = clear
		mwheel in empty entry = scroll through selected/child selected entities
	* entity list: expand map's root node on dialog display for convenience
2017-09-03 22:48:46 +03:00
Garux 20e9bc9dfe * shortcuts list: search in the middle of strings too 2017-08-26 18:49:03 +03:00
Garux caf093f827 * "Entity Names = Targetnames" option:
also affects Entity List
		moved from View->Show menu to prefs->display->entities
		prompt about restart on change
2017-08-20 16:42:18 +03:00
Garux 56997e1c66 * brush resize, face shear: select single face with angle, closest to view direction (or multiple ones with equal angles) 2017-08-12 18:40:50 +03:00
Garux 93be572ca3 * filterbar: removed barely used areaportal button, moved 'apply nodraw/nodrawnonsolid' functions to translucent button 2017-08-08 20:45:21 +03:00
Garux 31cef208e0 Radiant:
misc...
	* draggable renderable transform origin for translate, rotate & scale manipulators
		click w/o move = reset
		move is constraintable to axis with shift pressed
	* highlight manipulators' renderables on mouse hover
	* mouse_moved_epsilon system (0.5% of viewport size) for m1, tunnel selectors, manipulators (except freelook) to make them more fail-safe
2017-08-02 16:26:21 +03:00
Garux a28b531d84 Radiant:
misc...
	* entity inspector, entity list->'autofocus on selection' buttons: also do FocusAllViews() on clicking them
	* focus on preferences treeview on 2nd+ call to make text search to work
	* fixed WindowPositionTracker globally: minus many particular hacks, plus correct wnds positioning in Floating viewports layout
	* fixed ToggleShown functionality: shown/hidden wnds states are saved and loaded correctly in Floating viewports layout
	* also save/load XY and Cam viewports visibility states
	* new preferences->layout icons
	* fix: stop chaseMouseMotion on mouse button release
2017-08-02 09:54:33 +03:00
Garux 3f1c97ebeb Radiant:
misc...
	* selection system: fixes of: selecting point behind point (not perfectly precise distance)
					selecting occluded objects and faces via direct and indirect hits
	* select models from back in 2d
2017-08-02 09:53:56 +03:00
Garux 6eee961fcc Radiant:
binds...
	* shift + m3: apply texture name and alignment to selected primitives and faces (m3 was inconsistent + often required quite deep planning)
	* ctrl + shift + m3: also project tex from face to selection

misc...
	* lazy cursor updates in clipper mode
	* update cursor immediately on clipper mode toggles
	* fixes and optimizations of entity names rendering; for instance: don't prerender textures for unneeded names

	FBO overlay fixes
2017-08-02 09:53:07 +03:00
Garux e14027e117 Radiant:
misc...
	* render scene to FBO to get following options:
		preferences->camera->MSAA (def = 8 samples)
		preferences->orthographic->MSAA (def = 8 samples)
		coloured camera POV icon w/o rerendering the scene
		coloured rectangular selector box w/o rerendering the scene
	* fallback to glCopyTexImage2D (NPoT), if FBO isn't available
2017-08-02 09:52:30 +03:00
Garux 2e3529798d Radiant:
misc...
	* prefs->cam->Selected faces wireframe option (def = yes)
	* Textured+Wireframe camera render mode
2017-08-02 09:51:41 +03:00
Garux 6a85a08c18 Radiant:
misc...
	* entities converting: also create group entities from world primitives instead of "do not want to convert worldspawn entity" error
	* fix: group dialog: prevent focusing on texbro->filter entry and console, if switching to ones by click on tabs (was blocking hotkeys)
2017-08-02 09:51:08 +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 0139fa9de6 Radiant:
binds...
	* doubleClick/Enter in Entity inspector Class list = convert entities
	* ctrl during creating brush = cube brush

misc...
	* on worldspawn entity create/convert to one do most expected move-selected-primitives-to-worldspawn
	* convert point entity to group one = placeholder brush at origin + remove origin key
	* convert group entity to point one: set origin key to contained primitives center
	* fix uniform rotation operations for eclassmodel, miscmodel entities
	* scale miscmodel entities uniformly
	* added func_detail to world and detail filters
	* region->set_xy: using active projection, not just xy one; is subtractive (no region off before applying)
	* new brush prefab: icosahedron
	* refactored CSGTool, improved Hollow::diagonal algorithm stability

	improved view_cubiclipping.png
2017-08-02 09:44:13 +03:00
Garux 335dcb2fa8 Radiant:
misc...
	* restrict unwanted angle(s) keys commits on moving generic, eclassmodel, miscmodel entities
	* reverted angle(s), origin, scale entity keys save format from %f to %g
	* fix uniform rotation operations for generic entities with angles key
	* use more precise meth for rotating point entities with only angle rotated
	* snap tiny inaccuracies in angle(s) and origin point entities keys
	* workaround: don't discard empty group ents, having origin key
	* entity class convertion: prevent converting worldspawn; prevent converting point entity to empty group
2017-08-02 09:43:35 +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
Garux 7bb36b774c Radiant:
menus...
	* view->show->Entity boxes (always show bbox for ents with model)
misc...
	FBO support
	* preferences->display->entities->Names Display Ratio (2D): hide names, if view_size/bbox_size > value; def = 64
2017-08-02 09:41:22 +03:00
Garux 8ca384165b Radiant:
misc...
	* fix name case sensitivity in shaders (non plain textures) loading during map/model loading
	* all patch prefabs are created aligned to active projection
2017-08-02 09:40:29 +03:00
Garux 697d2714d6 Radiant:
binds...
	* ctrl + e: ExpandSelectionToPrimitives (select group entities w/o parent node)
	* ctrl + m3 texture painting by drag
misc...
	* fix: QNAN texture projection after scaling cuboid on Z axis (brush primitives + texture lock)
	* preferences->display->entities->Names Display Distance (in cam) def = 512u
	* always show selected/childSelected entity names (unselected is optional)
	* fix: mouse texture grab/paint commands ignore filtered faces (caulk filter)
2017-08-02 09:39:45 +03:00