Add visualisation groups to skins.
PiperOrigin-RevId: 458441645 Change-Id: I14324e8efda5142b2718a5cc9215228c7556dbf7
This commit is contained in:
committed by
Copybara-Service
parent
040deb161f
commit
2d0995b47c
@@ -67,6 +67,7 @@ mjCComposite::mjCComposite(void) {
|
||||
mjuu_setvec(skinrgba, 1, 1, 1, 1);
|
||||
skininflate = 0;
|
||||
skinsubgrid = 0;
|
||||
skingroup = 0;
|
||||
|
||||
// clear add flags
|
||||
for (int i=0; i<mjNCOMPKINDS; i++) {
|
||||
@@ -1053,6 +1054,7 @@ void mjCComposite::MakeSkin2(mjCModel* model) {
|
||||
skin->material = skinmaterial;
|
||||
mjuu_copyvec(skin->rgba, skinrgba, 4);
|
||||
skin->inflate = skininflate;
|
||||
skin->group = skingroup;
|
||||
|
||||
// populate mesh: two sides
|
||||
for (int i=0; i<2; i++) {
|
||||
@@ -1473,6 +1475,7 @@ void mjCComposite::MakeSkin2Subgrid(mjCModel* model) {
|
||||
skin->material = skinmaterial;
|
||||
mjuu_copyvec(skin->rgba, skinrgba, 4);
|
||||
skin->inflate = skininflate;
|
||||
skin->group = skingroup;
|
||||
|
||||
// populate mesh: two sides
|
||||
mjtNum S = spacing/(1+skinsubgrid);
|
||||
@@ -1643,6 +1646,7 @@ void mjCComposite::MakeSkin3(mjCModel* model) {
|
||||
skin->material = skinmaterial;
|
||||
mjuu_copyvec(skin->rgba, skinrgba, 4);
|
||||
skin->inflate = skininflate;
|
||||
skin->group = skingroup;
|
||||
|
||||
// box
|
||||
if (type==mjCOMPTYPE_BOX) {
|
||||
|
||||
@@ -94,6 +94,7 @@ class mjCComposite {
|
||||
float skinrgba[4]; // skin rgba
|
||||
float skininflate; // inflate skin
|
||||
int skinsubgrid; // number of skin subgrid points; 0: none (2D only)
|
||||
int skingroup; // skin group of the composite object
|
||||
|
||||
// element options
|
||||
bool add[mjNCOMPKINDS]; // add element
|
||||
|
||||
@@ -1408,6 +1408,7 @@ mjCSkin::mjCSkin(mjCModel* _model) {
|
||||
rgba[0] = rgba[1] = rgba[2] = 0.5f;
|
||||
rgba[3] = 1.0f;
|
||||
inflate = 0;
|
||||
group = 0;
|
||||
|
||||
vert.clear();
|
||||
texcoord.clear();
|
||||
@@ -1530,7 +1531,6 @@ void mjCSkin::Compile(const mjVFS* vfs) {
|
||||
throw mjCError(this, "unkown material '%s' in skin", material.c_str());
|
||||
}
|
||||
|
||||
|
||||
// set total vertex weights to 0
|
||||
vector<float> vw;
|
||||
size_t nvert = vert.size()/3;
|
||||
|
||||
@@ -1628,6 +1628,7 @@ void mjCModel::CopyObjects(mjModel* m) {
|
||||
// set fields
|
||||
m->skin_matid[i] = psk->matid;
|
||||
copyvec(m->skin_rgba+4*i, psk->rgba, 4);
|
||||
m->skin_group[i] = psk->group;
|
||||
m->skin_inflate[i] = psk->inflate;
|
||||
m->skin_vertadr[i] = vert_adr;
|
||||
m->skin_vertnum[i] = psk->vert.size()/3;
|
||||
|
||||
@@ -504,6 +504,7 @@ class mjCSkin: public mjCBase {
|
||||
std::string material; // name of material used for rendering
|
||||
float rgba[4]; // rgba when material is omitted
|
||||
float inflate; // inflate in normal direction
|
||||
int group; // group for visualization
|
||||
|
||||
// mesh
|
||||
std::vector<float> vert; // vertex positions
|
||||
|
||||
Reference in New Issue
Block a user