GDF 26.1a
Game Development Framework - https://gdf.acits.nl
Laden...
Zoeken...
Niets gevonden
GDF.TerrainMap Class Referentie

Een hoogtekaart van één of meer voorwerpen (bijvoorbeeld een berglandschap, een brug of een trap). Meer...

Public Members

 TerrainMap (params Instance[] instances)
 Gebruik liever Methods.GetTerrainMap(...).
float GetHeight (float x, float z)
 De hoogte (Y) van de grond op deze plek: de hoogste bovenkant van de kaart.
float GetHeight (float x, float z, float below)
 De hoogte van de grond op deze plek, maar alleen grond die niet hoger ligt dan 'below'.
bool Contains (float x, float z)
 Ligt er op deze plek grond (van de kaart)?
bool Contains (float x, float z, float below)
 Ligt er op deze plek grond die niet hoger is dan 'below'?
Vector3 GetNormal (float x, float z)
 De richting loodrecht op de grond (lengte 1, altijd omhoog gericht).
Vector3 GetNormal (float x, float z, float below)
 De richting loodrecht op de grond die niet hoger ligt dan 'below' (zie GetHeight).
float GetSlope (float x, float z)
 Hoe steil de grond hier is, in graden: 0 is vlak, 90 is een muur.
float GetSlope (float x, float z, float below)
 Hoe steil de grond onder 'below' hier is, in graden (zie GetHeight).
float GetHeightAbove (float x, float z, float above)
 Het laagste vlak bóven 'above' op deze plek, bijvoorbeeld de onderkant van een brug of een plafond.
bool IsInside (float x, float y, float z)
 Zit dit punt binnen een dicht voorwerp (in de berg, in een blok)?
bool HasRoom (float x, float y, float z, float height)
 Is er ruimte voor iets van deze hoogte met de onderkant op y?

Properties

Vector3 Min [get]
 Kleinste punt (X, Y en Z) van de kaart.
Vector3 Max [get]
 Grootste punt (X, Y en Z) van de kaart.
float MinHeight [get]
 De laagste hoogte op de kaart; dit geeft GetHeight terug waar geen grond is.
float MaxHeight [get]
 De grootste hoogte op de kaart.
int TriangleCount [get]
 Aantal driehoeken in de kaart.

Gedetailleerde Beschrijving

Een hoogtekaart van één of meer voorwerpen (bijvoorbeeld een berglandschap, een brug of een trap).

Hiermee vraag je op elke plek op hoe hoog de grond is en hoe steil hij loopt. Maak hem met Methods.GetTerrainMap(...), één keer (bijvoorbeeld in Room.Start) en bewaar hem in een variabele:

