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
6b8b568fd2
C++11 candy
2018-12-08 16:44:08 +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
Neon_Knight
e378a87134
It fixes compilation errors in some systems.
2018-11-14 20:59:37 -03:00
Zack Middleton
9aa9620d4d
Fix over allocating vertexes for OBJ models with multiple surfaces
...
Loading Wavefront OBJ models in picomodel (used by radiant and q3map2)
did not reset the surface vertex index when starting a new surface. This
caused there to be unused vertexes, equal to the number of vertexes in
all previous surfaces, at the beginning of each surface. Exponential OBJ
vertex memory usage as number of surfaces increases. It did not affect
displaying or processing the surface faces.
2018-10-30 20:27:44 -05:00
Garux
736f89026f
use convhull_3d for quicker hull calculation
2018-10-22 18:36:38 +03:00
Garux
1191f54ef4
add https://github.com/leomccormack/convhull_3d/blob/master/convhull_3d.h
2018-10-22 18:33:40 +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
502cc59eee
fix 64bit compilation
2018-10-07 04:54:32 +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
f99cf57f27
fix some strncpy use
2018-09-29 21:34:03 +03:00
Garux
86904473bb
* picomodel: do some guessings about shader paths to handle more cases out of the box; ones are based on material and diffuse map names:
...
name w/o path: assume textures are in the folder, where model file is
absolute path or with ..: try to cut at "/models/" or "/textures/" (as if leading to game folders); do previous case, if not
strip extensions and turn slashes to forward ones anytime
* picomodel::obj: fix diffuse map paths loading from .mtl
2018-09-29 14:39:10 +03:00
Garux
cdd1676a59
minus inclusion, a bit of correctness in FBO_fallback
2018-08-29 00:12:00 +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
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
5c48131eba
* rectangular selector gestures, enabling select, deselect and toggle behaviors
2018-07-23 16:25:32 +03:00
Garux
bbc691a07b
* more robust open/save/import dialog path handling (could crash by opening file w/o extension or with illegal one)
...
likely fix for extensions in uppercase in OSes with case dependent FSes
2018-07-21 22:12:51 +03:00
Garux
a13ad776b4
* fix group entities name position with origin key used
2018-07-21 22:05:31 +03:00
Garux
9643c53990
* picomodel: fix parser->curLine for line number report (was increased twice)
2018-07-18 22:01:08 +03:00
Garux
b12ecc838b
picomodel: white default color of fm, md2 (was one white and rest black)
...
unified picoColor_white
2018-07-18 14:53:15 +03:00
Garux
47ef9a6ae2
* picomodel::obj: fix black default vertex color, also use one from .mtl
2018-07-14 20:52:17 +03:00
Garux
f83dc2e891
* use external textures mipmaps generation, draw NPoT textures correctly
2018-07-10 00:54:35 +03:00
Garux
6f8a0668a3
add and use VolumeTest/View.getViewDir()
2018-05-18 01:55:20 +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
813cd70fd3
add vector3_max_abs_component_index, vector3_min_abs_component_index functions
2018-05-14 22:35:31 +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
48d75b777d
* brush creation in camera; alt = modify height
2018-04-06 12:26:06 +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
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
a02c1312c4
try to increase precision of matrix transform vector operations
2018-03-08 16:57:47 +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
74e101c7ba
* fix and improve light power adjusting by mouse drag
2018-03-01 17:02:17 +03:00
Garux
eae7ac024a
clean namedentity, forward declarations, ostream_write
2018-02-22 18:56:53 +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
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
78db33ff4a
* fix crash, if renaming tag w/o shaders assigned
2018-01-16 14:40:16 +03:00
Garux
14ee12354d
* new manipulator, applying skew transform
2018-01-11 14:20:05 +03:00
Garux
e7b4a4fad2
add class Matrix4 commentary
2017-11-27 14:05:09 +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
0dfdf77c18
rename 'supported formats' in open to 'all supported formats'
2017-10-02 18:37:40 +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
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