mirror of
https://github.com/OpenMW/openmw.git
synced 2025-10-15 23:16:39 +00:00
Read bhkMeshShape
This commit is contained in:
parent
a722518b4b
commit
e22654baa7
4 changed files with 32 additions and 0 deletions
|
@ -423,6 +423,7 @@ namespace Nif
|
||||||
{ "bhkConvexVerticesShape", &construct<bhkConvexVerticesShape, RC_bhkConvexVerticesShape> },
|
{ "bhkConvexVerticesShape", &construct<bhkConvexVerticesShape, RC_bhkConvexVerticesShape> },
|
||||||
{ "bhkListShape", &construct<bhkListShape, RC_bhkListShape> },
|
{ "bhkListShape", &construct<bhkListShape, RC_bhkListShape> },
|
||||||
{ "bhkMoppBvTreeShape", &construct<bhkMoppBvTreeShape, RC_bhkMoppBvTreeShape> },
|
{ "bhkMoppBvTreeShape", &construct<bhkMoppBvTreeShape, RC_bhkMoppBvTreeShape> },
|
||||||
|
{ "bhkMeshShape", &construct<bhkMeshShape, RC_bhkMeshShape> },
|
||||||
{ "bhkMultiSphereShape", &construct<bhkMultiSphereShape, RC_bhkMultiSphereShape> },
|
{ "bhkMultiSphereShape", &construct<bhkMultiSphereShape, RC_bhkMultiSphereShape> },
|
||||||
{ "bhkNiTriStripsShape", &construct<bhkNiTriStripsShape, RC_bhkNiTriStripsShape> },
|
{ "bhkNiTriStripsShape", &construct<bhkNiTriStripsShape, RC_bhkNiTriStripsShape> },
|
||||||
{ "bhkPackedNiTriStripsShape", &construct<bhkPackedNiTriStripsShape, RC_bhkPackedNiTriStripsShape> },
|
{ "bhkPackedNiTriStripsShape", &construct<bhkPackedNiTriStripsShape, RC_bhkPackedNiTriStripsShape> },
|
||||||
|
|
|
@ -731,6 +731,24 @@ namespace Nif
|
||||||
nif->read(mCenter);
|
nif->read(mCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bhkMeshShape::read(NIFStream* nif)
|
||||||
|
{
|
||||||
|
nif->skip(8); // Unknown
|
||||||
|
nif->read(mRadius);
|
||||||
|
nif->skip(8); // Unknown
|
||||||
|
nif->read(mScale);
|
||||||
|
mShapeProperties.resize(nif->get<uint32_t>());
|
||||||
|
for (bhkWorldObjCInfoProperty& property : mShapeProperties)
|
||||||
|
property.read(nif);
|
||||||
|
nif->skip(12); // Unknown
|
||||||
|
readRecordList(nif, mDataList);
|
||||||
|
}
|
||||||
|
|
||||||
|
void bhkMeshShape::post(Reader& nif)
|
||||||
|
{
|
||||||
|
postRecordList(nif, mDataList);
|
||||||
|
}
|
||||||
|
|
||||||
void bhkMultiSphereShape::read(NIFStream* nif)
|
void bhkMultiSphereShape::read(NIFStream* nif)
|
||||||
{
|
{
|
||||||
bhkSphereRepShape::read(nif);
|
bhkSphereRepShape::read(nif);
|
||||||
|
|
|
@ -695,6 +695,18 @@ namespace Nif
|
||||||
void read(NIFStream* nif) override;
|
void read(NIFStream* nif) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// A shape based on triangle strips
|
||||||
|
struct bhkMeshShape : bhkShape
|
||||||
|
{
|
||||||
|
float mRadius;
|
||||||
|
osg::Vec4f mScale;
|
||||||
|
std::vector<bhkWorldObjCInfoProperty> mShapeProperties;
|
||||||
|
NiTriStripsDataList mDataList;
|
||||||
|
|
||||||
|
void read(NIFStream* nif) override;
|
||||||
|
void post(Reader& nif) override;
|
||||||
|
};
|
||||||
|
|
||||||
// A sphere
|
// A sphere
|
||||||
using bhkSphereShape = bhkConvexShape;
|
using bhkSphereShape = bhkConvexShape;
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ namespace Nif
|
||||||
RC_bhkLimitedHingeConstraint,
|
RC_bhkLimitedHingeConstraint,
|
||||||
RC_bhkListShape,
|
RC_bhkListShape,
|
||||||
RC_bhkMalleableConstraint,
|
RC_bhkMalleableConstraint,
|
||||||
|
RC_bhkMeshShape,
|
||||||
RC_bhkMoppBvTreeShape,
|
RC_bhkMoppBvTreeShape,
|
||||||
RC_bhkMultiSphereShape,
|
RC_bhkMultiSphereShape,
|
||||||
RC_bhkNiTriStripsShape,
|
RC_bhkNiTriStripsShape,
|
||||||
|
|
Loading…
Reference in a new issue