Commit Graph

3287 Commits

Author SHA1 Message Date
Jonathan 1c6b2e5a95 fix duplicate plane test 2022-08-08 21:27:42 -04:00
Jonathan 426668701e clip_back/clip_front to match ChopWindingInPlace
simplify constructors for winding heap
use std::vector again for mapentity_t since it's being copied because of the std::list
2022-08-08 21:08:27 -04:00
Jonathan 8b7a1c21c9 use vector instead of raw heap for winding_storage_heap_t 2022-08-08 20:09:41 -04:00
Jonathan 5b56ecfb28 remove extraneous warnings when they don't matter 2022-08-08 16:01:16 -04:00
Jonathan e5602358c1 Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel 2022-08-08 15:50:31 -04:00
Jonathan b3fbf8841d allow update_bounds to tell the caller that a brush may have been destroyed 2022-08-08 15:50:23 -04:00
Eric Wasylishen 9cb0d9b52c testqbsp: add test for the previously missing face in base1 2022-08-08 00:16:09 -06:00
Jonathan 712dd24cff Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel 2022-08-08 01:30:04 -04:00
Jonathan a9b1fa2461 speed up SplitBrush a tiny bit by reserving side count 2022-08-08 01:29:56 -04:00
Eric Wasylishen 29e7d5117c cmake: override BUILD_WITH_PEDANTIC_WARNINGS so pareto doesn't force /WX on debug builds 2022-08-07 23:28:01 -06:00
Jonathan 2abdeb2616 remove Face_Plane since we can directly access the real plane now
speed up CreateBrushWindings slightly since we know where the inverted plane is stored
2022-08-08 01:06:50 -04:00
Jonathan d2cfc0d025 use planenum in SplitBrush and friends 2022-08-08 01:01:49 -04:00
Jonathan f490878e97 remove old plane lock stuff
use spatial hash for planes
2022-08-08 00:58:56 -04:00
Jonathan 6787e60e14 Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel
# Conflicts:
#	include/qbsp/map.hh
2022-08-08 00:40:09 -04:00
Jonathan f5ef0f90f4 spatial hash using pareto for vertex positions 2022-08-08 00:39:53 -04:00
Eric Wasylishen 3ca9d23f1c qbsp: rewrite plane_hash to fix test failure on macOS 2022-08-07 21:19:31 -06:00
Jonathan d9a3abfba7 remove blocksize now that midplane is working
don't re-fetch plane being exported since we know its id already
2022-08-07 21:48:22 -04:00
Jonathan f64dc82ce2 Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel 2022-08-07 19:39:35 -04:00
Jonathan 7593834e06 fix map.planes being stomped on export 2022-08-07 19:39:29 -04:00
Jonathan eb355c1d21 adjust errors
remove unnecessary line in debug code
2022-08-07 19:12:37 -04:00
Eric Wasylishen 12abfb93cf qbsp: add fmt formatters for aabb_t, plane_type_t, qplane3, qbsp_plane_t 2022-08-07 16:58:52 -06:00
Eric Wasylishen 0357db911c qbsp: remove unnecessary copy in SplitBrushList 2022-08-07 15:42:43 -06:00
Eric Wasylishen cf653b5b56 qbsp: MakeNodePortal: don't crash if w is empty
for consistency with qbsp3
2022-08-07 01:42:09 -06:00
Jonathan 4ec30e02a2 remove "brushes" from mapentity_t - it is now local to the ProcessEntity process
"node_t::original_brushes" is now only used during construction and cleared on Prune; original_mapbrushes is used to track the map brushes on nodes post-construction
calculate and cache contents on mapbrush_t
2022-08-06 19:28:17 -04:00
Jonathan 4c15e6f717 don't bother displaying "processing hull" for q2 2022-08-06 17:42:38 -04:00
Jonathan 335db1c0e4 move map_source_location to parser as parser_source_location since the locations actually come from there rather than from the map; now the parser keeps track of the location, so it's a bit easier to follow 2022-08-05 23:17:15 -04:00
Jonathan c6fabb290d clean up stat printing a bit 2022-08-05 09:08:33 -04:00
Jonathan 33a23a99c2 Revert "tests: update aabb_contains to account for new behaviour"
This reverts commit ef613a69a9.
2022-08-05 07:01:20 -04:00
Jonathan c611153b78 Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel 2022-08-05 06:59:45 -04:00
Jonathan a1faa97f3f fix aabb::contains 2022-08-05 06:58:29 -04:00
Eric Wasylishen c1e52b0d62 qbsp: fix FindPortalSide generating unwanted mirrored inside faces
due to the `// see how close the match is` block being uncommented
2022-08-05 01:45:42 -06:00
Eric Wasylishen 84cbd48777 test_qbsp: use "-tjunc rotate" on a face count sensitive test 2022-08-04 21:38:12 -06:00
Eric Wasylishen ef613a69a9 tests: update aabb_contains to account for new behaviour 2022-08-04 21:34:11 -06:00
Jonathan 2a90995c6f remove const on external_worldspawn so it can be moved 2022-08-04 15:39:57 -04:00
Jonathan 627428756c track a shared pointer for `map_source_location` instead of memory pointer, so that we can allocate it as we go
use it for brushes and faces
2022-08-04 15:37:37 -04:00
Jonathan 9af74ce083 store linenum on mapbrush_t; add new location type, but not using it yet, for later so we can track more complex locations (external/-add maps, etc)
add extra sanity checking to polylib
adjust some warnings to be clearer and not indicate that the world will break
add sanity check to update_bounds, and don't add empty windings to the bounds
2022-08-04 12:05:04 -04:00
Jonathan 8d5f837197 fix new degenerate edge warnings 2022-08-03 20:29:33 -04:00
Jonathan 61f5088347 use closer to original code check (doesn't really matter since plane sidedness just inverts the distance, and it's being fabs'd anyways) 2022-08-03 20:20:46 -04:00
Jonathan c9eab719bc remove old code
add visible on mapface_t although it's unused
2022-08-03 13:26:04 -04:00
Jonathan ec62a0e8d0 move in the rest of the missing code back into LoadBrush
fix bug with c_brushesremoved brushes
move & CreateBrushWindings use where required
store the source face we made a bspbrush_t side from
fix test issue
2022-08-03 12:35:47 -04:00
Jonathan 5da88122a5 fix size_t misuse 2022-08-03 05:14:21 -04:00
Jonathan 98610982c9 export the final dbrush_t right in ExportBrushList_r instead of doing it ahead of time 2022-08-03 05:09:39 -04:00
Jonathan 58d1e5230e remove hullbrush_t; just directly work via the bspbrush_t since we have the bevels pre-calculated in mapbrush_t
track the mapbrush we were created from in bspbrush_t; we use this later for outputting the collision brush for q2bsp. bevels are busted though..
2022-08-03 04:47:50 -04:00
Jonathan 24168c8e40 clang pass 2022-08-02 21:57:33 -04:00
Jonathan 5f35575c02 remove map.faces and map.brushes; now, brushes are stored inline in mapentity_t, and faces are stored inline in mapbrush_t
calculate brush bounds (and winding) and add bevels after all of the rest of the map has loaded, so that it has proper world extents
calculate world extents right after the map is loaded
2022-08-02 20:59:08 -04:00
Jonathan 9ca28dff61 bevel 2022-08-02 19:48:17 -04:00
Jonathan e14c2772a6 add ability for winding storages to reserve memory (for clip mainly, so it doesn't need to allocate on each addition; we know the winding will have at least the input number of points) 2022-08-02 18:10:20 -04:00
Jonathan 4c6d952841 plane hashing 2022-08-02 17:44:14 -04:00
Jonathan a75f4239e3 node_t planenum 2022-08-02 16:04:48 -04:00
Jonathan 46a643c3f0 face_t using planenum 2022-08-02 15:45:06 -04:00