mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-15 19:07:17 +02:00
Fix polyline optimization.
Add more points to the polyline to check if the optimizations are working.
This commit is contained in:
parent
b65520e788
commit
e37b98e0f5
2 changed files with 35 additions and 28 deletions
|
@ -1415,6 +1415,8 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray EntityItemProperties::getPackedNormals() const {
|
QByteArray EntityItemProperties::getPackedNormals() const {
|
||||||
|
qDebug() << "------------PACKINGNORMALS START-----------------";
|
||||||
|
qDebug() << "------------PACKINGNORMALS START SIZE-----------------" << getNormals().size();
|
||||||
return packNormals(getNormals());
|
return packNormals(getNormals());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1423,10 +1425,18 @@ QByteArray EntityItemProperties::packNormals(const QVector<glm::vec3>& normals)
|
||||||
int normalsSize = normals.size();
|
int normalsSize = normals.size();
|
||||||
QByteArray packedNormals = QByteArray(normalsSize * 6 + 1, '0');
|
QByteArray packedNormals = QByteArray(normalsSize * 6 + 1, '0');
|
||||||
// add size of the array
|
// add size of the array
|
||||||
packedNormals.push_back((byte)normalsSize);
|
packedNormals[0] = ((uint8_t)normalsSize);
|
||||||
|
qDebug() << "------------PACKINGNORMALS START SIZE-----------------"
|
||||||
|
<< (int)packedNormals[0]
|
||||||
|
<< " / "
|
||||||
|
<< ((uint8_t)normalsSize)
|
||||||
|
<< " * "
|
||||||
|
<< normalsSize
|
||||||
|
<< " = "
|
||||||
|
<< normals.count();
|
||||||
|
|
||||||
int index = 1;
|
int index = 1;
|
||||||
for (int i = 0; i < normalsSize; i++) {
|
for (int i = 0; i < normalsSize; i++) {
|
||||||
unsigned char auxBuffer[6];
|
|
||||||
int numBytes = packFloatVec3ToSignedTwoByteFixed((unsigned char*)packedNormals.data() + index, normals[i], 15);
|
int numBytes = packFloatVec3ToSignedTwoByteFixed((unsigned char*)packedNormals.data() + index, normals[i], 15);
|
||||||
qDebug() << "PACKINGNORMALS " << normals[i].x << " " << normals[i].y << " " << normals[i].z;
|
qDebug() << "PACKINGNORMALS " << normals[i].x << " " << normals[i].y << " " << normals[i].z;
|
||||||
//memcpy(packedNormals.data() + index, auxBuffer, numBytes);
|
//memcpy(packedNormals.data() + index, auxBuffer, numBytes);
|
||||||
|
@ -1445,7 +1455,7 @@ QByteArray EntityItemProperties::packStrokeColors(const QVector<glm::vec3>& stro
|
||||||
QByteArray packedStrokeColors = QByteArray(strokeColorsSize * 3 + 1, '0');
|
QByteArray packedStrokeColors = QByteArray(strokeColorsSize * 3 + 1, '0');
|
||||||
|
|
||||||
// add size of the array
|
// add size of the array
|
||||||
packedStrokeColors.push_back((uint8_t)strokeColorsSize);
|
packedStrokeColors[0] = ((uint8_t)strokeColorsSize);
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < strokeColorsSize; i++) {
|
for (int i = 0; i < strokeColorsSize; i++) {
|
||||||
|
@ -1455,9 +1465,9 @@ QByteArray EntityItemProperties::packStrokeColors(const QVector<glm::vec3>& stro
|
||||||
uint8_t b = strokeColors[i].b * 255;
|
uint8_t b = strokeColors[i].b * 255;
|
||||||
|
|
||||||
// add the color to the QByteArray
|
// add the color to the QByteArray
|
||||||
packedStrokeColors[i * 3] = strokeColors[i].r * 255;
|
packedStrokeColors[i * 3 + 1] = strokeColors[i].r * 255;
|
||||||
packedStrokeColors[i * 3 + 1] = strokeColors[i].g * 255;
|
packedStrokeColors[i * 3 + 2] = strokeColors[i].g * 255;
|
||||||
packedStrokeColors[i * 3 + 2] = strokeColors[i].b * 255;
|
packedStrokeColors[i * 3 + 3] = strokeColors[i].b * 255;
|
||||||
|
|
||||||
qDebug() << "PACKINGSTROKECOLORS" << strokeColors[i].r << " " << strokeColors[i].g << " " << strokeColors[i].b;
|
qDebug() << "PACKINGSTROKECOLORS" << strokeColors[i].r << " " << strokeColors[i].g << " " << strokeColors[i].b;
|
||||||
}
|
}
|
||||||
|
@ -1715,15 +1725,19 @@ void EntityItemProperties::setPackedNormals(const QByteArray& value) {
|
||||||
QVector<glm::vec3> EntityItemProperties::unpackNormals(const QByteArray& normals) {
|
QVector<glm::vec3> EntityItemProperties::unpackNormals(const QByteArray& normals) {
|
||||||
qDebug() << "***************UNPACKINGNORMALS**********************";
|
qDebug() << "***************UNPACKINGNORMALS**********************";
|
||||||
// the size of the vector is packed first
|
// the size of the vector is packed first
|
||||||
QVector<glm::vec3> unpackedNormals = QVector<glm::vec3>(normals[0]);
|
QVector<glm::vec3> unpackedNormals = QVector<glm::vec3>((int)normals[0]);
|
||||||
if (normals[0] == normals.size() / 6 - 1) {
|
qDebug() << "UNPACKINGNORMALS SIZE TEST " << (int)normals[0] << " " << (normals.size() / 6);
|
||||||
|
|
||||||
|
if ((int)normals[0] == normals.size() / 6) {
|
||||||
|
|
||||||
qDebug() << "UNPACKINGNORMALS SIZE " << normals[0];
|
qDebug() << "UNPACKINGNORMALS SIZE " << normals[0];
|
||||||
|
int j = 0;
|
||||||
for (int i = 1; i < normals.size();) {
|
for (int i = 1; i < normals.size();) {
|
||||||
glm::vec3 aux = glm::vec3();
|
glm::vec3 aux = glm::vec3();
|
||||||
i += unpackFloatVec3FromSignedTwoByteFixed((unsigned char*)normals.data() + i, aux, 15);
|
i += unpackFloatVec3FromSignedTwoByteFixed((unsigned char*)normals.data() + i, aux, 15);
|
||||||
unpackedNormals[i] = aux;
|
unpackedNormals[j] = aux;
|
||||||
qDebug() << "UNPACKINGNORMALS::" << unpackedNormals.back().x << " " << unpackedNormals.back().y << " " << unpackedNormals.back().z;
|
qDebug() << "UNPACKINGNORMALS::" << unpackedNormals[j].x << " " << unpackedNormals[j].y << " " << unpackedNormals[j].z;
|
||||||
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qDebug() << "***************ENDUNPACKINGNORMALS**********************";
|
qDebug() << "***************ENDUNPACKINGNORMALS**********************";
|
||||||
|
@ -1737,17 +1751,20 @@ void EntityItemProperties::setPackedStrokeColors(const QByteArray& value) {
|
||||||
QVector<glm::vec3> EntityItemProperties::unpackStrokeColors(const QByteArray& strokeColors) {
|
QVector<glm::vec3> EntityItemProperties::unpackStrokeColors(const QByteArray& strokeColors) {
|
||||||
qDebug() << "------------UNPACKINGSTROKECOLORS-----------------";
|
qDebug() << "------------UNPACKINGSTROKECOLORS-----------------";
|
||||||
// the size of the vector is packed first
|
// the size of the vector is packed first
|
||||||
QVector<glm::vec3> unpackedStrokeColors = QVector<glm::vec3>(strokeColors[0]);
|
QVector<glm::vec3> unpackedStrokeColors = QVector<glm::vec3>((int)strokeColors[0]);
|
||||||
if (strokeColors[0] == strokeColors.size() / 3 - 1) {
|
qDebug() << "UNPACKINGSTROKECOLORS SIZE TEST " << (int)strokeColors[0] << " " << (strokeColors.size() / 3);
|
||||||
|
|
||||||
|
if ((int)strokeColors[0] == strokeColors.size() / 3) {
|
||||||
qDebug() << "UNPACKINGSTROKECOLORS SIZE " << strokeColors[0];
|
qDebug() << "UNPACKINGSTROKECOLORS SIZE " << strokeColors[0];
|
||||||
|
int j = 0;
|
||||||
for (int i = 1; i < strokeColors.size();) {
|
for (int i = 1; i < strokeColors.size();) {
|
||||||
|
|
||||||
float r = strokeColors[i++] / 255.0f;
|
float r = (uint8_t)strokeColors[i++] / 255.0f;
|
||||||
float g = strokeColors[i++] / 255.0f;
|
float g = (uint8_t)strokeColors[i++] / 255.0f;
|
||||||
float b = strokeColors[i++] / 255.0f;
|
float b = (uint8_t)strokeColors[i++] / 255.0f;
|
||||||
qDebug() << "UNPACKINGSTROKECOLORS " << r << " " << g << " " << b;
|
qDebug() << "UNPACKINGSTROKECOLORS " << r << " " << g << " " << b;
|
||||||
|
|
||||||
unpackedStrokeColors[i] = glmVec3(r, g, b);
|
unpackedStrokeColors[j++] = glmVec3(r, g, b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qDebug() << "-----------------ENDUNPACKINGSTROKECOLORS------------------";
|
qDebug() << "-----------------ENDUNPACKINGSTROKECOLORS------------------";
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
_isUvModeStretch = _savedSettings.currentTexture.brushType == "stretch",
|
_isUvModeStretch = _savedSettings.currentTexture.brushType == "stretch",
|
||||||
MIN_STROKE_LENGTH = 0.005, // m
|
MIN_STROKE_LENGTH = 0.005, // m
|
||||||
MIN_STROKE_INTERVAL = 66, // ms
|
MIN_STROKE_INTERVAL = 66, // ms
|
||||||
MAX_POINTS_PER_LINE = 70; // Quick fix for polyline points disappearing issue.
|
MAX_POINTS_PER_LINE = 60; // Quick fix for polyline points disappearing issue.
|
||||||
|
|
||||||
function calculateStrokeNormal() {
|
function calculateStrokeNormal() {
|
||||||
if (!_isMouseDrawing) {
|
if (!_isMouseDrawing) {
|
||||||
|
@ -453,17 +453,7 @@
|
||||||
var LEFT_HUD_LASER = 1;
|
var LEFT_HUD_LASER = 1;
|
||||||
var RIGHT_HUD_LASER = 2;
|
var RIGHT_HUD_LASER = 2;
|
||||||
var BOTH_HUD_LASERS = LEFT_HUD_LASER + RIGHT_HUD_LASER;
|
var BOTH_HUD_LASERS = LEFT_HUD_LASER + RIGHT_HUD_LASER;
|
||||||
if (_isLeftHandDominant){
|
|
||||||
HMD.setHandLasers(RIGHT_HUD_LASER, true, LASER_TRIGGER_COLOR_XYZW, SYSTEM_LASER_DIRECTION);
|
|
||||||
|
|
||||||
HMD.disableHandLasers(LEFT_HUD_LASER);
|
|
||||||
}else{
|
|
||||||
HMD.setHandLasers(LEFT_HUD_LASER, true, LASER_TRIGGER_COLOR_XYZW, SYSTEM_LASER_DIRECTION);
|
|
||||||
HMD.disableHandLasers(RIGHT_HUD_LASER);
|
|
||||||
|
|
||||||
}
|
|
||||||
HMD.disableExtraLaser();
|
|
||||||
|
|
||||||
var wasTriggerPressed,
|
var wasTriggerPressed,
|
||||||
fingerTipPosition,
|
fingerTipPosition,
|
||||||
lineWidth;
|
lineWidth;
|
||||||
|
|
Loading…
Reference in a new issue