Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
This commit is contained in:
@ -152,8 +152,8 @@ void LightmapRaycasterEmbree::commit() {
|
||||
rtcCommitScene(embree_scene);
|
||||
}
|
||||
|
||||
void LightmapRaycasterEmbree::set_mesh_filter(const Set<int> &p_mesh_ids) {
|
||||
for (Set<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
||||
void LightmapRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
||||
for (RBSet<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
||||
rtcDisableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
||||
}
|
||||
rtcCommitScene(embree_scene);
|
||||
@ -161,7 +161,7 @@ void LightmapRaycasterEmbree::set_mesh_filter(const Set<int> &p_mesh_ids) {
|
||||
}
|
||||
|
||||
void LightmapRaycasterEmbree::clear_mesh_filter() {
|
||||
for (Set<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
||||
for (RBSet<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
||||
rtcEnableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
||||
}
|
||||
rtcCommitScene(embree_scene);
|
||||
|
||||
@ -52,8 +52,8 @@ private:
|
||||
|
||||
static void filter_function(const struct RTCFilterFunctionNArguments *p_args);
|
||||
|
||||
Map<unsigned int, AlphaTextureData> alpha_textures;
|
||||
Set<int> filter_meshes;
|
||||
HashMap<unsigned int, AlphaTextureData> alpha_textures;
|
||||
RBSet<int> filter_meshes;
|
||||
|
||||
public:
|
||||
virtual bool intersect(Ray &p_ray) override;
|
||||
@ -64,7 +64,7 @@ public:
|
||||
virtual void set_mesh_alpha_texture(Ref<Image> p_alpha_texture, unsigned int p_id) override;
|
||||
virtual void commit() override;
|
||||
|
||||
virtual void set_mesh_filter(const Set<int> &p_mesh_ids) override;
|
||||
virtual void set_mesh_filter(const RBSet<int> &p_mesh_ids) override;
|
||||
virtual void clear_mesh_filter() override;
|
||||
|
||||
static LightmapRaycaster *create_embree_raycaster();
|
||||
|
||||
@ -223,7 +223,7 @@ void RaycastOcclusionCull::occluder_set_mesh(RID p_occluder, const PackedVector3
|
||||
occluder->vertices = p_vertices;
|
||||
occluder->indices = p_indices;
|
||||
|
||||
for (Set<InstanceID>::Element *E = occluder->users.front(); E; E = E->next()) {
|
||||
for (RBSet<InstanceID>::Element *E = occluder->users.front(); E; E = E->next()) {
|
||||
RID scenario_rid = E->get().scenario;
|
||||
RID instance_rid = E->get().instance;
|
||||
ERR_CONTINUE(!scenarios.has(scenario_rid));
|
||||
|
||||
@ -101,7 +101,7 @@ private:
|
||||
struct Occluder {
|
||||
PackedVector3Array vertices;
|
||||
PackedInt32Array indices;
|
||||
Set<InstanceID> users;
|
||||
RBSet<InstanceID> users;
|
||||
};
|
||||
|
||||
struct OccluderInstance {
|
||||
@ -136,7 +136,7 @@ private:
|
||||
int current_scene_idx = 0;
|
||||
|
||||
HashMap<RID, OccluderInstance> instances;
|
||||
Set<RID> dirty_instances; // To avoid duplicates
|
||||
RBSet<RID> dirty_instances; // To avoid duplicates
|
||||
LocalVector<RID> dirty_instances_array; // To iterate and split into threads
|
||||
LocalVector<RID> removed_instances;
|
||||
|
||||
|
||||
@ -94,8 +94,8 @@ void StaticRaycasterEmbree::commit() {
|
||||
rtcCommitScene(embree_scene);
|
||||
}
|
||||
|
||||
void StaticRaycasterEmbree::set_mesh_filter(const Set<int> &p_mesh_ids) {
|
||||
for (Set<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
||||
void StaticRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
||||
for (RBSet<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
||||
rtcDisableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
||||
}
|
||||
rtcCommitScene(embree_scene);
|
||||
@ -103,7 +103,7 @@ void StaticRaycasterEmbree::set_mesh_filter(const Set<int> &p_mesh_ids) {
|
||||
}
|
||||
|
||||
void StaticRaycasterEmbree::clear_mesh_filter() {
|
||||
for (Set<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
||||
for (RBSet<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
||||
rtcEnableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
||||
}
|
||||
rtcCommitScene(embree_scene);
|
||||
|
||||
@ -41,7 +41,7 @@ private:
|
||||
static RTCDevice embree_device;
|
||||
RTCScene embree_scene;
|
||||
|
||||
Set<int> filter_meshes;
|
||||
RBSet<int> filter_meshes;
|
||||
|
||||
public:
|
||||
virtual bool intersect(Ray &p_ray) override;
|
||||
@ -50,7 +50,7 @@ public:
|
||||
virtual void add_mesh(const PackedVector3Array &p_vertices, const PackedInt32Array &p_indices, unsigned int p_id) override;
|
||||
virtual void commit() override;
|
||||
|
||||
virtual void set_mesh_filter(const Set<int> &p_mesh_ids) override;
|
||||
virtual void set_mesh_filter(const RBSet<int> &p_mesh_ids) override;
|
||||
virtual void clear_mesh_filter() override;
|
||||
|
||||
static StaticRaycaster *create_embree_raycaster();
|
||||
|
||||
Reference in New Issue
Block a user