Revision: 2530 http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2530&view=rev Author: ulteq Date: 2012-05-09 00:09:21 +0000 (Wed, 09 May 2012) Log Message: ----------- -Codechange: Changed MeshObject.h ... style++
Modified Paths: -------------- trunk/source/main/physics/flex/FlexBody.cpp trunk/source/main/physics/flex/FlexBody.h trunk/source/main/physics/input_output/SerializedRig.cpp trunk/source/main/utils/MeshObject.cpp trunk/source/main/utils/MeshObject.h Modified: trunk/source/main/physics/flex/FlexBody.cpp =================================================================== --- trunk/source/main/physics/flex/FlexBody.cpp 2012-05-09 00:02:48 UTC (rev 2529) +++ trunk/source/main/physics/flex/FlexBody.cpp 2012-05-09 00:09:21 UTC (rev 2530) @@ -19,6 +19,7 @@ */ #include "FlexBody.h" +#include "approxmath.h" #include "MaterialReplacer.h" #include "ResourceBuffer.h" #include "Settings.h" @@ -27,24 +28,26 @@ using namespace Ogre; FlexBody::FlexBody(SceneManager *manager, node_t *nds, int numnds, char* meshname, char* uname, int ref, int nx, int ny, Vector3 offset, Quaternion rot, char* setdef, MaterialFunctionMapper *mfm, Skin *usedSkin, bool enableShadows, MaterialReplacer *mr) : - flexBodyCameraMode(-2) + cameramode(-2) , coffset(offset) , cref(ref) + , cx(nx) + , cy(ny) , enabled(true) , faulty(false) , freenodeset(0) - , haveblend(true) - , havetangents(false) + , hasblend(true) + , hastangents(false) , mr(mr) , nodes(nds) , numnodes(numnds) , snode(0) { nodes[cref].iIsSkin=true; - cx=nx; nodes[cx].iIsSkin=true; - cy=ny; nodes[cy].iIsSkin=true; + nodes[cx].iIsSkin=true; + nodes[cy].iIsSkin=true; - haveshadows=(manager->getShadowTechnique()==SHADOWTYPE_STENCIL_MODULATIVE || manager->getShadowTechnique()==SHADOWTYPE_STENCIL_ADDITIVE); + hasshadows=(manager->getShadowTechnique()==SHADOWTYPE_STENCIL_MODULATIVE || manager->getShadowTechnique()==SHADOWTYPE_STENCIL_ADDITIVE); //parsing set definition char* pos=setdef; @@ -151,11 +154,11 @@ msh=ent->getMesh(); //determine if we have texture coordinates everywhere - havetexture=true; - if (msh->sharedVertexData && msh->sharedVertexData->vertexDeclaration->findElementBySemantic(VES_TEXTURE_COORDINATES)==0) havetexture=false; - for (int i=0; i<msh->getNumSubMeshes(); i++) if (!msh->getSubMesh(i)->useSharedVertices && msh->getSubMesh(i)->vertexData->vertexDeclaration->findElementBySemantic(VES_TEXTURE_COORDINATES)==0) havetexture=false; - if (!havetexture) LOG("FLEXBODY Warning: at least one part of this mesh does not have texture coordinates, switching off texturing!"); - if (!havetexture) {havetangents=false;haveblend=false;}; //we can't do this + hastexture=true; + if (msh->sharedVertexData && msh->sharedVertexData->vertexDeclaration->findElementBySemantic(VES_TEXTURE_COORDINATES)==0) hastexture=false; + for (int i=0; i<msh->getNumSubMeshes(); i++) if (!msh->getSubMesh(i)->useSharedVertices && msh->getSubMesh(i)->vertexData->vertexDeclaration->findElementBySemantic(VES_TEXTURE_COORDINATES)==0) hastexture=false; + if (!hastexture) LOG("FLEXBODY Warning: at least one part of this mesh does not have texture coordinates, switching off texturing!"); + if (!hastexture) {hastangents=false;hasblend=false;}; //we can't do this //detect the anomalous case where a mesh is exported without normal vectors bool havenormal=true; @@ -167,9 +170,9 @@ VertexDeclaration* optimalVD=HardwareBufferManager::getSingleton().createVertexDeclaration(); optimalVD->addElement(0, 0, VET_FLOAT3, VES_POSITION); optimalVD->addElement(1, 0, VET_FLOAT3, VES_NORMAL); - if (haveblend) optimalVD->addElement(2, 0, VET_COLOUR_ARGB, VES_DIFFUSE); - if (havetexture) optimalVD->addElement(3, 0, VET_FLOAT2, VES_TEXTURE_COORDINATES); - if (havetangents) optimalVD->addElement(4, 0, VET_FLOAT3, VES_TANGENT); + if (hasblend) optimalVD->addElement(2, 0, VET_COLOUR_ARGB, VES_DIFFUSE); + if (hastexture) optimalVD->addElement(3, 0, VET_FLOAT2, VES_TEXTURE_COORDINATES); + if (hastangents) optimalVD->addElement(4, 0, VET_FLOAT3, VES_TANGENT); optimalVD->sort(); optimalVD->closeGapsInSource(); @@ -181,7 +184,7 @@ //printMeshInfo(ent->getMesh().getPointer()); //adding color buffers, well get the reference later - if (haveblend) + if (hasblend) { if (msh->sharedVertexData) { @@ -212,7 +215,7 @@ } //tangents for envmapping - if (havetangents) + if (hastangents) { LOG("FLEXBODY preparing for tangents"); unsigned short srcTex, destTex; @@ -285,7 +288,7 @@ dstpos=(Vector3*)malloc(sizeof(Vector3)*vertex_count); srcnormals=(Vector3*)malloc(sizeof(Vector3)*vertex_count); dstnormals=(Vector3*)malloc(sizeof(Vector3)*vertex_count); - if (haveblend) + if (hasblend) { srccolors=(ARGB*)malloc(sizeof(ARGB)*vertex_count); for (int i=0; i<(int)vertex_count; i++) srccolors[i]=0x00000000; @@ -307,7 +310,7 @@ sharednbuf->readData(0, msh->sharedVertexData->vertexCount*sizeof(Vector3), (void*)npt); npt+=msh->sharedVertexData->vertexCount; //colors - if (haveblend) + if (hasblend) { source=msh->sharedVertexData->vertexDeclaration->findElementBySemantic(VES_DIFFUSE)->getSource(); sharedcbuf=msh->sharedVertexData->vertexBufferBinding->getBuffer(source); @@ -329,7 +332,7 @@ subnbufs[cursubmesh]->readData(0, msh->getSubMesh(i)->vertexData->vertexCount*sizeof(Vector3), (void*)npt); npt+=msh->getSubMesh(i)->vertexData->vertexCount; //colors - if (haveblend) + if (hasblend) { source=msh->getSubMesh(i)->vertexData->vertexDeclaration->findElementBySemantic(VES_DIFFUSE)->getSource(); subcbufs[cursubmesh]=msh->getSubMesh(i)->vertexData->vertexBufferBinding->getBuffer(source); @@ -399,7 +402,8 @@ if (minnode==-1) LOG("FLEXBODY ERROR on mesh "+String(meshname)+": VY node not found"); locs[i].ny=minnode; nodes[minnode].iIsSkin=true; -/* + +#if 0 //search the final close, orthogonal node as the Z vector mindist=100000.0; minnode=-1; @@ -432,7 +436,8 @@ locs[i].nz=locs[i].ny; locs[i].ny=t; } -*/ +#endif // 0 + Vector3 vz=(nodes[locs[i].nx].smoothpos-nodes[locs[i].ref].smoothpos).crossProduct(nodes[locs[i].ny].smoothpos-nodes[locs[i].ref].smoothpos); vz.normalise(); Matrix3 mat; @@ -449,10 +454,10 @@ } //shadow - if (haveshadows) + if (hasshadows) { LOG("FLEXBODY preparing for shadow volume"); - msh->prepareForShadowVolume(); //we do this always so we have only one datastructure format to manage + msh->prepareForShadowVolume(); // we do this always so we have only one data structure format to manage msh->buildEdgeList(); } @@ -503,7 +508,6 @@ } #endif //0 - for (int i=0; i<(int)vertex_count; i++) { Vector3 vz=(nodes[locs[i].nx].smoothpos-nodes[locs[i].ref].smoothpos).crossProduct(nodes[locs[i].ny].smoothpos-nodes[locs[i].ref].smoothpos); @@ -519,9 +523,7 @@ srcnormals[i]=mat*(orientation*srcnormals[i]); } - LOG("FLEXBODY ready"); - } void FlexBody::setEnabled(bool e) @@ -603,7 +605,7 @@ { if(faulty) return Vector3::ZERO; if(!enabled) return Vector3::ZERO; - if (haveblend) updateBlend(); + if (hasblend) updateBlend(); //compute the local center Vector3 normal; @@ -661,7 +663,7 @@ void FlexBody::reset() { if(faulty) return; - if (haveblend) + if (hasblend) { for (int i=0; i<(int)vertex_count; i++) srccolors[i]=0x00000000; writeBlend(); @@ -671,7 +673,7 @@ void FlexBody::writeBlend() { if(!enabled) return; - if (!haveblend) return; + if (!hasblend) return; ARGB *cpt=srccolors; if (hasshared) { Modified: trunk/source/main/physics/flex/FlexBody.h =================================================================== --- trunk/source/main/physics/flex/FlexBody.h 2012-05-09 00:02:48 UTC (rev 2529) +++ trunk/source/main/physics/flex/FlexBody.h 2012-05-09 00:09:21 UTC (rev 2530) @@ -81,10 +81,10 @@ bool enabled; bool hasshared; - bool haveshadows; - bool havetangents; - bool havetexture; - bool haveblend; + bool hasshadows; + bool hastangents; + bool hastexture; + bool hasblend; bool faulty; Ogre::MeshPtr msh; @@ -102,7 +102,7 @@ void writeBlend(); Ogre::SceneNode *getSceneNode() { return snode; }; - int flexBodyCameraMode; + int cameramode; void setEnabled(bool e); }; Modified: trunk/source/main/physics/input_output/SerializedRig.cpp =================================================================== --- trunk/source/main/physics/input_output/SerializedRig.cpp 2012-05-09 00:02:48 UTC (rev 2529) +++ trunk/source/main/physics/input_output/SerializedRig.cpp 2012-05-09 00:09:21 UTC (rev 2530) @@ -30,16 +30,20 @@ #include "Console.h" #include "Differentials.h" #include "FlexAirfoil.h" +#include "FlexBody.h" #include "FlexMesh.h" #include "FlexMeshWheel.h" #include "FlexObj.h" #include "InputEngine.h" #include "JSON.h" +#include "MaterialReplacer.h" #include "MeshObject.h" #include "RoRFrameListener.h" #include "RoRVersion.h" #include "ScopeLog.h" #include "screwprop.h" +#include "Settings.h" +#include "skin.h" #include "SlideNode.h" #include "SoundScriptManager.h" #include "TorqueCurve.h" @@ -48,9 +52,6 @@ #include "utils.h" #include "vidcam.h" -// TODO: Not really needed for truck loading, or used very rarely -#include "FlexBody.h" - using namespace Ogre; // important: keep this in sync with TRUCK_SECTIONS enum as we iterate through this until we reach BTS_END @@ -924,7 +925,7 @@ // always use the last flexbody FlexBody *flex = flexbodies[free_flexbody-1]; - if(flex) flex->flexBodyCameraMode = pmode; + if(flex) flex->cameramode = pmode; continue; } Modified: trunk/source/main/utils/MeshObject.cpp =================================================================== --- trunk/source/main/utils/MeshObject.cpp 2012-05-09 00:02:48 UTC (rev 2529) +++ trunk/source/main/utils/MeshObject.cpp 2012-05-09 00:09:21 UTC (rev 2530) @@ -20,7 +20,12 @@ // created by Thomas Fischer thomas{AT}thomasfischer{DOT}biz, 1st of May 2010 #include "MeshObject.h" + +#include "materialFunctionMapper.h" +#include "MaterialReplacer.h" #include "Ogre.h" +#include "Settings.h" +#include "skin.h" using namespace Ogre; @@ -111,9 +116,6 @@ sceneNode->setVisible(b); } - - - void MeshObject::postProcess() { loaded=true; Modified: trunk/source/main/utils/MeshObject.h =================================================================== --- trunk/source/main/utils/MeshObject.h 2012-05-09 00:02:48 UTC (rev 2529) +++ trunk/source/main/utils/MeshObject.h 2012-05-09 00:09:21 UTC (rev 2530) @@ -20,17 +20,12 @@ // created by Thomas Fischer thomas{AT}thomasfischer{DOT}biz, 1st of May 2010 -#ifndef MESHOBJECT_H__ -#define MESHOBJECT_H__ +#ifndef __MeshObject_H_ +#define __MeshObject_H_ #include "RoRPrerequisites.h" #include "Ogre.h" -#include "materialFunctionMapper.h" -#include "MaterialReplacer.h" -#include "Settings.h" -#include "skin.h" - class MeshObject : public Ogre::ResourceBackgroundQueue::Listener, public Ogre::Resource::Listener { public: @@ -78,4 +73,4 @@ void unloadingComplete(Ogre::Resource *r); }; -#endif //MESHOBJECT_H__ +#endif // __MeshObject_H_ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Rigsofrods-devel mailing list Rigsofrods-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel