I think I see the problem: Tug Of War is completely defined in its *.osim file, and so everything about that model is hidden from you in your C++ program. To learn how to edit a model there are two paths you can take: editing the model using the C++ api, or editing the model using the OpenSim GUI + a text editor. You should get familiar with both approaches - they are both useful to know.
--------------------
Path 1: Editing the model using the C++ api
--------------------
1. Start with the `Simple Example' which appears on opensim-core's github page (
https://github.com/opensim-org/opensim-core). This model is a pendulum that is actuated by a single muscle. This model is completely built using the C++ api, and so its much easier to modify it directly.
a. Copy the code for this model from opensim-core's github page and save it to 'simpleExample.cpp' and put this in a folder of your choosing (say `simpleExampleFolder').
b. Follow the instructions in the link below to build the simple example
http://simtk-confluence.stanford.edu:80 ... ep+Example
c. Run it. Make sure that you see the animation of the arm moving before proceeding.
2. To change the FiberForceLengthCurve use the advice offered in my previous post. I suggest adding the code for the FiberForceLengthCurve following the line `muscle->addNewPathPoint("point2", *link2, Vec3(0, 0.7, 0));'
Try this. If you get stuck write back and I'll post a version of this model with the FiberForceLengthCurve modified.
--------------------
Path 2: Editing the model using the GUI & text editing
--------------------
You can also edit the model by editing the text of the *.osim file. Use the guide to below to help you do this:
1. Open tugOfWar_model.osim (I think it's currently in OpenSim/Examples/ExampleMain/OutputReference/ )
2. Search for <ForceSet> - this is where all of the XML for the muscles are defined.
3. Note that currently the muscles used are Thelen2003Muscle. If you search for <max_isometric_force> you will find a block of properties. These are the architectural properties of the muscles (fiber length, tendon slack length, pennation angle, maximum isometric force).
a. If you edit the values of these properties in the *.osim file and save it, the next time you load this file (either from a C++ program or the GUI) your edits will be used.
b. Note: not all of the properties are here. Any property that takes its default value is not written out to the XML file.
4. If you want to change the muscle model,
a. Replace all occurrences of 'Thelen2003Muscle' with 'Millard2012EquilibriumMuscle'.
b. Load the *.osim file using the GUI, or your C++ program, and then save it as 'tugOfWar_upd0.osim'
c. Now open 'tugOfWar_upd.osim' using a text editor and search for <ForceSet> and read down. You should see that all of muscle models have been changed.
5. If you want to write a property of a muscle model that is currently hidden (because it has its default value) to the text file:
a. Open the osim model using the OpenSim GUI
b. Use the Navigator Window to find 'Forces'.
c. Go into forces and find the muscles, and open up the properties for a muscle.
d. Change a property in the FiberForceLengthCurve - now its different from the default.
e. Save the model to 'tugOfWar_upd1.osim'.
f. Open 'tugOfWar_upd1.osim'. Now if you scroll to the XML for the muscle you just edited you should find that there is an addtional block of XML that is related to the FiberForceLengthCurve. You can edit the properties in a text editor and save the file. The next time you load it the curve properties you added will be used.