class ExpressionNS::Muscle |
This class is the abstract base class that defines the interface for the animated muscles and channels.
ExpMeshAdapter* | mesh pointer to the mesh interface that the muscle minipulates |
std::string | name name of the muscle |
virtual void | ActivateMuscle (const float val) Contracts the muscle val ranges from 00 to infinity |
virtual void | Draw (bool selected) Draws the muscle with Opengl commands |
This class is the abstract base class that defines the interface for the animated muscles and channels. Java dudes might be familiar with the interface concept. Most of the muscles have very similar activities, I choose not to build a deeper class hierarchy around the code, due to fact that most real-time guys cringe at the some of the of the abstractions that I chosen to implement here. (see the mesh adapter for a good example of that)Hopefully I've struck a decent balance between flexibility and speed. The most commonly used muscle is the linear muscle. More specialized is the limited muscle, used around the upper and lower lip. The limited muscle adds a path traversal algorithm to inside/outside test so that the lower lip doesn't get tagged with the upper lip and visa versa. The Eye and Circular muscles are currently the same code. The str (striated) is a linear muscle with a zeroed out x component to simulate the forehead. The cheek muscle deforms along the vertex normasl out based on the distance to the center of the muscle, still a little flaky. The head muscle is currently not used but was meant as a complement to the limited muscle.
Alphabetic index HTML hierarchy of classes or Java