When using GCC or Clang, use C++11 by default.
Merge pull request #126 from chrisdembia/patch-1

When using GCC or Clang, use C++11 by default.
RE-engineered the time stepper and impulse solvers to apply expansion impulses inside the solver rather than externally in the time stepper. That allows the expansions to be applied gradually over the PLUS sliding intervals, with the correct effect on stiction limits.

Very lightly tested!
Fix for gcc.
Use CMake modules to find BLAS and LAPACK
Disable Visualizer compilation if dependencies are not found
- Fixed bug in handling of sequential induced impacts when using Newton restitution.
- Added missing setters and getters for various SemiExplicitEulerTimeStepper options.
- Some progress towards implementation of simultaneous and limited-induced-impact options.
Quick fix: disable find_package() of BLAS and LAPACK for Windows
Merge pull request #127 from elen4/improveCMake

Improve dependencies handling through CMake
Merge branch 'master' of https://github.com/simbody/simbody
- Implemented bilateral position projection (the default), with unilateral & no projection as options.
- Made position projection unconditional (not sure this is a good idea but seems to help in tests so far).
- Added solveBilateral() to ImpulseSolver interface to support bilateral position projection and implemented PGS-style (iterative) and PLUS-style (direct) versions.
- Improved documentation.
- Added convergence test to Newton iteration so that it can quickly detect failure to solve inconsistent equations rather than thrash.
- Fixed bug in PLUS: was looking at all sliding directions to determine step size but should have only looked at active ones.
- Cleaned up impact loop by separating the non-iterative Simultaneous mode from the interative Sequential and Mixed modes.
- Fixed bugs associated with proper classification of participating constraints in some circumstances.
- Made some minor tweaks to the RigidContact1 test program.
- Added ConstantCoordinate Constraint (a position-level mobility lock).
- Added HardStopLower and HardStopUpper unilateral contact constraints that use ConstantCoordinate as their underlying Constraint.
- Modified RigidContact1 to add stops to the Pencil example and left it set to run that way.
- Implemented unilateral contact sign convention (needed since upper/lower stops have opposite conventions).
- Fixed equation documentation in the PLUS solver.
- Modified Constraint so that it can be marked "conditional", for use by conditional constraint-aware solvers (not currently in use).
- Add missing virtual destructor to ImpulseSolver class (thanks, @chrisdembia).
Fix bug in optimizer test suite nlpqlp (for loop limit was too big). This was detected by gcc's aggressive loop optimization when it tried to unroll the loop and found itself off the end of an array. This fixes issue #128 reported by @scpeters.
Merge pull request #129 from simbody/fixCompilerWarning-issue128

Fix bug in optimizer test suite nlpqlp (for loop limit was too big).
Add missing virtual destructor and some comments.
Merge branch 'rigidContact' of https://github.com/simbody/simbody
- Fixed constraint sign convention-related bugs in position projection.
- Preallocate some temps in the PLUS solver to avoid heap activity.
- Added code to get the velocity-level solver to produce acceleration-level values such as reaction forces and body accelerations. Issue: reaction forces are somewhat incorrect since they are saved mid-step but then finally evaluated after position changes.
- Minor comment tweaking here and there.
Turn off unconditional debug messages in PGS solver.
 * removed MobilizedBody references in favor of new handle in ConditionalConstraint.h.
 * Made SemiExplicitEulerTimeStepper API more like the Integrator (should derive from the Integrator).
 * Update RigidContact1.cpp example to match API change above.
Changed handling of impact defaults in SemiExplicitEulerTimeStepper. The default now is that the capture, minCOR, and friction transition velocities all default to twice the constraint tolerance. This way by default you get exactly the COR you asked for, rather than the fancier velocity-scaled one. That should only be used if requested because, for example, it is confusing to see a non-zero COR when you set the COR to zero.