diff --git a/Makefile b/Makefile index 1543314cb80caa88f9369afb0148c83754f1df5c..d85cd2ed5191a4da03cf6ce33fe9d42b83463d48 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,9 @@ # CC = gcc CXX = g++ +RM = rm +LINK = ln + # -g<1-3> (ex: -g3) for debugging extra's may or may not be compatible with the broad spectrum of gcc features included with the various # -O series of options # @@ -24,7 +27,7 @@ DEBUGGING = # Example: -march=k8 would generate enhancements for the k8 family (opterons and some athlons).or -march=pentium4 for a pentium4 # For more info read this: http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options # -CFLAGS = -O2 -Wall -fPIC $(DEBUGGING) -Iinclude +CFLAGS = -O2 -Wall -fPIC $(DEBUGGING) -fpermissive -Iinclude -D BUILDING_NIFLIB_DLL CXXFLAGS = $(CFLAGS) #IT should find the libs used, but if it doesn't specify here. Ex: -lm for libm.so.<whatever> LIBS = @@ -40,351 +43,374 @@ TARGET1 = libniflib.so.0 TARGET2 = libniflib.so.0.$(VERSION_MIN) - - - -OBJ_FILES = src/ComplexShape.o \ - src/kfm.o \ - src/MatTexCollection.o \ - src/niflib.o \ - src/NIF_IO.o \ - src/nif_math.o \ - src/ObjectRegistry.o \ - src/pch.o \ - src/Type.o \ - src/obj/AvoidNode.o \ - src/obj/bhkBlendCollisionObject.o \ - src/obj/bhkBlendController.o \ - src/obj/bhkBoxShape.o \ - src/obj/bhkBvTreeShape.o \ - src/obj/bhkCapsuleShape.o \ - src/obj/bhkCollisionObject.o \ - src/obj/bhkConstraint.o \ - src/obj/bhkConvexShape.o \ - src/obj/bhkConvexTransformShape.o \ - src/obj/bhkConvexVerticesShape.o \ - src/obj/bhkEntity.o \ - src/obj/bhkHingeConstraint.o \ - src/obj/bhkLimitedHingeConstraint.o \ - src/obj/bhkListShape.o \ - src/obj/bhkMalleableConstraint.o \ - src/obj/bhkMoppBvTreeShape.o \ - src/obj/bhkMultiSphereShape.o \ - src/obj/bhkNiCollisionObject.o \ - src/obj/bhkNiTriStripsShape.o \ - src/obj/bhkPackedNiTriStripsShape.o \ - src/obj/bhkPCollisionObject.o \ - src/obj/bhkPhantom.o \ - src/obj/bhkPrismaticConstraint.o \ - src/obj/bhkRagdollConstraint.o \ - src/obj/bhkRefObject.o \ - src/obj/bhkRigidBody.o \ - src/obj/bhkRigidBodyT.o \ - src/obj/bhkSerializable.o \ - src/obj/bhkShapeCollection.o \ - src/obj/bhkShape.o \ - src/obj/bhkShapePhantom.o \ - src/obj/bhkSimpleShapePhantom.o \ - src/obj/bhkSPCollisionObject.o \ - src/obj/bhkSphereRepShape.o \ - src/obj/bhkSphereShape.o \ - src/obj/bhkStiffSpringConstraint.o \ - src/obj/bhkTransformShape.o \ - src/obj/bhkWorldObject.o \ - src/obj/BSBound.o \ - src/obj/BSFurnitureMarker.o \ - src/obj/BSKeyframeController.o \ - src/obj/BSParentVelocityModifier.o \ - src/obj/BSPSysArrayEmitter.o \ - src/obj/BSWindModifier.o \ - src/obj/BSXFlags.o \ - src/obj/FxButton.o \ - src/obj/FxRadioButton.o \ - src/obj/FxWidget.o \ - src/obj/hkPackedNiTriStripsData.o \ - src/obj/NiAlphaController.o \ - src/obj/NiAlphaProperty.o \ - src/obj/NiAmbientLight.o \ - src/obj/NiArkAnimationExtraData.o \ - src/obj/NiArkImporterExtraData.o \ - src/obj/NiArkShaderExtraData.o \ - src/obj/NiArkTextureExtraData.o \ - src/obj/NiArkViewportInfoExtraData.o \ - src/obj/NiAutoNormalParticles.o \ - src/obj/NiAutoNormalParticlesData.o \ - src/obj/NiAVObject.o \ - src/obj/NiAVObjectPalette.o \ - src/obj/NiBillboardNode.o \ - src/obj/NiBinaryExtraData.o \ - src/obj/NiBinaryVoxelData.o \ - src/obj/NiBinaryVoxelExtraData.o \ - src/obj/NiBlendBoolInterpolator.o \ - src/obj/NiBlendFloatInterpolator.o \ - src/obj/NiBlendInterpolator.o \ - src/obj/NiBlendPoint3Interpolator.o \ - src/obj/NiBlendTransformInterpolator.o \ - src/obj/NiBone.o \ - src/obj/NiBoneLODController.o \ - src/obj/NiBoolData.o \ - src/obj/NiBooleanExtraData.o \ - src/obj/NiBoolInterpController.o \ - src/obj/NiBoolInterpolator.o \ - src/obj/NiBoolTimelineInterpolator.o \ - src/obj/NiBSAnimationNode.o \ - src/obj/NiBSBoneLODController.o \ - src/obj/NiBSPArrayController.o \ - src/obj/NiBSParticleNode.o \ - src/obj/NiBSplineBasisData.o \ - src/obj/NiBSplineCompFloatInterpolator.o \ - src/obj/NiBSplineCompPoint3Interpolator.o \ - src/obj/NiBSplineCompTransformInterpolator.o \ - src/obj/NiBSplineData.o \ - src/obj/NiBSplineFloatInterpolator.o \ - src/obj/NiBSplineInterpolator.o \ - src/obj/NiBSplinePoint3Interpolator.o \ - src/obj/NiBSplineTransformInterpolator.o \ - src/obj/NiCamera.o \ - src/obj/NiClod.o \ - src/obj/NiClodData.o \ - src/obj/NiClodSkinInstance.o \ - src/obj/NiCollisionData.o \ - src/obj/NiCollisionObject.o \ - src/obj/NiColorData.o \ - src/obj/NiColorExtraData.o \ - src/obj/NiControllerManager.o \ - src/obj/NiControllerSequence.o \ - src/obj/NiDefaultAVObjectPalette.o \ - src/obj/NiDirectionalLight.o \ - src/obj/NiDitherProperty.o \ - src/obj/NiDynamicEffect.o \ - src/obj/NiExtraDataController.o \ - src/obj/NiExtraData.o \ - src/obj/NiFlipController.o \ - src/obj/NiFloatData.o \ - src/obj/NiFloatExtraDataController.o \ - src/obj/NiFloatExtraData.o \ - src/obj/NiFloatInterpController.o \ - src/obj/NiFloatInterpolator.o \ - src/obj/NiFloatsExtraData.o \ - src/obj/NiFogProperty.o \ - src/obj/NiGeometry.o \ - src/obj/NiGeometryData.o \ - src/obj/NiGeomMorpherController.o \ - src/obj/NiGravity.o \ - src/obj/NiImage.o \ - src/obj/NiIntegerExtraData.o \ - src/obj/NiIntegersExtraData.o \ - src/obj/NiInterpController.o \ - src/obj/NiInterpolator.o \ - src/obj/NiKeyBasedInterpolator.o \ - src/obj/NiKeyframeController.o \ - src/obj/NiKeyframeData.o \ - src/obj/NiLightColorController.o \ - src/obj/NiLight.o \ - src/obj/NiLightDimmerController.o \ - src/obj/NiLines.o \ - src/obj/NiLinesData.o \ - src/obj/NiLODData.o \ - src/obj/NiLODNode.o \ - src/obj/NiLookAtController.o \ - src/obj/NiLookAtInterpolator.o \ - src/obj/NiMaterialColorController.o \ - src/obj/NiMaterialProperty.o \ - src/obj/NiMeshParticleSystem.o \ - src/obj/NiMeshPSysData.o \ - src/obj/NiMorphData.o \ - src/obj/NiMultiTargetTransformController.o \ - src/obj/NiMultiTextureProperty.o \ - src/obj/NiNode.o \ - src/obj/NiObject.o \ - src/obj/NiObjectNET.o \ - src/obj/NiPalette.o \ - src/obj/NiParticleBomb.o \ - src/obj/NiParticleColorModifier.o \ - src/obj/NiParticleGrowFade.o \ - src/obj/NiParticleMeshes.o \ - src/obj/NiParticleMeshesData.o \ - src/obj/NiParticleMeshModifier.o \ - src/obj/NiParticleModifier.o \ - src/obj/NiParticleRotation.o \ - src/obj/NiParticles.o \ - src/obj/NiParticlesData.o \ - src/obj/NiParticleSystemController.o \ - src/obj/NiParticleSystem.o \ - src/obj/NiPathController.o \ - src/obj/NiPathInterpolator.o \ - src/obj/NiPhysXActorDesc.o \ - src/obj/NiPhysXBodyDesc.o \ - src/obj/NiPhysXD6JointDesc.o \ - src/obj/NiPhysXKinematicSrc.o \ - src/obj/NiPhysXMaterialDesc.o \ - src/obj/NiPhysXMeshDesc.o \ - src/obj/NiPhysXProp.o \ - src/obj/NiPhysXPropDesc.o \ - src/obj/NiPhysXShapeDesc.o \ - src/obj/NiPhysXTransformDest.o \ - src/obj/NiPixelData.o \ - src/obj/NiPlanarCollider.o \ - src/obj/NiPoint3InterpController.o \ - src/obj/NiPoint3Interpolator.o \ - src/obj/NiPointLight.o \ - src/obj/NiPosData.o \ - src/obj/NiProperty.o \ - src/obj/NiPSysAgeDeathModifier.o \ - src/obj/NiPSysBombModifier.o \ - src/obj/NiPSysBoundUpdateModifier.o \ - src/obj/NiPSysBoxEmitter.o \ - src/obj/NiPSysCollider.o \ - src/obj/NiPSysColliderManager.o \ - src/obj/NiPSysColorModifier.o \ - src/obj/NiPSysCylinderEmitter.o \ - src/obj/NiPSysData.o \ - src/obj/NiPSysDragModifier.o \ - src/obj/NiPSysEmitter.o \ - src/obj/NiPSysEmitterCtlr.o \ - src/obj/NiPSysEmitterCtlrData.o \ - src/obj/NiPSysEmitterDeclinationCtlr.o \ - src/obj/NiPSysEmitterDeclinationVarCtlr.o \ - src/obj/NiPSysEmitterInitialRadiusCtlr.o \ - src/obj/NiPSysEmitterLifeSpanCtlr.o \ - src/obj/NiPSysEmitterSpeedCtlr.o \ - src/obj/NiPSysGravityModifier.o \ - src/obj/NiPSysGravityStrengthCtlr.o \ - src/obj/NiPSysGrowFadeModifier.o \ - src/obj/NiPSysMeshEmitter.o \ - src/obj/NiPSysMeshUpdateModifier.o \ - src/obj/NiPSysModifierActiveCtlr.o \ - src/obj/NiPSysModifierBoolCtlr.o \ - src/obj/NiPSysModifier.o \ - src/obj/NiPSysModifierCtlr.o \ - src/obj/NiPSysModifierFloatCtlr.o \ - src/obj/NiPSysPlanarCollider.o \ - src/obj/NiPSysPositionModifier.o \ - src/obj/NiPSysResetOnLoopCtlr.o \ - src/obj/NiPSysRotationModifier.o \ - src/obj/NiPSysSpawnModifier.o \ - src/obj/NiPSysSphereEmitter.o \ - src/obj/NiPSysSphericalCollider.o \ - src/obj/NiPSysUpdateCtlr.o \ - src/obj/NiPSysVolumeEmitter.o \ - src/obj/NiRangeLODData.o \ - src/obj/NiRawImageData.o \ - src/obj/NiRollController.o \ - src/obj/NiRotatingParticles.o \ - src/obj/NiRotatingParticlesData.o \ - src/obj/NiScreenLODData.o \ - src/obj/NiSequence.o \ - src/obj/NiSequenceStreamHelper.o \ - src/obj/NiShadeProperty.o \ - src/obj/NiSingleInterpController.o \ - src/obj/NiSkinData.o \ - src/obj/NiSkinInstance.o \ - src/obj/NiSkinPartition.o \ - src/obj/NiSortAdjustNode.o \ - src/obj/NiSourceCubeMap.o \ - src/obj/NiSourceTexture.o \ - src/obj/NiSpecularProperty.o \ - src/obj/NiSphericalCollider.o \ - src/obj/NiSpotLight.o \ - src/obj/NiStencilProperty.o \ - src/obj/NiStringExtraData.o \ - src/obj/NiStringPalette.o \ - src/obj/NiStringsExtraData.o \ - src/obj/NiSwitchNode.o \ - src/obj/NiTextKeyExtraData.o \ - src/obj/NiTexture.o \ - src/obj/NiTextureEffect.o \ - src/obj/NiTextureModeProperty.o \ - src/obj/NiTextureProperty.o \ - src/obj/NiTextureTransformController.o \ - src/obj/NiTexturingProperty.o \ - src/obj/NiTimeController.o \ - src/obj/NiTransformController.o \ - src/obj/NiTransformData.o \ - src/obj/NiTransformInterpolator.o \ - src/obj/NiTriBasedGeom.o \ - src/obj/NiTriBasedGeomData.o \ - src/obj/NiTriShape.o \ - src/obj/NiTriShapeData.o \ - src/obj/NiTriShapeSkinController.o \ - src/obj/NiTriStrips.o \ - src/obj/NiTriStripsData.o \ - src/obj/NiUVController.o \ - src/obj/NiUVData.o \ - src/obj/NiVectorExtraData.o \ - src/obj/NiVertexColorProperty.o \ - src/obj/NiVertWeightsExtraData.o \ - src/obj/NiVisController.o \ - src/obj/NiVisData.o \ - src/obj/NiWireframeProperty.o \ - src/obj/NiZBufferProperty.o \ - src/obj/RootCollisionNode.o \ - src/gen/ArkTexture.o \ - src/gen/AVObject.o \ - src/gen/BoundingBox.o \ - src/gen/BoundingVolume.o \ - src/gen/BoxBV.o \ - src/gen/ByteArray.o \ - src/gen/ByteColor3.o \ - src/gen/ByteColor4.o \ - src/gen/ByteMatrix.o \ - src/gen/CapsuleBV.o \ - src/gen/ChannelData.o \ - src/gen/ControllerLink.o \ - src/gen/enums.o \ - src/gen/ExportInfo.o \ - src/gen/Footer.o \ - src/gen/FurniturePosition.o \ - src/gen/HalfSpaceBV.o \ - src/gen/Header.o \ - src/gen/hkTriangle.o \ - src/gen/InertiaMatrix.o \ - src/gen/LimitedHingeDescriptor.o \ - src/gen/LODRange.o \ - src/gen/MatchGroup.o \ - src/gen/MipMap.o \ - src/gen/Morph.o \ - src/gen/MorphWeight.o \ - src/gen/MultiTextureElement.o \ - src/gen/NodeGroup.o \ - src/gen/OblivionColFilter.o \ - src/gen/OblivionSubShape.o \ - src/gen/OldSkinData.o \ - src/gen/Particle.o \ - src/gen/physXMaterialRef.o \ - src/gen/QuaternionXYZW.o \ - src/gen/RagdollDescriptor.o \ - src/gen/register.o \ - src/gen/ShaderTexDesc.o \ - src/gen/SkinData.o \ - src/gen/SkinPartition.o \ - src/gen/SkinShape.o \ - src/gen/SkinShapeGroup.o \ - src/gen/SkinWeight.o \ - src/gen/SphereBV.o \ - src/gen/StringPalette.o \ - src/gen/TBC.o \ - src/gen/TexDesc.o \ - src/gen/TexSource.o \ - src/gen/UnionBV.o +OBJ_FILES = \ + NvTriStrip/NvTriStrip.o \ + NvTriStrip/NvTriStripObjects.o \ + NvTriStrip/VertexCache.o \ + src/ComplexShape.o \ + src/gen/ArkTexture.o \ + src/gen/AVObject.o \ + src/gen/BoundingBox.o \ + src/gen/BoundingVolume.o \ + src/gen/BoxBV.o \ + src/gen/ByteArray.o \ + src/gen/ByteColor3.o \ + src/gen/ByteColor4.o \ + src/gen/ByteMatrix.o \ + src/gen/CapsuleBV.o \ + src/gen/ChannelData.o \ + src/gen/ControllerLink.o \ + src/gen/enums.o \ + src/gen/ExportInfo.o \ + src/gen/Footer.o \ + src/gen/FurniturePosition.o \ + src/gen/HalfSpaceBV.o \ + src/gen/Header.o \ + src/gen/hkTriangle.o \ + src/gen/LimitedHingeDescriptor.o \ + src/gen/LODRange.o \ + src/gen/MatchGroup.o \ + src/gen/MipMap.o \ + src/gen/Morph.o \ + src/gen/MorphWeight.o \ + src/gen/MultiTextureElement.o \ + src/gen/NodeGroup.o \ + src/gen/OblivionColFilter.o \ + src/gen/OblivionSubShape.o \ + src/gen/OldSkinData.o \ + src/gen/Particle.o \ + src/gen/physXMaterialRef.o \ + src/gen/Polygon.o \ + src/gen/QuaternionXYZW.o \ + src/gen/RagDollDescriptor.o \ + src/gen/register.o \ + src/gen/ShaderTexDesc.o \ + src/gen/SkinData.o \ + src/gen/SkinPartition.o \ + src/gen/SkinShape.o \ + src/gen/SkinShapeGroup.o \ + src/gen/SkinWeight.o \ + src/gen/SphereBV.o \ + src/gen/StringPalette.o \ + src/gen/TBC.o \ + src/gen/TexDesc.o \ + src/gen/TexSource.o \ + src/gen/UnionBV.o \ + src/Inertia.o \ + src/kfm.o \ + src/MatTexCollection.o \ + src/niflib.o \ + src/nifqhull.o \ + src/NIF_IO.o \ + src/nif_math.o \ + src/ObjectRegistry.o \ + src/obj/ATextureRenderData.o \ + src/obj/AvoidNode.o \ + src/obj/bhkBlendCollisionObject.o \ + src/obj/bhkBlendController.o \ + src/obj/bhkBoxShape.o \ + src/obj/bhkBvTreeShape.o \ + src/obj/bhkCapsuleShape.o \ + src/obj/bhkCollisionObject.o \ + src/obj/bhkConstraint.o \ + src/obj/bhkConvexShape.o \ + src/obj/bhkConvexTransformShape.o \ + src/obj/bhkConvexVerticesShape.o \ + src/obj/bhkEntity.o \ + src/obj/bhkHingeConstraint.o \ + src/obj/bhkLimitedHingeConstraint.o \ + src/obj/bhkListShape.o \ + src/obj/bhkMalleableConstraint.o \ + src/obj/bhkMoppBvTreeShape.o \ + src/obj/bhkMultiSphereShape.o \ + src/obj/bhkNiCollisionObject.o \ + src/obj/bhkNiTriStripsShape.o \ + src/obj/bhkPackedNiTriStripsShape.o \ + src/obj/bhkPCollisionObject.o \ + src/obj/bhkPhantom.o \ + src/obj/bhkPrismaticConstraint.o \ + src/obj/bhkRagdollConstraint.o \ + src/obj/bhkRefObject.o \ + src/obj/bhkRigidBody.o \ + src/obj/bhkRigidBodyT.o \ + src/obj/bhkSerializable.o \ + src/obj/bhkShape.o \ + src/obj/bhkShapeCollection.o \ + src/obj/bhkShapePhantom.o \ + src/obj/bhkSimpleShapePhantom.o \ + src/obj/bhkSPCollisionObject.o \ + src/obj/bhkSphereRepShape.o \ + src/obj/bhkSphereShape.o \ + src/obj/bhkStiffSpringConstraint.o \ + src/obj/bhkTransformShape.o \ + src/obj/bhkWorldObject.o \ + src/obj/BSBound.o \ + src/obj/BSFurnitureMarker.o \ + src/obj/BSKeyframeController.o \ + src/obj/BSParentVelocityModifier.o \ + src/obj/BSPSysArrayEmitter.o \ + src/obj/BSWindModifier.o \ + src/obj/BSXFlags.o \ + src/obj/FxButton.o \ + src/obj/FxRadioButton.o \ + src/obj/FxWidget.o \ + src/obj/hkPackedNiTriStripsData.o \ + src/obj/Ni3dsAlphaAnimator.o \ + src/obj/Ni3dsAnimationNode.o \ + src/obj/Ni3dsColorAnimator.o \ + src/obj/Ni3dsMorphShape.o \ + src/obj/Ni3dsParticleSystem.o \ + src/obj/Ni3dsPathController.o \ + src/obj/NiAlphaController.o \ + src/obj/NiAlphaProperty.o \ + src/obj/NiAmbientLight.o \ + src/obj/NiArkAnimationExtraData.o \ + src/obj/NiArkImporterExtraData.o \ + src/obj/NiArkShaderExtraData.o \ + src/obj/NiArkTextureExtraData.o \ + src/obj/NiArkViewportInfoExtraData.o \ + src/obj/NiAutoNormalParticles.o \ + src/obj/NiAutoNormalParticlesData.o \ + src/obj/NiAVObject.o \ + src/obj/NiAVObjectPalette.o \ + src/obj/NiBezierMesh.o \ + src/obj/NiBezierTriangle4.o \ + src/obj/NiBillboardNode.o \ + src/obj/NiBinaryExtraData.o \ + src/obj/NiBinaryVoxelData.o \ + src/obj/NiBinaryVoxelExtraData.o \ + src/obj/NiBlendBoolInterpolator.o \ + src/obj/NiBlendFloatInterpolator.o \ + src/obj/NiBlendInterpolator.o \ + src/obj/NiBlendPoint3Interpolator.o \ + src/obj/NiBlendTransformInterpolator.o \ + src/obj/NiBone.o \ + src/obj/NiBoneLODController.o \ + src/obj/NiBoolData.o \ + src/obj/NiBooleanExtraData.o \ + src/obj/NiBoolInterpController.o \ + src/obj/NiBoolInterpolator.o \ + src/obj/NiBoolTimelineInterpolator.o \ + src/obj/NiBSAnimationNode.o \ + src/obj/NiBSBoneLODController.o \ + src/obj/NiBSPArrayController.o \ + src/obj/NiBSParticleNode.o \ + src/obj/NiBSplineBasisData.o \ + src/obj/NiBSplineCompFloatInterpolator.o \ + src/obj/NiBSplineCompPoint3Interpolator.o \ + src/obj/NiBSplineCompTransformInterpolator.o \ + src/obj/NiBSplineData.o \ + src/obj/NiBSplineFloatInterpolator.o \ + src/obj/NiBSplineInterpolator.o \ + src/obj/NiBSplinePoint3Interpolator.o \ + src/obj/NiBSplineTransformInterpolator.o \ + src/obj/NiCamera.o \ + src/obj/NiClod.o \ + src/obj/NiClodData.o \ + src/obj/NiClodSkinInstance.o \ + src/obj/NiCollisionData.o \ + src/obj/NiCollisionObject.o \ + src/obj/NiColorData.o \ + src/obj/NiColorExtraData.o \ + src/obj/NiControllerManager.o \ + src/obj/NiControllerSequence.o \ + src/obj/NiDefaultAVObjectPalette.o \ + src/obj/NiDirectionalLight.o \ + src/obj/NiDitherProperty.o \ + src/obj/NiDynamicEffect.o \ + src/obj/NiEnvMappedTriShape.o \ + src/obj/NiEnvMappedTriShapeData.o \ + src/obj/NiExtraData.o \ + src/obj/NiExtraDataController.o \ + src/obj/NiFlipController.o \ + src/obj/NiFloatData.o \ + src/obj/NiFloatExtraData.o \ + src/obj/NiFloatExtraDataController.o \ + src/obj/NiFloatInterpController.o \ + src/obj/NiFloatInterpolator.o \ + src/obj/NiFloatsExtraData.o \ + src/obj/NiFogProperty.o \ + src/obj/NiGeometry.o \ + src/obj/NiGeometryData.o \ + src/obj/NiGeomMorpherController.o \ + src/obj/NiGravity.o \ + src/obj/NiImage.o \ + src/obj/NiIntegerExtraData.o \ + src/obj/NiIntegersExtraData.o \ + src/obj/NiInterpController.o \ + src/obj/NiInterpolator.o \ + src/obj/NiKeyBasedInterpolator.o \ + src/obj/NiKeyframeController.o \ + src/obj/NiKeyframeData.o \ + src/obj/NiLight.o \ + src/obj/NiLightColorController.o \ + src/obj/NiLightDimmerController.o \ + src/obj/NiLines.o \ + src/obj/NiLinesData.o \ + src/obj/NiLODData.o \ + src/obj/NiLODNode.o \ + src/obj/NiLookAtController.o \ + src/obj/NiLookAtInterpolator.o \ + src/obj/NiMaterialColorController.o \ + src/obj/NiMaterialProperty.o \ + src/obj/NiMeshParticleSystem.o \ + src/obj/NiMeshPSysData.o \ + src/obj/NiMorphController.o \ + src/obj/NiMorphData.o \ + src/obj/NiMorpherController.o \ + src/obj/NiMultiTargetTransformController.o \ + src/obj/NiMultiTextureProperty.o \ + src/obj/NiNode.o \ + src/obj/NiObject.o \ + src/obj/NiObjectNET.o \ + src/obj/NiPalette.o \ + src/obj/NiParticleBomb.o \ + src/obj/NiParticleColorModifier.o \ + src/obj/NiParticleGrowFade.o \ + src/obj/NiParticleMeshes.o \ + src/obj/NiParticleMeshesData.o \ + src/obj/NiParticleMeshModifier.o \ + src/obj/NiParticleModifier.o \ + src/obj/NiParticleRotation.o \ + src/obj/NiParticles.o \ + src/obj/NiParticlesData.o \ + src/obj/NiParticleSystem.o \ + src/obj/NiParticleSystemController.o \ + src/obj/NiPathController.o \ + src/obj/NiPathInterpolator.o \ + src/obj/NiPersistentSrcTextureRendererData.o \ + src/obj/NiPhysXActorDesc.o \ + src/obj/NiPhysXBodyDesc.o \ + src/obj/NiPhysXD6JointDesc.o \ + src/obj/NiPhysXKinematicSrc.o \ + src/obj/NiPhysXMaterialDesc.o \ + src/obj/NiPhysXMeshDesc.o \ + src/obj/NiPhysXProp.o \ + src/obj/NiPhysXPropDesc.o \ + src/obj/NiPhysXShapeDesc.o \ + src/obj/NiPhysXTransformDest.o \ + src/obj/NiPixelData.o \ + src/obj/NiPlanarCollider.o \ + src/obj/NiPoint3InterpController.o \ + src/obj/NiPoint3Interpolator.o \ + src/obj/NiPointLight.o \ + src/obj/NiPosData.o \ + src/obj/NiProperty.o \ + src/obj/NiPSysAgeDeathModifier.o \ + src/obj/NiPSysBombModifier.o \ + src/obj/NiPSysBoundUpdateModifier.o \ + src/obj/NiPSysBoxEmitter.o \ + src/obj/NiPSysCollider.o \ + src/obj/NiPSysColliderManager.o \ + src/obj/NiPSysColorModifier.o \ + src/obj/NiPSysCylinderEmitter.o \ + src/obj/NiPSysData.o \ + src/obj/NiPSysDragModifier.o \ + src/obj/NiPSysEmitter.o \ + src/obj/NiPSysEmitterCtlr.o \ + src/obj/NiPSysEmitterCtlrData.o \ + src/obj/NiPSysEmitterDeclinationCtlr.o \ + src/obj/NiPSysEmitterDeclinationVarCtlr.o \ + src/obj/NiPSysEmitterInitialRadiusCtlr.o \ + src/obj/NiPSysEmitterLifeSpanCtlr.o \ + src/obj/NiPSysEmitterSpeedCtlr.o \ + src/obj/NiPSysGravityModifier.o \ + src/obj/NiPSysGravityStrengthCtlr.o \ + src/obj/NiPSysGrowFadeModifier.o \ + src/obj/NiPSysMeshEmitter.o \ + src/obj/NiPSysMeshUpdateModifier.o \ + src/obj/NiPSysModifier.o \ + src/obj/NiPSysModifierActiveCtlr.o \ + src/obj/NiPSysModifierBoolCtlr.o \ + src/obj/NiPSysModifierCtlr.o \ + src/obj/NiPSysModifierFloatCtlr.o \ + src/obj/NiPSysPlanarCollider.o \ + src/obj/NiPSysPositionModifier.o \ + src/obj/NiPSysResetOnLoopCtlr.o \ + src/obj/NiPSysRotationModifier.o \ + src/obj/NiPSysSpawnModifier.o \ + src/obj/NiPSysSphereEmitter.o \ + src/obj/NiPSysSphericalCollider.o \ + src/obj/NiPSysUpdateCtlr.o \ + src/obj/NiPSysVolumeEmitter.o \ + src/obj/NiRangeLODData.o \ + src/obj/NiRawImageData.o \ + src/obj/NiRollController.o \ + src/obj/NiRotatingParticles.o \ + src/obj/NiRotatingParticlesData.o \ + src/obj/NiScreenElements.o \ + src/obj/NiScreenElementsData.o \ + src/obj/NiScreenLODData.o \ + src/obj/NiSequence.o \ + src/obj/NiSequenceStreamHelper.o \ + src/obj/NiShadeProperty.o \ + src/obj/NiSingleInterpController.o \ + src/obj/NiSkinData.o \ + src/obj/NiSkinInstance.o \ + src/obj/NiSkinPartition.o \ + src/obj/NiSortAdjustNode.o \ + src/obj/NiSourceCubeMap.o \ + src/obj/NiSourceTexture.o \ + src/obj/NiSpecularProperty.o \ + src/obj/NiSphericalCollider.o \ + src/obj/NiSpotLight.o \ + src/obj/NiStencilProperty.o \ + src/obj/NiStringExtraData.o \ + src/obj/NiStringPalette.o \ + src/obj/NiStringsExtraData.o \ + src/obj/NiSwitchNode.o \ + src/obj/NiTextKeyExtraData.o \ + src/obj/NiTexture.o \ + src/obj/NiTextureEffect.o \ + src/obj/NiTextureModeProperty.o \ + src/obj/NiTextureProperty.o \ + src/obj/NiTextureTransformController.o \ + src/obj/NiTexturingProperty.o \ + src/obj/NiTimeController.o \ + src/obj/NiTransformController.o \ + src/obj/NiTransformData.o \ + src/obj/NiTransformInterpolator.o \ + src/obj/NiTransparentProperty.o \ + src/obj/NiTriBasedGeom.o \ + src/obj/NiTriBasedGeomData.o \ + src/obj/NiTriShape.o \ + src/obj/NiTriShapeData.o \ + src/obj/NiTriShapeSkinController.o \ + src/obj/NiTriStrips.o \ + src/obj/NiTriStripsData.o \ + src/obj/NiUVController.o \ + src/obj/NiUVData.o \ + src/obj/NiVectorExtraData.o \ + src/obj/NiVertexColorProperty.o \ + src/obj/NiVertWeightsExtraData.o \ + src/obj/NiVisController.o \ + src/obj/NiVisData.o \ + src/obj/NiWireframeProperty.o \ + src/obj/NiZBufferProperty.o \ + src/obj/RootCollisionNode.o \ + src/RefObject.o \ + src/Type.o \ + TriStripper/connectivity_graph.o \ + TriStripper/policy.o \ + TriStripper/tri_stripper.o \ all: Makefile $(TARGET) $(TARGET): $(OBJ_FILES) - rm -f $(TARGET) + -$(RM) -f $(TARGET) $(CXX) $(L_FLAGS) -o $(TARGET) $(OBJ_FILES) $(LIBS) - -ln -s $(TARGET) $(TARGET0) - -ln -s $(TARGET) $(TARGET1) - -ln -s $(TARGET) $(TARGET2) + -$(LINK) -s $(TARGET) $(TARGET0) + -$(LINK) -s $(TARGET) $(TARGET1) + -$(LINK) -s $(TARGET) $(TARGET2) clean: clean - rm -f $(TARGET) - rm -f src/*.o - rm -f src/gen/*.o - rm -f src/obj/*.o - rm -f $(TARGETA) - rm -f $(TARGETD) - rm -f $(TARGET0) - rm -f $(TARGET1) - rm -f $(TARGET2) + -$(RM) -f $(TARGET) + -$(RM) -f src/*.o + -$(RM) -f src/gen/*.o + -$(RM) -f src/obj/*.o + -$(RM) -f $(TARGETA) + -$(RM) -f $(TARGETD) + -$(RM) -f $(TARGET0) + -$(RM) -f $(TARGET1) + -$(RM) -f $(TARGET2) diff --git a/include/Key.h b/include/Key.h index a2614dfcce74b4a9837cd638995006a56bef4af1..81d30c34422a7d812bf969f6b446f2afd8bec2b4 100644 --- a/include/Key.h +++ b/include/Key.h @@ -7,6 +7,7 @@ All rights reserved. Please see niflib.h for license. */ #include <iostream> #include <iomanip> #include <vector> +#include <math.h> #include "gen/enums.h" namespace Niflib { diff --git a/include/NIF_IO.h b/include/NIF_IO.h index f6093cece9ab61b89f7f3c493c6ee2f883584be7..7593de2ada5215c4954c5967c157f31e4b8111a9 100644 --- a/include/NIF_IO.h +++ b/include/NIF_IO.h @@ -51,7 +51,7 @@ bool UnpackFlag( storage src, size_t lshift ) { //Generate mask storage mask = 1 << lshift; - return (( src & mask) << lshift) != 0; + return (( src & mask) >> lshift) != 0; } template <class storage> @@ -297,24 +297,14 @@ public: private: NifInfo *info; static const int infoIdx; - friend static ostream & operator<<( ostream & out, strInfo const & val ); - friend static istream & operator>>( istream & out, strInfo & val ); + friend ostream & operator<<( ostream & out, strInfo const & val ); + friend istream & operator>>( istream & out, strInfo & val ); public: static NifInfo * getInfo(ios_base& str) { return (NifInfo *)str.pword(infoIdx); } }; -static ostream & operator<<( ostream & out, strInfo const & val ) { - out.pword(strInfo::infoIdx) = (void*)val.info; - return (out); -} - -static istream & operator>>( istream & istr, strInfo & val ) { - istr.pword(strInfo::infoIdx) = (void*)val.info; - return (istr); -} - // hdrInfo struct Header; @@ -325,24 +315,14 @@ public: private: Header *info; static const int infoIdx; - friend static ostream & operator<<( ostream & out, hdrInfo const & val ); - friend static istream & operator>>( istream & out, hdrInfo & val ); + friend ostream & operator<<( ostream & out, hdrInfo const & val ); + friend istream & operator>>( istream & out, hdrInfo & val ); public: static Header * getInfo(ios_base& str) { return (Header *)str.pword(infoIdx); } }; -static ostream & operator<<( ostream & out, hdrInfo const & val ) { - out.pword(hdrInfo::infoIdx) = (void*)val.info; - return (out); -} - -static istream & operator>>( istream & istr, hdrInfo & val ) { - istr.pword(hdrInfo::infoIdx) = (void*)val.info; - return (istr); -} - class NifStreamBuf : public std::streambuf { streamsize size; pos_type pos; diff --git a/include/RefObject.h b/include/RefObject.h index 997264daf186fb2d8b6949ee0df8246863325600..8720805b7d53b200a3ab33a9bc4471edc8b87598 100644 --- a/include/RefObject.h +++ b/include/RefObject.h @@ -117,81 +117,5 @@ public: NIFLIB_HIDDEN virtual list< Ref<NiObject> > GetRefs() const = 0; }; -/* - * Casting Templates - */ - -template <class T> Ref<T> StaticCast( NiObject * object ) { - return (T*)object; -} - -template <class T> Ref<const T> StaticCast (const NiObject * object) { - return (const T*)object; -} - -template <class T> Ref<T> DynamicCast( NiObject * object ) { - if ( object && object->IsDerivedType(T::TYPE) ) { - return (T*)object; - } else { - return NULL; - } -} - -template <class T> Ref<const T> DynamicCast( const NiObject * object ) { - if ( object && object->IsDerivedType(T::TYPE) ) { - return (const T*)object; - } else { - return NULL; - } -} - -#ifdef USE_NIFLIB_TEMPLATE_HELPERS -template <typename T, typename U> Ref<T> StaticCast( Ref<U>& object ) { - return object; -} - -template <typename T, typename U> Ref<T> DynamicCast( Ref<U>& object ) { - return object; -} - -template <typename T, typename U> Ref<T> StaticCast( const Ref<U>& object ) { - return Ref<T>(object); -} - -template <typename T, typename U> Ref<T> DynamicCast( const Ref<U>& object ) { - return Ref<T>(object); -} - -/*! - * Dynamically cast from a collection of objects to another collection - * \param objs A collection of object references to be dynamically casted to the specified type. - * \return A collection of objects that support the requested type. - */ -template <typename U, typename T> -inline vector<Ref<U> > DynamicCast( vector<Ref<T> > const & objs ) { - vector<Ref<U> > retval; - for (vector<Ref<T> >::const_iterator itr = objs.begin(), end = objs.end(); itr != end; ++itr) { - Ref<U> obj = DynamicCast<U>(*itr); - if (obj) retval.insert(retval.end(), obj); - } - return retval; -} - -/*! -* Dynamically cast from a collection of objects to another collection -* \param objs A collection of object references to be dynamically casted to the specified type. -* \return A collection of objects that support the requested type. -*/ -template <typename U, typename T> -inline list<Ref<U> > DynamicCast( list<Ref<T> > const & objs ) { - list<Ref<U> > retval; - for (list<Ref<T> >::const_iterator itr = objs.begin(), end = objs.end(); itr != end; ++itr) { - Ref<U> obj = DynamicCast<U>(*itr); - if (obj) retval.insert(retval.end(), obj); - } - return retval; -} -#endif - } //End Niflib namespace #endif diff --git a/include/nif_math.h b/include/nif_math.h index 2ad60a1b5d672d46f12d23f186a08b1b7efac94c..4a038f45f56d880f33746f378728b076f25b5ed7 100644 --- a/include/nif_math.h +++ b/include/nif_math.h @@ -5,6 +5,7 @@ All rights reserved. Please see niflib.h for license. */ #define NIF_MATH_H #include <cmath> +#include <cstring> // memcpy has been moved in GCC 4.3 #include <iostream> #include <stdexcept> #include "dll_export.h" diff --git a/include/obj/NiInterpolator.h b/include/obj/NiInterpolator.h index 2b7af838c03fbf04f17555dfa31ae083ffa66b69..dbbbe8100fab08ffc2c4e6e33f844457fabf438a 100644 --- a/include/obj/NiInterpolator.h +++ b/include/obj/NiInterpolator.h @@ -11,6 +11,9 @@ All rights reserved. Please see niflib.h for license. */ #define _NIINTERPOLATOR_H_ //--BEGIN FILE HEAD CUSTOM CODE--// +#if (!defined USHRT_MAX) +#define USHRT_MAX 0xffff +#endif //--END CUSTOM CODE--// #include "NiObject.h" diff --git a/include/obj/NiObject.h b/include/obj/NiObject.h index 0b870f735c390b61877136a2de8dd3e57e74368c..09bccad5c4946b6f8e69afc73b3cb5032907d6e2 100644 --- a/include/obj/NiObject.h +++ b/include/obj/NiObject.h @@ -92,6 +92,83 @@ public: //--BEGIN FILE FOOT CUSTOM CODE--// +/* +* Casting Templates +*/ + +template <class T> Ref<T> StaticCast( NiObject * object ) { + return (T*)object; +} + +template <class T> Ref<const T> StaticCast (const NiObject * object) { + return (const T*)object; +} + +template <class T> Ref<T> DynamicCast( NiObject * object ) { + if ( object && object->IsDerivedType(T::TYPE) ) { + return (T*)object; + } else { + return NULL; + } +} + +template <class T> Ref<const T> DynamicCast( const NiObject * object ) { + if ( object && object->IsDerivedType(T::TYPE) ) { + return (const T*)object; + } else { + return NULL; + } +} + +#ifdef USE_NIFLIB_TEMPLATE_HELPERS +template <typename T, typename U> Ref<T> StaticCast( Ref<U>& object ) { + return object; +} + +template <typename T, typename U> Ref<T> DynamicCast( Ref<U>& object ) { + return object; +} + +template <typename T, typename U> Ref<T> StaticCast( const Ref<U>& object ) { + return Ref<T>(object); +} + +template <typename T, typename U> Ref<T> DynamicCast( const Ref<U>& object ) { + return Ref<T>(object); +} + +/*! +* Dynamically cast from a collection of objects to another collection +* \param objs A collection of object references to be dynamically casted to the specified type. +* \return A collection of objects that support the requested type. +*/ +template <typename U, typename T> +inline vector<Ref<U> > DynamicCast( vector<Ref<T> > const & objs ) { + vector<Ref<U> > retval; + for (vector<Ref<T> >::const_iterator itr = objs.begin(), end = objs.end(); itr != end; ++itr) { + Ref<U> obj = DynamicCast<U>(*itr); + if (obj) retval.insert(retval.end(), obj); + } + return retval; +} + +/*! +* Dynamically cast from a collection of objects to another collection +* \param objs A collection of object references to be dynamically casted to the specified type. +* \return A collection of objects that support the requested type. +*/ +template <typename U, typename T> +inline list<Ref<U> > DynamicCast( list<Ref<T> > const & objs ) { + list<Ref<U> > retval; + for (list<Ref<T> >::const_iterator itr = objs.begin(), end = objs.end(); itr != end; ++itr) { + Ref<U> obj = DynamicCast<U>(*itr); + if (obj) retval.insert(retval.end(), obj); + } + return retval; +} +#endif + + //--END CUSTOM CODE--// } //End Niflib namespace diff --git a/include/obj/NiSkinPartition.h b/include/obj/NiSkinPartition.h index 045dfcdd68886d8a6345f28c8f319b1b6ed4fda6..0eae885de633923d26f768e1325f035054568371 100644 --- a/include/obj/NiSkinPartition.h +++ b/include/obj/NiSkinPartition.h @@ -11,6 +11,9 @@ All rights reserved. Please see niflib.h for license. */ #define _NISKINPARTITION_H_ //--BEGIN FILE HEAD CUSTOM CODE--// +namespace Niflib { +class NiTriBasedGeom; +} //--END CUSTOM CODE--// #include "NiObject.h" diff --git a/src/ComplexShape.cpp b/src/ComplexShape.cpp index 06574c914436293ed395717a11c79f5022b1fdd3..72a2823fe8af830735b803f357f923f1fe6b04b6 100644 --- a/src/ComplexShape.cpp +++ b/src/ComplexShape.cpp @@ -712,7 +712,7 @@ Ref<NiAVObject> ComplexShape::Split( NiNode * parent, Matrix44 & transform, int if (niTexProp->HasTexture(tex_num)) { shapeTexCoordSets.push_back(tex_num); TexDesc td = niTexProp->GetTexture(tex_num); - td.uvSet = shapeTexCoordSets.size() - 1; + td.uvSet = int(shapeTexCoordSets.size()) - 1; niTexProp->SetTexture(tex_num, td); } } diff --git a/src/Inertia.cpp b/src/Inertia.cpp index ae8c8fd4186eb07de50ee8e5152e5394537ffe45..af073fe2d3518b2f515f94f8dc4e60a1a48a8da1 100644 --- a/src/Inertia.cpp +++ b/src/Inertia.cpp @@ -180,8 +180,8 @@ void Inertia::CalcMassPropertiesPolyhedron(const vector<Vector3>& vertices, { if (extCalcMassPropertiesPolyhedronRoutine) { extCalcMassPropertiesPolyhedronRoutine( - vertices.size(), &vertices[0], - triangles.size(), triangles.empty() ? NULL : &triangles[0], + int(vertices.size()), &vertices[0], + int(triangles.size()), triangles.empty() ? NULL : &triangles[0], density, solid, mass, volume, center, inertia); return; } @@ -332,7 +332,7 @@ void Inertia::CombineMassProperties( { if (extCombineMassPropertiesRoutine) { extCombineMassPropertiesRoutine( - masses.size(), + int(masses.size()), &masses[0], &volumes[0], ¢ers[0], &inertias[0], &transforms[0], mass, volume, center, inertia); return; diff --git a/src/NIF_IO.cpp b/src/NIF_IO.cpp index c02e3961fab78d66c0922f696225c227c27bfbe5..31152e2e6ba8ac4fd3efb71ad4e176098e24fdfb 100644 --- a/src/NIF_IO.cpp +++ b/src/NIF_IO.cpp @@ -3,7 +3,7 @@ All rights reserved. Please see niflib.h for license. */ #include "../include/NIF_IO.h" #include "../include/niflib.h" -#include "../include/gen/header.h" +#include "../include/gen/Header.h" namespace Niflib { //--Endian Support Functions--// @@ -854,5 +854,25 @@ void NifStream( InertiaMatrix const & val, ostream& out, const NifInfo & info ) } } +ostream & operator<<( ostream & out, hdrInfo const & val ) { + out.pword(hdrInfo::infoIdx) = (void*)val.info; + return (out); +} + +istream & operator>>( istream & istr, hdrInfo & val ) { + istr.pword(hdrInfo::infoIdx) = (void*)val.info; + return (istr); +} -} \ No newline at end of file + +ostream & operator<<( ostream & out, strInfo const & val ) { + out.pword(strInfo::infoIdx) = (void*)val.info; + return (out); +} + +istream & operator>>( istream & istr, strInfo & val ) { + istr.pword(strInfo::infoIdx) = (void*)val.info; + return (istr); +} + +} diff --git a/src/niflib.cpp b/src/niflib.cpp index 179ea3839d77658f897394d43f7222f3437986c0..3e8a20929d967530ae5d1a166adcd2e61fc47804 100644 --- a/src/niflib.cpp +++ b/src/niflib.cpp @@ -127,9 +127,10 @@ vector<NiObjectRef> ReadNifList( istream & in, NifInfo * info ) { //--Read Header--// Header header; + hdrInfo hinfo(&header); // set the header pointer in the stream - in >> hdrInfo(&header); + in >> hinfo; //Create a new NifInfo if one isn't given. bool delete_info = false; @@ -391,7 +392,8 @@ vector<NiObjectRef> ReadNifList( istream & in, NifInfo * info ) { } // clear the header pointer in the stream. Should be in try/catch block - in >> hdrInfo(NULL); + hdrInfo hinfo2(NULL); + in >> hinfo2; //Return completed object list return obj_list; diff --git a/src/obj/NiBoneLODController.cpp b/src/obj/NiBoneLODController.cpp index 8650bef17be0a1f06b1e4422eb3f9bb0d450d250..ec5f4bd61c9818d0d180971ea5ed74ca302aa44f 100644 --- a/src/obj/NiBoneLODController.cpp +++ b/src/obj/NiBoneLODController.cpp @@ -297,7 +297,7 @@ vector<Ref<NiNode> > NiBoneLODController::GetNodeGroup( int index ) const { void NiBoneLODController::AddNodeToGroup( int index, NiNode * node ) { while (index >= int(nodeGroups.size())) nodeGroups.insert(nodeGroups.end(), NodeGroup() ); - numNodeGroups2 = nodeGroups.size(); + numNodeGroups2 = int(nodeGroups.size()); vector<NiNode*>& nodes = nodeGroups[index].nodes; vector<NiNode*>::iterator itr = std::find(nodes.begin(), nodes.end(), node); @@ -319,7 +319,7 @@ void NiBoneLODController::RemoveNodeFromGroup( int index, NiNode * node ) { void NiBoneLODController::SetNodeGroup( int index, const vector<Ref<NiNode> >& group ) { while (index >= int(nodeGroups.size())) nodeGroups.insert(nodeGroups.end(), NodeGroup() ); - numNodeGroups2 = nodeGroups.size(); + numNodeGroups2 = int(nodeGroups.size()); nodeGroups[index].nodes.assign(group.begin(), group.end()); } @@ -330,12 +330,12 @@ void NiBoneLODController::RemoveNodeGroup( int index ) { vector<NodeGroup>::iterator itr = nodeGroups.begin(); std::advance(itr, index); nodeGroups.erase(itr); - numNodeGroups2 = nodeGroups.size(); + numNodeGroups2 = int(nodeGroups.size()); } void NiBoneLODController::ClearNodeGroups() { nodeGroups.clear(); - numNodeGroups2 = nodeGroups.size(); + numNodeGroups2 = int(nodeGroups.size()); } diff --git a/src/obj/NiSkinPartition.cpp b/src/obj/NiSkinPartition.cpp index 44597b05b976141e1b82aca0606816fcd4bc347d..af1d7718783ac7382547545b39817db4cad52852 100644 --- a/src/obj/NiSkinPartition.cpp +++ b/src/obj/NiSkinPartition.cpp @@ -646,7 +646,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) { boneIndex.push_back(i); // Adjust upper limit on number of weights per vertex if necessary. - int nWeights = vertexWeight.size(); + int nWeights = int(vertexWeight.size()); if (nWeights > nWeightsPerVertex) nWeightsPerVertex = nWeights; } @@ -661,7 +661,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) { BoneList& boneIndex = boneIndexList[i]; vertexWeight.reserve(nWeightsPerVertex); boneIndex.reserve(nWeightsPerVertex); - for (int j = nWeightsPerVertex - vertexWeight.size(); j>0; --j) { + for (size_t j = nWeightsPerVertex - vertexWeight.size(); j>0; --j) { vertexWeight.push_back(0.0f); boneIndex.push_back(0); } @@ -704,7 +704,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape) { SetCacheSize(CACHESIZE_GEFORCE3); // don't generate hundreds of strips SetStitchStrips(true); - GenerateStrips(data, triangles.size()*3, &groups, &numGroups); + GenerateStrips(data, int(triangles.size()*3), &groups, &numGroups); delete [] data; @@ -795,9 +795,9 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti // count min and max bones per vertex int minBones, maxBones; - minBones = maxBones = weights[0].size(); + minBones = maxBones = int(weights[0].size()); for(vector< BoneWeightList >::iterator itr = weights.begin(); itr != weights.end(); ++itr ){ - int n = (*itr).size(); + int n = int((*itr).size()); minBones = min(n, minBones); maxBones = max(n, maxBones); } @@ -898,9 +898,9 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti // do a vertex match detect if ( doMatch ) { - for ( size_t a = 0; a < verts.size(); a++ ) { + for ( int a = 0; a < int(verts.size()); a++ ) { match.insert(matchmap::value_type(a, a)); - for ( size_t b = a + 1; b < verts.size(); b++ ) { + for ( int b = a + 1; b < int(verts.size()); b++ ) { if ( verts[a] == verts[b] && weights[a] == weights[b] ) { match.insert(matchmap::value_type(a, b)); match.insert(matchmap::value_type(b, a)); @@ -1038,14 +1038,14 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti } } sort( vertices.begin(), vertices.end() ); - part.numVertices = vertices.size(); + part.numVertices = int(vertices.size()); part.hasVertexMap = true; // map the vertices for ( int tri = 0; tri < int(triangles.size()); tri++ ) { for ( int t = 0; t < 3; t++ ) { - triangles[tri][t] = indexOf(vertices.begin(), vertices.end(), triangles[tri][t]); + triangles[tri][t] = (int)indexOf(vertices.begin(), vertices.end(), triangles[tri][t]); } } @@ -1094,7 +1094,7 @@ NiSkinPartition::NiSkinPartition(Ref<NiTriBasedGeom> shape, int maxBonesPerParti for (size_t v = 0; v < vertices.size(); ++v) { BoneWeightList& bwl = weights[vertices[v]]; for ( int b = 0; b < maxBones; b++ ) { - part.boneIndices[v][b] = (int(bwl.size()) > b) ? indexOf(bones.begin(), bones.end(), bwl[b].first) : 0 ; + part.boneIndices[v][b] = (int(bwl.size()) > b) ? (int)indexOf(bones.begin(), bones.end(), bwl[b].first) : 0 ; part.vertexWeights[v][b] = (int(bwl.size()) > b ? bwl[b].second : 0.0f); } } diff --git a/src/obj/NiTriStripsData.cpp b/src/obj/NiTriStripsData.cpp index 34d185fa08150f44ef93ba63f6468f4f87566228..5373186fcc4ac6d4acce5cdae9290e4bcaabdbeb 100644 --- a/src/obj/NiTriStripsData.cpp +++ b/src/obj/NiTriStripsData.cpp @@ -299,7 +299,7 @@ void NiTriStripsData::SetNvTriangles( const vector<Triangle> & in ) { SetCacheSize(CACHESIZE_GEFORCE3); // don't generate hundreds of strips SetStitchStrips(true); - GenerateStrips(data, in.size()*3, &groups, &numGroups); + GenerateStrips(data, int(in.size()*3), &groups, &numGroups); delete [] data; @@ -351,14 +351,14 @@ void NiTriStripsData::SetTSTriangles( const vector<Triangle> & in ) { { if (groups[i].Type == TRIANGLE_STRIP) { - strips.push_back(TriStrip(groups[i].Indices.size())); + strips.push_back( TriStrip( (unsigned short)(groups[i].Indices.size()) ) ); TriStrip &strip = strips.back(); for (j=0; j<groups[i].Indices.size(); j++) strip[j] = groups[i].Indices[j]; } else { - int size = stris.size(); + size_t size = stris.size(); stris.resize(size + groups[i].Indices.size()/3); for (j=(size>0)?(size-1):0; j<stris.size(); j++) { @@ -397,7 +397,7 @@ void NiTriStripsData::SetTSTriangles( const vector<Triangle> & in ) { if (strips.size() > 0) { - SetStripCount(strips.size()); + SetStripCount( int(strips.size()) ); int i = 0; TriStrips::const_iterator it; diff --git a/src/obj/hkPackedNiTriStripsData.cpp b/src/obj/hkPackedNiTriStripsData.cpp index bc9efb2cd3573b8f31f87afc489aff54e716111f..d7326d59766a052cd0561b0f637e25ba301d03ea 100644 --- a/src/obj/hkPackedNiTriStripsData.cpp +++ b/src/obj/hkPackedNiTriStripsData.cpp @@ -162,7 +162,7 @@ vector<Vector3> hkPackedNiTriStripsData::GetNormals() const { } int hkPackedNiTriStripsData::GetVertexCount() const { - return vertices.size(); + return int(vertices.size()); } vector<Vector3> hkPackedNiTriStripsData::GetVertices() const {