if ((mesh.getType() & Spatial.TRIMESH) != 0) {
if ((mesh.getType() & SceneElement.TRIMESH) != 0) {
    public void draw(Renderer r) {        DisplaySystem display = DisplaySystem.getDisplaySystem();        // irrisor: compensate for different size renderer        float intensity = getIntensity();        if (display.getWidth() != r.getWidth()                || display.getHeight() != r.getHeight()) {            float factorX = (float) display.getWidth() / r.getWidth();            flarePoint.x *= factorX;            float factorY = (float) display.getHeight() / r.getHeight();            flarePoint.y *= factorY;            midPoint.x *= factorX;            midPoint.y *= factorY;            scale.x = intensity;            scale.y = intensity * factorY / factorX;            scale.z = intensity;        } else {            scale.x = intensity;            scale.y = intensity;            scale.z = intensity;        }        if (rootNode != null) {            pickResults.clear();            Vector3f origin = pickRay.getOrigin();            screenPos.set(flarePoint.x + midPoint.x, flarePoint.y + midPoint.y);            display.getWorldCoordinates(screenPos, 0, origin); // todo:                                                                // neccessary?!            pickRay.getDirection().set(getWorldTranslation()).subtractLocal(                    origin);            pickBoundsGeoms.clear();            rootNode.findPick(pickRay, pickResults);            this.setIntensity(1);            occludingTriMeshes.clear();            for (int i = pickBoundsGeoms.size() - 1; i >= 0; i--) {                Geometry mesh = (Geometry) pickBoundsGeoms.get(i);                if (!mesh.getWorldTranslation().equals(                        this.getWorldTranslation())                        && !((mesh.getParent().getType() & Spatial.SKY_BOX) != 0)                        && mesh.getRenderQueueMode() != Renderer.QUEUE_TRANSPARENT) {                    if ((mesh.getType() & Spatial.TRIMESH) != 0) {                        occludingTriMeshes.add(mesh);                    } else {                        this.setIntensity(0);                        break;                    }                }            }            if (occludingTriMeshes.size() > 0 && getIntensity() > 0) {                checkRealOcclusion();            }        }        for (int x = getQuantity(); --x >= 0;) {            FlareQuad fq = (FlareQuad) getChild(x);            fq.setLocalScale(scale);            fq.updatePosition(flarePoint, midPoint);        }        super.draw(r);    }