public TerrainMap Map;
...
Map = Methods.GetTerrainMap(terrein, brug);
...
Y = Map.GetHeight(X, Z) + 0.5f; // bovenop de grond lopen
Y = Map.GetHeight(X, Z, Y + 0.3f); // hoogste punt onder je voeten (onder een brug door, trappen op)
Definitie Methods.cs:17
static TerrainMap GetTerrainMap(params Instance[] instances)
Maak een hoogtekaart van één of meer voorwerpen (bijvoorbeeld een berglandschap, een brug en een trap...
Definitie Methods.cs:531
float GetHeight(float x, float z)
De hoogte (Y) van de grond op deze plek: de hoogste bovenkant van de kaart.
Definitie TerrainMap.cs:66
TerrainMap(params Instance[] instances)
Gebruik liever Methods.GetTerrainMap(...).
Definitie TerrainMap.cs:46

De kaart is een momentopname: verplaats, draai of vergroot je een voorwerp daarna, maak dan een nieuwe kaart. Werkt met elk model: uit Blender, uit de MdlGenerator en de standaardvormen (SetBox, SetSphere, ...).

Constructor & Destructor Documentatie

◆ TerrainMap()

GDF.TerrainMap.TerrainMap ( params Instance[] instances)

Gebruik liever Methods.GetTerrainMap(...).

Documentatie van functie members

◆ Contains() [1/2]

bool GDF.TerrainMap.Contains ( float x,
float z )

Ligt er op deze plek grond (van de kaart)?

◆ Contains() [2/2]

bool GDF.TerrainMap.Contains ( float x,
float z,
float below )

Ligt er op deze plek grond die niet hoger is dan 'below'?

◆ GetHeight() [1/2]

float GDF.TerrainMap.GetHeight ( float x,
float z )

De hoogte (Y) van de grond op deze plek: de hoogste bovenkant van de kaart.

Is er op deze plek geen grond, dan krijg je MinHeight terug (controleer dat eventueel met Contains).

◆ GetHeight() [2/2]

float GDF.TerrainMap.GetHeight ( float x,
float z,
float below )

De hoogte van de grond op deze plek, maar alleen grond die niet hoger ligt dan 'below'.

Handig voor bruggen, verdiepingen en trappen: geef bijvoorbeeld Y + 0.3f mee (je voeten plus een traptreetje). Is er geen grond onder 'below', dan krijg je MinHeight terug.

◆ GetHeightAbove()

float GDF.TerrainMap.GetHeightAbove ( float x,
float z,
float above )

Het laagste vlak bóven 'above' op deze plek, bijvoorbeeld de onderkant van een brug of een plafond.

Is er niets boven, dan krijg je float.PositiveInfinity terug.

◆ GetNormal() [1/2]

Vector3 GDF.TerrainMap.GetNormal ( float x,
float z )

De richting loodrecht op de grond (lengte 1, altijd omhoog gericht).

Op vlakke grond is dit (0, 1, 0). Handig om iets mee te laten kantelen met de helling. Geen grond: (0, 1, 0).

◆ GetNormal() [2/2]

Vector3 GDF.TerrainMap.GetNormal ( float x,
float z,
float below )

De richting loodrecht op de grond die niet hoger ligt dan 'below' (zie GetHeight).

◆ GetSlope() [1/2]

float GDF.TerrainMap.GetSlope ( float x,
float z )

Hoe steil de grond hier is, in graden: 0 is vlak, 90 is een muur.

◆ GetSlope() [2/2]

float GDF.TerrainMap.GetSlope ( float x,
float z,
float below )

Hoe steil de grond onder 'below' hier is, in graden (zie GetHeight).

◆ HasRoom()

bool GDF.TerrainMap.HasRoom ( float x,
float y,
float z,
float height )

Is er ruimte voor iets van deze hoogte met de onderkant op y?

Dus: niet binnen een voorwerp en geen plafond (brug) lager dan y + height. Handig om te controleren of je ergens heen kunt lopen:

float grond = map.GetHeight(nieuwX, nieuwZ, Y + 0.3f);
if (map.HasRoom(nieuwX, grond, nieuwZ, 1.8f)) { X = nieuwX; Z = nieuwZ; Y = grond; }

◆ IsInside()

bool GDF.TerrainMap.IsInside ( float x,
float y,
float z )

Zit dit punt binnen een dicht voorwerp (in de berg, in een blok)?

Dat is zo als het eerste vlak erboven een bovenkant is. Onder een brug zit je niet binnen: het eerste vlak erboven is dan een onderkant.

Property Documentatie

◆ Max

Vector3 GDF.TerrainMap.Max
get

Grootste punt (X, Y en Z) van de kaart.

◆ MaxHeight

float GDF.TerrainMap.MaxHeight
get

De grootste hoogte op de kaart.

◆ Min

Vector3 GDF.TerrainMap.Min
get

Kleinste punt (X, Y en Z) van de kaart.

◆ MinHeight

float GDF.TerrainMap.MinHeight
get

De laagste hoogte op de kaart; dit geeft GetHeight terug waar geen grond is.

◆ TriangleCount

int GDF.TerrainMap.TriangleCount
get

Aantal driehoeken in de kaart.


De documentatie voor deze klasse is gegenereerd op basis van het volgende bestand: