Changeset 25278

Timestamp:
Apr 16, 2021, 6:01:30 PM (3 years ago)
Author:
wraitii
Message:

Rework rP25266

Following comments by @vladislavbelov.

Differential Revision: https://code.wildfiregames.com/D3860

Location:
ps/trunk/source
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • ps/trunk/source/graphics/Camera.cpp

    r25269 r25278  
    263263    if (gotWater)
    264264    {
    265         waterPoint.X = Clamp(waterPoint.X, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
    266         waterPoint.Z = Clamp(waterPoint.Z, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
     265        waterPoint.X = Clamp(waterPoint.X, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
     266        waterPoint.Z = Clamp(waterPoint.Z, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
    267267    }
    268268
     
    341341    if (gotWater)
    342342    {
    343         waterPoint.X = Clamp(waterPoint.X, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
    344         waterPoint.Z = Clamp(waterPoint.Z, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
     343        waterPoint.X = Clamp(waterPoint.X, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
     344        waterPoint.Z = Clamp(waterPoint.Z, 0.f, (mapSize - 1) * TERRAIN_TILE_SIZE);
    345345    }
    346346
  • ps/trunk/source/graphics/Decal.cpp

    r25266 r25278  
    4646    j1 = ceil(std::max(std::max(corner0.Z, corner1.Z), std::max(corner2.Z, corner3.Z)) / TERRAIN_TILE_SIZE);
    4747
    48     i0 = Clamp(i0, 0, m_Terrain->GetVerticesPerSide() - 1);
    49     j0 = Clamp(j0, 0, m_Terrain->GetVerticesPerSide() - 1);
    50     i1 = Clamp(i1, 0, m_Terrain->GetVerticesPerSide() - 1);
    51     j1 = Clamp(j1, 0, m_Terrain->GetVerticesPerSide() - 1);
     48    i0 = Clamp(i0, 0, m_Terrain->GetVerticesPerSide() - 1);
     49    j0 = Clamp(j0, 0, m_Terrain->GetVerticesPerSide() - 1);
     50    i1 = Clamp(i1, 0, m_Terrain->GetVerticesPerSide() - 1);
     51    j1 = Clamp(j1, 0, m_Terrain->GetVerticesPerSide() - 1);
    5252}
    5353
  • ps/trunk/source/graphics/SmoothedValue.h

    r25266 r25278  
    7373    void ClampSmoothly(float min, float max)
    7474    {
    75         m_Target = Clamp(m_Target, min, max);
     75        m_Target = Clamp(m_Target, min, max);
    7676    }
    7777
  • ps/trunk/source/graphics/Terrain.cpp

    r25266 r25278  
    119119void CTerrain::CalcPosition(ssize_t i, ssize_t j, CVector3D& pos) const
    120120{
    121     ssize_t hi = Clamp(i, 0, m_MapSize - 1);
    122     ssize_t hj = Clamp(j, 0, m_MapSize - 1);
     121    ssize_t hi = Clamp(i, 0, m_MapSize - 1);
     122    ssize_t hj = Clamp(j, 0, m_MapSize - 1);
    123123    u16 height = m_Heightmap[hj*m_MapSize + hi];
    124124    pos.X = float(i*TERRAIN_TILE_SIZE);
     
    131131void CTerrain::CalcPositionFixed(ssize_t i, ssize_t j, CFixedVector3D& pos) const
    132132{
    133     ssize_t hi = Clamp(i, 0, m_MapSize - 1);
    134     ssize_t hj = Clamp(j, 0, m_MapSize - 1);
     133    ssize_t hi = Clamp(i, 0, m_MapSize - 1);
     134    ssize_t hj = Clamp(j, 0, m_MapSize - 1);
    135135    u16 height = m_Heightmap[hj*m_MapSize + hi];
    136136    pos.X = fixed::FromInt(i) * (int)TERRAIN_TILE_SIZE;
     
    309309float CTerrain::GetVertexGroundLevel(ssize_t i, ssize_t j) const
    310310{
    311     i = Clamp(i, 0, m_MapSize - 1);
    312     j = Clamp(j, 0, m_MapSize - 1);
     311    i = Clamp(i, 0, m_MapSize - 1);
     312    j = Clamp(j, 0, m_MapSize - 1);
    313313    return HEIGHT_SCALE * m_Heightmap[j*m_MapSize + i];
    314314}
     
    316316fixed CTerrain::GetVertexGroundLevelFixed(ssize_t i, ssize_t j) const
    317317{
    318     i = Clamp(i, 0, m_MapSize - 1);
    319     j = Clamp(j, 0, m_MapSize - 1);
     318    i = Clamp(i, 0, m_MapSize - 1);
     319    j = Clamp(j, 0, m_MapSize - 1);
    320320    // Convert to fixed metres (being careful to avoid intermediate overflows)
    321321    return fixed::FromInt(m_Heightmap[j*m_MapSize + i] / 2) / (int)(HEIGHT_UNITS_PER_METRE / 2);
     
    325325{
    326326    // Clamp to size-2 so we can use the tiles (i,j)-(i+1,j+1)
    327     i = Clamp(i, 0, m_MapSize - 2);
    328     j = Clamp(j, 0, m_MapSize - 2);
     327    i = Clamp(i, 0, m_MapSize - 2);
     328    j = Clamp(j, 0, m_MapSize - 2);
    329329
    330330    u16 h00 = m_Heightmap[j*m_MapSize + i];
     
    481481{
    482482    // Clamp to size-2 so we can use the tiles (i,j)-(i+1,j+1)
    483     i = Clamp(i, 0, m_MapSize - 2);
    484     j = Clamp(j, 0, m_MapSize - 2);
     483    i = Clamp(i, 0, m_MapSize - 2);
     484    j = Clamp(j, 0, m_MapSize - 2);
    485485
    486486    int h00 = m_Heightmap[j*m_MapSize + i];
     
    775775{
    776776    // Finds the inclusive limits of the patches that include the specified range of tiles
    777     ssize_t pi0 = Clamp( i0   /PATCH_SIZE, 0, m_MapSizePatches-1);
    778     ssize_t pi1 = Clamp((i1-1)/PATCH_SIZE, 0, m_MapSizePatches-1);
    779     ssize_t pj0 = Clamp( j0   /PATCH_SIZE, 0, m_MapSizePatches-1);
    780     ssize_t pj1 = Clamp((j1-1)/PATCH_SIZE, 0, m_MapSizePatches-1);
     777    ssize_t pi0 = Clamp( i0   /PATCH_SIZE, 0, m_MapSizePatches-1);
     778    ssize_t pi1 = Clamp((i1-1)/PATCH_SIZE, 0, m_MapSizePatches-1);
     779    ssize_t pj0 = Clamp( j0   /PATCH_SIZE, 0, m_MapSizePatches-1);
     780    ssize_t pj1 = Clamp((j1-1)/PATCH_SIZE, 0, m_MapSizePatches-1);
    781781
    782782    for (ssize_t j = pj0; j <= pj1; j++)
     
    794794    {
    795795        m_HeightMipmap.Update(m_Heightmap,
    796             Clamp(i0, 0, m_MapSize - 1),
    797             Clamp(j0, 0, m_MapSize - 1),
    798             Clamp(i1, 1, m_MapSize),
    799             Clamp(j1, 1, m_MapSize)
     796            Clamp(i0, 0, m_MapSize - 1),
     797            Clamp(j0, 0, m_MapSize - 1),
     798            Clamp(i1, 1, m_MapSize),
     799            Clamp(j1, 1, m_MapSize)
    800800        );
    801801    }
     
    821821CBoundingBoxAligned CTerrain::GetVertexesBound(ssize_t i0, ssize_t j0, ssize_t i1, ssize_t j1)
    822822{
    823     i0 = Clamp(i0, 0, m_MapSize - 1);
    824     j0 = Clamp(j0, 0, m_MapSize - 1);
    825     i1 = Clamp(i1, 0, m_MapSize - 1);
    826     j1 = Clamp(j1, 0, m_MapSize - 1);
     823    i0 = Clamp(i0, 0, m_MapSize - 1);
     824    j0 = Clamp(j0, 0, m_MapSize - 1);
     825    i1 = Clamp(i1, 0, m_MapSize - 1);
     826    j1 = Clamp(j1, 0, m_MapSize - 1);
    827827
    828828    u16 minH = 65535;
  • ps/trunk/source/maths/MathUtil.h

    r25266 r25278  
    2929}
    3030
    31 // TODO C++20: use the proper one.
    32 template<typename T>
    33 struct type_identity
    34 {
    35     using type = T;
    36 };
    37 template<typename T>
    38 using type_identity_t = typename type_identity<T>::type;
    39 
    4031template <typename T>
    41 inline T Clamp(T value, type_identity_t<T> min, type_identity_t<T> max)
     32inline T Clamp(T value, max)
    4233{
    4334    if (value <= min)
  • ps/trunk/source/renderer/SilhouetteRenderer.cpp

    r25269 r25278  
    191191    // given the symmetry of the bounding box
    192192
    193     occluder.x0 = Clamp(x0, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
    194     occluder.y0 = Clamp(y0, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
    195     occluder.x1 = Clamp(x1, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
    196     occluder.y1 = Clamp(y1, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
     193    occluder.x0 = Clamp(x0, std::numeric_limits<u16>::min(), );
     194    occluder.y0 = Clamp(y0, std::numeric_limits<u16>::min(), );
     195    occluder.x1 = Clamp(x1, std::numeric_limits<u16>::min(), );
     196    occluder.y1 = Clamp(y1, std::numeric_limits<u16>::min(), );
    197197    occluder.z = z0;
    198198}
     
    203203    u16 x = g_HalfMaxCoord + static_cast<int>(g_HalfMaxCoord * svec.X / svec.W);
    204204    u16 y = g_HalfMaxCoord + static_cast<int>(g_HalfMaxCoord * svec.Y / svec.W);
    205     caster.x = Clamp(x, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
    206     caster.y = Clamp(y, std::numeric_limits<u16>::min(), g_MaxCoord - 1);
     205    caster.x = Clamp(x, std::numeric_limits<u16>::min(), );
     206    caster.y = Clamp(y, std::numeric_limits<u16>::min(), );
    207207    caster.z = svec.Z / svec.W;
    208208}
  • ps/trunk/source/simulation2/components/CCmpPathfinder.cpp

    r25266 r25278  
    614614        // level are calculated by multiple neighboring tiles.
    615615        // TODO: add CTerrain constant instead of 1.
    616         istart = Clamp(itile0 - 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
    617         iend = Clamp(itile1 + 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
    618         jstart = Clamp(jtile0 - 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
    619         jend = Clamp(jtile1 + 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
     616��       istart = Clamp(itile0 - 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
     617        iend = Clamp(itile1 + 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
     618        jstart = Clamp(jtile0 - 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
     619        jend = Clamp(jtile1 + 1, 0, m_MapSize) * Pathfinding::NAVCELLS_PER_TILE;
    620620    }
    621621
Note: See TracChangeset for help on using the changeset viewer.