From ea09b7b18d2ed2c3da36fc65bb5adb8830f97978 Mon Sep 17 00:00:00 2001 From: openshwprojects Date: Mon, 28 Nov 2022 13:14:23 +0100 Subject: [PATCH] sim: CW and RGB stub shapes --- src/sim/Simulation.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++ src/sim/Simulation.h | 2 ++ 2 files changed, 50 insertions(+) diff --git a/src/sim/Simulation.cpp b/src/sim/Simulation.cpp index b5ba11588..942c25c63 100644 --- a/src/sim/Simulation.cpp +++ b/src/sim/Simulation.cpp @@ -122,6 +122,10 @@ void CSimulation::createDemo() { //addObject(new CObject(new CCircle(800, 500, 100))); CObject *bulb2 = addObject(generateBulb()); bulb2->setPosition(440, 140)->rotateDegreesAroundSelf(90); + + addObject(generateLED_CW())->setPosition(560, 140)->rotateDegreesAroundSelf(90); + addObject(generateLED_RGB())->setPosition(760, 140)->rotateDegreesAroundSelf(90); + addWire(Coord(440, 60), Coord(440, 120)); addWire(Coord(440, 200), Coord(440, 160)); addWire(Coord(440, 200), Coord(380, 200)); @@ -250,6 +254,50 @@ class CObject *CSimulation::generateWB3S() { } return o; } +class CObject *CSimulation::generateLED_CW() { + float bulb_radius = 20.0f; + + CObject *o = new CObject(); + o->addText(-40, -25, "CW"); + //CShape *filler = o->addCircle(0, 0, bulb_radius); + CShape *body = o->addCircle(0, 0, bulb_radius); + //filler->setFill(true); + CJunction *a = o->addJunction(-bulb_radius, 0); + a->addText(-5, -5, ""); + CJunction *b1 = o->addJunction(bulb_radius, 20); + b1->addText(-5, -5, "C"); + CJunction *b2 = o->addJunction(bulb_radius, -20); + b2->addText(-5, -5, "W"); + + //bulb->setShape(filler); + float mul = sqrt(2) * 0.5f; + o->addLine(-bulb_radius * mul, -bulb_radius * mul, bulb_radius * mul, bulb_radius * mul); + o->addLine(-bulb_radius * mul, bulb_radius * mul, bulb_radius * mul, -bulb_radius * mul); + return o; +} +class CObject *CSimulation::generateLED_RGB() { + float bulb_radius = 20.0f; + + CObject *o = new CObject(); + o->addText(-40, -25, "RGB"); + //CShape *filler = o->addCircle(0, 0, bulb_radius); + CShape *body = o->addCircle(0, 0, bulb_radius); + //filler->setFill(true); + CJunction *a = o->addJunction(-bulb_radius, 0); + a->addText(-5, -5, ""); + CJunction *b1 = o->addJunction(bulb_radius, 20); + b1->addText(-5, -5, "R"); + CJunction *b2 = o->addJunction(bulb_radius, 0); + b2->addText(-5, -5, "G"); + CJunction *b3 = o->addJunction(bulb_radius, -20); + b3->addText(-5, -5, "B"); + + //bulb->setShape(filler); + float mul = sqrt(2) * 0.5f; + o->addLine(-bulb_radius * mul, -bulb_radius * mul, bulb_radius * mul, bulb_radius * mul); + o->addLine(-bulb_radius * mul, bulb_radius * mul, bulb_radius * mul, -bulb_radius * mul); + return o; +} class CObject *CSimulation::generateBulb() { float bulb_radius = 20.0f; diff --git a/src/sim/Simulation.h b/src/sim/Simulation.h index bf2302b85..9388aa0b0 100644 --- a/src/sim/Simulation.h +++ b/src/sim/Simulation.h @@ -27,6 +27,8 @@ public: } void recalcBounds(); + class CObject *generateLED_CW(); + class CObject *generateLED_RGB(); class CObject *generateBulb(); class CObject *generateWB3S(); class CObject *generateButton();