MCPcopy Create free account
hub / github.com/WolfireGames/overgrowth / SetDetailObjectLayers

Method SetDetailObjectLayers

Source/Graphics/terrain.cpp:992–1027  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

990}
991
992void Terrain::SetDetailObjectLayers(const std::vector<DetailObjectLayer> &_detail_object_layers) {
993 if (detail_object_layers == _detail_object_layers || minimal) {
994 return;
995 }
996 detail_object_layers = _detail_object_layers;
997 detail_object_surfaces.clear();
998 detail_object_surfaces.resize(detail_object_layers.size());
999 int counter = 0;
1000 Model &terrain_simplified_model = Models::Instance()->GetModel(model_id);
1001 for (auto &detail_object_surface : detail_object_surfaces) {
1002 static const mat4 identity;
1003 detail_object_surface = new DetailObjectSurface();
1004 DetailObjectSurface &dos = *detail_object_surface;
1005 dos.AttachTo(terrain_simplified_model, identity);
1006 dos.GetTrisInPatches(identity);
1007 dos.LoadDetailModel(detail_object_layers[counter].obj_path);
1008 dos.LoadWeightMap(detail_object_layers[counter].weight_path);
1009 dos.SetDensity(detail_object_layers[counter].density);
1010 dos.tint_weight = (detail_object_layers[counter].tint_weight);
1011 dos.SetNormalConform(detail_object_layers[counter].normal_conform);
1012 dos.SetMinEmbed(detail_object_layers[counter].min_embed);
1013 dos.SetMaxEmbed(detail_object_layers[counter].max_embed);
1014 dos.SetMinScale(detail_object_layers[counter].min_scale);
1015 dos.SetMaxScale(detail_object_layers[counter].max_scale);
1016 dos.SetViewDist(detail_object_layers[counter].view_dist);
1017 dos.SetJitterDegrees(detail_object_layers[counter].jitter_degrees);
1018 dos.SetOverbright(detail_object_layers[counter].overbright);
1019 dos.SetCollisionType(detail_object_layers[counter].collision_type);
1020 ++counter;
1021 }
1022 if (normal_map_ref.valid()) {
1023 for (auto &detail_object_surface : detail_object_surfaces) {
1024 detail_object_surface->SetBaseTextures(color_texture_ref, normal_map_ref);
1025 }
1026 }
1027}
1028
1029void Terrain::SetDetailTextures(const std::vector<DetailMapInfo> &_detail_maps_info) {
1030 if (normal_map_ref.valid() && (_detail_maps_info != detail_maps_info)) {

Callers 1

TerrainObjectMethod · 0.80

Calls 15

GetTrisInPatchesMethod · 0.80
LoadDetailModelMethod · 0.80
LoadWeightMapMethod · 0.80
SetDensityMethod · 0.80
SetNormalConformMethod · 0.80
SetMinEmbedMethod · 0.80
SetMaxEmbedMethod · 0.80
SetMinScaleMethod · 0.80
SetMaxScaleMethod · 0.80
SetViewDistMethod · 0.80
SetJitterDegreesMethod · 0.80
SetOverbrightMethod · 0.80

Tested by

no test coverage detected