Sto lavorando su una libreria di visualizzazione che nella maggior parte dei casi funziona su un piano 2D ma ha alcuni componenti che mostrano proiezioni 2D di uno spazio 3D.
Questo dominio ha la nozione di Position
, Size
, Position3D
e Size3D
.
Position
e Size
sono semplici:
data class Position(val x: Int, val y: Int)
data class Size(val width: Int, val height: Int)
ma quando introduco le varianti 3D height
non è più auto-esplicativo:
data class Position3D(val x: Int, val y: Int, val z: Int)
data class Size3D(val width: Int, // this is OK
val height: Int, // is this the Y or the Z axis?
val depth: Int) // is depth universally recognized?
Esiste una best practice per questo problema?
Posso aggirarlo facendo qualcosa del genere:
data class Size3D(val xAmount: Int,
val yAmount: Int,
val zAmount: Int)
ma sembra un po 'hacky.
Modifica: come dovrei denominare le taglie 2D vs 3D? Dovrei continuare a usare height in 2D (asse y) anche se in 3D height è per asse z ?
Come posso risolvere questo?