NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
AppContactCables.cpp
Go to the documentation of this file.
1 /*
2 * Copyright © 2012, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
4 * All rights reserved.
5 *
6 * The NASA Tensegrity Robotics Toolkit (NTRT) v1 platform is licensed
7 * under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
15 * either express or implied. See the License for the specific language
16 * governing permissions and limitations under the License.
17 */
25 // This application
26 #include "ContactCableDemo.h"
27 // This library
30 #include "core/tgModel.h"
31 #include "core/tgSimViewGraphics.h"
32 #include "core/tgSimulation.h"
33 #include "core/tgWorld.h"
34 #include "tgcreator/tgUtil.h"
35 
36 // The Bullet Physics Library
37 #include "LinearMath/btVector3.h"
38 #include "LinearMath/btQuaternion.h"
39 // The C++ Standard Library
40 #include <iostream>
47 int main(int argc, char** argv)
48 {
49 
50  std::cout << "AppMuscleNPTest" << std::endl;
51 
52  // First create the ground and world. Specify ground rotation in radians
53  tgEmptyGround* ground = new tgEmptyGround();
54 
55  const tgWorld::Config config(0.0); // gravity, cm/sec^2
56  tgWorld world(config, ground);
57 
58  // Second create the view
59  const double timestep_physics = 1.0/500.0; // seconds
60  const double timestep_graphics = 1.f/120.f; // seconds
61  tgSimViewGraphics view(world, timestep_physics, timestep_graphics);
62 
63  // Third create the simulation
64  tgSimulation simulation(view);
65 
66  // Fourth create the models with their controllers and add the models to the
67  // simulation
68  ContactCableDemo* const myModel = new ContactCableDemo();
69  // Add the model to the world
70  simulation.addModel(myModel);
71 
72  double energyStart = myModel->getEnergy();
73  btVector3 momentumStart = myModel->getMomentum();
74  btVector3 velocityStart = myModel->getVelocityOfBody(2);
75 
76  simulation.run(4000);
77  simulation.reset();
78 
79  double energyEnd = myModel->getEnergy();
80  btVector3 momentumEnd = myModel->getMomentum();
81  btVector3 velocityEnd = myModel->getVelocityOfBody(2);
82 
83  return 0;
84 }
virtual btVector3 getMomentum() const
int main(int argc, char **argv)
virtual double getEnergy() const
void addModel(tgModel *pModel)
Contains the definition of class tgSimulation.
Contains the definition of class tgModel.
Contains the definition of class tgSimViewGraphics.
Contains the definition of class tgWorld $Id$.
void run() const
Contains the definition of class tgBoxGround.
Rand seeding simular to the evolution and terrain classes.
Contains the definition of class tgEmptyGround.
For testing MuscleNP contacts.