ClipboardData.h
1 /************************************************************
2 * (C) Voxel Farm Inc. 2015
3 */
4 
5 #pragma once
6 
7 #include "Clipboard.h"
8 #include "mapindex.h"
9 #include "BlockData.h"
10 #include "VoxelLayer.h"
11 
12 namespace VoxelFarm
13 {
14  // Voxel clipboard...
15  class CClipboardData : public IClipboard
16  {
17  public: // IClipboard...
18  virtual void setSize(int sx, int sy, int sz);
19  virtual void getSize(int& sizeX, int& sizeY, int& sizeZ) const;
20  virtual void readVoxel(int x, int y, int z, Voxel& voxel) const;
21  virtual void writeVoxel(int x, int y, int z, const Voxel& voxel);
22  public:
23  CClipboardData(IClipboard* clipboard);
24  CClipboardData() : dx(0), dy(0), dz(0), voxelData(NULL) {}
25  virtual ~CClipboardData()
26  {
27  deleteVoxelData();
28  }
29  private:
30  // Dimensions in voxels...
31  int dx, dy, dz;
32  // Voxel data...
33  Voxel* voxelData;
34  // Calculate index into voxel data
35  inline int index(int x, int y, int z) const
36  {
37  return z * dx * dy + x * dy + y;
38  }
39  // Allocate voxel data...
40  void allocateVoxelData(void);
41  // Delete voxel data...
42  void deleteVoxelData(void);
43  };
44 
45 }
virtual void readVoxel(int x, int y, int z, Voxel &voxel) const
Reads one voxel from clipboard.
Contains all classes and functions for the VoxelFarm engine.
Clipboard interface.
Definition: Clipboard.h:17
virtual void getSize(int &sizeX, int &sizeY, int &sizeZ) const
Gets dimensions for clipboard data.
virtual void writeVoxel(int x, int y, int z, const Voxel &voxel)
Writes one voxel to clipboard.
virtual void setSize(int sx, int sy, int sz)
Sets dimensions for clipboard data.