18 using namespace ROOT::Experimental;
23 REveRenderData::REveRenderData(
const std::string &func,
int size_vert,
int size_norm,
int size_idx) :
26 Reserve(size_vert, size_norm, size_idx);
32 void REveRenderData::Reserve(
int size_vert,
int size_norm,
int size_idx)
35 fVertexBuffer.reserve(size_vert);
37 fNormalBuffer.reserve(size_norm);
39 fIndexBuffer.reserve(size_idx);
45 int REveRenderData::Write(
char *msg,
int maxlen)
47 static const REveException eh(
"REveRenderData::Write ");
51 auto append = [&](
void *buf,
int len) {
52 if (off + len > maxlen)
53 throw eh +
"output buffer does not have enough memory";
54 memcpy(msg + off, buf, len);
59 append(&fMatrix[0], fMatrix.size() *
sizeof(float));
61 if (!fVertexBuffer.empty())
62 append(&fVertexBuffer[0], fVertexBuffer.size() *
sizeof(float));
64 if (!fNormalBuffer.empty())
65 append(&fNormalBuffer[0], fNormalBuffer.size() *
sizeof(float));
67 if (!fIndexBuffer.empty())
68 append(&fIndexBuffer[0], fIndexBuffer.size() *
sizeof(int));
76 void REveRenderData::SetMatrix(
const double *arr)
79 for (
int i = 0; i < 16; ++i) {
80 fMatrix.push_back(arr[i]);