Over 100 were fixed by adding ConversionHelper.MathHelper.Convert.
You may want to use implicit type casting if you find the conversions to be all over the place.
For example, you could put this in the BEPUutilities.Vector3 struct:
Code: Select all
public static implicit operator Vector3(Microsoft.Xna.Framework.Vector3 vector)
{
return new Vector3(vector.X, vector.Y, vector.Z);
}
public static implicit operator Microsoft.Xna.Framework.Vector3(Vector3 vector)
{
return new Microsoft.Xna.Framework.Vector3(vector.X, vector.Y, vector.Z);
}
This isn't done out of the box because it would require a reference to every supported math framework within BEPUutilities, but since you've got a fixed target, it could be helpful.
I can't say I like the way the new BEPU is doing the basic types. I would rather have a separate DLL for each fork than having to convert types.
That is how it
currently works. XNA was 'demoted' to a fork, but it's still there (though currently out of date by a couple of months).
That said, it's too much extra work for me to merge changes continuously to all of the forks, so I typically only do it on major releases. In fact, it's tedious enough that I'm probably going to drop my personal management a couple of platforms with the release of v1.3.0. I may drop all of the forks, depending on how things shake out.
I'd much rather focus on the single platform agnostic codebase and have community members help out with any forks they wish to use.
I tried updating only the camera to 1.3 but again it does not render anything and somehow my entire world is marked as being inside the view frustum.
By the way, I generally recommend against linking too deeply to the graphics bits in the demos. They're not made for external re-use like the main engine, and I don't worry about breaking things when I'm fiddling with it. (The BEPUphysicsDrawer, which is meant to be used externally as an optional debug helper, is ideally treated as an unmodifiable black box to avoid running into breaking changes.)
I have fixed the 1.3 camera
The camera is now
safety-fied.
What is LockedUp?
The characters now fully support arbitrary up vectors. In order to demonstrate it effectively, the camera was modified to allow arbitrary up vectors. The name is less clear than it could be, but it's the up vector of the camera that doesn't change as you look around (contrasted with the Camera.WorldMatrix.Up, which does change when you look around). The ViewDirection and LockedUp together uniquely specify a basis for the camera's world/view matrix.
BTW, how far are we from a real release of 1.3?
I initially planned to have it out late spring/early summer of this year. Oops.
While I have a large to-do of things remaining, v1.3.0 is already an enormous update. It's probably larger in net effect than any previous version, as would be expected given the year+ gap since v1.2.0. I could package it right now and it would be plenty good enough to justify the new version label.
It's being continuously delayed for a few reasons:
1) The continued source updates provide the majority of the benefit already. A precompiled 'dependency free' binary isn't really any more useful than the source, and, in many cases, it is actually less useful. The main extra benefit of performing a release, as far as the dependency free code goes, is having a more modern BEPUphysicsDemos downloadable executable.
2) Because the benefit is small, the other stuff I'm working on consistently wins on priority.
3) I'm procrastinating because the release process is very tedious. This is primarily because of the multiple forks I obligated myself to support. If I don't change the way I've been doing it, this release will probably take me a couple of days of solid tedium to get rolled out. That is super duper unappealing and makes me flinch every time I think about it.
Realistically, #3 is probably the biggest effect. #2, while being a good and rational explanation (the other stuff really
is more important), feels like a rationalization. I probably would have ended up releasing v1.3.0 when I got bored on some afternoon if it wasn't so annoying to do.