Newer
Older
Import / applications / voxels / voxeldata.h
@John John on 29 Dec 2020 785 bytes bulk import from macbookpro checkouts
#ifndef __VOXEL_DATA_H__
#define __VOXEL_DATA_H__


#include <qcolor.h>
#include <qimage.h>
#include <q3memarray.h>
#include <QPixmap>


class QDataStream;


typedef QRgb** VoxelLayer;


class VoxelData
{
public:
    VoxelData( int w, int h, int d );
    ~VoxelData();

    QRgb **layer( int z );
    QPixmap render( int scaleFactor, int rx, int ry, int rz );

    int width() const { return vw; }
    int height() const { return vh; }
    int depth() const { return vd; }

    QRgb colorOf( int x, int y, int z, int rx, int ry, int rz );

    void read( QDataStream &ds );
    void write( QDataStream &ds );

private:
    void init();

    static int *cosT;
    static int *sinT;
    Q3MemArray<VoxelLayer> layers;
    int vw;
    int vh;
    int vd;
};


#endif // __VOXEL_DATA_H__