Changeset 2123 for GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader
- Timestamp:
- 02/17/07 22:48:12 (18 years ago)
- Location:
- GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/include/ObjManualMeshLoader.h
r2111 r2123 2 2 #define __ObjManualMeshLoader_H__ 3 3 4 #include "Ogre.h" 4 5 5 #include "Ogre.h" 6 #include "ObjMeshData.h" 7 6 namespace GtpVisibilityPreprocessor { 7 class BvhLeaf; 8 } 8 9 9 10 class __declspec(dllexport) ObjManualMeshLoader: public Ogre::ManualResourceLoader 10 11 { 11 public: 12 ObjManualMeshLoader(); 13 ObjManualMeshLoader(ObjMeshData *mData); 14 ~ObjManualMeshLoader(); 12 public: 13 ObjManualMeshLoader(GtpVisibilityPreprocessor::BvhLeaf *obj); 14 ~ObjManualMeshLoader(); 15 15 16 16 void loadResource(Ogre::Resource *resource); 17 17 18 Ogre::AxisAlignedBox *getBoundingBox(); 19 private: 20 ObjMeshData *data; 18 protected: 21 19 20 GtpVisibilityPreprocessor::BvhLeaf *mObject; 22 21 }; 23 22 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/include/ObjReader.h
r2122 r2123 7 7 #include "Containers.h" 8 8 9 namespace GtpVisibilityPreprocessor { 10 class Intersectable; 11 } 9 12 10 13 class __declspec(dllexport) ObjReader … … 14 17 ~ObjReader(); 15 18 16 bool LoadFile(const st ring &sceneName,17 const st ring &visibilitySolution,19 bool LoadFile(const std::string &sceneName, 20 const std::string &visibilitySolution, 18 21 Ogre::SceneNode *root); 19 22 void dummy(); 23 Ogre::Entity * dummy2(const std::string &name, 24 GtpVisibilityPreprocessor::Intersectable *object); 20 25 Ogre::Entity *CreateEntity(const std::string &name, 21 26 GtpVisibilityPreprocessor::Intersectable *object); … … 25 30 26 31 Ogre::SceneManager *mSceneManager; 32 GtpVisibilityPreprocessor::ObjectContainer mPvsObjects; 27 33 }; 28 34 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjManualMeshLoader.cpp
r2111 r2123 1 1 #include "ObjManualMeshLoader.h" 2 #include "ObjReader.h" 2 #include "Triangle3.h" 3 #include "IntersectableWrapper.h" 4 #include "BvHierarchy.h" 5 #include "OgreLogManager.h" 3 6 4 ObjManualMeshLoader::ObjManualMeshLoader() 5 { 6 data = NULL; 7 } 7 #define USE_HBL_DISCARD 1 8 8 9 10 ObjManualMeshLoader::ObjManualMeshLoader(ObjMeshData *mData): 11 data(mData) 9 ObjManualMeshLoader::ObjManualMeshLoader(GtpVisibilityPreprocessor::BvhLeaf *obj): 10 mObject(obj) 12 11 { 13 12 } … … 16 15 ObjManualMeshLoader::~ObjManualMeshLoader() 17 16 { 18 if (data != NULL)19 {20 data->collapse();21 delete data;22 }23 }24 25 26 Ogre::AxisAlignedBox *ObjManualMeshLoader::getBoundingBox()27 {28 return data->boundingBox;29 17 } 30 18 … … 33 21 { 34 22 using namespace Ogre; 35 Mesh *pMesh = (Mesh *) resource;36 23 24 Mesh *mesh = (Mesh *) resource; 25 SubMesh* submesh = mesh->createSubMesh(); 37 26 38 Vector3 translation = data->boundingBox->getCenter(); 27 const int triCount = (int)mObject->mObjects.size(); 28 const int vertexCount = triCount * 3; 39 29 40 bool nOk = ((data->normals != NULL) && (data->ncnt > 0)); 41 bool tOk = ((data->texCoords != NULL) && (data->tcnt > 0)); 42 43 pMesh->sharedVertexData = new VertexData(); 30 // We must create the vertex data, indicating how many vertices there will be 31 submesh->useSharedVertices = false; 32 submesh->vertexData = new VertexData(); 33 submesh->vertexData->vertexStart = 0; 34 submesh->vertexData->vertexCount = vertexCount; 44 35 45 VertexDeclaration* vertexDecl = pMesh->sharedVertexData->vertexDeclaration; 36 static const unsigned short source = 0; 37 size_t offset = 0; 46 38 47 size_t currOffset = 0; 48 vertexDecl->addElement(0, currOffset, VET_FLOAT3, VES_POSITION); 49 currOffset += VertexElement::getTypeSize(VET_FLOAT3); 50 if (nOk) 39 // We must now declare what the vertex data contains 40 VertexDeclaration* declaration = submesh->vertexData->vertexDeclaration; 41 42 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_POSITION).getSize(); 43 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_NORMAL).getSize(); 44 //offset += declaration->addElement(source, offset, VET_FLOAT2,VES_TEXTURE_COORDINATES).getSize(); 45 46 HardwareVertexBufferSharedPtr vbuffer = HardwareBufferManager::getSingleton(). 47 createVertexBuffer(declaration->getVertexSize(source), 48 submesh->vertexData->vertexCount, 49 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 50 51 // we get access to the buffer to fill it. During so we record the bounding box. 52 AxisAlignedBox aabox; 53 54 submesh->vertexData->vertexBufferBinding->setBinding(source, vbuffer); 55 #if USE_HBL_DISCARD 56 float* vdata = static_cast<float*>(vbuffer->lock(HardwareBuffer::HBL_DISCARD)); 57 #else 58 float* vdata = static_cast<float *>(vbuffer->lock(HardwareBuffer::HBL_NORMAL)); 59 #endif 60 61 GtpVisibilityPreprocessor::ObjectContainer:: 62 const_iterator oit, oit_end = mObject->mObjects.end(); 63 64 for (oit = mObject->mObjects.begin(); oit != oit_end; ++ oit) 51 65 { 52 vertexDecl->addElement(0, currOffset, VET_FLOAT3, VES_NORMAL); 53 currOffset += VertexElement::getTypeSize(VET_FLOAT3); 54 } 55 if (tOk) 56 { 57 vertexDecl->addElement(0, currOffset, VET_FLOAT2, VES_TEXTURE_COORDINATES); 58 currOffset += VertexElement::getTypeSize(VET_FLOAT2); 59 } 66 GtpVisibilityPreprocessor::TriangleIntersectable *tObj = 67 static_cast<GtpVisibilityPreprocessor::TriangleIntersectable *>(*oit); 68 69 const GtpVisibilityPreprocessor::Triangle3 tri = tObj->GetItem(); 70 const GtpVisibilityPreprocessor::Vector3 n = tri.GetNormal(); 60 71 61 pMesh->sharedVertexData->vertexCount = data->vcnt/3; 62 HardwareVertexBufferSharedPtr vbuf = 63 HardwareBufferManager::getSingleton(). 64 createVertexBuffer(vertexDecl->getVertexSize(0), pMesh->sharedVertexData->vertexCount, 65 HardwareBuffer::HBU_STATIC_WRITE_ONLY, false); 72 for (int i = 0; i < 3; ++ i) 73 { 74 Vector3 vtx(tri.mVertices[i].x, tri.mVertices[i].y, tri.mVertices[i].z); 75 76 *(vdata ++) = vtx.x; 77 *(vdata ++) = vtx.y; 78 *(vdata ++) = vtx.z; 66 79 67 VertexBufferBinding* binding = pMesh->sharedVertexData->vertexBufferBinding; 68 binding->setBinding(0, vbuf); 80 *(vdata ++) = n.x; 81 *(vdata ++) = n.y; 82 *(vdata ++) = n.z; 69 83 70 Real* pVertices = static_cast<Real*>(vbuf->lock(HardwareBuffer::HBL_DISCARD)); 71 72 int offset = 0, size = 3; 73 if (nOk) size += 3; 74 if (tOk) size += 2; 75 for (int i=0; i<data->vcnt/3; i++) 76 { 77 pVertices[i*size] = data->vertices[i*3] - translation.x; 78 pVertices[i*size+1] = data->vertices[i*3+1] - translation.y; 79 pVertices[i*size+2] = data->vertices[i*3+2] - translation.z; 80 81 offset = 3; 82 if (nOk) 83 { 84 pVertices[i*size+offset] = data->normals[i*3]; offset++; 85 pVertices[i*size+offset] = data->normals[i*3+1]; offset++; 86 pVertices[i*size+offset] = data->normals[i*3+2]; offset++; 87 } 88 if (tOk) 89 { 90 pVertices[i*size+offset] = data->texCoords[i*2]; offset++; 91 pVertices[i*size+offset] = -data->texCoords[i*2+1]; offset++; 84 aabox.merge(vtx); 92 85 } 93 86 } 94 87 95 vbuf->unlock(); 88 vbuffer->unlock(); 89 90 #if 0 91 RenderOperation rop; 92 submesh->_getRenderOperation(rop); 93 rop.useIndexes = false; 94 #endif 95 ////// 96 //-- Creates the index data 97 98 const int indexCount = vertexCount; 99 submesh->indexData->indexStart = 0; 100 submesh->operationType = RenderOperation::OT_TRIANGLE_LIST; 101 102 // we use an index for every vertex 103 submesh->indexData->indexCount = indexCount; 104 submesh->indexData->indexBuffer = 105 HardwareBufferManager::getSingleton(). 106 createIndexBuffer(HardwareIndexBuffer::IT_16BIT, 107 submesh->indexData->indexCount, 108 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 109 110 #if USE_HBL_DISCARD 111 uint16* idata = static_cast<uint16 *>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 112 #else 113 uint16* idata = static_cast<uint16 *>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_NORMAL)); 114 #endif 115 for (int j = 0; j < indexCount; ++ j) 116 { 117 idata[j] = j; 118 } 119 120 submesh->indexData->indexBuffer->unlock(); 121 submesh->setMaterialName("BaseWhite"); 122 123 // indicate the bounding box 124 mesh->_setBounds(aabox); 125 mesh->_setBoundingSphereRadius((aabox.getMaximum() - aabox.getMinimum()).length() / 2.0); 126 } 96 127 97 128 98 SubMesh *pSub = pMesh->createSubMesh();99 pSub->operationType = RenderOperation::OT_TRIANGLE_LIST; //;data->roType;100 pSub->useSharedVertices = true;101 129 102 pSub->indexData->indexCount = data->icnt;103 pSub->indexData->indexBuffer = HardwareBufferManager::getSingleton().104 createIndexBuffer(HardwareIndexBuffer::IT_16BIT,105 pSub->indexData->indexCount, HardwareBuffer::HBU_STATIC_WRITE_ONLY, false);106 107 HardwareIndexBufferSharedPtr ibuf = pSub->indexData->indexBuffer;108 unsigned short* pIndices = static_cast<unsigned short*>(ibuf->lock(HardwareBuffer::HBL_DISCARD));109 110 for (i = 0; i < data->icnt; i++) pIndices[i] = data->indices[i];111 112 ibuf->unlock();113 114 AxisAlignedBox bb(data->boundingBox->getMinimum() - translation, data->boundingBox->getMaximum() - translation);115 //AxisAlignedBox bb(data->boundingBox->getMinimum(), data->boundingBox->getMaximum());116 pMesh->_setBounds(bb);117 Real radius = data->boundingBox->getMinimum().length();118 if (data->boundingBox->getMaximum().length() > radius) radius = data->boundingBox->getMaximum().length();119 pMesh->_setBoundingSphereRadius(radius);120 121 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.cpp
r2122 r2123 8 8 #include "PreprocessorFactory.h" 9 9 #include "OgreLogManager.h" 10 #include "ObjManualMeshLoader.h" 10 11 11 12 … … 17 18 18 19 ObjReader::~ObjReader() 19 {} 20 { 21 CLEAR_CONTAINER(mPvsObjects); 22 } 20 23 21 24 … … 31 34 // hack 32 35 preprocessor->mLoadMeshes = false; 33 GtpVisibilityPreprocessor::ObjectContainer pvsObjects;34 36 35 Ogre::LogManager::getSingleton().logMessage("loading obj scene !!");37 Ogre::LogManager::getSingleton().logMessage("loading obj scene"); 36 38 37 39 if (preprocessor->LoadScene(sceneName)) … … 39 41 Ogre::LogManager::getSingleton().logMessage("scene loaded, loading objects"); 40 42 // form objects from the scene triangles 41 if (!preprocessor->LoadObjects(visibilitySolution, pvsObjects, preprocessor->mObjects))43 if (!preprocessor->LoadObjects(visibilitySolution, mPvsObjects, preprocessor->mObjects)) 42 44 { 43 45 Ogre::LogManager::getSingleton().logMessage("objects cannot be loaded"); … … 52 54 53 55 std::stringstream d; 54 d << "successfully loaded " << pvsObjects.size() << " objects from " << preprocessor->mObjects.size() << " preprocessor objects";56 d << "successfully loaded " << mPvsObjects.size() << " objects from " << preprocessor->mObjects.size() << " preprocessor objects"; 55 57 56 58 Ogre::LogManager::getSingleton().logMessage(d.str()); 57 59 58 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = pvsObjects.end();60 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = mPvsObjects.end(); 59 61 60 62 int i = 0; 61 for (oit = pvsObjects.begin(); oit != oit_end; ++ oit, ++ i)63 for (oit = mPvsObjects.begin(); oit != oit_end; ++ oit, ++ i) 62 64 { 63 Ogre::LogManager::getSingleton().logMessage("r"); 65 if (i % 5000 == 4999) 66 { 67 d << i << " objects created" << endl; 68 } 69 64 70 const Ogre::String entname = "Object" + Ogre::StringConverter::toString(i); 65 71 66 Ogre::ManualObject *ent = CreateEntity(entname, *oit); 72 #if 0 73 Ogre::ManualObject *ent = CreateManualObject(entname, *oit); 74 #else 75 Ogre::Entity *ent = CreateEntity(entname, *oit); 76 #endif 67 77 68 78 const Ogre::String nodeName = entname + "Node"; … … 70 80 node->attachObject(ent); 71 81 72 if (i > 100)73 82 // problems for too many objects (= vbo)? 83 //if (i > 30000)break; 74 84 } 75 85 … … 89 99 std::string entityName = name + "Entity"; 90 100 91 GtpVisibilityPreprocessor::BvhLeaf *bvhObj =101 GtpVisibilityPreprocessor::BvhLeaf *bvhObj = 92 102 static_cast<GtpVisibilityPreprocessor::BvhLeaf *>(object); 103 93 104 const int vertexCount = (int)bvhObj->mObjects.size() * 3; 94 105 95 106 ManualObject* manual = mSceneManager->createManualObject(entityName); 96 manual->begin("BaseWhite NoLighting", RenderOperation::OT_LINE_STRIP);107 manual->begin("BaseWhite", RenderOperation::OT_TRIANGLE_LIST); 97 108 109 const float red = GtpVisibilityPreprocessor::Random(1.0f); 110 const float green = GtpVisibilityPreprocessor::Random(1.0f); 111 const float blue = GtpVisibilityPreprocessor::Random(1.0f); 112 98 113 // create vertices 99 100 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit,oit_end = bvhObj->mObjects.end();114 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, 115 oit_end = bvhObj->mObjects.end(); 101 116 102 117 for (oit = bvhObj->mObjects.begin(); oit != oit_end; ++ oit) … … 110 125 { 111 126 const GtpVisibilityPreprocessor::Vector3 vtx = tri.mVertices[i]; 127 const GtpVisibilityPreprocessor::Vector3 n = tri.GetNormal(); 128 112 129 manual->position(vtx.x, vtx.y, vtx.z); 113 manual->colour(1.0f, 0.0f, 0.0f); 130 manual->normal(n.x, n.y, n.z); 131 //manual->colour(red, green, blue); 114 132 } 115 133 } 116 134 135 if (0) 117 136 for (int i = 0; i < vertexCount; ++ i) 118 137 { 119 138 manual->index(i); 120 139 } 140 141 manual->end(); 121 142 122 143 return manual; … … 137 158 std::string entityName = name + "Entity"; 138 159 139 MeshPtr mesh = MeshManager::getSingleton().createManual(meshName, "Custom"); 140 SubMesh* submesh = mesh->createSubMesh(); 160 ObjManualMeshLoader *loader = new ObjManualMeshLoader(bvhObj); 141 161 142 const int vertexCount = (int)bvhObj->mObjects.size() * 3; 143 144 // We must create the vertex data, indicating how many vertices there will be 145 submesh->useSharedVertices = false; 146 submesh->vertexData = new VertexData(); 147 submesh->vertexData->vertexStart = 0; 148 submesh->vertexData->vertexCount = vertexCount; 149 150 std::stringstream d; d << "objects: " << bvhObj->mObjects.size() << " vtx: " << submesh->vertexData->vertexCount << endl; 151 Ogre::LogManager::getSingleton().logMessage(d.str()); 152 153 static const unsigned short source = 0; 154 size_t offset = 0; 155 156 VertexDeclaration* declaration = HardwareBufferManager::getSingleton().createVertexDeclaration(); 157 158 offset += declaration->addElement(source, offset, VET_FLOAT3, VES_POSITION).getSize(); 159 //offset += declaration->addElement(source, offset, VET_FLOAT3,VES_NORMAL).getSize(); 160 //offset += declaration->addElement(source, offset, VET_FLOAT2,VES_TEXTURE_COORDINATES).getSize(); 161 162 163 int numVertices = 0; 164 165 HardwareVertexBufferSharedPtr vbuffer = HardwareBufferManager::getSingleton(). 166 createVertexBuffer(declaration->getVertexSize(source), 167 submesh->vertexData->vertexCount, 168 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 169 170 // No we get access to the buffer to fill it. During so we record the bounding box. 171 AxisAlignedBox aabox; 172 173 float* vdata = static_cast<float*>(vbuffer->lock(HardwareBuffer::HBL_DISCARD)); 174 175 GtpVisibilityPreprocessor::ObjectContainer::const_iterator oit, oit_end = bvhObj->mObjects.end(); 176 177 for (oit = bvhObj->mObjects.begin(); oit != oit_end; ++ oit) 178 { 179 GtpVisibilityPreprocessor::TriangleIntersectable *tObj = 180 static_cast<GtpVisibilityPreprocessor::TriangleIntersectable *>(*oit); 181 182 GtpVisibilityPreprocessor::Triangle3 tri = tObj->GetItem(); 183 184 for (int i = 0; i < 3; ++ i) 185 { 186 Vector3 vtx = Vector3(tri.mVertices[i]); 187 188 *vdata ++ = vtx.x; 189 *vdata ++ = vtx.y; 190 *vdata ++ = vtx.z; 191 192 //std::stringstream d; d << vtx; 193 //Ogre::LogManager::getSingleton().logMessage(d.str()); 194 aabox.merge(vtx); 195 } 196 } 197 //Ogre::LogManager::getSingleton().logMessage("***"); 198 vbuffer->unlock(); 199 200 /*Ogre::RenderOperation rop; 201 submesh->_getRenderOperation(rop); 202 rop.useIndexes = false; 203 */ 204 ////// 205 //-- Creates the index data 206 207 submesh->vertexData->vertexBufferBinding->setBinding(source, vbuffer); 208 209 submesh->indexData->indexStart = 0; 210 // we use an index for every vertex 211 submesh->indexData->indexCount = vertexCount; 212 submesh->indexData->indexBuffer = 213 HardwareBufferManager::getSingleton(). 214 createIndexBuffer(HardwareIndexBuffer::IT_16BIT, 215 submesh->indexData->indexCount, 216 HardwareBuffer::HBU_STATIC_WRITE_ONLY); 217 submesh->operationType = RenderOperation::OT_LINE_STRIP; 218 //uint16* idata = static_cast<uint16*>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 219 unsigned short* idata = static_cast<unsigned short*>(submesh->indexData->indexBuffer->lock(HardwareBuffer::HBL_DISCARD)); 220 221 for (int j = 0; j < vertexCount; ++ j) 222 { 223 *idata = j; 224 ++ idata; 225 } 226 227 submesh->indexData->indexBuffer->unlock(); 228 229 submesh->setMaterialName("BaseWhiteNoLighting"); 230 231 // We must indicate the bounding box 232 mesh->_setBounds(aabox); 233 mesh->_setBoundingSphereRadius((aabox.getMaximum() - aabox.getMinimum()).length() / 2.0); 234 mesh->load(); 235 mesh->touch(); 162 Mesh* pMesh = MeshManager::getSingleton().createManual(meshName, "ObjGroup", loader).getPointer(); 163 pMesh->load(); 236 164 237 165 // Create an entity with the mesh 238 166 entity = mSceneManager->createEntity(entityName, meshName); 239 167 240 //entity->setRenderQueueGroup(Ogre::RENDER_QUEUE_MAIN); 168 return entity; 169 } 241 170 242 return entity;243 #endif244 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj
r2122 r2123 20 20 Name="VCCLCompilerTool" 21 21 Optimization="0" 22 AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include "22 AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include;..\..\..\Preprocessing\src" 23 23 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE" 24 24 MinimalRebuild="TRUE" 25 25 BasicRuntimeChecks="3" 26 RuntimeLibrary=" 1"27 UsePrecompiledHeader="0" 28 WarningLevel="3" 29 Detect64BitPortabilityProblems="TRUE" 30 DebugInformationFormat="3"/> 31 <Tool 32 Name="VCCustomBuildTool"/> 33 <Tool 34 Name="VCLinkerTool" 35 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib "36 OutputFile="$(OutDir)/ObjReader.dll" 37 LinkIncremental="1" 38 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\..\GtpVisibility\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)" "26 RuntimeLibrary="3" 27 UsePrecompiledHeader="0" 28 WarningLevel="3" 29 Detect64BitPortabilityProblems="TRUE" 30 DebugInformationFormat="3"/> 31 <Tool 32 Name="VCCustomBuildTool"/> 33 <Tool 34 Name="VCLinkerTool" 35 AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib Preprocessor.lib xerces-c_2.lib zdll.lib zziplibd.lib" 36 OutputFile="$(OutDir)/ObjReader.dll" 37 LinkIncremental="1" 38 AdditionalLibraryDirectories=""$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib";"..\..\GtpVisibility\lib\$(ConfigurationName)";"..\..\lib\$(ConfigurationName)";"..\lib\$(ConfigurationName)";"$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)";"..\..\..\Preprocessing\lib\$(ConfigurationName)";..\..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib" 39 39 GenerateDebugInformation="TRUE" 40 40 ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb" … … 73 73 Name="VCCLCompilerTool" 74 74 AdditionalIncludeDirectories=""$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include;..\..\..\Preprocessing\src" 75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE 1;USE_VERBOSE_PVS"75 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 76 76 RuntimeLibrary="2" 77 77 UsePrecompiledHeader="0" … … 339 339 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> 340 340 <File 341 RelativePath=".\ObjManualMeshLoader.cpp"> 342 </File> 343 <File 341 344 RelativePath="..\src\ObjReader.cpp"> 342 345 </File> 343 <Filter 344 Name="Header Files" 345 Filter="h;hpp;hxx;hm;inl;inc;xsd" 346 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> 347 <File 348 RelativePath="..\include\ObjReader.h"> 349 </File> 350 </Filter> 346 </Filter> 347 <Filter 348 Name="Header Files" 349 Filter="h;hpp;hxx;hm;inl;inc;xsd" 350 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> 351 <File 352 RelativePath="..\include\ObjManualMeshLoader.h"> 353 </File> 354 <File 355 RelativePath="..\include\ObjReader.h"> 356 </File> 351 357 </Filter> 352 358 </Files>
Note: See TracChangeset
for help on using the changeset viewer.