deactivate timeline
This commit is contained in:
@@ -1749,7 +1749,7 @@ Here's a list of what's available in this release.
|
|||||||
|
|
||||||
<node dir="col" width="1" grow="1">
|
<node dir="col" width="1" grow="1">
|
||||||
<!-- timeline -->
|
<!-- timeline -->
|
||||||
<node width="100%" shrink="1" dir="col" rtl="ltr">
|
<node width="100%" shrink="1" dir="col" rtl="ltr" id="timeline">
|
||||||
<border color=".3 .3 .3 .4" height="50" width="100%" pad="10" dir="row" mouse-capture="true">
|
<border color=".3 .3 .3 .4" height="50" width="100%" pad="10" dir="row" mouse-capture="true">
|
||||||
<text text="Timeline: " margin="8 10 0 0"/>
|
<text text="Timeline: " margin="8 10 0 0"/>
|
||||||
<slider-h id="frames-slider" width="1" grow="1" margin="0 10 0 0"></slider-h>
|
<slider-h id="frames-slider" width="1" grow="1" margin="0 10 0 0"></slider-h>
|
||||||
|
|||||||
@@ -1268,43 +1268,47 @@ void App::initLayout()
|
|||||||
toggle_ui();
|
toggle_ui();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (auto* slider = layout[main_id]->find<NodeSliderH>("frames-slider"))
|
if (auto* timeline = layout[main_id]->find<NodeSliderH>("timeline"))
|
||||||
{
|
{
|
||||||
auto frame_text = layout[main_id]->find<NodeText>("timeline-frame");
|
if (auto * slider = layout[main_id]->find<NodeSliderH>("frames-slider"))
|
||||||
slider->on_value_changed = [this, frame_text](Node*, float value)
|
|
||||||
{
|
{
|
||||||
auto& c = *Canvas::I;
|
auto frame_text = layout[main_id]->find<NodeText>("timeline-frame");
|
||||||
|
slider->on_value_changed = [this, frame_text](Node*, float value)
|
||||||
for (int i = 0; i < c.m_layers.size(); i++)
|
|
||||||
{
|
{
|
||||||
auto l = layers->get_layer_at(i);
|
auto& c = *Canvas::I;
|
||||||
layers->handle_layer_opacity(l, .0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
int current_layer = (int)glm::clamp<int>(
|
for (int i = 0; i < c.m_layers.size(); i++)
|
||||||
floor(value * c.m_layers.size()), 1, (int)c.m_layers.size() - 1);
|
{
|
||||||
auto l = layers->get_layer_at(current_layer);
|
auto l = layers->get_layer_at(i);
|
||||||
layers->handle_layer_selected(l);
|
layers->handle_layer_opacity(l, .0f);
|
||||||
layers->handle_layer_opacity(l, 1.f);
|
}
|
||||||
if (current_layer > 0)
|
|
||||||
{
|
|
||||||
auto l = layers->get_layer_at(current_layer - 1);
|
|
||||||
layers->handle_layer_opacity(l, .25f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// First layer always visible
|
int current_layer = (int)glm::clamp<int>(
|
||||||
{
|
floor(value * c.m_layers.size()), 1, (int)c.m_layers.size() - 1);
|
||||||
auto l = layers->get_layer_at(0);
|
auto l = layers->get_layer_at(current_layer);
|
||||||
layers->handle_layer_opacity(l, 1.0f);
|
layers->handle_layer_selected(l);
|
||||||
}
|
layers->handle_layer_opacity(l, 1.f);
|
||||||
|
if (current_layer > 0)
|
||||||
|
{
|
||||||
|
auto l = layers->get_layer_at(current_layer - 1);
|
||||||
|
layers->handle_layer_opacity(l, .25f);
|
||||||
|
}
|
||||||
|
|
||||||
if (frame_text)
|
// First layer always visible
|
||||||
{
|
{
|
||||||
char str[16];
|
auto l = layers->get_layer_at(0);
|
||||||
snprintf(str, sizeof(str), "%02d", current_layer);
|
layers->handle_layer_opacity(l, 1.0f);
|
||||||
frame_text->set_text(str);
|
}
|
||||||
}
|
|
||||||
};
|
if (frame_text)
|
||||||
|
{
|
||||||
|
char str[16];
|
||||||
|
snprintf(str, sizeof(str), "%02d", current_layer);
|
||||||
|
frame_text->set_text(str);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
timeline->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -139,7 +139,8 @@ void App::vr_analog(const VRController& c, VRController::kButton b, VRController
|
|||||||
|
|
||||||
void App::vr_digital(const VRController& c, VRController::kButton b, VRController::kAction a, glm::vec2 axis)
|
void App::vr_digital(const VRController& c, VRController::kButton b, VRController::kAction a, glm::vec2 axis)
|
||||||
{
|
{
|
||||||
if (b == VRController::kButton::A && a == VRController::kAction::Press)
|
if ((b == VRController::kButton::A || b == VRController::kButton::Menu || b == VRController::kButton::Pad)
|
||||||
|
&& a == VRController::kAction::Press)
|
||||||
{
|
{
|
||||||
if (glm::length(axis) < 0.5f)
|
if (glm::length(axis) < 0.5f)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public:
|
|||||||
glm::vec2 m_tip_scale = { 1.f, 1.f };
|
glm::vec2 m_tip_scale = { 1.f, 1.f };
|
||||||
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
glm::vec2 m_dual_scale = { 1.f, 1.f };
|
||||||
float m_tip_size = 50;
|
float m_tip_size = 50;
|
||||||
float m_tip_spacing = .25;
|
float m_tip_spacing = .05;
|
||||||
float m_tip_flow = 1.f;
|
float m_tip_flow = 1.f;
|
||||||
float m_tip_opacity = 1.f;
|
float m_tip_opacity = 1.f;
|
||||||
float m_tip_angle = 0;
|
float m_tip_angle = 0;
|
||||||
@@ -45,7 +45,7 @@ public:
|
|||||||
bool m_tip_angle_follow = false;
|
bool m_tip_angle_follow = false;
|
||||||
bool m_tip_flow_pressure = false;
|
bool m_tip_flow_pressure = false;
|
||||||
bool m_tip_opacity_pressure = false;
|
bool m_tip_opacity_pressure = false;
|
||||||
bool m_tip_size_pressure = false;
|
bool m_tip_size_pressure = true;
|
||||||
float m_jitter_scale = 0;
|
float m_jitter_scale = 0;
|
||||||
float m_jitter_angle = 0;
|
float m_jitter_angle = 0;
|
||||||
float m_jitter_scatter = 0;
|
float m_jitter_scatter = 0;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
class LayoutManager
|
class LayoutManager
|
||||||
{
|
{
|
||||||
std::map<uint16_t, std::unique_ptr<class Node>> m_layouts;
|
std::map<uint16_t, std::shared_ptr<class Node>> m_layouts;
|
||||||
std::string m_path;
|
std::string m_path;
|
||||||
struct stat m_file_info { 0 };
|
struct stat m_file_info { 0 };
|
||||||
public:
|
public:
|
||||||
@@ -34,6 +34,11 @@ public:
|
|||||||
auto i = m_layouts.find(id);
|
auto i = m_layouts.find(id);
|
||||||
return i == m_layouts.end() ? nullptr : i->second.get();
|
return i == m_layouts.end() ? nullptr : i->second.get();
|
||||||
}
|
}
|
||||||
|
class std::shared_ptr<Node> get_ref(const char* name)
|
||||||
|
{
|
||||||
|
auto i = m_layouts.find(const_hash(name));
|
||||||
|
return i == m_layouts.end() ? nullptr : i->second;
|
||||||
|
}
|
||||||
void restore_context();
|
void restore_context();
|
||||||
void clear_context();
|
void clear_context();
|
||||||
//Node& operator[](const char* ids) { return m_layouts[const_hash(ids)]; }
|
//Node& operator[](const char* ids) { return m_layouts[const_hash(ids)]; }
|
||||||
|
|||||||
Reference in New Issue
Block a user