diff --git a/Engine/source/T3D/groundPlane.cpp b/Engine/source/T3D/groundPlane.cpp index b188a7d39..3047b1a31 100644 --- a/Engine/source/T3D/groundPlane.cpp +++ b/Engine/source/T3D/groundPlane.cpp @@ -65,7 +65,8 @@ ConsoleDocClass( GroundPlane, ); GroundPlane::GroundPlane() - : mSquareSize( 128.0f ), + : mZOffset (0.0f), + mSquareSize( 128.0f ), mScaleU( 1.0f ), mScaleV( 1.0f ), mMaterial( NULL ), @@ -92,6 +93,7 @@ void GroundPlane::initPersistFields() { addGroup( "Plane" ); + addField( "zOffset", TypeF32, Offset( mZOffset, GroundPlane ), "How high the ground plane should be" ); addField( "squareSize", TypeF32, Offset( mSquareSize, GroundPlane ), "Square size in meters to which %GroundPlane subdivides its geometry." ); addField( "scaleU", TypeF32, Offset( mScaleU, GroundPlane ), "Scale of texture repeat in the U direction." ); addField( "scaleV", TypeF32, Offset( mScaleV, GroundPlane ), "Scale of texture repeat in the V direction." ); @@ -176,6 +178,7 @@ U32 GroundPlane::packUpdate( NetConnection* connection, U32 mask, BitStream* str { U32 retMask = Parent::packUpdate( connection, mask, stream ); + stream->write( mZOffset ); stream->write( mSquareSize ); stream->write( mScaleU ); stream->write( mScaleV ); @@ -188,6 +191,7 @@ void GroundPlane::unpackUpdate( NetConnection* connection, BitStream* stream ) { Parent::unpackUpdate( connection, stream ); + stream->read( &mZOffset ); stream->read( &mSquareSize ); stream->read( &mScaleU ); stream->read( &mScaleV ); @@ -518,7 +522,7 @@ void GroundPlane::generateGrid( U32 width, U32 height, F32 squareSize, { vertices->point.x = x; vertices->point.y = y; - vertices->point.z = 0.0; + vertices->point.z = ( mZOffset ); vertices->texCoord.x = ( x / squareSize ) * mScaleU; vertices->texCoord.y = ( y / squareSize ) * -mScaleV; diff --git a/Engine/source/T3D/groundPlane.h b/Engine/source/T3D/groundPlane.h index a634b4a84..f93d40986 100644 --- a/Engine/source/T3D/groundPlane.h +++ b/Engine/source/T3D/groundPlane.h @@ -97,6 +97,7 @@ private: typedef GFXVertexBufferHandle< VertexType > VertexBuffer; typedef GFXPrimitiveBufferHandle PrimitiveBuffer; + F32 mZOffset; ///< How high or low the ground plane should be. F32 mSquareSize; ///< World units per grid cell edge. F32 mScaleU; ///< Scale factor for U texture coordinates. F32 mScaleV; ///< Scale factor for V texture coordinates.