|
From: <dom...@us...> - 2012-07-31 13:20:54
|
Revision: 38602
http://crystal.svn.sourceforge.net/crystal/?rev=38602&view=rev
Author: dominikseifert
Date: 2012-07-31 13:20:43 +0000 (Tue, 31 Jul 2012)
Log Message:
-----------
- adjusted portal room to be more like the original, however the warp still moves slightly with the camera
Modified Paths:
--------------
CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_app.cpp
CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_statics.cpp
CS/branches/soc2012/physics/include/ivaria/collisionscommon.h
Modified: CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_app.cpp
===================================================================
--- CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_app.cpp 2012-07-31 13:16:21 UTC (rev 38601)
+++ CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_app.cpp 2012-07-31 13:20:43 UTC (rev 38602)
@@ -15,22 +15,21 @@
PhysDemo::PhysDemo()
: DemoApplication ("CrystalSpace.PhysTut2"),
- isSoftBodyWorld (true),
- defaultEnvironmentName("terrain"),
- //defaultEnvironmentName("portals"),
- do_bullet_debug (false),
+ isSoftBodyWorld (true), solver (0), do_bullet_debug (false),
do_soft_debug (false), remainingStepDuration (0.0f), allStatic (false),
pauseDynamic (false), dynamicStepFactor (1.0f),
debugMode (DEBUG_COLLIDERS),
- actorAirControl(.3f),
+ dragging (false), softDragging (false),
moveSpeed(7.f),
turnSpeed(2.f),
- //physicalCameraMode (ACTOR_KINEMATIC),
- physicalCameraMode (ACTOR_DYNAMIC),
- camFollowMode(CamFollowMode1stPerson),
selectedItem(nullptr),
- dragging (false),
- softDragging (false)
+ actorAirControl(.3f),
+ camFollowMode(CamFollowMode1stPerson),
+ //physicalCameraMode (ACTOR_KINEMATIC)
+ physicalCameraMode (ACTOR_DYNAMIC)
+ ,
+ //defaultEnvironmentName("terrain")
+ defaultEnvironmentName("portals")
{
}
@@ -354,7 +353,6 @@
factory->SetAirControlFactor(actorAirControl);
factory->SetJumpSpeed(moveSpeed);
- //iCollisionSystem* colSys = physicalSystem;
kinematicActor = factory->CreateCollisionActor();
}
@@ -453,7 +451,6 @@
csArray<CollisionData> collisions;
physicalSector->CollisionTest(obj, collisions);
- //int objBeneathCount = 0;
for (size_t i = 0; i < collisions.GetSize (); ++i)
{
CollisionData& coll = collisions[i];
Modified: CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_statics.cpp
===================================================================
--- CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_statics.cpp 2012-07-31 13:16:21 UTC (rev 38601)
+++ CS/branches/soc2012/physics/apps/tutorial/phystut2/demo_statics.cpp 2012-07-31 13:20:43 UTC (rev 38602)
@@ -97,7 +97,8 @@
// Portal parameters
csScalar portalEpsilon = csScalar(0.01);
- csVector2 halfPortalExtents(1, 2); // a portal has width = 2, height = 4
+ //csVector2 halfPortalExtents(1, 2); // a portal has width = 2, height = 4
+ csVector2 halfPortalExtents(1);
csMatrix3 rotation = csZRotMatrix3 (HALF_PI); // the rotation between the two
@@ -181,13 +182,22 @@
portal2->GetFlags().Set (CS_PORTAL_ZFILL);
portal2->GetFlags().Set (CS_PORTAL_CLIPDEST);
- csOrthoTransform portal1Warp(portal2Trans.GetInverse() * portal1Trans);
- csOrthoTransform portal2Warp(portal1Trans.GetInverse() * portal2Trans);
+ //csOrthoTransform portal1Warp(portal2Trans.GetInverse() * portal1Trans);
+ //csOrthoTransform portal2Warp(portal1Trans.GetInverse() * portal2Trans);
- portal1Warp.SetT2O(portal1Warp.GetT2O() * csXRotMatrix3(PI) * csYRotMatrix3(PI));
+ //portal1Warp.SetT2O(portal1Warp.GetT2O() * csXRotMatrix3(PI) * csYRotMatrix3(PI));
//portal1Warp.SetT2O(portal1Warp.GetT2O() * csZRotMatrix3(PI));
- portal2Warp.SetT2O(portal2Warp.GetT2O() * csYRotMatrix3(PI) * csZRotMatrix3(PI));
+ //portal2Warp.SetT2O(portal2Warp.GetT2O() * csYRotMatrix3(PI) * csZRotMatrix3(PI));
+ // distance between the two portals
+ csVector3 portalDist(portal2Trans.GetOrigin() - portal1Trans.GetOrigin());
+
+ csOrthoTransform portal1Warp(csYRotMatrix3 (-PI * 0.5f) * csZRotMatrix3 (PI * 0.5f),
+ csVector3 (-portalDist.y, -portalDist.z, -portalDist.x));
+
+ csOrthoTransform portal2Warp(csZRotMatrix3 (-PI * 0.5f) * csYRotMatrix3 (PI * 0.5f),
+ csVector3 (portalDist.z, portalDist.x, portalDist.y));
+
portal1->SetWarp (portal1Warp);
portal2->SetWarp (portal2Warp);
Modified: CS/branches/soc2012/physics/include/ivaria/collisionscommon.h
===================================================================
--- CS/branches/soc2012/physics/include/ivaria/collisionscommon.h 2012-07-31 13:16:21 UTC (rev 38601)
+++ CS/branches/soc2012/physics/include/ivaria/collisionscommon.h 2012-07-31 13:20:43 UTC (rev 38602)
@@ -42,25 +42,6 @@
/// 2D horizontal components of the given 3D vector
#define HORIZONTAL_COMPONENT(vec3) csVector2((vec3).x, (vec3).z);
-/**
- * Very ugly and inefficient work-around to easily cast between two known-to-be-compatible types
- */
-template<typename T, typename T2>
-inline csPtr<T> DowncastPtr(csPtr<T2> ptr)
-{
- return csRef<T2>(ptr);
-}
-template<typename T, typename T2>
-inline csPtr<T> DowncastPtr(csRef<T2> ptr)
-{
- return csPtr<T>(csRef<T>(ptr));
-}
-template<typename T, typename T2>
-inline csPtr<T> DowncastPtr(T2* ptr)
-{
- return DowncastPtr<T, T2>(csRef<T2>(ptr));
-}
-
struct iTerrainSystem;
struct iSector;
struct iMeshWrapper;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|