]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
merged Time
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 3 Jun 2015 12:31:04 +0000 (14:31 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 3 Jun 2015 12:31:04 +0000 (14:31 +0200)
1  2 
Weave/Scene/Scene.cpp
Weave/Scene/Scene.h
Weave/Weave.vcxproj

index f1c521f70a91787876b57d2668ae520059227f80,6f0cfd840b450b8fa32abc7af37a66c810977896..2a6f9702277fa5e65c5c071f912187fc38884dcd
@@@ -40,35 -34,23 +40,38 @@@ viewPort(x, y, width, height, fovy, zNe
  lookat(_lookat),
  move_delta(0)
  {
-       currenttime = 0;
+       currenttime = 0.0f;
+       if (lookat != nullptr)
+               timestamps.push(Timestamp(0.0f, _lookat->getModelMat(), x, lookat->ySpeed));
 +
 +      bt_collision_configuration = new btDefaultCollisionConfiguration();
 +      bt_dispatcher = new btCollisionDispatcher(bt_collision_configuration);
 +
 +      btScalar sscene_size = (btScalar)SCENE_SIZE;
 +      btVector3 worldAabbMin(-sscene_size, -sscene_size, -sscene_size);
 +      btVector3 worldAabbMax(sscene_size, sscene_size, sscene_size);
 +
 +      bt_broadphase = new bt32BitAxisSweep3(worldAabbMin, worldAabbMax, MAX_OBJECTS, 0, true);
 +
 +      bt_collision_world = new btCollisionWorld(bt_dispatcher, bt_broadphase, bt_collision_configuration);
  }
  
  
  Scene::~Scene()
  {
  
 -      for (auto i = SceneObjects.begin(); i != SceneObjects.end(); ++i)
 -      {
 -              delete (*i);
 -      }
 -
 +      //for (auto i = SceneObjects.begin(); i != SceneObjects.end(); ++i)
 +      //{
 +      //      delete (*i);
 +      //}
+       timestamps.empty();
  
-       
 +      //Bullet
 +      delete bt_collision_world;
 +      delete bt_broadphase;
 +      delete bt_dispatcher;
 +      delete bt_collision_configuration;
  
        //if (viewPort != nullptr)
        //      delete viewPort;
@@@ -156,35 -144,16 +165,35 @@@ void Scene::update(float deltaT
                        (*i)->update(deltaT);
                }
  
 +              bt_collision_world->performDiscreteCollisionDetection();
  
 -              for (auto i = SceneObjects.begin(); i != SceneObjects.end(); ++i)
 +
 +              int numManifolds = bt_collision_world->getDispatcher()->getNumManifolds();
 +              //For each contact manifold
 +              for (int i = 0; i < numManifolds; i++) {
 +                      btPersistentManifold* contactManifold = bt_collision_world->getDispatcher()->getManifoldByIndexInternal(i);
 +                      btCollisionObject* obA = const_cast<btCollisionObject*>(contactManifold->getBody0());
 +                      btCollisionObject* obB = const_cast<btCollisionObject*>(contactManifold->getBody1());
 +                      contactManifold->refreshContactPoints(obA->getWorldTransform(), obB->getWorldTransform());
 +
 +                      if (contactManifold->getNumContacts()>0)
-                       {
+               {
 -                      auto j = i;
 -                      for (j++; j != SceneObjects.end(); ++j)
 -                      {
 -                              SceneObject::checkCollision(*i, *j);
 +                              ((SceneObject*)obA->getUserPointer())->collides((SceneObject*)obB->getUserPointer(), contactManifold);
 +                              ((SceneObject*)obB->getUserPointer())->collides((SceneObject*)obA->getUserPointer(), contactManifold);
                        }
 +
 +
                }
  
 +              //for (auto i = SceneObjects.begin(); i != SceneObjects.end(); ++i)
 +              //{
 +              //      auto j = i;
 +              //      for (j++; j != SceneObjects.end(); ++j)
 +              //      {
 +              //              SceneObject::checkCollision(*i, *j);
 +              //      }
 +              //}
 +
        }
        else
        {
index 7950188c5b7025a8c4415f0b23cda30fbbd91184,b5a564466551f690c5bae6b72896da985a5fc8a9..c7c7540391571ed0b2d885e350c4ed7acc0d918e
@@@ -44,18 -44,5 +45,19 @@@ protected
        float move_delta;
  
        float currenttime;
-       std::stack<mat4> PlayerModels;
+       std::stack<Timestamp> timestamps;
++      //std::stack<mat4> PlayerModels;
 +      //std::stack<vec3> PlayerDirections;
 +
 +      //class btDefaultCollisionConfiguration;
 +      //class btCollisionDispatcher;
 +      //class btDbvtBroadphase;
 +      //class btSequentialImpulseConstraintSolver;
 +      //class btDiscreteDynamicsWorld;
 +
 +      //Bullet
 +      btCollisionConfiguration* bt_collision_configuration;
 +      btCollisionDispatcher* bt_dispatcher;
 +      btBroadphaseInterface* bt_broadphase;
 +      btCollisionWorld* bt_collision_world;
  };
index ea01bb7b3b1061b300843a28267900646aa70a72,9539f8d680d9b10df7f49c5a3f1506c46b52784d..2f7d3c89a04a79c990be6e22b2be8af2d40760a5
      <ClInclude Include="Graphix\ViewPort.h" />
      <ClInclude Include="Message.h" />
      <ClInclude Include="Scene\Sky.h" />
+     <ClInclude Include="Scene\Timestamp.h" />
    </ItemGroup>
 +  <ItemGroup>
 +    <ProjectReference Include="..\res\bullet3-2.83.4\build3\vs2010\BulletCollision.vcxproj">
 +      <Project>{b7c1909f-731f-be49-a926-fadfe6036dce}</Project>
 +      <Private>false</Private>
 +      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
 +      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
 +      <LinkLibraryDependencies>true</LinkLibraryDependencies>
 +      <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
 +    </ProjectReference>
 +    <ProjectReference Include="..\res\bullet3-2.83.4\build3\vs2010\BulletDynamics.vcxproj">
 +      <Project>{84f7995b-36f8-cc4a-97be-14f4cd664d9c}</Project>
 +      <Private>false</Private>
 +      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
 +      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
 +      <LinkLibraryDependencies>true</LinkLibraryDependencies>
 +      <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
 +    </ProjectReference>
 +    <ProjectReference Include="..\res\bullet3-2.83.4\build3\vs2010\LinearMath.vcxproj">
 +      <Project>{0993e55f-a581-ad41-9a80-9901730a0240}</Project>
 +      <Private>false</Private>
 +      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
 +      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
 +      <LinkLibraryDependencies>true</LinkLibraryDependencies>
 +      <UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
 +    </ProjectReference>
 +  </ItemGroup>
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
    <ImportGroup Label="ExtensionTargets">
    </ImportGroup>