mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 12:17:45 +02:00
Fixing invalid vector usage and strange picking crash
This commit is contained in:
parent
4c3cfe1e82
commit
5159452335
2 changed files with 17 additions and 7 deletions
|
@ -126,7 +126,7 @@ void Stars::render(RenderArgs* renderArgs, float alpha) {
|
||||||
srand(STARFIELD_SEED);
|
srand(STARFIELD_SEED);
|
||||||
unsigned limit = STARFIELD_NUM_STARS;
|
unsigned limit = STARFIELD_NUM_STARS;
|
||||||
std::vector<vec3> points;
|
std::vector<vec3> points;
|
||||||
points.reserve(limit);
|
points.resize(limit);
|
||||||
for (size_t star = 0; star < limit; ++star) {
|
for (size_t star = 0; star < limit; ++star) {
|
||||||
points[star] = fromPolar(randPolar());
|
points[star] = fromPolar(randPolar());
|
||||||
//auto color = computeStarColor(STAR_COLORIZATION);
|
//auto color = computeStarColor(STAR_COLORIZATION);
|
||||||
|
|
|
@ -210,15 +210,25 @@ QScriptValue pickRayToScriptValue(QScriptEngine* engine, const PickRay& pickRay)
|
||||||
void pickRayFromScriptValue(const QScriptValue& object, PickRay& pickRay) {
|
void pickRayFromScriptValue(const QScriptValue& object, PickRay& pickRay) {
|
||||||
QScriptValue originValue = object.property("origin");
|
QScriptValue originValue = object.property("origin");
|
||||||
if (originValue.isValid()) {
|
if (originValue.isValid()) {
|
||||||
pickRay.origin.x = originValue.property("x").toVariant().toFloat();
|
auto x = originValue.property("x");
|
||||||
pickRay.origin.y = originValue.property("y").toVariant().toFloat();
|
auto y = originValue.property("y");
|
||||||
pickRay.origin.z = originValue.property("z").toVariant().toFloat();
|
auto z = originValue.property("z");
|
||||||
|
if (x.isValid() && y.isValid() && z.isValid()) {
|
||||||
|
pickRay.origin.x = x.toVariant().toFloat();
|
||||||
|
pickRay.origin.y = y.toVariant().toFloat();
|
||||||
|
pickRay.origin.z = z.toVariant().toFloat();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QScriptValue directionValue = object.property("direction");
|
QScriptValue directionValue = object.property("direction");
|
||||||
if (directionValue.isValid()) {
|
if (directionValue.isValid()) {
|
||||||
pickRay.direction.x = directionValue.property("x").toVariant().toFloat();
|
auto x = directionValue.property("x");
|
||||||
pickRay.direction.y = directionValue.property("y").toVariant().toFloat();
|
auto y = directionValue.property("y");
|
||||||
pickRay.direction.z = directionValue.property("z").toVariant().toFloat();
|
auto z = directionValue.property("z");
|
||||||
|
if (x.isValid() && y.isValid() && z.isValid()) {
|
||||||
|
pickRay.direction.x = x.toVariant().toFloat();
|
||||||
|
pickRay.direction.y = y.toVariant().toFloat();
|
||||||
|
pickRay.direction.z = z.toVariant().toFloat();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue