Commit Graph

61 Commits (42c7fc8e921272d18830054fd217e6188b81a110)

Author SHA1 Message Date
Alexei Kotov 754c5a8e2a Restore animated collision shape rescaling 1 year ago
Alexei Kotov c7d5ea9fbf Improve BulletNifLoader handling of extra data
Only handle extra data for the root node(s)
Properly handle MRK flag editor marker filtering
Fix BSXFlags test
1 year ago
Alexei Kotov 2c1db92d04 Don't use Bounding Box node bounds as the original collision shape
Bounding Box node bounds are not used for non-actor collision in Morrowind and the generated box isn't actually used for actor collision in OpenMW
Preserving btBoxShape cloning code because it might get used in the future
1 year ago
Alexei Kotov 9405e5cb3c BulletNifLoader: Replicate node bounds handling more closely 1 year ago
Alexei Kotov 8db631c6b6 Update BSXFlags test 1 year ago
Alexei Kotov eb8242946a Improve node record consistency with NifTools 1 year ago
Alexei Kotov bff9231c3b Refactor NiGeometry/BSTriShape
Don't pass invalid geometry data links to the loaders
1 year ago
Alexei Kotov deb051639e Refactor NiBoundingVolume 1 year ago
Alexei Kotov 0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 1 year ago
Alexei Kotov a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
1 year ago
Alexei Kotov 6872c7144e Rename Transformation->NiTransform and update everything directly related 1 year ago
Alexei Kotov ef896faa90 Rename Named->NiObjectNET and update everything directly related to it
BulletNifLoader: properly check if the node has animation controllers
Flatten extra data linked list
1 year ago
Alexei Kotov 89774716fb Modernize NiGeometryData 1 year ago
Alexei Kotov cfd37dbcc6 Modernize NiTriShapeData 1 year ago
Alexei Kotov eba0ab444b Modernize NiTriStripsData 1 year ago
Alexei Kotov 2edf3399e2 Modernize extra data records 1 year ago
psi29a c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
1 year ago
alekulyn d2896945e8 Load SSE alchemy table 1 year ago
Alexei Dobrohotov 2de8c6b3c0 Don't discard collision for the entire tree if BSXFlags marker flag is set 2 years ago
Petr Mikheev bf49855d9f Test handling of BSXFlags in bulletnifloader 2 years ago
elsid f8cc929f9a
Use approximate equality for btBvhTriangleMeshShape triangles 2 years ago
Alexei Dobrohotov 562461a659 Unify collision shape transformations 2 years ago
Alexei Dobrohotov 2277bdc1ae Improve btTriangleMesh abuse (bug #6027, part 2) 2 years ago
Alexei Kotov 7fd9b27b54 Don't combine static node collision geometry (bug #6027) 2 years ago
elsid 83bb2195b0
Move init functions for Nif nodes to a separate file
This will be used in other tests.
2 years ago
elsid f2fb3d6de8
Separate NIFFileReader from NIFFile
NIFFile might not always be created from a file or stream containing NIF data.
Basically there are 2 different responsibilities for this class:
1. Read NIF file
2. Provide input for nifosg and bulletnifloader.

Remove no longer needed NIFFileMock since the state of NIFFfile can be
initialized independently from reading NIF file.
2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
elsid 948e2f5db9
Do not use collision shapes with visual only collision to generate navmesh
These collision shapes are not used for actors movement physics simulation.
2 years ago
Andrei Kortunov c36c28e8f9 Move NIF implementation to cpp files 2 years ago
Petr Mikheev 8b8c304953 Treat empty `RootCollisionNode` in NIF as NCC flag and generate CameraOnly collision shape 3 years ago
Alexei Kotov e673f9fa76 Clean up NIF flags 3 years ago
fredzio d05a2facf3 Handle NCC flag in Nif files. Objects with this flag will collide only with camera.
Expose objects with NC flag to be used by Lua mods.
3 years ago
elsid 3f14011087
Support multiple parents for NIF nodes
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.

For example:
p1 p2
 \ /
  c

Will be handled as:
p1 p2
|  |
c  c

If c has children they will be handled X times c is handled.
3 years ago
elsid a665a38aca
Use MurmurHash3_x64_128 for file hash 3 years ago
elsid d7041613ef
Store BulletShape source file name and content hash 3 years ago
elsid 2b057f5c15
Expect nif node children to have parent 3 years ago
elsid 4e8e8304aa
Avoid mesh allocation when data is invalid 3 years ago
elsid 4631d95739
Add more tests for BulletNifLoader 3 years ago
elsid b905dd17c3
Use unique_ptr to store btCollisionShape in BulletShape 3 years ago
elsid 29a772c33f
Rename Resource::BulletShape::CollisionBox fields according to styleguide 3 years ago
Alexei Dobrohotov 8db2ba2b38
Merge pull request #3032 from akortunov/gtest
Mark mock methods as overrides (requires GTest 1.10)
4 years ago
Alexei Dobrohotov 8fd45d85ec Unify NiGeometry/NiGeometryData handling 4 years ago
Alexei Dobrohotov 15291f15d3 Make actor collision box components a struct 4 years ago
Andrei Kortunov 807367ca3f Mark mock methods as overrides (requires GTest 1.10) 4 years ago
Alexei Dobrohotov df9667e923 Read NIF bounding volume data correctly 4 years ago
Alexei Dobrohotov 29ccb09da5 Introduce some extended NIF definitions 4 years ago
Bret Curtis c69c7d0b3b
Merge pull request #2049 from elsid/bullet_double_precision
Support bullet double precision
5 years ago
Capostrophic 30558c2434 Try to resolve CI concerns 5 years ago
elsid 2d7c3bae61
Support bullet with double precision 5 years ago