mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 20:58:38 +02:00
flag for polyvox to select minecraft vs walking-cubes. uppack to unpack
This commit is contained in:
parent
6930008f74
commit
0f81445cee
10 changed files with 61 additions and 38 deletions
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
var altHeld = false;
|
var controlHeld = false;
|
||||||
|
|
||||||
|
|
||||||
function mousePressEvent(event) {
|
function mousePressEvent(event) {
|
||||||
|
@ -14,10 +14,10 @@ function mousePressEvent(event) {
|
||||||
var ids = Entities.findEntities(intersection.intersection, 10);
|
var ids = Entities.findEntities(intersection.intersection, 10);
|
||||||
for (var i = 0; i < ids.length; i++) {
|
for (var i = 0; i < ids.length; i++) {
|
||||||
var id = ids[i];
|
var id = ids[i];
|
||||||
if (altHeld) {
|
if (controlHeld) {
|
||||||
Entities.setVoxelSphere(id, intersection.intersection, 2.0, 0);
|
Entities.setVoxelSphere(id, intersection.intersection, 1.2, 0);
|
||||||
} else {
|
} else {
|
||||||
Entities.setVoxelSphere(id, intersection.intersection, 2.0, 255);
|
Entities.setVoxelSphere(id, intersection.intersection, 1.2, 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,15 +25,15 @@ function mousePressEvent(event) {
|
||||||
|
|
||||||
|
|
||||||
function keyPressEvent(event) {
|
function keyPressEvent(event) {
|
||||||
if (event.text == "ALT") {
|
if (event.text == "CONTROL") {
|
||||||
altHeld = true;
|
controlHeld = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function keyReleaseEvent(event) {
|
function keyReleaseEvent(event) {
|
||||||
if (event.text == "ALT") {
|
if (event.text == "CONTROL") {
|
||||||
altHeld = false;
|
controlHeld = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,14 +126,15 @@ void RenderablePolyVoxEntityItem::getModel() {
|
||||||
// A mesh object to hold the result of surface extraction
|
// A mesh object to hold the result of surface extraction
|
||||||
PolyVox::SurfaceMesh<PolyVox::PositionMaterialNormal> polyVoxMesh;
|
PolyVox::SurfaceMesh<PolyVox::PositionMaterialNormal> polyVoxMesh;
|
||||||
|
|
||||||
//Create a surface extractor. Comment out one of the following two lines to decide which type gets created.
|
if (_voxelSurfaceStyle == 0) {
|
||||||
// PolyVox::CubicSurfaceExtractorWithNormals<PolyVox::SimpleVolume<uint8_t>> surfaceExtractor
|
PolyVox::MarchingCubesSurfaceExtractor<PolyVox::SimpleVolume<uint8_t>> surfaceExtractor
|
||||||
// (_volData, _volData->getEnclosingRegion(), &polyVoxMesh);
|
(_volData, _volData->getEnclosingRegion(), &polyVoxMesh);
|
||||||
PolyVox::MarchingCubesSurfaceExtractor<PolyVox::SimpleVolume<uint8_t>> surfaceExtractor
|
surfaceExtractor.execute();
|
||||||
(_volData, _volData->getEnclosingRegion(), &polyVoxMesh);
|
} else {
|
||||||
|
PolyVox::CubicSurfaceExtractorWithNormals<PolyVox::SimpleVolume<uint8_t>> surfaceExtractor
|
||||||
//Execute the surface extractor.
|
(_volData, _volData->getEnclosingRegion(), &polyVoxMesh);
|
||||||
surfaceExtractor.execute();
|
surfaceExtractor.execute();
|
||||||
|
}
|
||||||
|
|
||||||
// convert PolyVox mesh to a Sam mesh
|
// convert PolyVox mesh to a Sam mesh
|
||||||
model::Mesh* mesh = new model::Mesh();
|
model::Mesh* mesh = new model::Mesh();
|
||||||
|
|
|
@ -90,6 +90,7 @@ CONSTRUCT_PROPERTY(keyLightAmbientIntensity, ZoneEntityItem::DEFAULT_KEYLIGHT_AM
|
||||||
CONSTRUCT_PROPERTY(keyLightDirection, ZoneEntityItem::DEFAULT_KEYLIGHT_DIRECTION),
|
CONSTRUCT_PROPERTY(keyLightDirection, ZoneEntityItem::DEFAULT_KEYLIGHT_DIRECTION),
|
||||||
CONSTRUCT_PROPERTY(voxelVolumeSize, PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE),
|
CONSTRUCT_PROPERTY(voxelVolumeSize, PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE),
|
||||||
CONSTRUCT_PROPERTY(voxelData, PolyVoxEntityItem::DEFAULT_VOXEL_DATA),
|
CONSTRUCT_PROPERTY(voxelData, PolyVoxEntityItem::DEFAULT_VOXEL_DATA),
|
||||||
|
CONSTRUCT_PROPERTY(voxelSurfaceStyle, PolyVoxEntityItem::DEFAULT_VOXEL_SURFACE_STYLE),
|
||||||
CONSTRUCT_PROPERTY(name, ENTITY_ITEM_DEFAULT_NAME),
|
CONSTRUCT_PROPERTY(name, ENTITY_ITEM_DEFAULT_NAME),
|
||||||
CONSTRUCT_PROPERTY(backgroundMode, BACKGROUND_MODE_INHERIT),
|
CONSTRUCT_PROPERTY(backgroundMode, BACKGROUND_MODE_INHERIT),
|
||||||
CONSTRUCT_PROPERTY(sourceUrl, ""),
|
CONSTRUCT_PROPERTY(sourceUrl, ""),
|
||||||
|
@ -342,6 +343,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
|
||||||
CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl);
|
CHECK_PROPERTY_CHANGE(PROP_SOURCE_URL, sourceUrl);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_VOXEL_VOLUME_SIZE, voxelVolumeSize);
|
CHECK_PROPERTY_CHANGE(PROP_VOXEL_VOLUME_SIZE, voxelVolumeSize);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_VOXEL_DATA, voxelData);
|
CHECK_PROPERTY_CHANGE(PROP_VOXEL_DATA, voxelData);
|
||||||
|
CHECK_PROPERTY_CHANGE(PROP_VOXEL_SURFACE_STYLE, voxelSurfaceStyle);
|
||||||
|
|
||||||
changedProperties += _stage.getChangedProperties();
|
changedProperties += _stage.getChangedProperties();
|
||||||
changedProperties += _atmosphere.getChangedProperties();
|
changedProperties += _atmosphere.getChangedProperties();
|
||||||
|
@ -427,6 +429,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool
|
||||||
|
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(voxelVolumeSize);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(voxelVolumeSize);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(voxelData);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(voxelData);
|
||||||
|
COPY_PROPERTY_TO_QSCRIPTVALUE(voxelSurfaceStyle);
|
||||||
|
|
||||||
// Sitting properties support
|
// Sitting properties support
|
||||||
if (!skipDefaults) {
|
if (!skipDefaults) {
|
||||||
|
@ -535,6 +538,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object) {
|
||||||
|
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, glmVec3, setVoxelVolumeSize);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelVolumeSize, glmVec3, setVoxelVolumeSize);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelData, QByteArray, setVoxelData);
|
||||||
|
COPY_PROPERTY_FROM_QSCRIPTVALUE(voxelSurfaceStyle, uint16_t, setVoxelSurfaceStyle);
|
||||||
|
|
||||||
_stage.copyFromScriptValue(object, _defaultSettings);
|
_stage.copyFromScriptValue(object, _defaultSettings);
|
||||||
_atmosphere.copyFromScriptValue(object, _defaultSettings);
|
_atmosphere.copyFromScriptValue(object, _defaultSettings);
|
||||||
|
@ -757,6 +761,7 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem
|
||||||
APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor());
|
APPEND_ENTITY_PROPERTY(PROP_COLOR, properties.getColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, properties.getVoxelVolumeSize());
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, properties.getVoxelVolumeSize());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_VOXEL_DATA, properties.getVoxelData());
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_DATA, properties.getVoxelData());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_SURFACE_STYLE, properties.getVoxelSurfaceStyle());
|
||||||
}
|
}
|
||||||
|
|
||||||
APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID());
|
APPEND_ENTITY_PROPERTY(PROP_MARKETPLACE_ID, properties.getMarketplaceID());
|
||||||
|
@ -997,6 +1002,7 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, xColor, setColor);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLOR, xColor, setColor);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VOXEL_VOLUME_SIZE, glm::vec3, setVoxelVolumeSize);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VOXEL_VOLUME_SIZE, glm::vec3, setVoxelVolumeSize);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VOXEL_DATA, QByteArray, setVoxelData);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VOXEL_DATA, QByteArray, setVoxelData);
|
||||||
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_VOXEL_SURFACE_STYLE, uint16_t, setVoxelSurfaceStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_MARKETPLACE_ID, QString, setMarketplaceID);
|
||||||
|
@ -1106,6 +1112,7 @@ void EntityItemProperties::markAllChanged() {
|
||||||
|
|
||||||
_voxelVolumeSizeChanged = true;
|
_voxelVolumeSizeChanged = true;
|
||||||
_voxelDataChanged = true;
|
_voxelDataChanged = true;
|
||||||
|
_voxelSurfaceStyleChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The maximum bounding cube for the entity, independent of it's rotation.
|
/// The maximum bounding cube for the entity, independent of it's rotation.
|
||||||
|
|
|
@ -138,6 +138,7 @@ public:
|
||||||
DEFINE_PROPERTY_REF(PROP_KEYLIGHT_DIRECTION, KeyLightDirection, keyLightDirection, glm::vec3);
|
DEFINE_PROPERTY_REF(PROP_KEYLIGHT_DIRECTION, KeyLightDirection, keyLightDirection, glm::vec3);
|
||||||
DEFINE_PROPERTY_REF(PROP_VOXEL_VOLUME_SIZE, VoxelVolumeSize, voxelVolumeSize, glm::vec3);
|
DEFINE_PROPERTY_REF(PROP_VOXEL_VOLUME_SIZE, VoxelVolumeSize, voxelVolumeSize, glm::vec3);
|
||||||
DEFINE_PROPERTY_REF(PROP_VOXEL_DATA, VoxelData, voxelData, QByteArray);
|
DEFINE_PROPERTY_REF(PROP_VOXEL_DATA, VoxelData, voxelData, QByteArray);
|
||||||
|
DEFINE_PROPERTY_REF(PROP_VOXEL_SURFACE_STYLE, VoxelSurfaceStyle, voxelSurfaceStyle, uint16_t);
|
||||||
DEFINE_PROPERTY_REF(PROP_NAME, Name, name, QString);
|
DEFINE_PROPERTY_REF(PROP_NAME, Name, name, QString);
|
||||||
DEFINE_PROPERTY_REF_ENUM(PROP_BACKGROUND_MODE, BackgroundMode, backgroundMode, BackgroundMode);
|
DEFINE_PROPERTY_REF_ENUM(PROP_BACKGROUND_MODE, BackgroundMode, backgroundMode, BackgroundMode);
|
||||||
DEFINE_PROPERTY_GROUP(Stage, stage, StagePropertyGroup);
|
DEFINE_PROPERTY_GROUP(Stage, stage, StagePropertyGroup);
|
||||||
|
@ -287,6 +288,7 @@ inline QDebug operator<<(QDebug debug, const EntityItemProperties& properties) {
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, BackgroundMode, backgroundMode, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, BackgroundMode, backgroundMode, "");
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, VoxelVolumeSize, voxelVolumeSize, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, VoxelVolumeSize, voxelVolumeSize, "");
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, VoxelData, voxelData, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, VoxelData, voxelData, "");
|
||||||
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, VoxelSurfaceStyle, voxelSurfaceStyle, "");
|
||||||
|
|
||||||
properties.getStage().debugDump();
|
properties.getStage().debugDump();
|
||||||
properties.getAtmosphere().debugDump();
|
properties.getAtmosphere().debugDump();
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#define READ_ENTITY_PROPERTY(P,T,S) \
|
#define READ_ENTITY_PROPERTY(P,T,S) \
|
||||||
if (propertyFlags.getHasProperty(P)) { \
|
if (propertyFlags.getHasProperty(P)) { \
|
||||||
T fromBuffer; \
|
T fromBuffer; \
|
||||||
int bytes = OctreePacketData::uppackDataFromBytes(dataAt, fromBuffer); \
|
int bytes = OctreePacketData::unpackDataFromBytes(dataAt, fromBuffer); \
|
||||||
dataAt += bytes; \
|
dataAt += bytes; \
|
||||||
bytesRead += bytes; \
|
bytesRead += bytes; \
|
||||||
if (overwriteLocalData) { \
|
if (overwriteLocalData) { \
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
#define READ_ENTITY_PROPERTY_TO_PROPERTIES(P,T,O) \
|
#define READ_ENTITY_PROPERTY_TO_PROPERTIES(P,T,O) \
|
||||||
if (propertyFlags.getHasProperty(P)) { \
|
if (propertyFlags.getHasProperty(P)) { \
|
||||||
T fromBuffer; \
|
T fromBuffer; \
|
||||||
int bytes = OctreePacketData::uppackDataFromBytes(dataAt, fromBuffer); \
|
int bytes = OctreePacketData::unpackDataFromBytes(dataAt, fromBuffer); \
|
||||||
dataAt += bytes; \
|
dataAt += bytes; \
|
||||||
processedBytes += bytes; \
|
processedBytes += bytes; \
|
||||||
properties.O(fromBuffer); \
|
properties.O(fromBuffer); \
|
||||||
|
|
|
@ -112,6 +112,7 @@ enum EntityPropertyList {
|
||||||
|
|
||||||
PROP_VOXEL_VOLUME_SIZE,
|
PROP_VOXEL_VOLUME_SIZE,
|
||||||
PROP_VOXEL_DATA,
|
PROP_VOXEL_DATA,
|
||||||
|
PROP_VOXEL_SURFACE_STYLE,
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// ATTENTION: add new properties ABOVE this line
|
// ATTENTION: add new properties ABOVE this line
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
const glm::vec3 PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE = glm::vec3(32, 32, 32);
|
const glm::vec3 PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE = glm::vec3(32, 32, 32);
|
||||||
const QByteArray PolyVoxEntityItem::DEFAULT_VOXEL_DATA(qCompress(QByteArray(0), 9));
|
const QByteArray PolyVoxEntityItem::DEFAULT_VOXEL_DATA(qCompress(QByteArray(0), 9));
|
||||||
|
const int PolyVoxEntityItem::DEFAULT_VOXEL_SURFACE_STYLE = 0;
|
||||||
|
|
||||||
EntityItem* PolyVoxEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) {
|
EntityItem* PolyVoxEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) {
|
||||||
EntityItem* result = new PolyVoxEntityItem(entityID, properties);
|
EntityItem* result = new PolyVoxEntityItem(entityID, properties);
|
||||||
|
@ -32,7 +33,8 @@ EntityItem* PolyVoxEntityItem::factory(const EntityItemID& entityID, const Entit
|
||||||
PolyVoxEntityItem::PolyVoxEntityItem(const EntityItemID& entityItemID, const EntityItemProperties& properties) :
|
PolyVoxEntityItem::PolyVoxEntityItem(const EntityItemID& entityItemID, const EntityItemProperties& properties) :
|
||||||
EntityItem(entityItemID),
|
EntityItem(entityItemID),
|
||||||
_voxelVolumeSize(PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE),
|
_voxelVolumeSize(PolyVoxEntityItem::DEFAULT_VOXEL_VOLUME_SIZE),
|
||||||
_voxelData(PolyVoxEntityItem::DEFAULT_VOXEL_DATA)
|
_voxelData(PolyVoxEntityItem::DEFAULT_VOXEL_DATA),
|
||||||
|
_voxelSurfaceStyle(PolyVoxEntityItem::DEFAULT_VOXEL_SURFACE_STYLE)
|
||||||
{
|
{
|
||||||
_type = EntityTypes::PolyVox;
|
_type = EntityTypes::PolyVox;
|
||||||
_created = properties.getCreated();
|
_created = properties.getCreated();
|
||||||
|
@ -50,6 +52,7 @@ EntityItemProperties PolyVoxEntityItem::getProperties() const {
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getXColor);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getXColor);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(voxelVolumeSize, getVoxelVolumeSize);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(voxelVolumeSize, getVoxelVolumeSize);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(voxelData, getVoxelData);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(voxelData, getVoxelData);
|
||||||
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(voxelSurfaceStyle, getVoxelSurfaceStyle);
|
||||||
|
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
@ -61,6 +64,7 @@ bool PolyVoxEntityItem::setProperties(const EntityItemProperties& properties) {
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setXColor);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setXColor);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(voxelVolumeSize, setVoxelVolumeSize);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(voxelVolumeSize, setVoxelVolumeSize);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(voxelData, setVoxelData);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(voxelData, setVoxelData);
|
||||||
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(voxelSurfaceStyle, setVoxelSurfaceStyle);
|
||||||
|
|
||||||
if (somethingChanged) {
|
if (somethingChanged) {
|
||||||
bool wantDebug = false;
|
bool wantDebug = false;
|
||||||
|
@ -85,6 +89,7 @@ int PolyVoxEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* dat
|
||||||
READ_ENTITY_PROPERTY(PROP_COLOR, rgbColor, setColor);
|
READ_ENTITY_PROPERTY(PROP_COLOR, rgbColor, setColor);
|
||||||
READ_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, glm::vec3, setVoxelVolumeSize);
|
READ_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, glm::vec3, setVoxelVolumeSize);
|
||||||
READ_ENTITY_PROPERTY(PROP_VOXEL_DATA, QByteArray, setVoxelData);
|
READ_ENTITY_PROPERTY(PROP_VOXEL_DATA, QByteArray, setVoxelData);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_VOXEL_SURFACE_STYLE, uint16_t, setVoxelSurfaceStyle);
|
||||||
|
|
||||||
return bytesRead;
|
return bytesRead;
|
||||||
}
|
}
|
||||||
|
@ -96,6 +101,7 @@ EntityPropertyFlags PolyVoxEntityItem::getEntityProperties(EncodeBitstreamParams
|
||||||
requestedProperties += PROP_COLOR;
|
requestedProperties += PROP_COLOR;
|
||||||
requestedProperties += PROP_VOXEL_VOLUME_SIZE;
|
requestedProperties += PROP_VOXEL_VOLUME_SIZE;
|
||||||
requestedProperties += PROP_VOXEL_DATA;
|
requestedProperties += PROP_VOXEL_DATA;
|
||||||
|
requestedProperties += PROP_VOXEL_SURFACE_STYLE;
|
||||||
return requestedProperties;
|
return requestedProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,6 +117,7 @@ void PolyVoxEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeB
|
||||||
APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor());
|
APPEND_ENTITY_PROPERTY(PROP_COLOR, getColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, getVoxelVolumeSize());
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_VOLUME_SIZE, getVoxelVolumeSize());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_VOXEL_DATA, getVoxelData());
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_DATA, getVoxelData());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_VOXEL_SURFACE_STYLE, getVoxelSurfaceStyle());
|
||||||
}
|
}
|
||||||
|
|
||||||
void PolyVoxEntityItem::debugDump() const {
|
void PolyVoxEntityItem::debugDump() const {
|
||||||
|
|
|
@ -67,8 +67,12 @@ class PolyVoxEntityItem : public EntityItem {
|
||||||
virtual void setVoxelData(QByteArray voxelData) { _voxelData = voxelData; }
|
virtual void setVoxelData(QByteArray voxelData) { _voxelData = voxelData; }
|
||||||
virtual const QByteArray& getVoxelData() const { return _voxelData; }
|
virtual const QByteArray& getVoxelData() const { return _voxelData; }
|
||||||
|
|
||||||
|
virtual void setVoxelSurfaceStyle(uint16_t voxelSurfaceStyle) { _voxelSurfaceStyle = voxelSurfaceStyle; }
|
||||||
|
virtual uint16_t getVoxelSurfaceStyle() const { return _voxelSurfaceStyle; }
|
||||||
|
|
||||||
static const glm::vec3 DEFAULT_VOXEL_VOLUME_SIZE;
|
static const glm::vec3 DEFAULT_VOXEL_VOLUME_SIZE;
|
||||||
static const QByteArray DEFAULT_VOXEL_DATA;
|
static const QByteArray DEFAULT_VOXEL_DATA;
|
||||||
|
static const int DEFAULT_VOXEL_SURFACE_STYLE;
|
||||||
|
|
||||||
// coords are in voxel-volume space
|
// coords are in voxel-volume space
|
||||||
virtual void setSphereInVolume(glm::vec3 center, float radius, uint8_t toValue) {}
|
virtual void setSphereInVolume(glm::vec3 center, float radius, uint8_t toValue) {}
|
||||||
|
@ -80,6 +84,7 @@ class PolyVoxEntityItem : public EntityItem {
|
||||||
rgbColor _color;
|
rgbColor _color;
|
||||||
glm::vec3 _voxelVolumeSize; // this is always 3 bytes
|
glm::vec3 _voxelVolumeSize; // this is always 3 bytes
|
||||||
QByteArray _voxelData;
|
QByteArray _voxelData;
|
||||||
|
uint16_t _voxelSurfaceStyle;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi_PolyVoxEntityItem_h
|
#endif // hifi_PolyVoxEntityItem_h
|
||||||
|
|
|
@ -556,7 +556,7 @@ void OctreePacketData::debugContent() {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, QString& result) {
|
int OctreePacketData::unpackDataFromBytes(const unsigned char* dataBytes, QString& result) {
|
||||||
uint16_t length;
|
uint16_t length;
|
||||||
memcpy(&length, dataBytes, sizeof(length));
|
memcpy(&length, dataBytes, sizeof(length));
|
||||||
dataBytes += sizeof(length);
|
dataBytes += sizeof(length);
|
||||||
|
@ -565,7 +565,7 @@ int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, QStrin
|
||||||
return sizeof(length) + length;
|
return sizeof(length) + length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, QUuid& result) {
|
int OctreePacketData::unpackDataFromBytes(const unsigned char* dataBytes, QUuid& result) {
|
||||||
uint16_t length;
|
uint16_t length;
|
||||||
memcpy(&length, dataBytes, sizeof(length));
|
memcpy(&length, dataBytes, sizeof(length));
|
||||||
dataBytes += sizeof(length);
|
dataBytes += sizeof(length);
|
||||||
|
@ -578,14 +578,14 @@ int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, QUuid&
|
||||||
return sizeof(length) + length;
|
return sizeof(length) + length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, xColor& result) {
|
int OctreePacketData::unpackDataFromBytes(const unsigned char* dataBytes, xColor& result) {
|
||||||
result.red = dataBytes[RED_INDEX];
|
result.red = dataBytes[RED_INDEX];
|
||||||
result.green = dataBytes[GREEN_INDEX];
|
result.green = dataBytes[GREEN_INDEX];
|
||||||
result.blue = dataBytes[BLUE_INDEX];
|
result.blue = dataBytes[BLUE_INDEX];
|
||||||
return sizeof(rgbColor);
|
return sizeof(rgbColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
int OctreePacketData::uppackDataFromBytes(const unsigned char* dataBytes, QByteArray& result) {
|
int OctreePacketData::unpackDataFromBytes(const unsigned char* dataBytes, QByteArray& result) {
|
||||||
uint16_t length;
|
uint16_t length;
|
||||||
memcpy(&length, dataBytes, sizeof(length));
|
memcpy(&length, dataBytes, sizeof(length));
|
||||||
dataBytes += sizeof(length);
|
dataBytes += sizeof(length);
|
||||||
|
|
|
@ -227,21 +227,21 @@ public:
|
||||||
static quint64 getTotalBytesOfBitMasks() { return _totalBytesOfBitMasks; } /// total bytes of bitmasks
|
static quint64 getTotalBytesOfBitMasks() { return _totalBytesOfBitMasks; } /// total bytes of bitmasks
|
||||||
static quint64 getTotalBytesOfColor() { return _totalBytesOfColor; } /// total bytes of color
|
static quint64 getTotalBytesOfColor() { return _totalBytesOfColor; } /// total bytes of color
|
||||||
|
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, float& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, float& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, glm::vec3& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, glm::vec3& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, bool& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, bool& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, quint64& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, quint64& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, uint32_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, uint32_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, uint16_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, uint16_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, uint8_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, uint8_t& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, rgbColor& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, rgbColor& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, glm::quat& result) { int bytes = unpackOrientationQuatFromBytes(dataBytes, result); return bytes; }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, glm::quat& result) { int bytes = unpackOrientationQuatFromBytes(dataBytes, result); return bytes; }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, ShapeType& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, ShapeType& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, BackgroundMode& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
static int unpackDataFromBytes(const unsigned char* dataBytes, BackgroundMode& result) { memcpy(&result, dataBytes, sizeof(result)); return sizeof(result); }
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, QString& result);
|
static int unpackDataFromBytes(const unsigned char* dataBytes, QString& result);
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, QUuid& result);
|
static int unpackDataFromBytes(const unsigned char* dataBytes, QUuid& result);
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, xColor& result);
|
static int unpackDataFromBytes(const unsigned char* dataBytes, xColor& result);
|
||||||
static int uppackDataFromBytes(const unsigned char* dataBytes, QByteArray& result);
|
static int unpackDataFromBytes(const unsigned char* dataBytes, QByteArray& result);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// appends raw bytes, might fail if byte would cause packet to be too large
|
/// appends raw bytes, might fail if byte would cause packet to be too large
|
||||||
|
|
Loading…
Reference in a new issue