51class REveTransMover :
public TTimer {
53 std::vector<REveElement*> fEls;
58 REveTransMover(std::vector<REveElement *> els,
Long_t ms) :
TTimer(ms,
kTRUE), fEls(std::move(els)) {}
64 for (
size_t i = 0; i < fEls.size(); ++i) {
66 square_pos(0.02 * fStep + i, 40,
x,
y);
69 fEls[i]->SetTransMatrix(t.Array());
82 b->SetMainTransparency(0);
85 b->SetVertex(0, -
a, -
a, z -
a);
b->SetVertex(1, -
a,
a, z -
a);
86 b->SetVertex(2,
a,
a, z -
a);
b->SetVertex(3,
a, -
a, z -
a);
87 b->SetVertex(4, -
a, -
a, z +
a);
b->SetVertex(5, -
a,
a, z +
a);
88 b->SetVertex(6,
a,
a, z +
a);
b->SetVertex(7,
a, -
a, z +
a);
96 auto eveMng = REveManager::Create();
97 eveMng->AllowMultipleRemoteConnections(
false,
false);
99 auto still = make_box(
"Still",
kCyan, 10, 0);
100 eveMng->GetEventScene()->AddElement(still);
103 std::vector<REveElement *> movers;
104 for (
int i = 0; i < 4; ++i) {
105 auto mover = make_box(
Form(
"Mover %d", i), colors[i], 6, 0);
108 mover->InitMainTrans();
109 eveMng->GetEventScene()->AddElement(mover);
110 movers.push_back(mover);
115 auto timer =
new REveTransMover(movers, 200);
bool Bool_t
Boolean (0=false, 1=true) (bool)
int Int_t
Signed integer 4 bytes (int)
short Color_t
Color number (short)
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
float Float_t
Float 4 bytes (float)
double Double_t
Double 8 bytes.
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
3D box with arbitrary vertices (cuboid).
RAII guard for locking Eve manager (ctor) and processing changes (dtor).
REveTrans is a 4x4 transformation matrix for homogeneous coordinates stored internally in a column-ma...
Handles synchronous and a-synchronous timer events.
void Reset()
Reset the timer.
Bool_t Notify() override
Notify when timer times out.
Namespace for ROOT features in testing.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.