Values and indicators match now

This commit is contained in:
Sebastian
2024-12-28 01:02:29 +01:00
parent 9e9c32bff4
commit 0e6f2c7256
2 changed files with 21 additions and 17 deletions
+1 -1
View File
@@ -76,7 +76,7 @@ namespace VISEQ::GRAPH::NODES {
float orbit_5 = orbit_4 + 30.0f;
midiNoteHandles.emplace_back(std::make_shared<NodeHandle<int>>(midiNote.note, position, VS_COLOR_GREEN, "NOTE", orbit_5, 12));
midiNoteHandles.emplace_back(std::make_shared<NodeHandle<int>>(midiNote.channel, position, VS_COLOR_PINK, "CHANNEL", orbit_1, 1, 1, 16, 40, 150));
midiNoteHandles.emplace_back(std::make_shared<NodeHandle<int>>(midiNote.channel, position, VS_COLOR_PINK, "CHANNEL", orbit_1, 16, 1, 16, 40, 150));
midiNoteHandles.emplace_back(std::make_shared<NodeHandle<int>>(midiNote.gate, position, VS_COLOR_RED, "GATE", orbit_3, 30, 10, 30000, 40, 300));
midiNoteHandles.emplace_back(std::make_shared<NodeHandle<int>>(midiNote.velocity, position, VS_COLOR_PURPLE, "VELOCITY", orbit_4, 32));
+20 -16
View File
@@ -43,6 +43,8 @@ namespace VISEQ::GRAPH::NODES{
int steps = 1;
float angle_g = 0;
float angle_start = 0;
Vec2Df minP;
Vec2Df maxP;
@@ -62,13 +64,18 @@ namespace VISEQ::GRAPH::NODES{
}
virtual void drag(Vec2Df mouse_pos) override {
float range = maxValue - minValue;
float stepping = 360 / range;
if(KEYS_DOWN.shift) stepping = steps;
float angle = Vector2Angle((SCREEN_MOUSE - parentPosition), Vector2(0,1)) * RAD2DEG;
float stepped_angle = (round(angle / stepping) * stepping) * DEG2RAD;
//position = parentPosition.orbitAlongVector(SCREEN_MOUSE, orbit) - parentPosition;
position = parentPosition.orbitAtAngle(orbit, stepped_angle) - parentPosition;
float range = (maxValue - minValue) + 1;
float stepping = 360.0f / range;
if(KEYS_DOWN.shift) stepping = 360.0f/steps;
float angle = Vector2Angle((SCREEN_MOUSE - parentPosition), Vector2(0,1)) * RAD2DEG;
if(KEYS_PRESSED.ctrl) angle_start = angle;
if(KEYS_DOWN.ctrl) angle = angle_start + (angle - angle_start) / 10;
float stepped_angle = (round(angle / stepping) * stepping) * DEG2RAD;
position = parentPosition.orbitAtAngle(orbit, stepped_angle) - parentPosition;
}
void lock(){
@@ -86,10 +93,11 @@ namespace VISEQ::GRAPH::NODES{
}
void updateAssignedValue(){
//T value = (T)Remap((float)(parentPosition + position).dist(parentPosition), minDistance, maxDistance, minValue, maxValue);
float angle = 360 - (Vector2Angle(position, Vector2(0,1)) * RAD2DEG + 180);
float range = (maxValue - minValue) + 1;
float stepping = 360.0f / range;
angle_g = angle;
T value = (T)Remap(angle, 0, 360, minValue, maxValue);
T value = (T)Remap(angle, 0, 359 - stepping, minValue, maxValue);
assignedValueRef = value;
}
@@ -118,14 +126,10 @@ namespace VISEQ::GRAPH::NODES{
Color dcol = ColorBrightness(col, -0.5f);
Color dyncol = show ? col : dcol;
//DrawLineV(minP, maxP, dcol);
//DrawLineV(parentPosition, minP, VS_COLOR_LIGHTGREY);
//DrawCircleV(minP, 3.0f, dyncol);
//DrawCircleV(maxP, 3.0f, dyncol);
if(steps > 0){
for(int i = 0; i < 360; i += steps){
Vec2Df pos = parentPosition.orbitAtAngle(orbit, DEG2RAD * i);
Vec2Df pos1 = parentPosition.orbitAtAngle(orbit - 4.0f, DEG2RAD * i);
for(int i = 0; i < steps; i++){
Vec2Df pos = parentPosition.orbitAtAngle(orbit, DEG2RAD * i * (360.0f/steps));
Vec2Df pos1 = parentPosition.orbitAtAngle(orbit - 2.0f, DEG2RAD * i * (360.0f/steps));
//DrawCircleV(pos, 1.0f, dyncol);
DrawLineV(pos, pos1, dyncol);
}