mirror of
https://github.com/overte-org/overte.git
synced 2025-04-16 13:56:24 +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);
|
||||
unsigned limit = STARFIELD_NUM_STARS;
|
||||
std::vector<vec3> points;
|
||||
points.reserve(limit);
|
||||
points.resize(limit);
|
||||
for (size_t star = 0; star < limit; ++star) {
|
||||
points[star] = fromPolar(randPolar());
|
||||
//auto color = computeStarColor(STAR_COLORIZATION);
|
||||
|
|
|
@ -210,15 +210,25 @@ QScriptValue pickRayToScriptValue(QScriptEngine* engine, const PickRay& pickRay)
|
|||
void pickRayFromScriptValue(const QScriptValue& object, PickRay& pickRay) {
|
||||
QScriptValue originValue = object.property("origin");
|
||||
if (originValue.isValid()) {
|
||||
pickRay.origin.x = originValue.property("x").toVariant().toFloat();
|
||||
pickRay.origin.y = originValue.property("y").toVariant().toFloat();
|
||||
pickRay.origin.z = originValue.property("z").toVariant().toFloat();
|
||||
auto x = originValue.property("x");
|
||||
auto y = originValue.property("y");
|
||||
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");
|
||||
if (directionValue.isValid()) {
|
||||
pickRay.direction.x = directionValue.property("x").toVariant().toFloat();
|
||||
pickRay.direction.y = directionValue.property("y").toVariant().toFloat();
|
||||
pickRay.direction.z = directionValue.property("z").toVariant().toFloat();
|
||||
auto x = directionValue.property("x");
|
||||
auto y = directionValue.property("y");
|
||||
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