Skip to content

Commit b742d15

Browse files
authored
Use > to slide faster, < to slow down (#77)
* sliding_step_factor * reset window offset on H/L * remove debug code * readme
1 parent 5100323 commit b742d15

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ The actual file being represented below [is data/BigPictureBG.tga](http://www.do
3131
# Press F for full screen
3232
# Use the arrows to slide and enlarge the sliding window
3333
# Press M to slide the window to the end
34+
# Use > to slide faster, < to slow down
3435
# SPACE to toggle spinning the shape
3536
# Press O to reset the camera position
3637
# ESC to quit

src/Scene3D.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,16 @@ Scene3D::update(std::shared_ptr<Manager> manager, float elapsedTime) {
124124
manager->args()->spin_shape = !manager->args()->spin_shape;
125125
if (events->keyPressed('M'))
126126
manager->args()->move_window = !manager->args()->move_window;
127+
if (events->keyPressed('.')) { // '>'
128+
manager->args()->sliding_step_factor *= 2;
129+
}
130+
if (events->keyPressed(',')) { // '<'
131+
manager->args()->sliding_step_factor /= 2;
132+
if (manager->args()->sliding_step_factor == 0) {
133+
manager->args()->sliding_step_factor = 1;
134+
}
135+
}
136+
127137
if (manager->args()->move_window || selected_.size() == 0 || manager->slide_window()) {
128138
if (manager->args()->move_window)
129139
manager->slide_window_right();

src/include/Arguments.hh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct Arguments {
1313
range_begin(0), range_end(0),
1414
fullscreen(false),
1515
keep_chrome(false),
16-
sliding_window_length(37*1024), sliding_step(1024), move_window(false),
16+
sliding_window_length(37*1024), sliding_step(1024), sliding_step_factor(1), move_window(false),
1717
spin_shape(true)
1818
{}
1919

@@ -29,6 +29,7 @@ struct Arguments {
2929
bool keep_chrome;
3030
size_t sliding_window_length;
3131
size_t sliding_step;
32+
size_t sliding_step_factor;
3233
bool move_window;
3334
bool spin_shape;
3435
};

src/include/Manager.hh

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@ public:
2727

2828
bool loadFile(size_t index);
2929
void loadFile(const std::string& filename);
30-
void loadNextFile() { loadFile((fileIndex_ + 1) % args_->paths.size()); }
31-
void loadPrevFile() { loadFile((fileIndex_ - 1) % args_->paths.size()); }
30+
void loadNextFile() { loadFile((fileIndex_ + 1) % args_->paths.size()); reset_window(); }
31+
void loadPrevFile() { loadFile((fileIndex_ - 1) % args_->paths.size()); reset_window(); }
3232

3333
virtual void toggleFullscreen() = 0;
3434

3535
std::shared_ptr<Arguments> args() const { return args_; }
3636
std::shared_ptr<Scene> scene() const { return scene_; }
3737

38+
void reset_window() { sliding_window_offset_ = 0; }
39+
3840
void slide_window_left() {
3941
sliding_window_offset_ = (sliding_window_offset_ > args_->sliding_step)
40-
? sliding_window_offset_ - args_->sliding_step
42+
? sliding_window_offset_ - args_->sliding_step_factor * args_->sliding_step
4143
: 0;
4244
}
43-
void slide_window_right() { sliding_window_offset_ += args_->sliding_step; }
45+
void slide_window_right() {
46+
sliding_window_offset_ += args_->sliding_step_factor * args_->sliding_step;
47+
}
4448
void slide_window_up() { sliding_window_length_ += args_->sliding_step; }
4549
void slide_window_down() {
4650
sliding_window_length_ = (sliding_window_length_ > args_->sliding_step)

0 commit comments

Comments
 (0)