Remove `mjWARN_VGEOMFULL, handle visual geom buffer full warnings in mjvScene`.

PiperOrigin-RevId: 896483023
Change-Id: I6dde2c20d8e8e229cf95e1f002dd10525d3376e6
This commit is contained in:
Yuval Tassa
2026-04-08 07:15:59 -07:00
committed by Copybara-Service
parent 5a2cc6cee3
commit 0e04436d51
17 changed files with 47 additions and 53 deletions
+8 -8
View File
@@ -2142,11 +2142,7 @@ void Simulate::Sync(bool state_only) {
m_->stat = m_passive_->stat;
}
// synchronize number of mjWARN_VGEOMFULL warnings
if (d_passive_->warning[mjWARN_VGEOMFULL].number > warn_vgeomfull_prev_) {
d_->warning[mjWARN_VGEOMFULL].number +=
d_passive_->warning[mjWARN_VGEOMFULL].number - warn_vgeomfull_prev_;
}
}
if (pending_.save_xml) {
@@ -2334,7 +2330,7 @@ void Simulate::Sync(bool state_only) {
mjopt_prev_ = m_passive_->opt;
mjvis_prev_ = m_passive_->vis;
mjstat_prev_ = m_passive_->stat;
warn_vgeomfull_prev_ = d_passive_->warning[mjWARN_VGEOMFULL].number;
}
// update settings
@@ -2550,7 +2546,7 @@ void Simulate::LoadOnRenderThread() {
mjopt_prev_ = m_->opt;
opt_prev_ = opt;
cam_prev_ = cam;
warn_vgeomfull_prev_ = d_->warning[mjWARN_VGEOMFULL].number;
// full copy on init
m_passive_ = mj_copyModel(nullptr, m_);
@@ -3022,7 +3018,11 @@ void Simulate::RenderLoop() {
int nusergeom = user_scn_geoms_.size();
int ngeom = std::min(nusergeom, this->scn.maxgeom - this->scn.ngeom);
if (ngeom < nusergeom) {
mj_warning(d_passive_, mjWARN_VGEOMFULL, this->scn.maxgeom);
if (!this->scn.status) {
mju_warning("Pre-allocated visual geom buffer is full. "
"Increase maxgeom above %d.", this->scn.maxgeom);
this->scn.status = 1;
}
}
std::memcpy(this->scn.geoms + this->scn.ngeom, user_scn_geoms_.data(),
ngeom * sizeof(mjvGeom));