Remove mjModel dependency from builtins.
PiperOrigin-RevId: 890372546 Change-Id: I1d6b99998e42c1d80072a04f5e57eaf5b4d49791
This commit is contained in:
committed by
Copybara-Service
parent
f7fb23084d
commit
d597b23e5e
@@ -24,8 +24,6 @@
|
|||||||
#include <math/vec2.h>
|
#include <math/vec2.h>
|
||||||
#include <math/vec3.h>
|
#include <math/vec3.h>
|
||||||
#include <math/vec4.h>
|
#include <math/vec4.h>
|
||||||
#include <mujoco/mjmodel.h>
|
|
||||||
#include <mujoco/mjvisualize.h>
|
|
||||||
#include <mujoco/mujoco.h>
|
#include <mujoco/mujoco.h>
|
||||||
#include "experimental/filament/filament/buffer_util.h"
|
#include "experimental/filament/filament/buffer_util.h"
|
||||||
#include "experimental/filament/filament/vertex_util.h"
|
#include "experimental/filament/filament/vertex_util.h"
|
||||||
@@ -773,55 +771,44 @@ FilamentBuffers CreateFromBuilder(filament::Engine* engine, const T& builder) {
|
|||||||
return {ib, vb, builder.GetBounds(), T::kPrimitiveType};
|
return {ib, vb, builder.GetBounds(), T::kPrimitiveType};
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateLine(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateLine(filament::Engine* engine) {
|
||||||
return CreateFromBuilder(engine, LineBuilder());
|
return CreateFromBuilder(engine, LineBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreatePlane(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreatePlane(filament::Engine* engine, int nquad) {
|
||||||
const int num_quads = model->vis.quality.numquads;
|
return CreateFromBuilder(engine, PlaneBuilder(nquad));
|
||||||
return CreateFromBuilder(engine, PlaneBuilder(num_quads));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateTriangle(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateTriangle(filament::Engine* engine) {
|
||||||
return CreateFromBuilder(engine, TriangleBuilder());
|
return CreateFromBuilder(engine, TriangleBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateBox(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateBox(filament::Engine* engine, int nquad) {
|
||||||
const int num_quads = model->vis.quality.numquads;
|
return CreateFromBuilder(engine, BoxBuilder(nquad));
|
||||||
return CreateFromBuilder(engine, BoxBuilder(num_quads));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateLineBox(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateLineBox(filament::Engine* engine) {
|
||||||
return CreateFromBuilder(engine, LineBoxBuilder());
|
return CreateFromBuilder(engine, LineBoxBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateSphere(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateSphere(filament::Engine* engine, int nstack, int nslice) {
|
||||||
const int num_stacks = model->vis.quality.numstacks;
|
return CreateFromBuilder(engine, SphereBuilder(nstack, nslice));
|
||||||
const int num_slices = model->vis.quality.numslices;
|
|
||||||
return CreateFromBuilder(engine, SphereBuilder(num_stacks, num_slices));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateTube(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateTube(filament::Engine* engine, int nstack, int nslice) {
|
||||||
const int num_stacks = model->vis.quality.numstacks;
|
return CreateFromBuilder(engine, TubeBuilder(nstack, nslice));
|
||||||
const int num_slices = model->vis.quality.numslices;
|
|
||||||
return CreateFromBuilder(engine, TubeBuilder(num_stacks, num_slices));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateDisk(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateDisk(filament::Engine* engine, int nslice) {
|
||||||
const int num_slices = model->vis.quality.numslices;
|
return CreateFromBuilder(engine, DiskBuilder(nslice));
|
||||||
return CreateFromBuilder(engine, DiskBuilder(num_slices));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateDome(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateDome(filament::Engine* engine, int nstack, int nslice) {
|
||||||
const int num_stacks = model->vis.quality.numstacks / 2;
|
return CreateFromBuilder(engine, DomeBuilder(nstack, nslice));
|
||||||
const int num_slices = model->vis.quality.numslices;
|
|
||||||
return CreateFromBuilder(engine, DomeBuilder(num_stacks, num_slices));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentBuffers CreateCone(filament::Engine* engine, const mjModel* model) {
|
FilamentBuffers CreateCone(filament::Engine* engine, int nstack, int nslice) {
|
||||||
const int num_stacks = model->vis.quality.numstacks;
|
return CreateFromBuilder(engine, ConeBuilder(nstack, nslice));
|
||||||
const int num_slices = model->vis.quality.numslices;
|
|
||||||
return CreateFromBuilder(engine, ConeBuilder(num_stacks, num_slices));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mujoco
|
} // namespace mujoco
|
||||||
|
|||||||
@@ -16,22 +16,21 @@
|
|||||||
#define MUJOCO_SRC_EXPERIMENTAL_FILAMENT_FILAMENT_BUILTINS_H_
|
#define MUJOCO_SRC_EXPERIMENTAL_FILAMENT_FILAMENT_BUILTINS_H_
|
||||||
|
|
||||||
#include <filament/Engine.h>
|
#include <filament/Engine.h>
|
||||||
#include <mujoco/mjmodel.h>
|
|
||||||
#include "experimental/filament/filament/buffer_util.h"
|
#include "experimental/filament/filament/buffer_util.h"
|
||||||
|
|
||||||
// Generates buffers for built-in shapes.
|
// Generates buffers for built-in shapes.
|
||||||
namespace mujoco {
|
namespace mujoco {
|
||||||
|
|
||||||
FilamentBuffers CreateLine(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateLine(filament::Engine* engine);
|
||||||
FilamentBuffers CreateBox(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreatePlane(filament::Engine* engine, int nquad);
|
||||||
FilamentBuffers CreateLineBox(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateTriangle(filament::Engine* engine);
|
||||||
FilamentBuffers CreateTriangle(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateBox(filament::Engine* engine, int nquad);
|
||||||
FilamentBuffers CreatePlane(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateLineBox(filament::Engine* engine);
|
||||||
FilamentBuffers CreateSphere(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateSphere(filament::Engine* engine, int nstack, int nslice);
|
||||||
FilamentBuffers CreateTube(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateTube(filament::Engine* engine, int nstack, int nslice);
|
||||||
FilamentBuffers CreateDisk(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateDisk(filament::Engine* engine, int nslice);
|
||||||
FilamentBuffers CreateDome(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateDome(filament::Engine* engine, int nstack, int nslice);
|
||||||
FilamentBuffers CreateCone(filament::Engine* engine, const mjModel* model);
|
FilamentBuffers CreateCone(filament::Engine* engine, int nstack, int nslice);
|
||||||
|
|
||||||
} // namespace mujoco
|
} // namespace mujoco
|
||||||
|
|
||||||
|
|||||||
@@ -66,16 +66,20 @@ struct Asset {
|
|||||||
|
|
||||||
ObjectManager::ObjectManager(const mjModel* model, filament::Engine* engine)
|
ObjectManager::ObjectManager(const mjModel* model, filament::Engine* engine)
|
||||||
: model_(model), engine_(engine) {
|
: model_(model), engine_(engine) {
|
||||||
shapes_[kLine] = CreateLine(engine_, model_);
|
const int nquad = model->vis.quality.numquads;
|
||||||
shapes_[kBox] = CreateBox(engine_, model_);
|
const int nstack = model->vis.quality.numstacks;
|
||||||
shapes_[kLineBox] = CreateLineBox(engine_, model_);
|
const int nslice = model->vis.quality.numslices;
|
||||||
shapes_[kCone] = CreateCone(engine_, model_);
|
|
||||||
shapes_[kDisk] = CreateDisk(engine_, model_);
|
shapes_[kLine] = CreateLine(engine_);
|
||||||
shapes_[kDome] = CreateDome(engine_, model_);
|
shapes_[kBox] = CreateBox(engine_, nquad);
|
||||||
shapes_[kTube] = CreateTube(engine_, model_);
|
shapes_[kLineBox] = CreateLineBox(engine_);
|
||||||
shapes_[kPlane] = CreatePlane(engine_, model_);
|
shapes_[kCone] = CreateCone(engine_, nstack, nslice);
|
||||||
shapes_[kSphere] = CreateSphere(engine_, model_);
|
shapes_[kDisk] = CreateDisk(engine_, nslice);
|
||||||
shapes_[kTriangle] = CreateTriangle(engine_, model_);
|
shapes_[kDome] = CreateDome(engine_, nstack / 2, nslice);
|
||||||
|
shapes_[kTube] = CreateTube(engine_, nstack, nslice);
|
||||||
|
shapes_[kPlane] = CreatePlane(engine_, nquad);
|
||||||
|
shapes_[kSphere] = CreateSphere(engine_, nstack, nslice);
|
||||||
|
shapes_[kTriangle] = CreateTriangle(engine_);
|
||||||
|
|
||||||
auto LoadMaterial = [this](std::string_view filename) {
|
auto LoadMaterial = [this](std::string_view filename) {
|
||||||
Asset asset(filename);
|
Asset asset(filename);
|
||||||
|
|||||||
Reference in New Issue
Block a user