From 34c55258a9645984cd317c24d1273d8ce4e5c4e8 Mon Sep 17 00:00:00 2001 From: Shon Ferguson <shonferg@users.sourceforge.net> Date: Sat, 17 Jun 2006 05:45:19 +0000 Subject: [PATCH] Updates to the SWIG wrapper. Implemented a missing Matrix44 function. Updated ByteArray files to current generated versions. --- gen/ByteArray.cpp | 2 +- gen/ByteArray.h | 4 - gen/obj_defines.h | 12 ++ nif_math.cpp | 12 ++ nif_math.h | 2 - niflib.sln | 1 + pyniflib.i | 283 +++++++++++----------------------------------- 7 files changed, 93 insertions(+), 223 deletions(-) diff --git a/gen/ByteArray.cpp b/gen/ByteArray.cpp index 4c40b477..8b1dc522 100644 --- a/gen/ByteArray.cpp +++ b/gen/ByteArray.cpp @@ -4,7 +4,7 @@ All rights reserved. Please see niflib.h for licence. */ #include "ByteArray.h" //Constructor -ByteArray::ByteArray() : dataSize((uint)0), unknownInt((uint)0) {}; +ByteArray::ByteArray() : dataSize((uint)0) {}; //Destructor ByteArray::~ByteArray() {}; diff --git a/gen/ByteArray.h b/gen/ByteArray.h index 535151c2..173ec692 100644 --- a/gen/ByteArray.h +++ b/gen/ByteArray.h @@ -19,10 +19,6 @@ struct NIFLIB_API ByteArray { * The number of bytes in this array */ uint dataSize; - /*! - * Unknown. - */ - uint unknownInt; /*! * The bytes which make up the array */ diff --git a/gen/obj_defines.h b/gen/obj_defines.h index 6340516b..7572b1f3 100644 --- a/gen/obj_defines.h +++ b/gen/obj_defines.h @@ -5475,6 +5475,9 @@ if ( version <= 0x0A010000 ) { \ link_stack.push_back( block_num ); \ NifStream( textKeys.unknownShort0, in, version ); \ }; \ + if ( ( version >= 0x0A01006A ) && ( user_version == 10 ) ) { \ + NifStream( textKeys.priority_, in, version ); \ + }; \ if ( ( version >= 0x0A01006A ) && ( user_version == 11 ) ) { \ NifStream( textKeys.priority_, in, version ); \ }; \ @@ -5533,6 +5536,9 @@ for (uint i0 = 0; i0 < controlledBlocks.size(); i0++) { \ link_stack.push_back( block_num ); \ NifStream( controlledBlocks[i0].unknownShort0, in, version ); \ }; \ + if ( ( version >= 0x0A01006A ) && ( user_version == 10 ) ) { \ + NifStream( controlledBlocks[i0].priority_, in, version ); \ + }; \ if ( ( version >= 0x0A01006A ) && ( user_version == 11 ) ) { \ NifStream( controlledBlocks[i0].priority_, in, version ); \ }; \ @@ -5625,6 +5631,9 @@ if ( version <= 0x0A010000 ) { \ NifStream( 0xffffffff, out, version ); \ NifStream( textKeys.unknownShort0, out, version ); \ }; \ + if ( ( version >= 0x0A01006A ) && ( user_version == 10 ) ) { \ + NifStream( textKeys.priority_, out, version ); \ + }; \ if ( ( version >= 0x0A01006A ) && ( user_version == 11 ) ) { \ NifStream( textKeys.priority_, out, version ); \ }; \ @@ -5690,6 +5699,9 @@ for (uint i0 = 0; i0 < controlledBlocks.size(); i0++) { \ NifStream( 0xffffffff, out, version ); \ NifStream( controlledBlocks[i0].unknownShort0, out, version ); \ }; \ + if ( ( version >= 0x0A01006A ) && ( user_version == 10 ) ) { \ + NifStream( controlledBlocks[i0].priority_, out, version ); \ + }; \ if ( ( version >= 0x0A01006A ) && ( user_version == 11 ) ) { \ NifStream( controlledBlocks[i0].priority_, out, version ); \ }; \ diff --git a/nif_math.cpp b/nif_math.cpp index a348a7fd..877a9c82 100644 --- a/nif_math.cpp +++ b/nif_math.cpp @@ -291,6 +291,18 @@ Matrix44 & Matrix44::operator*=( float rh ) { return *this; } +Vector3 Matrix44::operator*( const Vector3 & rh ) const { + const Matrix44 & t = *this; + Vector3 v; + //Multiply, ignoring w + v.x = rh.x * t[0][0] + rh.y * t[1][0] + rh.z * t[2][0] + t[3][0]; + v.y = rh.x * t[0][1] + rh.y * t[1][1] + rh.z * t[2][1] + t[3][1]; + v.z = rh.x * t[0][2] + rh.y * t[1][2] + rh.z * t[2][2] + t[3][2]; + //answer[3] = rh[0] * t(0,3) + rh[1] * t(1,3) + rh[2] * t(2,3) + t(3,3); + + return v; +} + Matrix44 Matrix44::operator+( const Matrix44 & rh ) const { return Matrix44(*this) += rh; } diff --git a/nif_math.h b/nif_math.h index e60efedd..890ffced 100644 --- a/nif_math.h +++ b/nif_math.h @@ -337,8 +337,6 @@ struct Matrix22 { rows[1][0] = m21; rows[1][1] = m22; } - NIFLIB_API Quaternion AsQuaternion(); - //Python Operator Overloads NIFLIB_API Float2 & __getitem__(int n) { if (n > 1 || n < 0) diff --git a/niflib.sln b/niflib.sln index b44f9201..903cdf85 100644 --- a/niflib.sln +++ b/niflib.sln @@ -26,6 +26,7 @@ Global {7517F24D-B1A1-427C-B952-F5DD5DDAD7A7}.PyNiflib|Win32.Build.0 = PyNiflib|Win32 {7517F24D-B1A1-427C-B952-F5DD5DDAD7A7}.Release - DLL|Win32.ActiveCfg = Release - DLL|Win32 {7517F24D-B1A1-427C-B952-F5DD5DDAD7A7}.Release|Win32.ActiveCfg = Release|Win32 + {7517F24D-B1A1-427C-B952-F5DD5DDAD7A7}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/pyniflib.i b/pyniflib.i index abafeb4b..e6d77727 100644 --- a/pyniflib.i +++ b/pyniflib.i @@ -71,221 +71,10 @@ POSSIBILITY OF SUCH DAMAGE. */ %ignore DynamicCast( const NiObject * object ); %ignore StaticCast (const NiObject * object); -//Do not wrap base classes as their methods are accessed through Ref smart pointers -%ignore NiObject; -%ignore AKeyedData; -%ignore AParticleModifier; -%ignore bhkRefObject; -%ignore bhkSerializable; -%ignore AbhkConstraint; -%ignore AbhkRagdollConstraint; -%ignore bhkShape; -%ignore AbhkShapeCollection; -%ignore bhkSphereRepShape; -%ignore bhkConvexShape; -%ignore bhkWorldObject; -%ignore bhkEntity; -%ignore NiCollisionObject; -%ignore NiExtraData; -%ignore NiInterpolator; -%ignore NiBlendInterpolator; -%ignore NiBSplineInterpolator; -%ignore NiObjectNET; -%ignore NiAVObject; -%ignore NiDynamicEffect; -%ignore NiLight; -%ignore NiProperty; -%ignore NiPSysModifier; -%ignore NiPSysEmitter; -%ignore NiPSysVolumeEmitter; -%ignore NiTimeController; -%ignore ABoneLODController; -%ignore NiSingleInterpolatorController; -%ignore APSysCtlr; -%ignore NiTriBasedGeom; -%ignore NiTriBasedGeomData; -%ignore APSysData; -%ignore bhkBlendCollisionObject; -%ignore bhkBlendController; -%ignore bhkBoxShape; -%ignore bhkCapsuleShape; -%ignore bhkCollisionObject; -%ignore bhkConvexVerticesShape; -%ignore bhkHingeConstraint; -%ignore bhkLimitedHingeConstraint; -%ignore bhkListShape; -%ignore bhkMalleableConstraint; -%ignore bhkMoppBvTreeShape; -%ignore bhkMultiSphereShape; -%ignore bhkNiTriStripsShape; -%ignore bhkPackedNiTriStripsShape; -%ignore bhkPrismaticConstraint; -%ignore bhkRagdollConstraint; -%ignore bhkRigidBody; -%ignore bhkRigidBodyT; -%ignore bhkSimpleShapePhantom; -%ignore bhkSPCollisionObject; -%ignore bhkSphereShape; -%ignore bhkStiffSpringConstraint; -%ignore bhkTransformShape; -%ignore bhkConvexTransformShape; -%ignore BSBound; -%ignore BSFurnitureMarker; -%ignore BSParentVelocityModifier; -%ignore BSPSysArrayEmitter; -%ignore BSXFlags; -%ignore hkPackedNiTriStripsData; -%ignore NiAlphaController; -%ignore NiAlphaProperty; -%ignore NiAmbientLight; -%ignore NiAutoNormalParticlesData; -%ignore NiBinaryExtraData; -%ignore NiBlendBoolInterpolator; -%ignore NiBlendFloatInterpolator; -%ignore NiBlendPoint3Interpolator; -%ignore NiBlendTransformInterpolator; -%ignore NiBoneLODController; -%ignore NiBoolData; -%ignore NiBooleanExtraData; -%ignore NiBoolInterpolator; -%ignore NiBoolTimelineInterpolator; -%ignore NiBSBoneLODController; -%ignore NiBSplineBasisData; -%ignore NiBSplineCompFloatInterpolator; -%ignore NiBSplineCompPoint3Interpolator; -%ignore NiBSplineCompTransformInterpolator; -%ignore NiBSplineData; -%ignore NiCamera; -%ignore NiCollisionData; -%ignore NiColorData; -%ignore NiColorExtraData; -%ignore NiControllerManager; -%ignore NiControllerSequence; -%ignore NiDefaultAVObjectPalette; -%ignore NiDirectionalLight; -%ignore NiDitherProperty; -%ignore NiFlipController; -%ignore NiFloatData; -%ignore NiFloatExtraData; -%ignore NiFloatExtraDataController; -%ignore NiFloatInterpolator; -%ignore NiFloatsExtraData; -%ignore NiFogProperty; -%ignore NiGeomMorpherController; -%ignore NiGravity; -%ignore NiIntegerExtraData; -%ignore NiIntegersExtraData; -%ignore NiKeyframeController; -%ignore BSKeyframeController; -%ignore NiKeyframeData; -%ignore NiLightColorController; -%ignore NiLightDimmerController; -%ignore NiLookAtController; -%ignore NiLookAtInterpolator; -%ignore NiMaterialColorController; -%ignore NiMaterialProperty; -%ignore NiMeshPSysData; -%ignore NiMorphData; -%ignore NiMultiTargetTransformController; -%ignore NiNode; -%ignore AvoidNode; -%ignore FxWidget; -%ignore FxButton; -%ignore FxRadioButton; -%ignore NiBillboardNode; -%ignore NiBSAnimationNode; -%ignore NiBSParticleNode; -%ignore NiLODNode; -%ignore NiPalette; -%ignore NiParticleBomb; -%ignore NiParticleColorModifier; -%ignore NiParticleGrowFade; -%ignore NiParticleMeshModifier; -%ignore NiParticleRotation; -%ignore NiParticles; -%ignore NiAutoNormalParticles; -%ignore NiParticleMeshes; -%ignore NiParticlesData; -%ignore NiParticleMeshesData; -%ignore NiParticleSystem; -%ignore NiMeshParticleSystem; -%ignore NiParticleSystemController; -%ignore NiBSPArrayController; -%ignore NiPathController; -%ignore NiPathInterpolator; -%ignore NiPixelData; -%ignore NiPlanarCollider; -%ignore NiPoint3Interpolator; -%ignore NiPointLight; -%ignore NiPosData; -%ignore NiPSysAgeDeathModifier; -%ignore NiPSysBombModifier; -%ignore NiPSysBoundUpdateModifier; -%ignore NiPSysBoxEmitter; -%ignore NiPSysColliderManager; -%ignore NiPSysColorModifier; -%ignore NiPSysCylinderEmitter; -%ignore NiPSysData; -%ignore NiPSysDragModifier; -%ignore NiPSysEmitterCtlr; -%ignore NiPSysEmitterCtlrData; -%ignore NiPSysEmitterDeclinationCtlr; -%ignore NiPSysEmitterDeclinationVarCtlr; -%ignore NiPSysEmitterInitialRadiusCtlr; -%ignore NiPSysEmitterLifeSpanCtlr; -%ignore NiPSysEmitterSpeedCtlr; -%ignore NiPSysGravityModifier; -%ignore NiPSysGravityStrengthCtlr; -%ignore NiPSysGrowFadeModifier; -%ignore NiPSysMeshEmitter; -%ignore NiPSysMeshUpdateModifier; -%ignore NiPSysModifierActiveCtlr; -%ignore NiPSysPlanarCollider; -%ignore NiPSysPositionModifier; -%ignore NiPSysResetOnLoopCtlr; -%ignore NiPSysRotationModifier; -%ignore NiPSysSpawnModifier; -%ignore NiPSysSphereEmitter; -%ignore NiPSysUpdateCtlr; -%ignore NiRangeLODData; -%ignore NiRotatingParticles; -%ignore NiRotatingParticlesData; -%ignore NiScreenLODData; -%ignore NiSequenceStreamHelper; -%ignore NiShadeProperty; -%ignore NiSkinData; -%ignore NiSkinInstance; -%ignore NiSkinPartition; -%ignore NiSourceTexture; -%ignore NiSpecularProperty; -%ignore NiSphericalCollider; -%ignore NiSpotLight; -%ignore NiStencilProperty; -%ignore NiStringExtraData; -%ignore NiStringPalette; -%ignore NiStringsExtraData; -%ignore NiTextKeyExtraData; -%ignore NiTextureEffect; -%ignore NiTextureTransformController; -%ignore NiTexturingProperty; -%ignore NiTransformController; -%ignore NiTransformData; -%ignore NiTransformInterpolator; -%ignore NiTriShape; -%ignore NiTriShapeData; -%ignore NiTriStrips; -%ignore NiTriStripsData; -%ignore NiUVController; -%ignore NiUVData; -%ignore NiVectorExtraData; -%ignore NiVertexColorProperty; -%ignore NiVertWeightsExtraData; -%ignore NiVisController; -%ignore NiVisData; -%ignore NiWireframeProperty; -%ignore NiZBufferProperty; -%ignore RootCollisionNode; - +//Do not use smart pointer support as it doubles the size of the library +//and makes it take twice as long to be imported +%ignore Ref::operator->; +%ignore Ref::operator=; // we need this to get all the defines in there %include "gen/obj_defines.h" @@ -507,6 +296,36 @@ POSSIBILITY OF SUCH DAMAGE. */ #include "obj/NiWireframeProperty.h" #include "obj/NiZBufferProperty.h" #include "obj/RootCollisionNode.h" + #include "gen/ByteArray.h" + #include "gen/Footer.h" + #include "gen/LODRange.h" + #include "gen/MatchGroup.h" + #include "gen/MipMap.h" + #include "gen/NodeGroup.h" + #include "gen/QuaternionXYZW.h" + #include "gen/ShortString.h" + #include "gen/SkinShape.h" + #include "gen/SkinShapeGroup.h" + #include "gen/SkinWeight.h" + #include "gen/AVObject.h" + #include "gen/ControllerLink.h" + #include "gen/Header.h" + #include "gen/StringPalette.h" + #include "gen/TBC.h" + #include "gen/KeyGroup.h" + #include "gen/RotationKeyArray.h" + #include "gen/TexDesc.h" + #include "gen/ShaderTexDesc.h" + #include "gen/TexSource.h" + #include "gen/SkinPartition.h" + #include "gen/BoundingBox.h" + #include "gen/FurniturePosition.h" + #include "gen/hkTriangle.h" + #include "gen/Morph.h" + #include "gen/Particle.h" + #include "gen/SkinData.h" + #include "gen/RagDollDescriptor.h" + #include "gen/LimitedHingeDescriptor.h" %} @@ -548,8 +367,10 @@ struct Key { %template(pair_int_float) std::pair<int, float>; %template(map_int_float) std::map<int, float>; -%include "Ref.h" %include "niflib.h" +%include "Ref.h" +%include "Type.h" +%include "nif_math.h" %include "obj/NiObject.h" %template(NiObjectRef) Ref<NiObject>; %template(DynamicCastToNiObject) DynamicCast<NiObject>; @@ -1402,5 +1223,35 @@ struct Key { %template(RootCollisionNodeRef) Ref<RootCollisionNode>; %template(DynamicCastToRootCollisionNode) DynamicCast<RootCollisionNode>; %template(StaticCastToRootCollisionNode) StaticCast<RootCollisionNode>; +%include "gen/ByteArray.h" +%include "gen/Footer.h" +%include "gen/LODRange.h" +%include "gen/MatchGroup.h" +%include "gen/MipMap.h" +%include "gen/NodeGroup.h" +%include "gen/QuaternionXYZW.h" +%include "gen/ShortString.h" +%include "gen/SkinShape.h" +%include "gen/SkinShapeGroup.h" +%include "gen/SkinWeight.h" +%include "gen/AVObject.h" +%include "gen/ControllerLink.h" +%include "gen/Header.h" +%include "gen/StringPalette.h" +%include "gen/TBC.h" +%include "gen/KeyGroup.h" +%include "gen/RotationKeyArray.h" +%include "gen/TexDesc.h" +%include "gen/ShaderTexDesc.h" +%include "gen/TexSource.h" +%include "gen/SkinPartition.h" +%include "gen/BoundingBox.h" +%include "gen/FurniturePosition.h" +%include "gen/hkTriangle.h" +%include "gen/Morph.h" +%include "gen/Particle.h" +%include "gen/SkinData.h" +%include "gen/RagDollDescriptor.h" +%include "gen/LimitedHingeDescriptor.h" %template(vector_NiAVObjectRef) std::vector<NiAVObjectRef>; -- GitLab