Skip to content

Commit 966a872

Browse files
aljalinev
authored andcommitted
Set External Bounding Box
1 parent 430e7a2 commit 966a872

3 files changed

Lines changed: 33 additions & 3 deletions

File tree

graf3d/eve7/src/REveBoxSet.cxx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,9 @@ Int_t REveBoxSet::WriteCoreJson(nlohmann::json &j, Int_t rnr_offset)
381381

382382
void REveBoxSet::BuildRenderData()
383383
{
384+
if (fPlex.Size() == 0)
385+
return;
386+
384387
fRenderData = std::make_unique<REveRenderData>("makeBoxSet", fPlex.Size() * 24, 0, fPlex.Size());
385388

386389
REveChunkManager::iterator bi(fPlex);
@@ -407,6 +410,14 @@ void REveBoxSet::BuildRenderData()
407410
// printf(" >>> resize render data %d \n", 4 * fTexX * fTexY);
408411
fRenderData->ResizeV(4 * fTexX * fTexY);
409412
}
413+
414+
// save bbox in render data normals
415+
ComputeBBox();
416+
float* bb = GetBBox();
417+
fRenderData->PushN(bb[0], bb[1], bb[2]);
418+
fRenderData->PushN(bb[3], bb[4], bb[5]);
419+
420+
REveElement::BuildRenderData();
410421
}
411422

412423
////////////////////////////////////////////////////////////////////////////////

graf3d/eve7/src/REvePointSet.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,16 +239,24 @@ void REvePointSet::BuildRenderData()
239239
if (fSize > 0)
240240
{
241241
if (gEve->IsRCore()) {
242-
fRenderData = std::make_unique<REveRenderData>("makeHit", 4*fTexX*fTexY);
242+
fRenderData = std::make_unique<REveRenderData>("makeHit", 4*fTexX*fTexY, 6);
243243
for (int i = 0; i < fSize; ++i) {
244244
fRenderData->PushV(&fPoints[i].fX, 3);
245245
fRenderData->PushV(0);
246246
}
247247
fRenderData->ResizeV(4*fTexX*fTexY);
248+
249+
// save bbox in render data normals
250+
ComputeBBox();
251+
float* bb = GetBBox();
252+
fRenderData->PushN(bb[0], bb[1], bb[2]);
253+
fRenderData->PushN(bb[3], bb[4], bb[5]);
248254
} else {
249255
fRenderData = std::make_unique<REveRenderData>("makeHit", 3*fSize);
250256
fRenderData->PushV(&fPoints[0].fX, 3*fSize);
251257
}
258+
259+
REveElement::BuildRenderData();
252260
}
253261
}
254262

ui5/eve7/lib/EveElementsRCore.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,10 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager)
885885
rnr_data.vtxBuff, hit.fTexX, hit.fTexY,
886886
txName);
887887

888+
// bounding box
889+
let bb = rnr_data.nrmBuff;
890+
s.geometry.setExternalBoundingBox(new RC.Box3(new RC.Vector3(bb[0], bb[2], bb[4]), new RC.Vector3(bb[1], bb[3], bb[5])));
891+
888892
this.RcPickable(hit, s);
889893

890894
return s;
@@ -1251,10 +1255,17 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager)
12511255
{
12521256
if (this.TestRnr("boxset", boxset, rnr_data)) return null;
12531257
// use instancing if texture coordinates
1258+
let mesh;
12541259
if (boxset.instanced === true)
1255-
return this.makeBoxSetInstanced(boxset, rnr_data);
1260+
mesh = this.makeBoxSetInstanced(boxset, rnr_data);
12561261
else
1257-
return this.makeFreeBoxSet(boxset, rnr_data);
1262+
mesh = this.makeFreeBoxSet(boxset, rnr_data);
1263+
1264+
// bounding box
1265+
let bb = rnr_data.nrmBuff;
1266+
mesh.geometry.setExternalBoundingBox(new RC.Box3(new RC.Vector3(bb[0], bb[2], bb[4]), new RC.Vector3(bb[1], bb[3], bb[5])));
1267+
1268+
return mesh;
12581269
}
12591270

12601271
makeFreeBoxSet(boxset, rnr_data)

0 commit comments

Comments
 (0)