blob: 485133784bdc18f9315db3f7cc6a598e88b4f3cb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#ifndef DANCE_APP_H_
#define DANCE_APP_H_
#include <mingfx.h>
#include "animated_character.h"
#include <string>
#include <vector>
/** DanceApp extends GraphicsApp to implement the dancing ants assignment. */
class DanceApp : public GraphicsApp {
public:
DanceApp();
virtual ~DanceApp();
/// The OnMotion*BtnPressed() callbacks are called when the user clicks the
/// corresponding button in the GUI.
void OnMotion1BtnPressed();
void OnMotion2BtnPressed();
void OnMotion3BtnPressed();
void OnMotion4BtnPressed();
void OnMotion5BtnPressed();
/// You can think of playing back mocap data as a form of simulation. This
/// gets called once per frame and passes the elapsed time since the last
/// frame, so this is exactly the right place to advance the mocap playback.
void UpdateSimulation(double dt);
/// Used to initialize the on-screen GUI elements
void InitNanoGUI();
/// Used to initialize opengl-based graphics elements
void InitOpenGL();
/// This is the place to draw the actual animated characters based upon their
/// current poses.
void DrawUsingOpenGL();
private:
// The pair of ants dancing the salsa
AnimatedCharacter salsa_ant_male_;
AnimatedCharacter salsa_ant_female_;
// This transform is applied to both the salsa ants, it just shifts them to
// the right a bit so that the ballet ant can have some space on the dance
// floor too
Matrix4 salsa_ants_transform_;
// The ballet dancing ant
AnimatedCharacter ballet_ant_;
// Shifts the ballet dancing ant to the left a bit
Matrix4 ballet_ant_transform_;
// Motion clips loaded from disk for the ballet ant -- one for the base loop
// to use which she is resting and then 5 "special motions" that can be
// applied with the press of a button.
MotionClip ballet_base_loop_;
MotionClip ballet_special1_;
MotionClip ballet_special2_;
MotionClip ballet_special3_;
MotionClip ballet_special4_;
MotionClip ballet_special5_;
// A list of paths to search for data files (images and shaders)
std::vector<std::string> searchPath_;
// Define the camera
Matrix4 viewMatrix_;
Matrix4 projMatrix_;
// For drawing the floor, etc.
QuickShapes quick_shapes_;
// Textures for the background image and floor
Texture2D bg_tex_;
Texture2D floor_tex_;
};
#endif
|