Как использовать пули HeightfieldTerrainShape - PullRequest
3 голосов
/ 21 мая 2019

Я изо всех сил пытаюсь выяснить, как использовать HeightfieldTerrainShape из библиотеки физики JBullet.Как я вижу, есть 2 доступных конструктора:

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
            float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType,
            boolean flipQuadEdges)

и

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
        float maxHeight, int upAxis, boolean useFloatData, boolean flipQuadEdges)

heightScale, minHeight, maxHeight и upAxis говорят сами за себя.Но что именно представляет собой «heightStick»?И как мне определить его ширину и длину?Какой формат ожидается для heightfieldData?Я предполагаю, что это всего лишь байтовый буфер с плавающей точкой?

1 Ответ

3 голосов
/ 24 мая 2019

Первая функция

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData, float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType, boolean flipQuadEdges)

предпочтительна в соответствии с документацией https://pybullet.org/Bullet/BulletFull/classbtHeightfieldTerrainShape.html#a90d823ba5f44871a0bcfce0174177223.

При просмотре документации (и кода cpp) она выглядит как прямоугольнаяразмер атомных прямоугольных поверхностей, представляющих определяемую вами поверхность (рельеф).

Например, если ширина и высота равны 1, а рельеф равен 10 x 10 (x и y), будет 10 x10 = 100 таких прямоугольников, которые представляют вашу местность.

...