From 132b0abc500b8b59e30b8da587e4cfb276376773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Re=CC=81my=20Bouquet?= Date: Sat, 7 Oct 2017 10:27:03 +0200 Subject: [PATCH 001/150] glTF Properly ignore morph animation until they are supported --- .../com/jme3/scene/plugins/gltf/GltfLoader.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index a1353d33f..8b2897e50 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -761,16 +761,6 @@ public class GltfLoader implements AssetLoader { times = readAccessorData(timeIndex, floatArrayPopulator); addToCache("accessors", timeIndex, times, accessors.size()); } -// if (animData.times == null) { -// animData.times = times; -// } else { -// //check if we are loading the same time array -// if (animData.times != times) { -// //TODO there might be work to do here... if the inputs are different we might want to merge the different times array... -// //easier said than done. -// logger.log(Level.WARNING, "Channel has different input accessors for samplers"); -// } -// } if (targetPath.equals("translation")) { animData.timeArrays.add(new AnimData.TimeData(times, AnimData.Type.Translation)); @@ -784,6 +774,12 @@ public class GltfLoader implements AssetLoader { animData.timeArrays.add(new AnimData.TimeData(times, AnimData.Type.Rotation)); Quaternion[] rotations = readAccessorData(dataIndex, quaternionArrayPopulator); animData.rotations = rotations; + } else { + //TODO support weights + logger.log(Level.WARNING, "Morph animation is not supported"); + animatedNodes[targetNode] = null; + continue; + } animatedNodes[targetNode] = customContentManager.readExtensionAndExtras("channel", channel, animData); } From 4ce05dd0cad78f5ed5395bfd210ccd237802f53a Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 12:51:27 +1300 Subject: [PATCH 002/150] Add pre-render method to VRViewManager in preparation for adding Oculus Rift support. See https://hub.jmonkeyengine.org/t/libovr-oculus-rift-support/39427 --- jme3-vr/src/main/java/com/jme3/app/VRAppState.java | 10 ++++++++++ .../main/java/com/jme3/util/AbstractVRViewManager.java | 4 ++++ jme3-vr/src/main/java/com/jme3/util/VRViewManager.java | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index a468e71b9..39df3884b 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -432,6 +432,16 @@ public class VRAppState extends AbstractAppState { } } + @Override + public void render(RenderManager rm) { + super.render(rm); + + // update compositor + if( environment.getVRViewManager() != null ) { + environment.getVRViewManager().render(); + } + } + @Override public void initialize(AppStateManager stateManager, Application app) { super.initialize(stateManager, app); diff --git a/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java b/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java index f4f7e7f91..6c664dd59 100644 --- a/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java +++ b/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java @@ -128,6 +128,10 @@ public abstract class AbstractVRViewManager implements VRViewManager { public VREnvironment getVREnvironment(){ return environment; } + + @Override + public void render() { + } /** * Handles moving filters from the main view to each eye diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java index 58a6c166e..1a5eaeb75 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java @@ -150,6 +150,12 @@ public interface VRViewManager { */ public void update(float tpf); + /** + * Set up the scene for rendering. + * This method should be called before any rendering takes place. + */ + public void render(); + /** * Send the rendering result as textures to the two eyes. * This method should be called after all the rendering operations From 5fd593980774350e54f18fd1bc07a7e609bb0f84 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 13:51:30 +1300 Subject: [PATCH 003/150] Add LWJGL-LibOVR gradle dependency --- jme3-vr/build.gradle | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jme3-vr/build.gradle b/jme3-vr/build.gradle index ec1ec8fed..d2c299eb0 100644 --- a/jme3-vr/build.gradle +++ b/jme3-vr/build.gradle @@ -2,7 +2,7 @@ if (!hasProperty('mainClass')) { ext.mainClass = '' } -def lwjglVersion = '3.0.0' +def lwjglVersion = '3.1.3' sourceCompatibility = '1.8' @@ -14,4 +14,8 @@ dependencies { // https://mvnrepository.com/artifact/net.java.dev.jna/jna compile group: 'net.java.dev.jna', name: 'jna', version: '4.3.0' compile 'com.nativelibs4java:jnaerator-runtime:0.12' + + // Native LibOVR/Oculus support + compile "org.lwjgl:lwjgl-ovr:${lwjglVersion}" + runtime "org.lwjgl:lwjgl-ovr:${lwjglVersion}:natives-windows" } \ No newline at end of file From d96bf2c13ed36af5e173e18c70fb19aaa9f3955d Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 15:40:51 +1300 Subject: [PATCH 004/150] Add skeleton OculusVR input --- .../main/java/com/jme3/input/vr/OculusVR.java | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java new file mode 100644 index 000000000..a26060379 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -0,0 +1,165 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.jme3.input.vr; + +import com.jme3.app.VREnvironment; +import com.jme3.math.*; +import com.jme3.renderer.Camera; +import java.util.logging.Logger; + +import static org.lwjgl.ovr.OVRUtil.ovr_Detect; + +import org.lwjgl.ovr.*; + +/** + * Oculus VR (LibOVR 1.3.0) Native support. + * + * @author Campbell Suter + */ +public class OculusVR implements VRAPI { + + private static final Logger LOGGER = Logger.getLogger(OculusVR.class.getName()); + + private final VREnvironment environment; + private boolean initialized; + + public OculusVR(VREnvironment environment) { + this.environment = environment; + } + + @Override + public OpenVRInput getVRinput() { + throw new UnsupportedOperationException(); + } + + @Override + public String getName() { + return "OVR"; + } + + @Override + public int getDisplayFrequency() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean initialize() { + OVRDetectResult detect = OVRDetectResult.calloc(); + ovr_Detect(0, detect); + System.out.println("OVRDetectResult.IsOculusHMDConnected = " + detect.IsOculusHMDConnected()); + System.out.println("OVRDetectResult.IsOculusServiceRunning = " + detect.IsOculusServiceRunning()); + detect.free(); + if (detect.IsOculusHMDConnected() == false) { + return false; + } + + initialized = true; + + throw new UnsupportedOperationException("Not yet implemented!"); + } + + @Override + public boolean isInitialized() { + return initialized; + } + + @Override + public void destroy() { + } + + @Override + public void reset() { + } + + @Override + public void getRenderSize(Vector2f store) { + } + + @Override + public float getInterpupillaryDistance() { + return 0.065f; // TODO + } + + @Override + public Quaternion getOrientation() { + throw new UnsupportedOperationException(); + } + + @Override + public Vector3f getPosition() { + throw new UnsupportedOperationException(); + } + + @Override + public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) { + throw new UnsupportedOperationException(); + } + + @Override + public void updatePose() { + throw new UnsupportedOperationException(); + } + + @Override + public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { + throw new UnsupportedOperationException(); + } + + @Override + public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) { + throw new UnsupportedOperationException(); + } + + @Override + public Vector3f getHMDVectorPoseLeftEye() { + throw new UnsupportedOperationException(); + } + + @Override + public Vector3f getHMDVectorPoseRightEye() { + throw new UnsupportedOperationException(); + } + + @Override + public Vector3f getSeatedToAbsolutePosition() { + throw new UnsupportedOperationException(); + } + + @Override + public Matrix4f getHMDMatrixPoseLeftEye() { + throw new UnsupportedOperationException(); + } + + @Override + public HmdType getType() { + throw new UnsupportedOperationException(); + } + + @Override + public Matrix4f getHMDMatrixPoseRightEye() { + throw new UnsupportedOperationException(); + } + + public void printLatencyInfoToConsole(boolean set) { + throw new UnsupportedOperationException("Not yet implemented!"); + } + + public void setFlipEyes(boolean set) { + throw new UnsupportedOperationException("Not yet implemented!"); + } + + public Void getCompositor() { + throw new UnsupportedOperationException("Not yet implemented!"); + } + + public Void getVRSystem() { + throw new UnsupportedOperationException("Not yet implemented!"); + } + + public boolean initVRCompositor(boolean set) { + throw new UnsupportedOperationException("Not yet implemented!"); + } +} From cf28e814809dcb59d16b59a792304f48faf57fc2 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 12:59:11 +1300 Subject: [PATCH 005/150] Add initial VRViewManagerOculus --- .../com/jme3/util/VRViewManagerOculus.java | 412 ++++++++++++++++++ 1 file changed, 412 insertions(+) create mode 100644 jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java new file mode 100644 index 000000000..4f61f4dd3 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -0,0 +1,412 @@ +/* + * Copyright (c) 2009-2017 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.util; + +import com.jme3.app.VREnvironment; +import com.jme3.input.vr.VRAPI; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector2f; +import com.jme3.renderer.Camera; +import com.jme3.renderer.ViewPort; +import com.jme3.scene.Spatial; +import com.jme3.texture.*; +import java.nio.IntBuffer; +import java.util.Iterator; +import java.util.logging.Logger; +import org.lwjgl.PointerBuffer; + +import static com.jme3.util.VRViewManager.LEFT_VIEW_NAME; +import static com.jme3.util.VRViewManager.RIGHT_VIEW_NAME; + +import org.lwjgl.ovr.*; + +import static org.lwjgl.BufferUtils.*; +import static org.lwjgl.ovr.OVR.*; +import static org.lwjgl.ovr.OVRErrorCode.*; + +/** + * A rendering system for Oculus's LibOVR API. + * + * @author Campbell Suter + */ +public class VRViewManagerOculus extends AbstractVRViewManager { + + private static final Logger LOG = Logger.getLogger(VRViewManagerOculus.class.getName()); + + private final VREnvironment environment; + + // The size of the texture drawn onto the HMD + private int textureW; + private int textureH; + + long session = 0; // TODO take from OculusVR input + + // Layers to render into + private PointerBuffer layers; + private OVRLayerEyeFov layer0; + + /** + * Chain texture set thing. + */ + long chain; + + /** + * The definitions of the up/down/left/right parts of the FOV for each eye. + */ + private final OVRFovPort fovPorts[] = new OVRFovPort[2]; + + /** + * Frame buffers we can draw into. + */ + private FrameBuffer framebuffers[]; + + public VRViewManagerOculus(VREnvironment environment) { + this.environment = environment; + + if (!environment.compositorAllowed()) { + throw new UnsupportedOperationException("Cannot render without compositor on LibOVR"); + } + } + + @Override + public void initialize() { + setupCamerasAndViews(); + + OVRHmdDesc hmdDesc = null; // TODO take from OculusVR input + + for (int eye = 0; eye < 2; eye++) { + fovPorts[eye] = hmdDesc.DefaultEyeFov(eye); + System.out.println("eye " + eye + " = " + + fovPorts[eye].UpTan() + ", " + + fovPorts[eye].DownTan() + ", " + + fovPorts[eye].LeftTan() + ", " + + fovPorts[eye].RightTan() + ); + } + + findHMDTextureSize(); + setupTextureChain(); + setupLayers(); + setupFramebuffers(); + } + + private void findHMDTextureSize() { + OVRFovPort fovPorts[] = null; + + // Texture sizes + float pixelScaling = 1.0f; // pixelsPerDisplayPixel + + OVRSizei leftTextureSize = OVRSizei.malloc(); + ovr_GetFovTextureSize(session, ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); + System.out.println("leftTextureSize W=" + leftTextureSize.w() + ", H=" + leftTextureSize.h()); + + OVRSizei rightTextureSize = OVRSizei.malloc(); + ovr_GetFovTextureSize(session, ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); + System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); + + textureW = leftTextureSize.w() + rightTextureSize.w(); + textureH = Math.max(leftTextureSize.h(), rightTextureSize.h()); + + leftTextureSize.free(); + rightTextureSize.free(); + } + + private PointerBuffer setupTextureChain() { + // Set up the information for the texture buffer chain thing + OVRTextureSwapChainDesc swapChainDesc = OVRTextureSwapChainDesc.calloc() + .Type(ovrTexture_2D) + .ArraySize(1) + .Format(OVR_FORMAT_R8G8B8A8_UNORM_SRGB) + .Width(textureW) + .Height(textureH) + .MipLevels(1) + .SampleCount(1) + .StaticImage(false); // ovrFalse + + // Create the chain + PointerBuffer textureSetPB = createPointerBuffer(1); + if (OVRGL.ovr_CreateTextureSwapChainGL(session, swapChainDesc, textureSetPB) != ovrSuccess) { + throw new RuntimeException("Failed to create Swap Texture Set"); + } + chain = textureSetPB.get(0); + swapChainDesc.free(); + System.out.println("done chain creation"); + + return textureSetPB; + } + + private void setupLayers() { + PointerBuffer chainPtr = setupTextureChain(); + + //Layers + layer0 = OVRLayerEyeFov.calloc(); + layer0.Header().Type(ovrLayerType_EyeFov); + layer0.Header().Flags(ovrLayerFlag_TextureOriginAtBottomLeft); + + for (int eye = 0; eye < 2; eye++) { + OVRRecti viewport = OVRRecti.calloc(); + viewport.Pos().x(0); + viewport.Pos().y(0); + viewport.Size().w(textureW); + viewport.Size().h(textureH); + + layer0.ColorTexture(chainPtr); + layer0.Viewport(eye, viewport); + layer0.Fov(eye, fovPorts[eye]); + + viewport.free(); + // we update pose only when we have it in the render loop + } + + layers = createPointerBuffer(1); + layers.put(0, layer0); + } + + /** + * Create framebuffers bound to each of the eye textures + */ + private void setupFramebuffers() { + // Find the chain length + IntBuffer length = BufferUtils.createIntBuffer(1); + ovr_GetTextureSwapChainLength(session, chain, length); + int chainLength = length.get(); + + System.out.println("chain length=" + chainLength); + + // Create the frame buffers + framebuffers = new FrameBuffer[chainLength]; + for (int i = 0; i < chainLength; i++) { + // find the GL texture ID for this texture + IntBuffer textureIdB = BufferUtils.createIntBuffer(1); + OVRGL.ovr_GetTextureSwapChainBufferGL(session, chain, i, textureIdB); + int textureId = textureIdB.get(); + + // TODO less hacky way of getting our texture into JMonkeyEngine + Texture2D tex = new Texture2D(new Image()); + tex.getImage().setId(textureId); + + FrameBuffer buffer = new FrameBuffer(textureW, textureH, 1); + buffer.setDepthBuffer(Image.Format.Depth); + buffer.setColorTexture(tex); + + framebuffers[i] = buffer; + } + } + + @Override + public void update(float tpf) { + // TODO + } + + @Override + public void render() { + for (int eye = 0; eye < 2; eye++) { + // TODO add eyePoses +// OVRPosef eyePose = eyePoses[eye]; +// layer0.RenderPose(eye, eyePose); + + IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); + ovr_GetTextureSwapChainCurrentIndex(session, chain, currentIndexB); + int index = currentIndexB.get(); + + (eye == 0 ? leftViewPort : rightViewPort).setOutputFrameBuffer(framebuffers[index]); + } + + // Now the game will render into the buffers given to us by LibOVR + } + + @Override + public void postRender() { + // We're done with our textures now - the game is done drawing into them. + ovr_CommitTextureSwapChain(session, chain); + + // Send the result to the HMD + int result = ovr_SubmitFrame(session, 0, null, layers); + if (result != ovrSuccess) { + throw new IllegalStateException("Failed to submit frame!"); + } + } + + /* + ********************************************************* + * Show's over, now it's just boring camera stuff etc. * + ********************************************************* + */ + /** + * Set up the cameras and views for each eye and the mirror display. + */ + private void setupCamerasAndViews() { + // TODO: Use LobOVR IPD etc + if (environment != null) { + // get desired frustrum from original camera + Camera origCam = environment.getCamera(); + float fFar = origCam.getFrustumFar(); + float fNear = origCam.getFrustumNear(); + + // restore frustrum on distortion scene cam, if needed + if (environment.isInstanceRendering()) { + leftCamera = origCam; + } else if (environment.compositorAllowed() == false) { + origCam.setFrustumFar(100f); + origCam.setFrustumNear(1f); + leftCamera = origCam.clone(); + prepareCameraSize(origCam, 2f); + } else { + leftCamera = origCam.clone(); + } + + getLeftCamera().setFrustumPerspective(environment.getDefaultFOV(), environment.getDefaultAspect(), fNear, fFar); + + prepareCameraSize(getLeftCamera(), 1f); + if (environment.getVRHardware() != null) { + getLeftCamera().setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionLeftEye(getLeftCamera())); + } + //org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_FRAMEBUFFER_SRGB); + + if (!environment.isInstanceRendering()) { + leftViewPort = setupViewBuffers(getLeftCamera(), LEFT_VIEW_NAME); + rightCamera = getLeftCamera().clone(); + if (environment.getVRHardware() != null) { + getRightCamera().setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(getRightCamera())); + } + rightViewPort = setupViewBuffers(getRightCamera(), RIGHT_VIEW_NAME); + } else if (environment.getApplication() != null) { + + LOG.severe("THIS CODE NEED CHANGES !!!"); + leftViewPort = environment.getApplication().getViewPort(); + //leftViewport.attachScene(app.getRootNode()); + rightCamera = getLeftCamera().clone(); + if (environment.getVRHardware() != null) { + getRightCamera().setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(getRightCamera())); + } + + org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_CLIP_DISTANCE0); + + //FIXME: [jme-vr] Fix with JMonkey next release + //RenderManager._VRInstancing_RightCamProjection = camRight.getViewProjectionMatrix(); + // TODO: Add LibOVR support + // setupFinalFullTexture(environment.getApplication().getViewPort().getCamera()); + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + + // setup gui + environment.getVRGUIManager().setupGui(getLeftCamera(), getRightCamera(), getLeftViewPort(), getRightViewPort()); + + if (environment.getVRHardware() != null) { + // call these to cache the results internally + environment.getVRHardware().getHMDMatrixPoseLeftEye(); + environment.getVRHardware().getHMDMatrixPoseRightEye(); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + private void prepareCameraSize(Camera cam, float xMult) { + // TODO this function is identical to that in VRViewManagerOpenVR; merge the two. + if (environment != null) { + if (environment.getApplication() != null) { + Vector2f size = new Vector2f(); + VRAPI vrhmd = environment.getVRHardware(); + + if (vrhmd == null) { + size.x = 1280f; + size.y = 720f; + } else { + vrhmd.getRenderSize(size); + } + + if (size.x < environment.getApplication().getContext().getSettings().getWidth()) { + size.x = environment.getApplication().getContext().getSettings().getWidth(); + } + if (size.y < environment.getApplication().getContext().getSettings().getHeight()) { + size.y = environment.getApplication().getContext().getSettings().getHeight(); + } + + if (environment.isInstanceRendering()) { + size.x *= 2f; + } + + // other adjustments + size.x *= xMult; + size.x *= getResolutionMuliplier(); + size.y *= getResolutionMuliplier(); + + if (cam.getWidth() != size.x || cam.getHeight() != size.y) { + cam.resize((int) size.x, (int) size.y, false); + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + private ViewPort setupViewBuffers(Camera cam, String viewName) { + // TODO this function is identical to that in VRViewManagerOpenVR; merge the two. + if (environment != null) { + if (environment.getApplication() != null) { + // create offscreen framebuffer + FrameBuffer offBufferLeft = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1); + //offBufferLeft.setSrgb(true); + + //setup framebuffer's texture + Texture2D offTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8); + offTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps); + offTex.setMagFilter(Texture.MagFilter.Bilinear); + + //setup framebuffer to use texture + offBufferLeft.setDepthBuffer(Image.Format.Depth); + offBufferLeft.setColorTexture(offTex); + + ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam); + viewPort.setClearFlags(true, true, true); + viewPort.setBackgroundColor(ColorRGBA.Black); + + Iterator spatialIter = environment.getApplication().getViewPort().getScenes().iterator(); + while (spatialIter.hasNext()) { + viewPort.attachScene(spatialIter.next()); + } + + //set viewport to render to offscreen framebuffer + viewPort.setOutputFrameBuffer(offBufferLeft); + return viewPort; + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } +} From 7313abf58dc3638f7a985820eed89805e6b3ddd4 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 18:41:03 +1300 Subject: [PATCH 006/150] Setup infrastructure for using LibOVR --- jme3-vr/src/main/java/com/jme3/app/VRConstants.java | 7 +++++++ jme3-vr/src/main/java/com/jme3/app/VREnvironment.java | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRConstants.java b/jme3-vr/src/main/java/com/jme3/app/VRConstants.java index 6e23ec2bf..d8ec7fea7 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRConstants.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRConstants.java @@ -141,6 +141,13 @@ public class VRConstants { * @see #SETTING_VRAPI */ public static final int SETTING_VRAPI_OPENVR_LWJGL_VALUE = 3; + + /** + * The identifier of the LibOVR (Oculus) system. + * + * @see #SETTING_VRAPI + */ + public static final int SETTING_VRAPI_OCULUSVR_VALUE = 4; diff --git a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java index e0e9048dc..7ab9e29ff 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java +++ b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java @@ -7,6 +7,7 @@ import java.util.logging.Logger; import com.jme3.app.state.AppState; import com.jme3.input.vr.OSVR; import com.jme3.input.vr.OpenVR; +import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRBounds; import com.jme3.input.vr.VRInputAPI; @@ -18,6 +19,7 @@ import com.jme3.util.VRGuiManager; import com.jme3.util.VRMouseManager; import com.jme3.util.VRViewManager; import com.jme3.util.VRViewManagerOSVR; +import com.jme3.util.VRViewManagerOculus; import com.jme3.util.VRViewManagerOpenVR; public class VREnvironment { @@ -388,6 +390,8 @@ public class VREnvironment { viewmanager = new VRViewManagerOpenVR(this); } else if (vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE){ viewmanager = new VRViewManagerOSVR(this); + } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { + viewmanager = new VRViewManagerOculus(this); } else { logger.severe("Cannot instanciate view manager, unknown VRAPI type: "+vrBinding); } @@ -419,6 +423,10 @@ public class VREnvironment { hardware = new OpenVR(this); initialized = true; logger.config("Creating OpenVR wrapper [SUCCESS]"); + } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { + hardware = new OculusVR(this); + initialized = true; + logger.config("Creating LibOVR wrapper [SUCCESS]"); } else { logger.config("Cannot create VR binding: "+vrBinding+" [FAILED]"); logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]"); From 3ac7888dc03b803d6ab241e4b9219b8000e5b6be Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 22:15:50 +1300 Subject: [PATCH 007/150] Add initialization logic to OculusVR input --- .../main/java/com/jme3/input/vr/OculusVR.java | 253 +++++++++++++++++- 1 file changed, 240 insertions(+), 13 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index a26060379..7e178d65a 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -8,10 +8,24 @@ package com.jme3.input.vr; import com.jme3.app.VREnvironment; import com.jme3.math.*; import com.jme3.renderer.Camera; +import com.jme3.util.VRUtil; + +import java.nio.IntBuffer; +import java.util.Locale; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; import java.util.logging.Logger; +import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.ovr.OVR.*; + +import static org.lwjgl.ovr.OVRErrorCode.*; +import static org.lwjgl.system.MemoryUtil.*; import static org.lwjgl.ovr.OVRUtil.ovr_Detect; +import org.lwjgl.BufferUtils; +import org.lwjgl.PointerBuffer; + import org.lwjgl.ovr.*; /** @@ -26,6 +40,57 @@ public class OculusVR implements VRAPI { private final VREnvironment environment; private boolean initialized; + /** + * Pointer to the HMD object + */ + private long session; + + /** + * Information about the VR session (should the app quit, is + * it visible or is the universal menu open, etc) + */ + private OVRSessionStatus sessionStatus; + + /** + * HMD information, such as product name and manufacturer. + */ + private OVRHmdDesc hmdDesc; + + /** + * The horizontal resolution of the HMD + */ + private int resolutionW; + + /** + * The vertical resolution of the HMD + */ + private int resolutionH; + + /** + * Field-of-view data for each eye (how many degrees from the + * center can the user see). + */ + private final OVRFovPort fovPorts[] = new OVRFovPort[2]; + + /** + * Data about each eye to be rendered - in particular, the + * offset from the center of the HMD to the eye. + */ + private final OVREyeRenderDesc eyeRenderDesc[] = new OVREyeRenderDesc[2]; + + /** + * Store the projections for each eye, so we don't have to malloc + * and recalculate them each frame. + */ + private final OVRMatrix4f[] projections = new OVRMatrix4f[2]; + + /** + * Store the poses for each eye. + * + * @see #getHMDMatrixPoseLeftEye() + */ + private final Matrix4f[] eyePoses = new Matrix4f[2]; + public OculusVR(VREnvironment environment) { this.environment = environment; } @@ -42,23 +107,117 @@ public class OculusVR implements VRAPI { @Override public int getDisplayFrequency() { - throw new UnsupportedOperationException(); + // TODO find correct frequency. I'm not sure + // if LibOVR has a way to do that, though. + return 60; } @Override public boolean initialize() { OVRDetectResult detect = OVRDetectResult.calloc(); ovr_Detect(0, detect); - System.out.println("OVRDetectResult.IsOculusHMDConnected = " + detect.IsOculusHMDConnected()); - System.out.println("OVRDetectResult.IsOculusServiceRunning = " + detect.IsOculusServiceRunning()); + boolean connected = detect.IsOculusHMDConnected(); + LOGGER.info("OVRDetectResult.IsOculusHMDConnected = " + connected); + LOGGER.info("OVRDetectResult.IsOculusServiceRunning = " + detect.IsOculusServiceRunning()); detect.free(); - if (detect.IsOculusHMDConnected() == false) { + + if (!connected) { return false; } initialized = true; - throw new UnsupportedOperationException("Not yet implemented!"); + // step 1 - hmd init + System.out.println("step 1 - hmd init"); + OVRLogCallback callback = new OVRLogCallback() { + @Override + public void invoke(long userData, int level, long message) { + System.out.println("LibOVR [" + userData + "] [" + level + "] " + memASCII(message)); + } + }; + OVRInitParams initParams = OVRInitParams.calloc(); + initParams.LogCallback(callback); + //initParams.Flags(ovrInit_Debug); + if (ovr_Initialize(initParams) != ovrSuccess) { + System.out.println("init failed"); + } + System.out.println("OVR SDK " + ovr_GetVersionString()); + initParams.free(); + + // step 2 - hmd create + System.out.println("step 2 - hmd create"); + PointerBuffer pHmd = memAllocPointer(1); + OVRGraphicsLuid luid = OVRGraphicsLuid.calloc(); + if (ovr_Create(pHmd, luid) != ovrSuccess) { + System.out.println("create failed, try debug"); + //debug headset is now enabled via the Oculus Configuration util . tools -> Service -> Configure + return false; + } + session = pHmd.get(0); + memFree(pHmd); + luid.free(); + sessionStatus = OVRSessionStatus.calloc(); + + // step 3 - hmdDesc queries + System.out.println("step 3 - hmdDesc queries"); + hmdDesc = OVRHmdDesc.malloc(); + ovr_GetHmdDesc(session, hmdDesc); + System.out.println("ovr_GetHmdDesc = " + hmdDesc.ManufacturerString() + " " + hmdDesc.ProductNameString() + " " + hmdDesc.SerialNumberString() + " " + hmdDesc.Type()); + if (hmdDesc.Type() == ovrHmd_None) { + System.out.println("missing init"); + return false; + } + + resolutionW = hmdDesc.Resolution().w(); + resolutionH = hmdDesc.Resolution().h(); + System.out.println("resolution W=" + resolutionW + ", H=" + resolutionH); + if (resolutionW == 0) { + System.out.println("Huh - width=0"); + return false; + } + + // FOV + for (int eye = 0; eye < 2; eye++) { + fovPorts[eye] = hmdDesc.DefaultEyeFov(eye); + System.out.println("eye " + eye + " = " + fovPorts[eye].UpTan() + ", " + fovPorts[eye].DownTan() + ", " + fovPorts[eye].LeftTan() + ", " + fovPorts[eye].RightTan()); + } + // TODO what does this do? I think it might be the height of the player, for correct floor heights? + // playerEyePos = new Vector3f(0.0f, -ovr_GetFloat(session, OVR_KEY_EYE_HEIGHT, 1.65f), 0.0f); + + // step 4 - tracking - no longer needed as of 0.8.0.0 + + // step 5 - projections + System.out.println("step 5 - projections"); + for (int eye = 0; eye < 2; eye++) { + projections[eye] = OVRMatrix4f.malloc(); + OVRUtil.ovrMatrix4f_Projection(fovPorts[eye], 0.5f, 500f, OVRUtil.ovrProjection_None, projections[eye]); + //1.3 was right handed, now none flag + } + + // step 6 - render desc + System.out.println("step 6 - render desc"); + for (int eye = 0; eye < 2; eye++) { + eyeRenderDesc[eye] = OVREyeRenderDesc.malloc(); + ovr_GetRenderDesc(session, eye, fovPorts[eye], eyeRenderDesc[eye]); + + // Changed from an offset to a pose, so there is also a rotation. + System.out.println("ipd eye " + eye + " = " + eyeRenderDesc[eye].HmdToEyePose().Position().x()); + + OVRPosef pose = eyeRenderDesc[eye].HmdToEyePose(); + + Matrix4f jPose = new Matrix4f(); + jPose.setTranslation(vecO2J(pose.Position(), new Vector3f())); + jPose.setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); + + eyePoses[eye] = jPose; + } + + // step 7 - recenter + System.out.println("step 7 - recenter"); + ovr_RecenterTrackingOrigin(session); + + // throw new UnsupportedOperationException("Not yet implemented!"); + return true; } @Override @@ -68,14 +227,18 @@ public class OculusVR implements VRAPI { @Override public void destroy() { + throw new UnsupportedOperationException(); } @Override public void reset() { + throw new UnsupportedOperationException(); } @Override public void getRenderSize(Vector2f store) { + store.x = resolutionW; + store.y = resolutionH; } @Override @@ -105,12 +268,12 @@ public class OculusVR implements VRAPI { @Override public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { - throw new UnsupportedOperationException(); + return matrixO2J(projections[ovrEye_Left], new Matrix4f()); } @Override public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) { - throw new UnsupportedOperationException(); + return matrixO2J(projections[ovrEye_Right], new Matrix4f()); } @Override @@ -130,19 +293,28 @@ public class OculusVR implements VRAPI { @Override public Matrix4f getHMDMatrixPoseLeftEye() { - throw new UnsupportedOperationException(); + return eyePoses[ovrEye_Left]; } @Override - public HmdType getType() { - throw new UnsupportedOperationException(); + public Matrix4f getHMDMatrixPoseRightEye() { + return eyePoses[ovrEye_Left]; } @Override - public Matrix4f getHMDMatrixPoseRightEye() { + public HmdType getType() { throw new UnsupportedOperationException(); } + public boolean initVRCompositor(boolean set) { + if (!set) { + throw new UnsupportedOperationException("Cannot use LibOVR without compositor!"); + } + + // TODO move initialization code here from VRViewManagerOculus + return true; + } + public void printLatencyInfoToConsole(boolean set) { throw new UnsupportedOperationException("Not yet implemented!"); } @@ -159,7 +331,62 @@ public class OculusVR implements VRAPI { throw new UnsupportedOperationException("Not yet implemented!"); } - public boolean initVRCompositor(boolean set) { - throw new UnsupportedOperationException("Not yet implemented!"); + // UTILITIES + // TODO move to helper class + + /** + * Copy the values from a LibOVR matrix into a jMonkeyEngine matrix. + * + * @param from The matrix to copy from. + * @param to The matrix to copy to. + * @return The {@code to} argument. + */ + public static Matrix4f matrixO2J(OVRMatrix4f from, Matrix4f to) { + for (int x = 0; x < 4; x++) { + for (int y = 0; y < 4; y++) { + float val = from.M(x + y * 4); // TODO verify this + to.set(x, y, val); + } + } + + return to; + } + + /** + * Copy the values from a LibOVR quaternion into a jMonkeyEngine quaternion. + * + * @param from The quaternion to copy from. + * @param to The quaternion to copy to. + * @return The {@code to} argument. + */ + public static Quaternion quatO2J(OVRQuatf from, Quaternion to) { + to.set( + from.x(), + from.y(), + from.z(), + from.w() + ); + + return to; + } + + /** + * Copy the values from a LibOVR vector into a jMonkeyEngine vector. + * + * @param from The vector to copy from. + * @param to The vector to copy to. + * @return The {@code to} argument. + */ + public static Vector3f vecO2J(OVRVector3f from, Vector3f to) { + to.set( + from.x(), + from.y(), + from.z() + ); + + return to; } } + +/* vim: set ts=4 softtabstop=0 sw=4 expandtab: */ + From 0844c9da04514342adbb66ecfe728099ede5b65d Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 22:37:09 +1300 Subject: [PATCH 008/150] Add getters to OculusVR input --- .../main/java/com/jme3/input/vr/OculusVR.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 7e178d65a..0dba2292b 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -8,25 +8,15 @@ package com.jme3.input.vr; import com.jme3.app.VREnvironment; import com.jme3.math.*; import com.jme3.renderer.Camera; -import com.jme3.util.VRUtil; +import org.lwjgl.PointerBuffer; +import org.lwjgl.ovr.*; -import java.nio.IntBuffer; -import java.util.Locale; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; import java.util.logging.Logger; -import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.ovr.OVR.*; - -import static org.lwjgl.ovr.OVRErrorCode.*; -import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.ovr.OVRErrorCode.ovrSuccess; import static org.lwjgl.ovr.OVRUtil.ovr_Detect; - -import org.lwjgl.BufferUtils; -import org.lwjgl.PointerBuffer; - -import org.lwjgl.ovr.*; +import static org.lwjgl.system.MemoryUtil.*; /** * Oculus VR (LibOVR 1.3.0) Native support. @@ -386,6 +376,19 @@ public class OculusVR implements VRAPI { return to; } + + // Getters, intended for VRViewManager. + public OVRHmdDesc getHmdDesc() { + return hmdDesc; + } + + public OVRFovPort[] getFovPorts() { + return fovPorts; + } + + public long getSessionPointer() { + return session; + } } /* vim: set ts=4 softtabstop=0 sw=4 expandtab: */ From f0b4c13515bea20689cc6bded27c52420d3bfb35 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 22:38:05 +1300 Subject: [PATCH 009/150] Use real, not stub, values in VRViewManagerOculus --- .../com/jme3/util/VRViewManagerOculus.java | 70 +++++++++---------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 4f61f4dd3..7c1fa5637 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -32,6 +32,7 @@ package com.jme3.util; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; import com.jme3.math.ColorRGBA; import com.jme3.math.Vector2f; @@ -39,13 +40,12 @@ import com.jme3.renderer.Camera; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; import com.jme3.texture.*; + import java.nio.IntBuffer; import java.util.Iterator; import java.util.logging.Logger; -import org.lwjgl.PointerBuffer; -import static com.jme3.util.VRViewManager.LEFT_VIEW_NAME; -import static com.jme3.util.VRViewManager.RIGHT_VIEW_NAME; +import org.lwjgl.PointerBuffer; import org.lwjgl.ovr.*; @@ -63,13 +63,12 @@ public class VRViewManagerOculus extends AbstractVRViewManager { private static final Logger LOG = Logger.getLogger(VRViewManagerOculus.class.getName()); private final VREnvironment environment; + private final OculusVR hardware; // The size of the texture drawn onto the HMD private int textureW; private int textureH; - long session = 0; // TODO take from OculusVR input - // Layers to render into private PointerBuffer layers; private OVRLayerEyeFov layer0; @@ -77,12 +76,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { /** * Chain texture set thing. */ - long chain; - - /** - * The definitions of the up/down/left/right parts of the FOV for each eye. - */ - private final OVRFovPort fovPorts[] = new OVRFovPort[2]; + private long chain; /** * Frame buffers we can draw into. @@ -92,6 +86,13 @@ public class VRViewManagerOculus extends AbstractVRViewManager { public VRViewManagerOculus(VREnvironment environment) { this.environment = environment; + VRAPI hardware = environment.getVRHardware(); + if (!(hardware instanceof OculusVR)) { + throw new IllegalStateException("Cannot use Oculus VR view manager on non-Oculus hardware state!"); + } + + this.hardware = (OculusVR) hardware; + if (!environment.compositorAllowed()) { throw new UnsupportedOperationException("Cannot render without compositor on LibOVR"); } @@ -101,36 +102,23 @@ public class VRViewManagerOculus extends AbstractVRViewManager { public void initialize() { setupCamerasAndViews(); - OVRHmdDesc hmdDesc = null; // TODO take from OculusVR input - - for (int eye = 0; eye < 2; eye++) { - fovPorts[eye] = hmdDesc.DefaultEyeFov(eye); - System.out.println("eye " + eye + " = " - + fovPorts[eye].UpTan() + ", " - + fovPorts[eye].DownTan() + ", " - + fovPorts[eye].LeftTan() + ", " - + fovPorts[eye].RightTan() - ); - } - findHMDTextureSize(); - setupTextureChain(); setupLayers(); setupFramebuffers(); } private void findHMDTextureSize() { - OVRFovPort fovPorts[] = null; + OVRFovPort fovPorts[] = hardware.getFovPorts(); // Texture sizes float pixelScaling = 1.0f; // pixelsPerDisplayPixel OVRSizei leftTextureSize = OVRSizei.malloc(); - ovr_GetFovTextureSize(session, ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); + ovr_GetFovTextureSize(session(), ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); System.out.println("leftTextureSize W=" + leftTextureSize.w() + ", H=" + leftTextureSize.h()); OVRSizei rightTextureSize = OVRSizei.malloc(); - ovr_GetFovTextureSize(session, ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); + ovr_GetFovTextureSize(session(), ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); textureW = leftTextureSize.w() + rightTextureSize.w(); @@ -140,6 +128,10 @@ public class VRViewManagerOculus extends AbstractVRViewManager { rightTextureSize.free(); } + private long session() { + return hardware.getSessionPointer(); + } + private PointerBuffer setupTextureChain() { // Set up the information for the texture buffer chain thing OVRTextureSwapChainDesc swapChainDesc = OVRTextureSwapChainDesc.calloc() @@ -154,7 +146,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // Create the chain PointerBuffer textureSetPB = createPointerBuffer(1); - if (OVRGL.ovr_CreateTextureSwapChainGL(session, swapChainDesc, textureSetPB) != ovrSuccess) { + if (OVRGL.ovr_CreateTextureSwapChainGL(session(), swapChainDesc, textureSetPB) != ovrSuccess) { throw new RuntimeException("Failed to create Swap Texture Set"); } chain = textureSetPB.get(0); @@ -181,7 +173,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { layer0.ColorTexture(chainPtr); layer0.Viewport(eye, viewport); - layer0.Fov(eye, fovPorts[eye]); + layer0.Fov(eye, hardware.getFovPorts()[eye]); viewport.free(); // we update pose only when we have it in the render loop @@ -197,7 +189,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { private void setupFramebuffers() { // Find the chain length IntBuffer length = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainLength(session, chain, length); + ovr_GetTextureSwapChainLength(session(), chain, length); int chainLength = length.get(); System.out.println("chain length=" + chainLength); @@ -207,12 +199,17 @@ public class VRViewManagerOculus extends AbstractVRViewManager { for (int i = 0; i < chainLength; i++) { // find the GL texture ID for this texture IntBuffer textureIdB = BufferUtils.createIntBuffer(1); - OVRGL.ovr_GetTextureSwapChainBufferGL(session, chain, i, textureIdB); + OVRGL.ovr_GetTextureSwapChainBufferGL(session(), chain, i, textureIdB); int textureId = textureIdB.get(); // TODO less hacky way of getting our texture into JMonkeyEngine - Texture2D tex = new Texture2D(new Image()); - tex.getImage().setId(textureId); + Image img = new Image(); + img.setId(textureId); + img.setFormat(Image.Format.RGBA8); + img.setWidth(textureW); + img.setHeight(textureH); + + Texture2D tex = new Texture2D(img); FrameBuffer buffer = new FrameBuffer(textureW, textureH, 1); buffer.setDepthBuffer(Image.Format.Depth); @@ -235,7 +232,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // layer0.RenderPose(eye, eyePose); IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainCurrentIndex(session, chain, currentIndexB); + ovr_GetTextureSwapChainCurrentIndex(session(), chain, currentIndexB); int index = currentIndexB.get(); (eye == 0 ? leftViewPort : rightViewPort).setOutputFrameBuffer(framebuffers[index]); @@ -247,10 +244,10 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void postRender() { // We're done with our textures now - the game is done drawing into them. - ovr_CommitTextureSwapChain(session, chain); + ovr_CommitTextureSwapChain(session(), chain); // Send the result to the HMD - int result = ovr_SubmitFrame(session, 0, null, layers); + int result = ovr_SubmitFrame(session(), 0, null, layers); if (result != ovrSuccess) { throw new IllegalStateException("Failed to submit frame!"); } @@ -261,6 +258,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { * Show's over, now it's just boring camera stuff etc. * ********************************************************* */ + /** * Set up the cameras and views for each eye and the mirror display. */ From 1c975918b1c441816ad357ae236fe6c9169b4e34 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 28 Sep 2017 23:40:04 +1300 Subject: [PATCH 010/150] OculusVR: Call GetPredictedDisplayTime to satasfy SubmitFrame --- .../src/main/java/com/jme3/input/vr/OculusVR.java | 14 +++++++++----- .../java/com/jme3/util/VRViewManagerOculus.java | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 0dba2292b..75cf16f4d 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -210,6 +210,15 @@ public class OculusVR implements VRAPI { return true; } + @Override + public void updatePose() { + double ftiming = ovr_GetPredictedDisplayTime(session, 0); + OVRTrackingState hmdState = OVRTrackingState.malloc(); + ovr_GetTrackingState(session, ftiming, true, hmdState); + + // TODO + } + @Override public boolean isInitialized() { return initialized; @@ -251,11 +260,6 @@ public class OculusVR implements VRAPI { throw new UnsupportedOperationException(); } - @Override - public void updatePose() { - throw new UnsupportedOperationException(); - } - @Override public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { return matrixO2J(projections[ovrEye_Left], new Matrix4f()); diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 7c1fa5637..268d5a290 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -222,6 +222,8 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void update(float tpf) { // TODO + + hardware.updatePose(); } @Override From 8a3336704a9f8c156ebca6c3c0544830c97c6fc2 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 00:10:05 +1300 Subject: [PATCH 011/150] Move rendering setup from Oculus VRViewManager to OculusVR, and implement cleanup --- .../main/java/com/jme3/input/vr/OculusVR.java | 180 +++++++++++++++++- .../com/jme3/util/VRViewManagerOculus.java | 138 +------------- 2 files changed, 177 insertions(+), 141 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 75cf16f4d..c10a23d89 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -8,11 +8,17 @@ package com.jme3.input.vr; import com.jme3.app.VREnvironment; import com.jme3.math.*; import com.jme3.renderer.Camera; +import com.jme3.texture.FrameBuffer; +import com.jme3.texture.Image; +import com.jme3.texture.Texture2D; +import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; import org.lwjgl.ovr.*; +import java.nio.IntBuffer; import java.util.logging.Logger; +import static org.lwjgl.BufferUtils.createPointerBuffer; import static org.lwjgl.ovr.OVR.*; import static org.lwjgl.ovr.OVRErrorCode.ovrSuccess; import static org.lwjgl.ovr.OVRUtil.ovr_Detect; @@ -81,6 +87,24 @@ public class OculusVR implements VRAPI { */ private final Matrix4f[] eyePoses = new Matrix4f[2]; + // The size of the texture drawn onto the HMD + private int textureW; + private int textureH; + + // Layers to render into + private PointerBuffer layers; + private OVRLayerEyeFov layer0; + + /** + * Chain texture set thing. + */ + private long chain; + + /** + * Frame buffers we can draw into. + */ + private FrameBuffer framebuffers[]; + public OculusVR(VREnvironment environment) { this.environment = environment; } @@ -226,7 +250,32 @@ public class OculusVR implements VRAPI { @Override public void destroy() { - throw new UnsupportedOperationException(); + // fovPorts: contents are managed by LibOVR, no need to do anything. + + // Check if we've set up rendering - if so, clean that up. + if (chain != 0) { + // Destroy our set of huge buffer images. + ovr_DestroyTextureSwapChain(session, chain); + + // Free up the layer + layer0.free(); + + // The layers array apparently takes care of itself (and crashes if we try to free it) + } + + for (OVREyeRenderDesc eye : eyeRenderDesc) { + eye.free(); + } + for (OVRMatrix4f projection : projections) { + projection.free(); + } + + hmdDesc.free(); + sessionStatus.free(); + + // Wrap everything up + ovr_Destroy(session); + ovr_Shutdown(); } @Override @@ -305,6 +354,10 @@ public class OculusVR implements VRAPI { throw new UnsupportedOperationException("Cannot use LibOVR without compositor!"); } + findHMDTextureSize(); + setupLayers(); + setupFramebuffers(); + // TODO move initialization code here from VRViewManagerOculus return true; } @@ -325,6 +378,114 @@ public class OculusVR implements VRAPI { throw new UnsupportedOperationException("Not yet implemented!"); } + // Rendering-type stuff + + public void findHMDTextureSize() { + // Texture sizes + float pixelScaling = 1.0f; // pixelsPerDisplayPixel + + OVRSizei leftTextureSize = OVRSizei.malloc(); + ovr_GetFovTextureSize(session, ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); + System.out.println("leftTextureSize W=" + leftTextureSize.w() + ", H=" + leftTextureSize.h()); + + OVRSizei rightTextureSize = OVRSizei.malloc(); + ovr_GetFovTextureSize(session, ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); + System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); + + textureW = leftTextureSize.w() + rightTextureSize.w(); + textureH = Math.max(leftTextureSize.h(), rightTextureSize.h()); + + leftTextureSize.free(); + rightTextureSize.free(); + } + + private PointerBuffer setupTextureChain() { + // Set up the information for the texture buffer chain thing + OVRTextureSwapChainDesc swapChainDesc = OVRTextureSwapChainDesc.calloc() + .Type(ovrTexture_2D) + .ArraySize(1) + .Format(OVR_FORMAT_R8G8B8A8_UNORM_SRGB) + .Width(textureW) + .Height(textureH) + .MipLevels(1) + .SampleCount(1) + .StaticImage(false); // ovrFalse + + // Create the chain + PointerBuffer textureSetPB = createPointerBuffer(1); + if (OVRGL.ovr_CreateTextureSwapChainGL(session, swapChainDesc, textureSetPB) != ovrSuccess) { + throw new RuntimeException("Failed to create Swap Texture Set"); + } + chain = textureSetPB.get(0); + swapChainDesc.free(); + System.out.println("done chain creation"); + + return textureSetPB; + } + + public void setupLayers() { + PointerBuffer chainPtr = setupTextureChain(); + + //Layers + layer0 = OVRLayerEyeFov.calloc(); + layer0.Header().Type(ovrLayerType_EyeFov); + layer0.Header().Flags(ovrLayerFlag_TextureOriginAtBottomLeft); + + for (int eye = 0; eye < 2; eye++) { + OVRRecti viewport = OVRRecti.calloc(); + viewport.Pos().x(0); + viewport.Pos().y(0); + viewport.Size().w(textureW); + viewport.Size().h(textureH); + + layer0.ColorTexture(chainPtr); + layer0.Viewport(eye, viewport); + layer0.Fov(eye, fovPorts[eye]); + + viewport.free(); + // we update pose only when we have it in the render loop + } + + layers = createPointerBuffer(1); + layers.put(0, layer0); + } + + /** + * Create framebuffers bound to each of the eye textures + */ + public void setupFramebuffers() { + // Find the chain length + IntBuffer length = BufferUtils.createIntBuffer(1); + ovr_GetTextureSwapChainLength(session, chain, length); + int chainLength = length.get(); + + System.out.println("chain length=" + chainLength); + + // Create the frame buffers + framebuffers = new FrameBuffer[chainLength]; + for (int i = 0; i < chainLength; i++) { + // find the GL texture ID for this texture + IntBuffer textureIdB = BufferUtils.createIntBuffer(1); + OVRGL.ovr_GetTextureSwapChainBufferGL(session, chain, i, textureIdB); + int textureId = textureIdB.get(); + + // TODO less hacky way of getting our texture into JMonkeyEngine + Image img = new Image(); + img.setId(textureId); + img.setFormat(Image.Format.RGBA8); + img.setWidth(textureW); + img.setHeight(textureH); + + Texture2D tex = new Texture2D(img); + + FrameBuffer buffer = new FrameBuffer(textureW, textureH, 1); + buffer.setDepthBuffer(Image.Format.Depth); + buffer.setColorTexture(tex); + + framebuffers[i] = buffer; + } + } + // UTILITIES // TODO move to helper class @@ -382,16 +543,21 @@ public class OculusVR implements VRAPI { } // Getters, intended for VRViewManager. - public OVRHmdDesc getHmdDesc() { - return hmdDesc; + + public long getSessionPointer() { + return session; } - public OVRFovPort[] getFovPorts() { - return fovPorts; + public long getChain() { + return chain; } - public long getSessionPointer() { - return session; + public FrameBuffer[] getFramebuffers() { + return framebuffers; + } + + public PointerBuffer getLayers() { + return layers; } } diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 268d5a290..fb442be32 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -65,24 +65,6 @@ public class VRViewManagerOculus extends AbstractVRViewManager { private final VREnvironment environment; private final OculusVR hardware; - // The size of the texture drawn onto the HMD - private int textureW; - private int textureH; - - // Layers to render into - private PointerBuffer layers; - private OVRLayerEyeFov layer0; - - /** - * Chain texture set thing. - */ - private long chain; - - /** - * Frame buffers we can draw into. - */ - private FrameBuffer framebuffers[]; - public VRViewManagerOculus(VREnvironment environment) { this.environment = environment; @@ -101,124 +83,12 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void initialize() { setupCamerasAndViews(); - - findHMDTextureSize(); - setupLayers(); - setupFramebuffers(); - } - - private void findHMDTextureSize() { - OVRFovPort fovPorts[] = hardware.getFovPorts(); - - // Texture sizes - float pixelScaling = 1.0f; // pixelsPerDisplayPixel - - OVRSizei leftTextureSize = OVRSizei.malloc(); - ovr_GetFovTextureSize(session(), ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); - System.out.println("leftTextureSize W=" + leftTextureSize.w() + ", H=" + leftTextureSize.h()); - - OVRSizei rightTextureSize = OVRSizei.malloc(); - ovr_GetFovTextureSize(session(), ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); - System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); - - textureW = leftTextureSize.w() + rightTextureSize.w(); - textureH = Math.max(leftTextureSize.h(), rightTextureSize.h()); - - leftTextureSize.free(); - rightTextureSize.free(); } private long session() { return hardware.getSessionPointer(); } - private PointerBuffer setupTextureChain() { - // Set up the information for the texture buffer chain thing - OVRTextureSwapChainDesc swapChainDesc = OVRTextureSwapChainDesc.calloc() - .Type(ovrTexture_2D) - .ArraySize(1) - .Format(OVR_FORMAT_R8G8B8A8_UNORM_SRGB) - .Width(textureW) - .Height(textureH) - .MipLevels(1) - .SampleCount(1) - .StaticImage(false); // ovrFalse - - // Create the chain - PointerBuffer textureSetPB = createPointerBuffer(1); - if (OVRGL.ovr_CreateTextureSwapChainGL(session(), swapChainDesc, textureSetPB) != ovrSuccess) { - throw new RuntimeException("Failed to create Swap Texture Set"); - } - chain = textureSetPB.get(0); - swapChainDesc.free(); - System.out.println("done chain creation"); - - return textureSetPB; - } - - private void setupLayers() { - PointerBuffer chainPtr = setupTextureChain(); - - //Layers - layer0 = OVRLayerEyeFov.calloc(); - layer0.Header().Type(ovrLayerType_EyeFov); - layer0.Header().Flags(ovrLayerFlag_TextureOriginAtBottomLeft); - - for (int eye = 0; eye < 2; eye++) { - OVRRecti viewport = OVRRecti.calloc(); - viewport.Pos().x(0); - viewport.Pos().y(0); - viewport.Size().w(textureW); - viewport.Size().h(textureH); - - layer0.ColorTexture(chainPtr); - layer0.Viewport(eye, viewport); - layer0.Fov(eye, hardware.getFovPorts()[eye]); - - viewport.free(); - // we update pose only when we have it in the render loop - } - - layers = createPointerBuffer(1); - layers.put(0, layer0); - } - - /** - * Create framebuffers bound to each of the eye textures - */ - private void setupFramebuffers() { - // Find the chain length - IntBuffer length = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainLength(session(), chain, length); - int chainLength = length.get(); - - System.out.println("chain length=" + chainLength); - - // Create the frame buffers - framebuffers = new FrameBuffer[chainLength]; - for (int i = 0; i < chainLength; i++) { - // find the GL texture ID for this texture - IntBuffer textureIdB = BufferUtils.createIntBuffer(1); - OVRGL.ovr_GetTextureSwapChainBufferGL(session(), chain, i, textureIdB); - int textureId = textureIdB.get(); - - // TODO less hacky way of getting our texture into JMonkeyEngine - Image img = new Image(); - img.setId(textureId); - img.setFormat(Image.Format.RGBA8); - img.setWidth(textureW); - img.setHeight(textureH); - - Texture2D tex = new Texture2D(img); - - FrameBuffer buffer = new FrameBuffer(textureW, textureH, 1); - buffer.setDepthBuffer(Image.Format.Depth); - buffer.setColorTexture(tex); - - framebuffers[i] = buffer; - } - } - @Override public void update(float tpf) { // TODO @@ -234,10 +104,10 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // layer0.RenderPose(eye, eyePose); IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainCurrentIndex(session(), chain, currentIndexB); + ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(), currentIndexB); int index = currentIndexB.get(); - (eye == 0 ? leftViewPort : rightViewPort).setOutputFrameBuffer(framebuffers[index]); + (eye == 0 ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers()[index]); } // Now the game will render into the buffers given to us by LibOVR @@ -246,10 +116,10 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void postRender() { // We're done with our textures now - the game is done drawing into them. - ovr_CommitTextureSwapChain(session(), chain); + ovr_CommitTextureSwapChain(session(), hardware.getChain()); // Send the result to the HMD - int result = ovr_SubmitFrame(session(), 0, null, layers); + int result = ovr_SubmitFrame(session(), 0, null, hardware.getLayers()); if (result != ovrSuccess) { throw new IllegalStateException("Failed to submit frame!"); } From 601ba1cfda0314e44862da389ce86e83cc2ecbaa Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 09:13:57 +1300 Subject: [PATCH 012/150] OculusVR: Add basic camera positioning --- .../main/java/com/jme3/app/VRAppState.java | 8 +- .../main/java/com/jme3/input/vr/OculusVR.java | 29 +++++++ .../com/jme3/util/VRViewManagerOculus.java | 83 +++++++++++++++++-- 3 files changed, 109 insertions(+), 11 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index 39df3884b..806f2cc42 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -399,14 +399,14 @@ public class VRAppState extends AbstractAppState { //FIXME: check if this code is necessary. // Updates scene and gui states. - Iterator spatialIter = application.getViewPort().getScenes().iterator(); + Iterator spatialIter = getLeftViewPort().getScenes().iterator(); Spatial spatial = null; while(spatialIter.hasNext()){ spatial = spatialIter.next(); spatial.updateLogicalState(tpf); spatial.updateGeometricState(); - } - + } + if( environment.isInVR() == false || environment.getVRGUIManager().getPositioningMode() == VRGUIPositioningMode.MANUAL ) { // only update geometric state here if GUI is in manual mode, or not in VR // it will get updated automatically in the viewmanager update otherwise @@ -419,7 +419,7 @@ public class VRAppState extends AbstractAppState { } // use the analog control on the first tracked controller to push around the mouse - environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); + // environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); } @Override diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index c10a23d89..3ba52e481 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -87,6 +87,11 @@ public class OculusVR implements VRAPI { */ private final Matrix4f[] eyePoses = new Matrix4f[2]; + /** + * The eye poses, as used during rendering. + */ + private final OVRPosef eyePosesPtr[] = new OVRPosef[2]; + // The size of the texture drawn onto the HMD private int textureW; private int textureH; @@ -240,6 +245,22 @@ public class OculusVR implements VRAPI { OVRTrackingState hmdState = OVRTrackingState.malloc(); ovr_GetTrackingState(session, ftiming, true, hmdState); + //get head pose + OVRPosef headPose = hmdState.HeadPose().ThePose(); + hmdState.free(); + + //build view offsets struct + OVRPosef.Buffer hmdToEyeOffsets = OVRPosef.calloc(2); + hmdToEyeOffsets.put(0, eyeRenderDesc[ovrEye_Left].HmdToEyePose()); + hmdToEyeOffsets.put(1, eyeRenderDesc[ovrEye_Right].HmdToEyePose()); + + //calculate eye poses + OVRPosef.Buffer outEyePoses = OVRPosef.create(2); + OVRUtil.ovr_CalcEyePoses(headPose, hmdToEyeOffsets, outEyePoses); + hmdToEyeOffsets.free(); + eyePosesPtr[ovrEye_Left] = outEyePoses.get(0); + eyePosesPtr[ovrEye_Right] = outEyePoses.get(1); + // TODO } @@ -559,6 +580,14 @@ public class OculusVR implements VRAPI { public PointerBuffer getLayers() { return layers; } + + public OVRLayerEyeFov getLayer0() { + return layer0; + } + + public OVRPosef[] getEyePosesPtr() { + return eyePosesPtr; + } } /* vim: set ts=4 softtabstop=0 sw=4 expandtab: */ diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index fb442be32..64fffa988 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -35,7 +35,9 @@ import com.jme3.app.VREnvironment; import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; import com.jme3.math.ColorRGBA; +import com.jme3.math.Quaternion; import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; @@ -45,11 +47,8 @@ import java.nio.IntBuffer; import java.util.Iterator; import java.util.logging.Logger; -import org.lwjgl.PointerBuffer; - import org.lwjgl.ovr.*; -import static org.lwjgl.BufferUtils.*; import static org.lwjgl.ovr.OVR.*; import static org.lwjgl.ovr.OVRErrorCode.*; @@ -65,6 +64,13 @@ public class VRViewManagerOculus extends AbstractVRViewManager { private final VREnvironment environment; private final OculusVR hardware; + // Copied from OSVR + //final & temp values for camera calculations + private final Vector3f finalPosition = new Vector3f(); + private final Quaternion finalRotation = new Quaternion(); + private final Vector3f hmdPos = new Vector3f(); + private final Quaternion hmdRot = new Quaternion(); + public VRViewManagerOculus(VREnvironment environment) { this.environment = environment; @@ -94,20 +100,83 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // TODO hardware.updatePose(); + + // TODO deduplicate + if (environment != null) { + // grab the observer + Object obs = environment.getObserver(); + Quaternion objRot; + Vector3f objPos; + if (obs instanceof Camera) { + objRot = ((Camera) obs).getRotation(); + objPos = ((Camera) obs).getLocation(); + } else { + objRot = ((Spatial) obs).getWorldRotation(); + objPos = ((Spatial) obs).getWorldTranslation(); + } + // grab the hardware handle + VRAPI dev = environment.getVRHardware(); + if (dev != null) { + // update the HMD's position & orientation + dev.getPositionAndOrientation(hmdPos, hmdRot); + if (obs != null) { + // update hmdPos based on obs rotation + finalRotation.set(objRot); + finalRotation.mult(hmdPos, hmdPos); + finalRotation.multLocal(hmdRot); + } + + finalizeCamera(dev.getHMDVectorPoseLeftEye(), objPos, leftCamera); + finalizeCamera(dev.getHMDVectorPoseRightEye(), objPos, rightCamera); + } else { + leftCamera.setFrame(objPos, objRot); + rightCamera.setFrame(objPos, objRot); + } + + if (environment.hasTraditionalGUIOverlay()) { + // update the mouse? + environment.getVRMouseManager().update(tpf); + + // update GUI position? + if (environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { + environment.getVRGUIManager().positionGuiNow(tpf); + environment.getVRGUIManager().updateGuiQuadGeometricState(); + } + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + /** + * Place the camera within the scene. + * + * @param eyePos the eye position. + * @param obsPosition the observer position. + * @param cam the camera to place. + */ + private void finalizeCamera(Vector3f eyePos, Vector3f obsPosition, Camera cam) { + finalRotation.mult(eyePos, finalPosition); + finalPosition.addLocal(hmdPos); + if (obsPosition != null) { + finalPosition.addLocal(obsPosition); + } + finalPosition.y += getHeightAdjustment(); + cam.setFrame(finalPosition, finalRotation); } @Override public void render() { for (int eye = 0; eye < 2; eye++) { - // TODO add eyePoses -// OVRPosef eyePose = eyePoses[eye]; -// layer0.RenderPose(eye, eyePose); + // TODO do we need this? Don't we set the camera positions ourselves? + OVRPosef eyePose = hardware.getEyePosesPtr()[eye]; + hardware.getLayer0().RenderPose(eye, eyePose); IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(), currentIndexB); int index = currentIndexB.get(); - (eye == 0 ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers()[index]); + (eye == ovrEye_Left ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers()[index]); } // Now the game will render into the buffers given to us by LibOVR From 3082e63cfdd5ac33ba5638621e811af652bcc12c Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 10:23:44 +1300 Subject: [PATCH 013/150] OculusVR: Implement further tracking methods --- .../main/java/com/jme3/input/vr/OculusVR.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 3ba52e481..ebb080bb6 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -92,6 +92,16 @@ public class OculusVR implements VRAPI { */ private final OVRPosef eyePosesPtr[] = new OVRPosef[2]; + /** + * The eye positions relative to the world, as used by jME. + */ + private final Vector3f eyePositions[] = new Vector3f[2]; + + /** + * The position and orientation of the user's head. + */ + private OVRPosef headPose; + // The size of the texture drawn onto the HMD private int textureW; private int textureH; @@ -229,6 +239,7 @@ public class OculusVR implements VRAPI { jPose.setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); eyePoses[eye] = jPose; + eyePositions[eye] = new Vector3f(); // Set the absolute position up for later. } // step 7 - recenter @@ -246,7 +257,7 @@ public class OculusVR implements VRAPI { ovr_GetTrackingState(session, ftiming, true, hmdState); //get head pose - OVRPosef headPose = hmdState.HeadPose().ThePose(); + headPose = hmdState.HeadPose().ThePose(); hmdState.free(); //build view offsets struct @@ -261,7 +272,9 @@ public class OculusVR implements VRAPI { eyePosesPtr[ovrEye_Left] = outEyePoses.get(0); eyePosesPtr[ovrEye_Right] = outEyePoses.get(1); - // TODO + for (int i = 0; i < eyePosesPtr.length; i++) { + vecO2J(eyePosesPtr[i].Position(), eyePositions[i]); + } } @Override @@ -317,17 +330,18 @@ public class OculusVR implements VRAPI { @Override public Quaternion getOrientation() { - throw new UnsupportedOperationException(); + return quatO2J(headPose.Orientation(), new Quaternion()); } @Override public Vector3f getPosition() { - throw new UnsupportedOperationException(); + return vecO2J(headPose.Position(), new Vector3f()); } @Override public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) { - throw new UnsupportedOperationException(); + vecO2J(headPose.Position(), storePos); + quatO2J(headPose.Orientation(), storeRot); } @Override @@ -342,12 +356,12 @@ public class OculusVR implements VRAPI { @Override public Vector3f getHMDVectorPoseLeftEye() { - throw new UnsupportedOperationException(); + return eyePositions[ovrEye_Left]; } @Override public Vector3f getHMDVectorPoseRightEye() { - throw new UnsupportedOperationException(); + return eyePositions[ovrEye_Right]; } @Override From 563c3eabffd0bb67d7261175dc31fb3f0a6983cb Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 10:24:49 +1300 Subject: [PATCH 014/150] OculusVR: Implement getType and rename eyePoses to hmdRelativeEyePoses --- .../src/main/java/com/jme3/input/vr/OculusVR.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index ebb080bb6..65831d6f6 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -81,14 +81,14 @@ public class OculusVR implements VRAPI { private final OVRMatrix4f[] projections = new OVRMatrix4f[2]; /** - * Store the poses for each eye. + * Store the poses for each eye, relative to the HMD. * * @see #getHMDMatrixPoseLeftEye() */ - private final Matrix4f[] eyePoses = new Matrix4f[2]; + private final Matrix4f[] hmdRelativeEyePoses = new Matrix4f[2]; /** - * The eye poses, as used during rendering. + * The eye poses relative to the world, as used during rendering. */ private final OVRPosef eyePosesPtr[] = new OVRPosef[2]; @@ -238,7 +238,7 @@ public class OculusVR implements VRAPI { jPose.setTranslation(vecO2J(pose.Position(), new Vector3f())); jPose.setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); - eyePoses[eye] = jPose; + hmdRelativeEyePoses[eye] = jPose; eyePositions[eye] = new Vector3f(); // Set the absolute position up for later. } @@ -371,17 +371,17 @@ public class OculusVR implements VRAPI { @Override public Matrix4f getHMDMatrixPoseLeftEye() { - return eyePoses[ovrEye_Left]; + return hmdRelativeEyePoses[ovrEye_Left]; } @Override public Matrix4f getHMDMatrixPoseRightEye() { - return eyePoses[ovrEye_Left]; + return hmdRelativeEyePoses[ovrEye_Left]; } @Override public HmdType getType() { - throw new UnsupportedOperationException(); + return HmdType.OCULUS_RIFT; } public boolean initVRCompositor(boolean set) { From 5df7f80c04076639e856c8c43801f6ab7c29b7fc Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 11:57:42 +1300 Subject: [PATCH 015/150] Clean up Oculus View Manager update() method --- .../com/jme3/util/VRViewManagerOculus.java | 74 +++++++++---------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 64fffa988..8b0e7c522 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -45,6 +45,7 @@ import com.jme3.texture.*; import java.nio.IntBuffer; import java.util.Iterator; +import java.util.Objects; import java.util.logging.Logger; import org.lwjgl.ovr.*; @@ -75,6 +76,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { this.environment = environment; VRAPI hardware = environment.getVRHardware(); + Objects.requireNonNull(hardware, "Attached VR Hardware cannot be null"); if (!(hardware instanceof OculusVR)) { throw new IllegalStateException("Cannot use Oculus VR view manager on non-Oculus hardware state!"); } @@ -102,49 +104,43 @@ public class VRViewManagerOculus extends AbstractVRViewManager { hardware.updatePose(); // TODO deduplicate - if (environment != null) { - // grab the observer - Object obs = environment.getObserver(); - Quaternion objRot; - Vector3f objPos; - if (obs instanceof Camera) { - objRot = ((Camera) obs).getRotation(); - objPos = ((Camera) obs).getLocation(); - } else { - objRot = ((Spatial) obs).getWorldRotation(); - objPos = ((Spatial) obs).getWorldTranslation(); - } - // grab the hardware handle - VRAPI dev = environment.getVRHardware(); - if (dev != null) { - // update the HMD's position & orientation - dev.getPositionAndOrientation(hmdPos, hmdRot); - if (obs != null) { - // update hmdPos based on obs rotation - finalRotation.set(objRot); - finalRotation.mult(hmdPos, hmdPos); - finalRotation.multLocal(hmdRot); - } + if (environment == null) { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } - finalizeCamera(dev.getHMDVectorPoseLeftEye(), objPos, leftCamera); - finalizeCamera(dev.getHMDVectorPoseRightEye(), objPos, rightCamera); - } else { - leftCamera.setFrame(objPos, objRot); - rightCamera.setFrame(objPos, objRot); - } + // grab the observer + Object obs = environment.getObserver(); + Quaternion objRot; + Vector3f objPos; + if (obs instanceof Camera) { + objRot = ((Camera) obs).getRotation(); + objPos = ((Camera) obs).getLocation(); + } else { + objRot = ((Spatial) obs).getWorldRotation(); + objPos = ((Spatial) obs).getWorldTranslation(); + } - if (environment.hasTraditionalGUIOverlay()) { - // update the mouse? - environment.getVRMouseManager().update(tpf); + // update the HMD's position & orientation + hardware.getPositionAndOrientation(hmdPos, hmdRot); + if (obs != null) { + // update hmdPos based on obs rotation + finalRotation.set(objRot); + finalRotation.mult(hmdPos, hmdPos); + finalRotation.multLocal(hmdRot); + } - // update GUI position? - if (environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { - environment.getVRGUIManager().positionGuiNow(tpf); - environment.getVRGUIManager().updateGuiQuadGeometricState(); - } + finalizeCamera(hardware.getHMDVectorPoseLeftEye(), objPos, leftCamera); + finalizeCamera(hardware.getHMDVectorPoseRightEye(), objPos, rightCamera); + + if (environment.hasTraditionalGUIOverlay()) { + // update the mouse? + environment.getVRMouseManager().update(tpf); + + // update GUI position? + if (environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { + environment.getVRGUIManager().positionGuiNow(tpf); + environment.getVRGUIManager().updateGuiQuadGeometricState(); } - } else { - throw new IllegalStateException("This VR view manager is not attached to any VR environment."); } } From b1baa26ea13c02d1ab7562a7ebcc5b700148b6d6 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 20:17:52 +1300 Subject: [PATCH 016/150] Use two smaller textures for OculusVR, rather than a single large one --- .../main/java/com/jme3/input/vr/OculusVR.java | 59 +++++++++++-------- .../com/jme3/util/VRViewManagerOculus.java | 9 ++- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 65831d6f6..513d725a3 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -113,12 +113,12 @@ public class OculusVR implements VRAPI { /** * Chain texture set thing. */ - private long chain; + private long chains[]; /** * Frame buffers we can draw into. */ - private FrameBuffer framebuffers[]; + private FrameBuffer framebuffers[][]; public OculusVR(VREnvironment environment) { this.environment = environment; @@ -287,9 +287,11 @@ public class OculusVR implements VRAPI { // fovPorts: contents are managed by LibOVR, no need to do anything. // Check if we've set up rendering - if so, clean that up. - if (chain != 0) { + if (chains != null) { // Destroy our set of huge buffer images. - ovr_DestroyTextureSwapChain(session, chain); + for (long chain : chains) { + ovr_DestroyTextureSwapChain(session, chain); + } // Free up the layer layer0.free(); @@ -391,7 +393,10 @@ public class OculusVR implements VRAPI { findHMDTextureSize(); setupLayers(); - setupFramebuffers(); + + framebuffers = new FrameBuffer[2][]; + for (int eye = 0; eye < 2; eye++) + setupFramebuffers(eye); // TODO move initialization code here from VRViewManagerOculus return true; @@ -427,14 +432,21 @@ public class OculusVR implements VRAPI { ovr_GetFovTextureSize(session, ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); - textureW = leftTextureSize.w() + rightTextureSize.w(); - textureH = Math.max(leftTextureSize.h(), rightTextureSize.h()); + if (leftTextureSize.w() != rightTextureSize.w()) { + throw new IllegalStateException("Texture sizes do not match [horizontal]"); + } + if (leftTextureSize.h() != rightTextureSize.h()) { + throw new IllegalStateException("Texture sizes do not match [vertical]"); + } + + textureW = leftTextureSize.w(); + textureH = leftTextureSize.h(); leftTextureSize.free(); rightTextureSize.free(); } - private PointerBuffer setupTextureChain() { + private long setupTextureChain() { // Set up the information for the texture buffer chain thing OVRTextureSwapChainDesc swapChainDesc = OVRTextureSwapChainDesc.calloc() .Type(ovrTexture_2D) @@ -451,29 +463,30 @@ public class OculusVR implements VRAPI { if (OVRGL.ovr_CreateTextureSwapChainGL(session, swapChainDesc, textureSetPB) != ovrSuccess) { throw new RuntimeException("Failed to create Swap Texture Set"); } - chain = textureSetPB.get(0); swapChainDesc.free(); System.out.println("done chain creation"); - return textureSetPB; + return textureSetPB.get(); // TODO is this a memory leak? } public void setupLayers() { - PointerBuffer chainPtr = setupTextureChain(); - //Layers layer0 = OVRLayerEyeFov.calloc(); layer0.Header().Type(ovrLayerType_EyeFov); layer0.Header().Flags(ovrLayerFlag_TextureOriginAtBottomLeft); + chains = new long[2]; for (int eye = 0; eye < 2; eye++) { + long eyeChain = setupTextureChain(); + chains[eye] = eyeChain; + OVRRecti viewport = OVRRecti.calloc(); viewport.Pos().x(0); viewport.Pos().y(0); viewport.Size().w(textureW); viewport.Size().h(textureH); - layer0.ColorTexture(chainPtr); + layer0.ColorTexture(eye, eyeChain); layer0.Viewport(eye, viewport); layer0.Fov(eye, fovPorts[eye]); @@ -486,22 +499,22 @@ public class OculusVR implements VRAPI { } /** - * Create framebuffers bound to each of the eye textures + * Create a framebuffer for an eye. */ - public void setupFramebuffers() { + public void setupFramebuffers(int eye) { // Find the chain length IntBuffer length = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainLength(session, chain, length); + ovr_GetTextureSwapChainLength(session, chains[eye], length); int chainLength = length.get(); System.out.println("chain length=" + chainLength); // Create the frame buffers - framebuffers = new FrameBuffer[chainLength]; + framebuffers[eye] = new FrameBuffer[chainLength]; for (int i = 0; i < chainLength; i++) { // find the GL texture ID for this texture IntBuffer textureIdB = BufferUtils.createIntBuffer(1); - OVRGL.ovr_GetTextureSwapChainBufferGL(session, chain, i, textureIdB); + OVRGL.ovr_GetTextureSwapChainBufferGL(session, chains[eye], i, textureIdB); int textureId = textureIdB.get(); // TODO less hacky way of getting our texture into JMonkeyEngine @@ -517,7 +530,7 @@ public class OculusVR implements VRAPI { buffer.setDepthBuffer(Image.Format.Depth); buffer.setColorTexture(tex); - framebuffers[i] = buffer; + framebuffers[eye][i] = buffer; } } @@ -583,12 +596,12 @@ public class OculusVR implements VRAPI { return session; } - public long getChain() { - return chain; + public long getChain(int eye) { + return chains[eye]; } - public FrameBuffer[] getFramebuffers() { - return framebuffers; + public FrameBuffer[] getFramebuffers(int eye) { + return framebuffers[eye]; } public PointerBuffer getLayers() { diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 8b0e7c522..fba104238 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -169,10 +169,11 @@ public class VRViewManagerOculus extends AbstractVRViewManager { hardware.getLayer0().RenderPose(eye, eyePose); IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); - ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(), currentIndexB); + ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(eye), currentIndexB); int index = currentIndexB.get(); - (eye == ovrEye_Left ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers()[index]); + // FIXME eyes inverted + (eye != ovrEye_Left ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers(eye)[index]); } // Now the game will render into the buffers given to us by LibOVR @@ -181,7 +182,9 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void postRender() { // We're done with our textures now - the game is done drawing into them. - ovr_CommitTextureSwapChain(session(), hardware.getChain()); + for (int eye = 0; eye < 2; eye++) { + ovr_CommitTextureSwapChain(session(), hardware.getChain(eye)); + } // Send the result to the HMD int result = ovr_SubmitFrame(session(), 0, null, hardware.getLayers()); From da52de7f7ff6b476a594efbb02940b8f1509a7f0 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 29 Sep 2017 23:14:11 +1300 Subject: [PATCH 017/150] OculusVR: Get basic projections working (mostly), however, VR cameras still don't work properly --- .../main/java/com/jme3/input/vr/OculusVR.java | 35 +++++++++++++++--- .../com/jme3/util/VRViewManagerOculus.java | 37 +++---------------- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 513d725a3..ad7ca2d79 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -26,6 +26,13 @@ import static org.lwjgl.system.MemoryUtil.*; /** * Oculus VR (LibOVR 1.3.0) Native support. + *

+ * A few notes about the Oculus coordinate system: + *

    + *
  • Matrices should be transposed
  • + *
  • Quaternions should be inverted
  • + *
  • Vectors should have their X and Z axes flipped, but apparently not Y.
  • + *
* * @author Campbell Suter */ @@ -219,7 +226,6 @@ public class OculusVR implements VRAPI { System.out.println("step 5 - projections"); for (int eye = 0; eye < 2; eye++) { projections[eye] = OVRMatrix4f.malloc(); - OVRUtil.ovrMatrix4f_Projection(fovPorts[eye], 0.5f, 500f, OVRUtil.ovrProjection_None, projections[eye]); //1.3 was right handed, now none flag } @@ -332,7 +338,7 @@ public class OculusVR implements VRAPI { @Override public Quaternion getOrientation() { - return quatO2J(headPose.Orientation(), new Quaternion()); + return quatO2J(headPose.Orientation(), new Quaternion()).inverseLocal(); } @Override @@ -342,18 +348,31 @@ public class OculusVR implements VRAPI { @Override public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) { - vecO2J(headPose.Position(), storePos); - quatO2J(headPose.Orientation(), storeRot); + storePos.set(getPosition()); + storeRot.set(getOrientation()); + } + + private Matrix4f calculateProjection(int eye, Camera cam) { + Matrix4f mat = new Matrix4f(); + + // Get LibOVR to find the correct projection + OVRUtil.ovrMatrix4f_Projection(fovPorts[eye], cam.getFrustumNear(), cam.getFrustumFar(), OVRUtil.ovrProjection_None, projections[eye]); + + matrixO2J(projections[eye], mat); + + mat.transposeLocal(); // Apparently LibOVR has a different coordinate set - yay for us. + + return mat; } @Override public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { - return matrixO2J(projections[ovrEye_Left], new Matrix4f()); + return calculateProjection(ovrEye_Left, cam); } @Override public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) { - return matrixO2J(projections[ovrEye_Right], new Matrix4f()); + return calculateProjection(ovrEye_Right, cam); } @Override @@ -612,6 +631,10 @@ public class OculusVR implements VRAPI { return layer0; } + public OVRFovPort getFovPort() { + return fovPorts[ovrEye_Left]; // TODO checking the left and right eyes match + } + public OVRPosef[] getEyePosesPtr() { return eyePosesPtr; } diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index fba104238..2bd756d9c 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -34,10 +34,7 @@ package com.jme3.util; import com.jme3.app.VREnvironment; import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; -import com.jme3.math.ColorRGBA; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; +import com.jme3.math.*; import com.jme3.renderer.Camera; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; @@ -213,16 +210,14 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // restore frustrum on distortion scene cam, if needed if (environment.isInstanceRendering()) { leftCamera = origCam; - } else if (environment.compositorAllowed() == false) { - origCam.setFrustumFar(100f); - origCam.setFrustumNear(1f); - leftCamera = origCam.clone(); - prepareCameraSize(origCam, 2f); } else { leftCamera = origCam.clone(); } - getLeftCamera().setFrustumPerspective(environment.getDefaultFOV(), environment.getDefaultAspect(), fNear, fFar); + OVRFovPort fp = hardware.getFovPort(); + float hFov = fp.LeftTan() + fp.RightTan(); + float vFov = fp.UpTan() + fp.DownTan(); + getLeftCamera().setFrustumPerspective(hFov / FastMath.TWO_PI * 360, vFov / hFov, fNear, fFar); prepareCameraSize(getLeftCamera(), 1f); if (environment.getVRHardware() != null) { @@ -238,33 +233,13 @@ public class VRViewManagerOculus extends AbstractVRViewManager { } rightViewPort = setupViewBuffers(getRightCamera(), RIGHT_VIEW_NAME); } else if (environment.getApplication() != null) { - - LOG.severe("THIS CODE NEED CHANGES !!!"); - leftViewPort = environment.getApplication().getViewPort(); - //leftViewport.attachScene(app.getRootNode()); - rightCamera = getLeftCamera().clone(); - if (environment.getVRHardware() != null) { - getRightCamera().setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(getRightCamera())); - } - - org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_CLIP_DISTANCE0); - - //FIXME: [jme-vr] Fix with JMonkey next release - //RenderManager._VRInstancing_RightCamProjection = camRight.getViewProjectionMatrix(); - // TODO: Add LibOVR support - // setupFinalFullTexture(environment.getApplication().getViewPort().getCamera()); + throw new UnsupportedOperationException("Not yet implemented!"); } else { throw new IllegalStateException("This VR environment is not attached to any application."); } // setup gui environment.getVRGUIManager().setupGui(getLeftCamera(), getRightCamera(), getLeftViewPort(), getRightViewPort()); - - if (environment.getVRHardware() != null) { - // call these to cache the results internally - environment.getVRHardware().getHMDMatrixPoseLeftEye(); - environment.getVRHardware().getHMDMatrixPoseRightEye(); - } } else { throw new IllegalStateException("This VR view manager is not attached to any VR environment."); } From b6b1687450547fc5865cb3abede17b805e7b42e8 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sun, 1 Oct 2017 18:17:41 +1300 Subject: [PATCH 018/150] OculusVR: Fix eye-texture sizing issue, producing correct FOV --- jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index ad7ca2d79..de2914d6f 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -252,6 +252,9 @@ public class OculusVR implements VRAPI { System.out.println("step 7 - recenter"); ovr_RecenterTrackingOrigin(session); + // Do this so others relying on our texture size get it correct. + findHMDTextureSize(); + // throw new UnsupportedOperationException("Not yet implemented!"); return true; } @@ -327,8 +330,11 @@ public class OculusVR implements VRAPI { @Override public void getRenderSize(Vector2f store) { - store.x = resolutionW; - store.y = resolutionH; + if(!isInitialized()) { + throw new IllegalStateException("Cannot call getRenderSize() before initialized!"); + } + store.x = textureW; + store.y = textureH; } @Override @@ -410,7 +416,6 @@ public class OculusVR implements VRAPI { throw new UnsupportedOperationException("Cannot use LibOVR without compositor!"); } - findHMDTextureSize(); setupLayers(); framebuffers = new FrameBuffer[2][]; From d7fc7160654a7e77f642d0f0a7bf247ca8ef304c Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sun, 1 Oct 2017 18:26:22 +1300 Subject: [PATCH 019/150] Oculus: Initialize GUI to prevent startup crashes --- .../src/main/java/com/jme3/util/VRViewManagerOculus.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 2bd756d9c..ac4a793b9 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -88,6 +88,15 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void initialize() { setupCamerasAndViews(); + + if (environment.hasTraditionalGUIOverlay()) { + + environment.getVRMouseManager().initialize(); + + // update the pose to position the gui correctly on start + update(0f); + environment.getVRGUIManager().positionGui(); + } } private long session() { From 760277f61d14c24b71ce224ffe6124ac55c9f660 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sun, 1 Oct 2017 23:15:17 +1300 Subject: [PATCH 020/150] Make OculusVR.getHMDVectorPoseLeftEye return the HMD relative, not world relative, eye positions. --- .../main/java/com/jme3/input/vr/OculusVR.java | 51 +++++++------------ .../com/jme3/util/VRViewManagerOculus.java | 17 +++++-- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index de2914d6f..5e6b93f90 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -95,14 +95,11 @@ public class OculusVR implements VRAPI { private final Matrix4f[] hmdRelativeEyePoses = new Matrix4f[2]; /** - * The eye poses relative to the world, as used during rendering. - */ - private final OVRPosef eyePosesPtr[] = new OVRPosef[2]; - - /** - * The eye positions relative to the world, as used by jME. + * Store the positions for each eye, relative to the HMD. + * + * @see #getHMDVectorPoseLeftEye() */ - private final Vector3f eyePositions[] = new Vector3f[2]; + private final Vector3f[] hmdRelativeEyePositions = new Vector3f[2]; /** * The position and orientation of the user's head. @@ -227,6 +224,9 @@ public class OculusVR implements VRAPI { for (int eye = 0; eye < 2; eye++) { projections[eye] = OVRMatrix4f.malloc(); //1.3 was right handed, now none flag + + hmdRelativeEyePoses[eye] = new Matrix4f(); + hmdRelativeEyePositions[eye] = new Vector3f(); } // step 6 - render desc @@ -240,12 +240,11 @@ public class OculusVR implements VRAPI { OVRPosef pose = eyeRenderDesc[eye].HmdToEyePose(); - Matrix4f jPose = new Matrix4f(); - jPose.setTranslation(vecO2J(pose.Position(), new Vector3f())); - jPose.setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); + vecO2J(pose.Position(), hmdRelativeEyePositions[eye]); - hmdRelativeEyePoses[eye] = jPose; - eyePositions[eye] = new Vector3f(); // Set the absolute position up for later. + hmdRelativeEyePoses[eye].loadIdentity(); + hmdRelativeEyePoses[eye].setTranslation(hmdRelativeEyePositions[eye]); + hmdRelativeEyePoses[eye].setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); } // step 7 - recenter @@ -268,22 +267,6 @@ public class OculusVR implements VRAPI { //get head pose headPose = hmdState.HeadPose().ThePose(); hmdState.free(); - - //build view offsets struct - OVRPosef.Buffer hmdToEyeOffsets = OVRPosef.calloc(2); - hmdToEyeOffsets.put(0, eyeRenderDesc[ovrEye_Left].HmdToEyePose()); - hmdToEyeOffsets.put(1, eyeRenderDesc[ovrEye_Right].HmdToEyePose()); - - //calculate eye poses - OVRPosef.Buffer outEyePoses = OVRPosef.create(2); - OVRUtil.ovr_CalcEyePoses(headPose, hmdToEyeOffsets, outEyePoses); - hmdToEyeOffsets.free(); - eyePosesPtr[ovrEye_Left] = outEyePoses.get(0); - eyePosesPtr[ovrEye_Right] = outEyePoses.get(1); - - for (int i = 0; i < eyePosesPtr.length; i++) { - vecO2J(eyePosesPtr[i].Position(), eyePositions[i]); - } } @Override @@ -383,12 +366,12 @@ public class OculusVR implements VRAPI { @Override public Vector3f getHMDVectorPoseLeftEye() { - return eyePositions[ovrEye_Left]; + return hmdRelativeEyePositions[ovrEye_Left]; } @Override public Vector3f getHMDVectorPoseRightEye() { - return eyePositions[ovrEye_Right]; + return hmdRelativeEyePositions[ovrEye_Right]; } @Override @@ -640,8 +623,12 @@ public class OculusVR implements VRAPI { return fovPorts[ovrEye_Left]; // TODO checking the left and right eyes match } - public OVRPosef[] getEyePosesPtr() { - return eyePosesPtr; + public OVRPosef getHeadPose() { + return headPose; + } + + public OVRPosef getEyePose(int eye) { + return eyeRenderDesc[eye].HmdToEyePose(); } } diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index ac4a793b9..20968aa1f 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -169,11 +169,20 @@ public class VRViewManagerOculus extends AbstractVRViewManager { @Override public void render() { - for (int eye = 0; eye < 2; eye++) { - // TODO do we need this? Don't we set the camera positions ourselves? - OVRPosef eyePose = hardware.getEyePosesPtr()[eye]; - hardware.getLayer0().RenderPose(eye, eyePose); + // Calculate the render pose (translation/rotation) for each eye. + // LibOVR takes the difference between this and the real position of each eye at display time + // to apply AZW (timewarp). + + OVRPosef.Buffer hmdToEyeOffsets = OVRPosef.calloc(2); + hmdToEyeOffsets.put(0, hardware.getEyePose(ovrEye_Left)); + hmdToEyeOffsets.put(1, hardware.getEyePose(ovrEye_Right)); + + //calculate eye poses + OVRUtil.ovr_CalcEyePoses(hardware.getHeadPose(), hmdToEyeOffsets, hardware.getLayer0().RenderPose()); + hmdToEyeOffsets.free(); + + for (int eye = 0; eye < 2; eye++) { IntBuffer currentIndexB = BufferUtils.createIntBuffer(1); ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(eye), currentIndexB); int index = currentIndexB.get(); From 9747c556ffaa65a36138aa7c9647c4c1271d3d9a Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sun, 1 Oct 2017 23:45:43 +1300 Subject: [PATCH 021/150] OculusVR: Use correct coordinate space conversions, looking around now works --- .../main/java/com/jme3/input/vr/OculusVR.java | 20 ++++++++++++------- .../com/jme3/util/VRViewManagerOculus.java | 5 +++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 5e6b93f90..56d49f705 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -327,7 +327,7 @@ public class OculusVR implements VRAPI { @Override public Quaternion getOrientation() { - return quatO2J(headPose.Orientation(), new Quaternion()).inverseLocal(); + return quatO2J(headPose.Orientation(), new Quaternion()); } @Override @@ -349,8 +349,6 @@ public class OculusVR implements VRAPI { matrixO2J(projections[eye], mat); - mat.transposeLocal(); // Apparently LibOVR has a different coordinate set - yay for us. - return mat; } @@ -552,6 +550,8 @@ public class OculusVR implements VRAPI { * @return The {@code to} argument. */ public static Matrix4f matrixO2J(OVRMatrix4f from, Matrix4f to) { + to.loadIdentity(); // For the additional columns (unless I'm badly misunderstanding matricies) + for (int x = 0; x < 4; x++) { for (int y = 0; y < 4; y++) { float val = from.M(x + y * 4); // TODO verify this @@ -559,6 +559,8 @@ public class OculusVR implements VRAPI { } } + to.transposeLocal(); // jME vs LibOVR coordinate spaces - Yay! + return to; } @@ -570,13 +572,16 @@ public class OculusVR implements VRAPI { * @return The {@code to} argument. */ public static Quaternion quatO2J(OVRQuatf from, Quaternion to) { + // jME and LibOVR do their coordinate spaces differently for rotations, so flip Y and W (thanks, jMonkeyVR). to.set( from.x(), - from.y(), + -from.y(), from.z(), - from.w() + -from.w() ); + to.normalizeLocal(); + return to; } @@ -588,10 +593,11 @@ public class OculusVR implements VRAPI { * @return The {@code to} argument. */ public static Vector3f vecO2J(OVRVector3f from, Vector3f to) { + // jME and LibOVR disagree on which way X and Z is, too. to.set( - from.x(), + -from.x(), from.y(), - from.z() + -from.z() ); return to; diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 20968aa1f..4711963f6 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -187,8 +187,9 @@ public class VRViewManagerOculus extends AbstractVRViewManager { ovr_GetTextureSwapChainCurrentIndex(session(), hardware.getChain(eye), currentIndexB); int index = currentIndexB.get(); - // FIXME eyes inverted - (eye != ovrEye_Left ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers(eye)[index]); + // Constantly (each frame) rotating through a series of + // frame buffers, so make sure we write into the correct one. + (eye == ovrEye_Left ? leftViewPort : rightViewPort).setOutputFrameBuffer(hardware.getFramebuffers(eye)[index]); } // Now the game will render into the buffers given to us by LibOVR From 7b30f69c2a3780e2845f69952d1f8eab74aa03c8 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 5 Oct 2017 11:56:00 +1300 Subject: [PATCH 022/150] Fix mirror window displaying blank for Oculus Rift --- jme3-vr/src/main/java/com/jme3/app/VRAppState.java | 7 ++++++- .../main/java/com/jme3/util/VRViewManagerOculus.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index 806f2cc42..6d29dbb24 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -34,6 +34,7 @@ package com.jme3.app; import com.jme3.app.Application; import com.jme3.app.state.AbstractAppState; import com.jme3.app.state.AppStateManager; +import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRInputAPI; import com.jme3.math.ColorRGBA; @@ -608,7 +609,11 @@ public class VRAppState extends AbstractAppState { settings.setFrequency(environment.getVRHardware().getDisplayFrequency()); settings.setFullscreen(false); settings.setVSync(false); // stop vsyncing on primary monitor! - settings.setSwapBuffers(environment.isSwapBuffers()); + + // TODO: Is this preventing desktop display on _ALL_ HMDs? + if(!(getVRHardware() instanceof OculusVR)) { + settings.setSwapBuffers(environment.isSwapBuffers()); + } } // Updating application settings diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 4711963f6..181f3640c 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -135,9 +135,19 @@ public class VRViewManagerOculus extends AbstractVRViewManager { finalRotation.multLocal(hmdRot); } + // Update both eye cameras finalizeCamera(hardware.getHMDVectorPoseLeftEye(), objPos, leftCamera); finalizeCamera(hardware.getHMDVectorPoseRightEye(), objPos, rightCamera); + // Update the main camera, so it shows the same basic view the HMD is getting + // TODO: Do this in VRAppState, so it works on all HMDs. + // I only have a Rift, so I can't test it on anything else. + if(!environment.isInstanceRendering()) { // We use the app camera as the left camera here + // TODO: Double up on rendering and use one eye, to reduce GPU load rendering the scene again. + // TODO: Snip at the image to remove the distorted corners from a very high FOV. + finalizeCamera(Vector3f.ZERO, objPos, environment.getApplication().getCamera()); + } + if (environment.hasTraditionalGUIOverlay()) { // update the mouse? environment.getVRMouseManager().update(tpf); From fcccdd75a59ca54f268d3a0536803529e521f194 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Thu, 5 Oct 2017 11:57:14 +1300 Subject: [PATCH 023/150] Don't create unnecessary FrameBuffer for OculusVR view manager --- .../java/com/jme3/util/VRViewManagerOculus.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java index 181f3640c..53a00aabd 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java @@ -319,19 +319,6 @@ public class VRViewManagerOculus extends AbstractVRViewManager { // TODO this function is identical to that in VRViewManagerOpenVR; merge the two. if (environment != null) { if (environment.getApplication() != null) { - // create offscreen framebuffer - FrameBuffer offBufferLeft = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1); - //offBufferLeft.setSrgb(true); - - //setup framebuffer's texture - Texture2D offTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8); - offTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps); - offTex.setMagFilter(Texture.MagFilter.Bilinear); - - //setup framebuffer to use texture - offBufferLeft.setDepthBuffer(Image.Format.Depth); - offBufferLeft.setColorTexture(offTex); - ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam); viewPort.setClearFlags(true, true, true); viewPort.setBackgroundColor(ColorRGBA.Black); @@ -341,8 +328,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { viewPort.attachScene(spatialIter.next()); } - //set viewport to render to offscreen framebuffer - viewPort.setOutputFrameBuffer(offBufferLeft); + // The viewbuffer to render into will be set during prerender. return viewPort; } else { throw new IllegalStateException("This VR environment is not attached to any application."); From c26316d81c0f08a12fc2b166012633fd16e55930 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 6 Oct 2017 20:21:22 +1300 Subject: [PATCH 024/150] Add Oculus Touch mappings to VRInputType --- .../java/com/jme3/input/vr/VRInputType.java | 100 +++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java index aca571f35..2d529cf77 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java @@ -1,5 +1,7 @@ package com.jme3.input.vr; +import static org.lwjgl.ovr.OVR.*; // For the button constants + /** * The type of a VR input. This enumeration enables to determine which part of the VR device is involved within input callback. * @author reden - phr00t - https://github.com/phr00t @@ -26,7 +28,103 @@ public enum VRInputType { /** * an HTC vive menu button (about Vive controller). */ - ViveMenuButton(3); + ViveMenuButton(3), + + /** + * The thumbstick on the Oculus Touch controllers. + * + * Unlike the Vive controllers where the touchpad is commonly used + * as a virtual DPad, you should avoid using the thumbstick for purposes + * that do not require analog input. + */ + OculusThumbstickAxis(0), + + /** + * The trigger button on the Oculus Touch controllers. + * + * This is the button under the user's index finger, and should not be used to + * pick up objects. See the + * Oculus Developer documentation. + */ + OculusTriggerAxis(0), + + /** + * The 'grab' button on the Oculus Touch controllers. + * + * This button should only (unless you have a compelling reason otherwise) be used to pick up objects. + */ + OculusGripAxis(0), + + /** + * The upper buttons on the Oculus Touch controllers - B on the right controller, and Y on the left. + */ + OculusTopButton(ovrButton_B | ovrButton_Y), + + /** + * The lower (not counting menu) buttons on the Oculus Touch + * controllers - A on the right controller, and X on the left. + */ + OculusBottomButton(ovrButton_A | ovrButton_X), + + /** + * The 'click' button on the Oculus Touch thumbsticks. + */ + OculusThumbstickButton(ovrButton_LThumb | ovrButton_RThumb), + + /** + * The game-usable menu button, under and to the left of the 'X' button on the left controller. + * + * Most games use this to pause - it preferably should be used for at least that purpose, and is + * uncomfortable to rest your thumb on (in games where you suddenly have to pause/open a menu). + */ + OculusMenuButton(ovrButton_Enter), + + /** + * The capacitive touch sensors on the top buttons (Y and B) of the Oculus Touch. + */ + OculusTopTouch(ovrTouch_B | ovrTouch_Y), + + /** + * The capacitive touch sensors on the lower buttons (X and A) of the Oculus Touch. + */ + OculusBottomTouch(ovrTouch_A | ovrTouch_X), + + /** + * The capacitive touch sensors on the thumbsticks of the Oculus Touch. + */ + OculusThumbstickTouch(ovrTouch_LThumb | ovrTouch_RThumb), + + /** + * The capacitive touch sensors on the thumbrests of the Oculus Touch - this is a textured pad + * on the Oculus Touch controller next to the ABXY buttons for users to reset their thumbs on. + * + * While it probably goes without saying, only use this for gesture support and do not bind game + * elements to it. + */ + OculusThumbrestTouch(ovrTouch_LThumbRest | ovrTouch_RThumbRest), + + /** + * The state of a software calculation based on the capacitive touch sensor values that determine if + * the user has lifted their thumb off the controller, and can be used for gesture support. + * + * This should be used instead of calculating this yourself based on the touch results of all the other + * parts of the controller. + */ + OculusThumbUp(ovrTouch_LThumbUp | ovrTouch_RThumbUp), + + /** + * Is the user resting their finger on the trigger of an Oculus Touch controller? + */ + OculusIndexTouch(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing), + + /** + * Is the user pointing their finger forwards, as if to press a button? + * + * This is internally calculated from proximity and filtering is applied - it should be used rather + * than !OculusIndexTouch, as it will probably lead to better results. + */ + OculusIndexPointing(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing); /** * The value that codes the input type. From 2464dcd17add1c097bf1e9224cf798f9e01f2bd1 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Fri, 6 Oct 2017 21:56:03 +1300 Subject: [PATCH 025/150] Add OculusVRInput --- .../main/java/com/jme3/input/vr/OculusVR.java | 43 +- .../java/com/jme3/input/vr/OculusVRInput.java | 367 ++++++++++++++++++ 2 files changed, 401 insertions(+), 9 deletions(-) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 56d49f705..32ba94356 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -101,11 +101,21 @@ public class OculusVR implements VRAPI { */ private final Vector3f[] hmdRelativeEyePositions = new Vector3f[2]; + /** + * The current state of the tracked components (HMD, touch) + */ + private OVRTrackingState trackingState; + /** * The position and orientation of the user's head. */ private OVRPosef headPose; + /** + * The state of the Touch controllers. + */ + private OculusVRInput input; + // The size of the texture drawn onto the HMD private int textureW; private int textureH; @@ -129,8 +139,8 @@ public class OculusVR implements VRAPI { } @Override - public OpenVRInput getVRinput() { - throw new UnsupportedOperationException(); + public OculusVRInput getVRinput() { + return input; } @Override @@ -184,7 +194,7 @@ public class OculusVR implements VRAPI { if (ovr_Create(pHmd, luid) != ovrSuccess) { System.out.println("create failed, try debug"); //debug headset is now enabled via the Oculus Configuration util . tools -> Service -> Configure - return false; + return false; // TODO fix memory leak - destroy() is not called } session = pHmd.get(0); memFree(pHmd); @@ -198,7 +208,7 @@ public class OculusVR implements VRAPI { System.out.println("ovr_GetHmdDesc = " + hmdDesc.ManufacturerString() + " " + hmdDesc.ProductNameString() + " " + hmdDesc.SerialNumberString() + " " + hmdDesc.Type()); if (hmdDesc.Type() == ovrHmd_None) { System.out.println("missing init"); - return false; + return false; // TODO fix memory leak - destroy() is not called } resolutionW = hmdDesc.Resolution().w(); @@ -206,7 +216,7 @@ public class OculusVR implements VRAPI { System.out.println("resolution W=" + resolutionW + ", H=" + resolutionH); if (resolutionW == 0) { System.out.println("Huh - width=0"); - return false; + return false; // TODO fix memory leak - destroy() is not called } // FOV @@ -254,6 +264,12 @@ public class OculusVR implements VRAPI { // Do this so others relying on our texture size get it correct. findHMDTextureSize(); + // Set up the tracking system + trackingState = OVRTrackingState.malloc(); + + // Set up the input + input = new OculusVRInput(this, session, sessionStatus, trackingState); + // throw new UnsupportedOperationException("Not yet implemented!"); return true; } @@ -261,12 +277,13 @@ public class OculusVR implements VRAPI { @Override public void updatePose() { double ftiming = ovr_GetPredictedDisplayTime(session, 0); - OVRTrackingState hmdState = OVRTrackingState.malloc(); - ovr_GetTrackingState(session, ftiming, true, hmdState); + ovr_GetTrackingState(session, ftiming, true, trackingState); + ovr_GetSessionStatus(session, sessionStatus); + + input.updateControllerStates(); //get head pose - headPose = hmdState.HeadPose().ThePose(); - hmdState.free(); + headPose = trackingState.HeadPose().ThePose(); } @Override @@ -278,6 +295,9 @@ public class OculusVR implements VRAPI { public void destroy() { // fovPorts: contents are managed by LibOVR, no need to do anything. + // Clean up the input + input.dispose(); + // Check if we've set up rendering - if so, clean that up. if (chains != null) { // Destroy our set of huge buffer images. @@ -299,6 +319,7 @@ public class OculusVR implements VRAPI { } hmdDesc.free(); + trackingState.free(); sessionStatus.free(); // Wrap everything up @@ -636,6 +657,10 @@ public class OculusVR implements VRAPI { public OVRPosef getEyePose(int eye) { return eyeRenderDesc[eye].HmdToEyePose(); } + + public VREnvironment getEnvironment() { + return environment; + } } /* vim: set ts=4 softtabstop=0 sw=4 expandtab: */ diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java new file mode 100644 index 000000000..9016850bc --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java @@ -0,0 +1,367 @@ +package com.jme3.input.vr; + +import com.jme3.app.VREnvironment; +import com.jme3.math.*; +import com.jme3.renderer.Camera; +import com.jme3.scene.Spatial; +import com.jme3.util.VRViewManagerOculus; +import org.lwjgl.ovr.*; + +import static org.lwjgl.ovr.OVR.*; + +public class OculusVRInput implements VRInputAPI { + // State control + private final OVRInputState inputState; + private final OVRSessionStatus sessionStatus; + private final OVRTrackingState trackingState; + private final OculusVR hardware; + private long session; + + // Setup values + private float axisMultiplier = 1; + + // Cached stuff + private int buttons, touch; + + // Used to calculate sinceLastCall stuff + private int lastButtons, lastTouch; + private final Vector2f[][] lastAxises; + + /** + * The state data (linear and angular velocity and acceleration) for each hand + */ + private OVRPoseStatef[] handStates; + + /** + * The position and orientation of the Touch controllers. + */ + private OVRPosef[] handPoses; + + /** + * The object forms of the tracked controllers. + */ + private final OculusController[] controllers = { + new OculusController(0), + new OculusController(1) + }; + + public OculusVRInput(OculusVR hardware, long session, + OVRSessionStatus sessionStatus, OVRTrackingState trackingState) { + this.hardware = hardware; + this.session = session; + this.sessionStatus = sessionStatus; + this.trackingState = trackingState; + + inputState = OVRInputState.calloc(); + + handStates = new OVRPoseStatef[ovrHand_Count]; + handPoses = new OVRPosef[handStates.length]; + lastAxises = new Vector2f[handStates.length][3]; // trigger+grab+thumbstick for each hand. + } + + public void dispose() { + inputState.free(); + session = 0; // Crashing > undefined behaviour if this object is incorrectly accessed again. + } + + @Override + public void updateControllerStates() { + // Handle buttons, axies + ovr_GetInputState(session, ovrControllerType_Touch, inputState); + buttons = inputState.Buttons(); + touch = inputState.Touches(); + + // Get the touch controller poses + // TODO what if no touch controllers are available? + for (int hand = 0; hand < handPoses.length; hand++) { + handStates[hand] = trackingState.HandPoses(hand); + handPoses[hand] = handStates[hand].ThePose(); + } + } + + private Vector3f cv(OVRVector3f in) { + // TODO do we want to reuse vectors rather than making new ones? + // TODO OpenVRInput does this, but it will probably cause some bugs. + return OculusVR.vecO2J(in, new Vector3f()); // This also fixes the coordinate space transform issues. + } + + private Vector2f cv(OVRVector2f in) { + // TODO do we want to reuse vectors rather than making new ones? + // TODO OpenVRInput does this, but it will probably cause some bugs. + return new Vector2f(in.x(), in.y()); + } + + private Quaternion cq(OVRQuatf in) { + // TODO do we want to reuse quaternions rather than making new ones? + // TODO OpenVRInput does this, but it will probably cause some bugs. + return OculusVR.quatO2J(in, new Quaternion()); // This also fixes the coordinate space transform issues. + } + + private Vector2f axis(float input) { + // See above comments about reusing vectors + return new Vector2f(input, input); + } + + // Tracking (position, rotation, velocity, status) + + @Override + public Vector3f getPosition(int index) { + return cv(handPoses[index].Position()); + } + + @Override + public Vector3f getVelocity(int controllerIndex) { + return cv(handStates[controllerIndex].LinearVelocity()); + } + + @Override + public Quaternion getOrientation(int index) { + return cq(handPoses[index].Orientation()); + } + + @Override + public Vector3f getAngularVelocity(int controllerIndex) { + return cv(handStates[controllerIndex].AngularVelocity()); + } + + @Override + public Quaternion getFinalObserverRotation(int index) { + // Copied from OpenVRInput + + VREnvironment env = hardware.getEnvironment(); + VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); + + Object obs = env.getObserver(); + Quaternion tempq = new Quaternion(); // TODO move to class scope? + if (obs instanceof Camera) { + tempq.set(((Camera) obs).getRotation()); + } else { + tempq.set(((Spatial) obs).getWorldRotation()); + } + + return tempq.multLocal(getOrientation(index)); + } + + @Override + public Vector3f getFinalObserverPosition(int index) { + // Copied from OpenVRInput + + VREnvironment env = hardware.getEnvironment(); + VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); + + Object obs = env.getObserver(); + Vector3f pos = getPosition(index); + if (obs instanceof Camera) { + ((Camera) obs).getRotation().mult(pos, pos); + return pos.addLocal(((Camera) obs).getLocation()); + } else { + ((Spatial) obs).getWorldRotation().mult(pos, pos); + return pos.addLocal(((Spatial) obs).getWorldTranslation()); + } + } + + @Override + public boolean isInputDeviceTracking(int index) { + int flags = trackingState.HandStatusFlags(index); + return (flags & ovrStatus_PositionTracked) != 0; // TODO do we require orientation as well? + } + + // Input Getters + + @Override + public Vector2f getAxis(int controllerIndex, VRInputType forAxis) { + Vector2f result = getAxisRaw(controllerIndex, forAxis); + return result == null ? null : result.multLocal(axisMultiplier); + } + + @Override + public Vector2f getAxisRaw(int controllerIndex, VRInputType forAxis) { + switch (forAxis) { + case OculusThumbstickAxis: + return cv(inputState.Thumbstick(controllerIndex)); + case OculusTriggerAxis: + return axis(inputState.IndexTrigger(controllerIndex)); + case OculusGripAxis: + return axis(inputState.HandTrigger(controllerIndex)); + default: + return null; + } + } + + @Override + public boolean isButtonDown(int controllerIndex, VRInputType checkButton) { + return isButtonDownForStatus(controllerIndex, checkButton, buttons, touch); + } + + public boolean isButtonDownForStatus(int controllerIndex, VRInputType checkButton, int buttons, int touch) { + int buttonMask = (controllerIndex == ovrHand_Left) ? ovrButton_LMask : ovrButton_RMask; + int touchMask = (controllerIndex == ovrHand_Left) ? + (ovrTouch_LButtonMask + ovrTouch_LPoseMask) : + (ovrTouch_RButtonMask + ovrTouch_RPoseMask); + + switch (checkButton) { + default: + return false; + + case OculusTopButton: // Physical buttons + case OculusBottomButton: + case OculusThumbstickButton: + case OculusMenuButton: + return (buttons & buttonMask & checkButton.getValue()) != 0; + + case OculusTopTouch: // Standard capacitive buttons + case OculusBottomTouch: + case OculusThumbstickTouch: + case OculusThumbrestTouch: + case OculusIndexTouch: + case OculusThumbUp: // Calculated/virtual capacitive buttons + case OculusIndexPointing: + return (touch & touchMask & checkButton.getValue()) != 0; + } + } + + // Since-last-call stuff + + @Override + public void resetInputSinceLastCall() { + lastButtons = 0; + lastTouch = 0; + } + + @Override + public boolean wasButtonPressedSinceLastCall(int controllerIndex, VRInputType checkButton) { + boolean wasPressed = isButtonDownForStatus(controllerIndex, checkButton, lastButtons, lastTouch); + lastButtons = buttons; + lastTouch = touch; + return !wasPressed && isButtonDown(controllerIndex, checkButton); + } + + @Override + public Vector2f getAxisDeltaSinceLastCall(int controllerIndex, VRInputType forAxis) { + int index; + switch (forAxis) { + case OculusTriggerAxis: + index = 0; + break; + case OculusGripAxis: + index = 1; + break; + case OculusThumbstickAxis: + index = 2; + break; + default: + return null; + } + + Vector2f last = lastAxises[controllerIndex][index]; + if (last == null) { + last = lastAxises[controllerIndex][index] = new Vector2f(); + } + + Vector2f current = getAxis(controllerIndex, forAxis); + + // TODO could this lead to accuracy problems? + current.subtractLocal(last); + last.addLocal(current); + + return current; + } + + // Misc + + @Override + public boolean init() { + throw new UnsupportedOperationException("Input initialized at creation time"); + } + + @Override + public void updateConnectedControllers() { + throw new UnsupportedOperationException("Automatically done by LibOVR (I think?)"); + } + + @Override + public float getAxisMultiplier() { + return axisMultiplier; + } + + @Override + public void setAxisMultiplier(float axisMultiplier) { + this.axisMultiplier = axisMultiplier; + } + + @Override + public void triggerHapticPulse(int controllerIndex, float seconds) { + // TODO: How do we time so we can turn the feedback off? + } + + @Override + public boolean isInputFocused() { + return sessionStatus.IsVisible(); // TODO do we need HmdMounted, or is it counted in IsVisible + } + + @Override + public Object getRawControllerState(int index) { + throw new UnsupportedOperationException("Cannot get raw controller state!"); + } + + @Override + public void swapHands() { + // Do nothing. + // TODO although OSVR and OpenVR if it has more than two controllers both do nothing, shouldn't we be + // TODO throwing an exception or something? + } + + @Override + public int getTrackedControllerCount() { + // TODO: Shouldn't we be seeing if the user has the touch controllers first? + return 2; + } + + @Override + public VRTrackedController getTrackedController(int index) { + return controllers[index]; + } + + /** + * The object form representation of a controller. + */ + public class OculusController implements VRTrackedController { + + /** + * The ID of the hand to track + */ + private int hand; + + public OculusController(int hand) { + this.hand = hand; + } + + @Override + public String getControllerName() { + return "Touch"; // TODO + } + + @Override + public String getControllerManufacturer() { + return "Oculus"; // TODO + } + + @Override + public Vector3f getPosition() { + return OculusVRInput.this.getPosition(hand); + } + + @Override + public Quaternion getOrientation() { + return OculusVRInput.this.getOrientation(hand); + } + + @Override + public Matrix4f getPose() { + Matrix4f mat = new Matrix4f(); + mat.setRotationQuaternion(getOrientation()); + mat.setTranslation(getPosition()); + return mat; + } + } +} From 0b37e56bd01cfdcfeff694a2d7d3f0811aa3b7a3 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sat, 7 Oct 2017 19:46:39 +1300 Subject: [PATCH 026/150] Add recentering support for Oculus Rift, improve associated Javadoc --- jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java | 4 ++-- jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 32ba94356..601d19751 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -329,12 +329,12 @@ public class OculusVR implements VRAPI { @Override public void reset() { - throw new UnsupportedOperationException(); + ovr_RecenterTrackingOrigin(session); } @Override public void getRenderSize(Vector2f store) { - if(!isInitialized()) { + if (!isInitialized()) { throw new IllegalStateException("Cannot call getRenderSize() before initialized!"); } store.x = textureW; diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java index 4691f4e66..308611d57 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java @@ -86,7 +86,8 @@ public interface VRAPI { public boolean isInitialized(); /** - * Reset the VR system. + * Reset (recenter) the VR system. The current position of the HMD is + * now considered the origin (observer+[0,0,0]). */ public void reset(); From 63dd46b8a36d0515fbb69480662f972ff62ff340 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sat, 7 Oct 2017 22:27:16 +1300 Subject: [PATCH 027/150] Switch OculusVR to logger (from system.println), commenting spree --- .../main/java/com/jme3/input/vr/OculusVR.java | 98 +++++++++---------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java index 601d19751..5ce192864 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java @@ -8,11 +8,8 @@ package com.jme3.input.vr; import com.jme3.app.VREnvironment; import com.jme3.math.*; import com.jme3.renderer.Camera; -import com.jme3.texture.FrameBuffer; -import com.jme3.texture.Image; -import com.jme3.texture.Texture2D; -import org.lwjgl.BufferUtils; -import org.lwjgl.PointerBuffer; +import com.jme3.texture.*; +import org.lwjgl.*; import org.lwjgl.ovr.*; import java.nio.IntBuffer; @@ -157,43 +154,43 @@ public class OculusVR implements VRAPI { @Override public boolean initialize() { + // Check to make sure the HMD is connected OVRDetectResult detect = OVRDetectResult.calloc(); ovr_Detect(0, detect); boolean connected = detect.IsOculusHMDConnected(); - LOGGER.info("OVRDetectResult.IsOculusHMDConnected = " + connected); - LOGGER.info("OVRDetectResult.IsOculusServiceRunning = " + detect.IsOculusServiceRunning()); + LOGGER.config("OVRDetectResult.IsOculusHMDConnected = " + connected); + LOGGER.config("OVRDetectResult.IsOculusServiceRunning = " + detect.IsOculusServiceRunning()); detect.free(); if (!connected) { + LOGGER.info("Oculus Rift not connected"); return false; } initialized = true; - // step 1 - hmd init - System.out.println("step 1 - hmd init"); + // Set up the HMD OVRLogCallback callback = new OVRLogCallback() { @Override public void invoke(long userData, int level, long message) { - System.out.println("LibOVR [" + userData + "] [" + level + "] " + memASCII(message)); + LOGGER.fine("LibOVR [" + userData + "] [" + level + "] " + memASCII(message)); } }; OVRInitParams initParams = OVRInitParams.calloc(); initParams.LogCallback(callback); - //initParams.Flags(ovrInit_Debug); if (ovr_Initialize(initParams) != ovrSuccess) { - System.out.println("init failed"); + LOGGER.severe("LibOVR Init Failed"); + return false; // TODO fix memory leak - destroy() is not called } - System.out.println("OVR SDK " + ovr_GetVersionString()); + LOGGER.config("LibOVR Version " + ovr_GetVersionString()); initParams.free(); - // step 2 - hmd create - System.out.println("step 2 - hmd create"); + // Get access to the HMD + LOGGER.info("Initialize HMD Session"); PointerBuffer pHmd = memAllocPointer(1); OVRGraphicsLuid luid = OVRGraphicsLuid.calloc(); if (ovr_Create(pHmd, luid) != ovrSuccess) { - System.out.println("create failed, try debug"); - //debug headset is now enabled via the Oculus Configuration util . tools -> Service -> Configure + LOGGER.severe("Failed to create HMD"); return false; // TODO fix memory leak - destroy() is not called } session = pHmd.get(0); @@ -201,75 +198,75 @@ public class OculusVR implements VRAPI { luid.free(); sessionStatus = OVRSessionStatus.calloc(); - // step 3 - hmdDesc queries - System.out.println("step 3 - hmdDesc queries"); + // Get the information about the HMD + LOGGER.fine("Get HMD properties"); hmdDesc = OVRHmdDesc.malloc(); ovr_GetHmdDesc(session, hmdDesc); - System.out.println("ovr_GetHmdDesc = " + hmdDesc.ManufacturerString() + " " + hmdDesc.ProductNameString() + " " + hmdDesc.SerialNumberString() + " " + hmdDesc.Type()); if (hmdDesc.Type() == ovrHmd_None) { - System.out.println("missing init"); + LOGGER.warning("No HMD connected"); return false; // TODO fix memory leak - destroy() is not called } resolutionW = hmdDesc.Resolution().w(); resolutionH = hmdDesc.Resolution().h(); - System.out.println("resolution W=" + resolutionW + ", H=" + resolutionH); + + LOGGER.config("HMD Properties: " + + "\t Manufacturer: " + hmdDesc.ManufacturerString() + + "\t Product: " + hmdDesc.ProductNameString() + + "\t Serial: " // + hmdDesc.SerialNumberString() // Hidden for privacy reasons + + "\t Type: " + hmdDesc.Type() + + "\t Resolution (total): " + resolutionW + "," + resolutionH); + if (resolutionW == 0) { - System.out.println("Huh - width=0"); + LOGGER.severe("HMD witdth=0 : aborting"); return false; // TODO fix memory leak - destroy() is not called } - // FOV + // Find the FOV for each eye for (int eye = 0; eye < 2; eye++) { fovPorts[eye] = hmdDesc.DefaultEyeFov(eye); - System.out.println("eye " + eye + " = " + fovPorts[eye].UpTan() + ", " + fovPorts[eye].DownTan() + ", " + fovPorts[eye].LeftTan() + ", " + fovPorts[eye].RightTan()); } - // TODO what does this do? I think it might be the height of the player, for correct floor heights? - // playerEyePos = new Vector3f(0.0f, -ovr_GetFloat(session, OVR_KEY_EYE_HEIGHT, 1.65f), 0.0f); - // step 4 - tracking - no longer needed as of 0.8.0.0 - - // step 5 - projections - System.out.println("step 5 - projections"); + // Get the pose for each eye, and cache it for later. for (int eye = 0; eye < 2; eye++) { + // Create the projection objects projections[eye] = OVRMatrix4f.malloc(); - //1.3 was right handed, now none flag - hmdRelativeEyePoses[eye] = new Matrix4f(); hmdRelativeEyePositions[eye] = new Vector3f(); - } - // step 6 - render desc - System.out.println("step 6 - render desc"); - for (int eye = 0; eye < 2; eye++) { + // Find the eye render information - we use this in the + // view manager for giving LibOVR it's timewarp information. eyeRenderDesc[eye] = OVREyeRenderDesc.malloc(); ovr_GetRenderDesc(session, eye, fovPorts[eye], eyeRenderDesc[eye]); - // Changed from an offset to a pose, so there is also a rotation. - System.out.println("ipd eye " + eye + " = " + eyeRenderDesc[eye].HmdToEyePose().Position().x()); - + // Get the pose of the eye OVRPosef pose = eyeRenderDesc[eye].HmdToEyePose(); + // Get the position and rotation of the eye vecO2J(pose.Position(), hmdRelativeEyePositions[eye]); + Quaternion rotation = quatO2J(pose.Orientation(), new Quaternion()); + // Put it into a matrix for the get eye pose functions hmdRelativeEyePoses[eye].loadIdentity(); hmdRelativeEyePoses[eye].setTranslation(hmdRelativeEyePositions[eye]); - hmdRelativeEyePoses[eye].setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion())); + hmdRelativeEyePoses[eye].setRotationQuaternion(rotation); } - // step 7 - recenter - System.out.println("step 7 - recenter"); - ovr_RecenterTrackingOrigin(session); + // Recenter the HMD. The game itself should do this too, but just in case / before they do. + reset(); - // Do this so others relying on our texture size get it correct. + // Do this so others relying on our texture size (the GUI in particular) get it correct. findHMDTextureSize(); - // Set up the tracking system - trackingState = OVRTrackingState.malloc(); + // Allocate the memory for the tracking state - we actually + // set it up later, but Input uses it so calloc it now. + trackingState = OVRTrackingState.calloc(); // Set up the input input = new OculusVRInput(this, session, sessionStatus, trackingState); + // TODO find some way to get in ovrTrackingOrigin_FloorLevel + // throw new UnsupportedOperationException("Not yet implemented!"); return true; } @@ -282,7 +279,6 @@ public class OculusVR implements VRAPI { input.updateControllerStates(); - //get head pose headPose = trackingState.HeadPose().ThePose(); } @@ -329,6 +325,7 @@ public class OculusVR implements VRAPI { @Override public void reset() { + // Reset the coordinate system - where the user's head is now is facing forwards from [0,0,0] ovr_RecenterTrackingOrigin(session); } @@ -452,11 +449,9 @@ public class OculusVR implements VRAPI { OVRSizei leftTextureSize = OVRSizei.malloc(); ovr_GetFovTextureSize(session, ovrEye_Left, fovPorts[ovrEye_Left], pixelScaling, leftTextureSize); - System.out.println("leftTextureSize W=" + leftTextureSize.w() + ", H=" + leftTextureSize.h()); OVRSizei rightTextureSize = OVRSizei.malloc(); ovr_GetFovTextureSize(session, ovrEye_Right, fovPorts[ovrEye_Right], pixelScaling, rightTextureSize); - System.out.println("rightTextureSize W=" + rightTextureSize.w() + ", H=" + rightTextureSize.h()); if (leftTextureSize.w() != rightTextureSize.w()) { throw new IllegalStateException("Texture sizes do not match [horizontal]"); @@ -490,7 +485,6 @@ public class OculusVR implements VRAPI { throw new RuntimeException("Failed to create Swap Texture Set"); } swapChainDesc.free(); - System.out.println("done chain creation"); return textureSetPB.get(); // TODO is this a memory leak? } @@ -533,7 +527,7 @@ public class OculusVR implements VRAPI { ovr_GetTextureSwapChainLength(session, chains[eye], length); int chainLength = length.get(); - System.out.println("chain length=" + chainLength); + LOGGER.fine("HMD Eye #" + eye + " texture chain length: " + chainLength); // Create the frame buffers framebuffers[eye] = new FrameBuffer[chainLength]; From 42fd964a2262d3633c4f52aef292c69eac3dcc8e Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sat, 7 Oct 2017 22:36:32 +1300 Subject: [PATCH 028/150] Un-break VR mouse support for OpenVR --- jme3-vr/src/main/java/com/jme3/app/VRAppState.java | 6 +++++- jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index 6d29dbb24..7dbf7af41 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -35,6 +35,7 @@ import com.jme3.app.Application; import com.jme3.app.state.AbstractAppState; import com.jme3.app.state.AppStateManager; import com.jme3.input.vr.OculusVR; +import com.jme3.input.vr.OpenVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRInputAPI; import com.jme3.math.ColorRGBA; @@ -420,7 +421,10 @@ public class VRAppState extends AbstractAppState { } // use the analog control on the first tracked controller to push around the mouse - // environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); + // FIXME crashes on Rift/Touch (and probably OSVR), as it assumes the presence of the Vive touchpads + if(getVRHardware() instanceof OpenVR) { + environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); + } } @Override diff --git a/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java b/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java index 32eaca069..164ea12e6 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java @@ -182,6 +182,7 @@ public class VRMouseManager { } Vector2f tpDelta; + // TODO option to use Touch joysticks if( thumbstickMode ) { tpDelta = environment.getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis); } else { From 54061124a907a73a9e55f5f73438a3af57899522 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 8 Oct 2017 20:50:59 +0200 Subject: [PATCH 029/150] glTF: Fixed animation data interpolation, also renamed AnimData to TrackData to match JME paradigm. --- .../jme3/scene/plugins/gltf/GltfLoader.java | 99 +++++++++++++------ .../gltf/{AnimData.java => TrackData.java} | 59 +++++++---- 2 files changed, 113 insertions(+), 45 deletions(-) rename jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/{AnimData.java => TrackData.java} (87%) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index 8b2897e50..a3a59f3a7 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -19,7 +19,6 @@ import com.jme3.util.mikktspace.MikktspaceTangentGenerator; import javax.xml.bind.DatatypeConverter; import java.io.*; import java.nio.Buffer; -import java.sql.Time; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; @@ -714,7 +713,7 @@ public class GltfLoader implements AssetLoader { assertNotNull(samplers, "No samplers for animation " + name); //temp data storage of track data - AnimData[] animatedNodes = new AnimData[nodes.size()]; + TrackData[] animatedNodes = new TrackData[nodes.size()]; for (JsonElement channel : channels) { @@ -733,10 +732,10 @@ public class GltfLoader implements AssetLoader { logger.log(Level.WARNING, "Morph animation is not supported by JME yet, skipping animation"); continue; } - AnimData animData = animatedNodes[targetNode]; - if (animData == null) { - animData = new AnimData(); - animatedNodes[targetNode] = animData; + TrackData trackData = animatedNodes[targetNode]; + if (trackData == null) { + trackData = new TrackData(); + animatedNodes[targetNode] = trackData; } Integer samplerIndex = getAsInteger(channel.getAsJsonObject(), "sampler"); @@ -754,7 +753,7 @@ public class GltfLoader implements AssetLoader { logger.log(Level.WARNING, "JME only supports linear interpolation for animations"); } - animData = customContentManager.readExtensionAndExtras("animation.sampler", sampler, animData); + trackData = customContentManager.readExtensionAndExtras("animation.sampler", sampler, trackData); float[] times = fetchFromCache("accessors", timeIndex, float[].class); if (times == null) { @@ -763,17 +762,17 @@ public class GltfLoader implements AssetLoader { } if (targetPath.equals("translation")) { - animData.timeArrays.add(new AnimData.TimeData(times, AnimData.Type.Translation)); + trackData.timeArrays.add(new TrackData.TimeData(times, TrackData.Type.Translation)); Vector3f[] translations = readAccessorData(dataIndex, vector3fArrayPopulator); - animData.translations = translations; + trackData.translations = translations; } else if (targetPath.equals("scale")) { - animData.timeArrays.add(new AnimData.TimeData(times, AnimData.Type.Scale)); + trackData.timeArrays.add(new TrackData.TimeData(times, TrackData.Type.Scale)); Vector3f[] scales = readAccessorData(dataIndex, vector3fArrayPopulator); - animData.scales = scales; + trackData.scales = scales; } else if (targetPath.equals("rotation")) { - animData.timeArrays.add(new AnimData.TimeData(times, AnimData.Type.Rotation)); + trackData.timeArrays.add(new TrackData.TimeData(times, TrackData.Type.Rotation)); Quaternion[] rotations = readAccessorData(dataIndex, quaternionArrayPopulator); - animData.rotations = rotations; + trackData.rotations = rotations; } else { //TODO support weights logger.log(Level.WARNING, "Morph animation is not supported"); @@ -781,7 +780,7 @@ public class GltfLoader implements AssetLoader { continue; } - animatedNodes[targetNode] = customContentManager.readExtensionAndExtras("channel", channel, animData); + animatedNodes[targetNode] = customContentManager.readExtensionAndExtras("channel", channel, trackData); } if (name == null) { @@ -794,26 +793,26 @@ public class GltfLoader implements AssetLoader { int skinIndex = -1; for (int i = 0; i < animatedNodes.length; i++) { - AnimData animData = animatedNodes[i]; - if (animData == null) { + TrackData trackData = animatedNodes[i]; + if (trackData == null) { continue; } - animData.update(); - if (animData.length > anim.getLength()) { - anim.setLength(animData.length); + trackData.update(); + if (trackData.length > anim.getLength()) { + anim.setLength(trackData.length); } Object node = fetchFromCache("nodes", i, Object.class); if (node instanceof Spatial) { Spatial s = (Spatial) node; spatials.add(s); - SpatialTrack track = new SpatialTrack(animData.times, animData.translations, animData.rotations, animData.scales); + SpatialTrack track = new SpatialTrack(trackData.times, trackData.translations, trackData.rotations, trackData.scales); track.setTrackSpatial(s); anim.addTrack(track); } else if (node instanceof BoneWrapper) { BoneWrapper b = (BoneWrapper) node; //apply the inverseBindMatrix to animation data. - b.update(animData); - BoneTrack track = new BoneTrack(b.boneIndex, animData.times, animData.translations, animData.rotations, animData.scales); + b.update(trackData); + BoneTrack track = new BoneTrack(b.boneIndex, trackData.times, trackData.translations, trackData.rotations, trackData.scales); anim.addTrack(track); if (skinIndex == -1) { skinIndex = b.skinIndex; @@ -961,6 +960,7 @@ public class GltfLoader implements AssetLoader { bw.bone.setLocalTranslation(bw.localTransform.getTranslation()); bw.bone.setLocalRotation(bw.localTransform.getRotation()); bw.bone.setLocalScale(bw.localTransform.getScale()); + bw.bone.setUserControl(false); } private void computeBindTransforms(BoneWrapper boneWrapper, Skeleton skeleton) { @@ -1159,12 +1159,17 @@ public class GltfLoader implements AssetLoader { /** * Applies the inverse Bind transforms to anim data. and the armature transforms if relevant. */ - public void update(AnimData data) { + public void update(TrackData data) { Transform bindTransforms = new Transform(bone.getBindPosition(), bone.getBindRotation(), bone.getBindScale()); SkinData skinData = fetchFromCache("skins", skinIndex, SkinData.class); - for (int i = 0; i < data.translations.length; i++) { - Transform t = new Transform(data.translations[i], data.rotations[i], data.scales[i]); + for (int i = 0; i < data.getNbKeyFrames(); i++) { + + Vector3f translation = getTranslation(data, bindTransforms, i); + Quaternion rotation = getRotation(data, bindTransforms, i); + Vector3f scale = getScale(data, bindTransforms, i); + + Transform t = new Transform(translation, rotation, scale); if (isRoot) { //Apply the armature transforms to the root bone anim track. t.combineWithParent(skinData.armatureTransforms); @@ -1180,10 +1185,48 @@ public class GltfLoader implements AssetLoader { tmpQuat.set(bindTransforms.getRotation()).inverseLocal().multLocal(t.getRotation()); t.setRotation(tmpQuat); - data.translations[i] = t.getTranslation(); - data.rotations[i] = t.getRotation(); - data.scales[i] = t.getScale(); + if(data.translations != null) { + data.translations[i] = t.getTranslation(); + } + if(data.rotations != null) { + data.rotations[i] = t.getRotation(); + } + if(data.scales != null) { + data.scales[i] = t.getScale(); + } + } + + data.ensureTranslationRotations(); + } + + private Vector3f getTranslation(TrackData data, Transform bindTransforms, int i) { + Vector3f translation; + if(data.translations == null){ + translation = bindTransforms.getTranslation(); + } else { + translation = data.translations[i]; + } + return translation; + } + + private Quaternion getRotation(TrackData data, Transform bindTransforms, int i) { + Quaternion rotation; + if(data.rotations == null){ + rotation = bindTransforms.getRotation(); + } else { + rotation = data.rotations[i]; + } + return rotation; + } + + private Vector3f getScale(TrackData data, Transform bindTransforms, int i) { + Vector3f scale; + if(data.scales == null){ + scale = bindTransforms.getScale(); + } else { + scale = data.scales[i]; } + return scale; } } diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/AnimData.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java similarity index 87% rename from jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/AnimData.java rename to jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java index 890b74239..fdbf892fa 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/AnimData.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java @@ -4,7 +4,7 @@ import com.jme3.math.*; import java.util.*; -public class AnimData { +public class TrackData { public enum Type { Translation, @@ -27,7 +27,6 @@ public class AnimData { if (equalTimes(timeArrays)) { times = timeArrays.get(0).times; - ensureArraysInit(); } else { //Times array are different and contains different sampling times. //We have to merge them because JME needs the 3 types of transforms for each keyFrame. @@ -69,7 +68,7 @@ public class AnimData { // populating transforms array from the keyframes, interpolating times = new float[keyFrames.size()]; - ensureArraysInit(); + ensureArraysLength(); TransformIndices translationIndices = new TransformIndices(); TransformIndices rotationIndices = new TransformIndices(); @@ -79,14 +78,18 @@ public class AnimData { KeyFrame kf = keyFrames.get(i); //we need Interpolate between keyframes when transforms are sparse. times[i] = kf.time; - populateTransform(Type.Translation, i, keyFrames, kf, translationIndices); - populateTransform(Type.Rotation, i, keyFrames, kf, rotationIndices); - populateTransform(Type.Scale, i, keyFrames, kf, scaleIndices); + if(translations != null) { + populateTransform(Type.Translation, i, keyFrames, kf, translationIndices); + } + if(rotations != null) { + populateTransform(Type.Rotation, i, keyFrames, kf, rotationIndices); + } + if(scales != null) { + populateTransform(Type.Scale, i, keyFrames, kf, scaleIndices); + } } } - ensureArraysInit(); - if (times[0] > 0) { //Anim doesn't start at 0, JME can't handle that and will interpolate transforms linearly from 0 to the first frame of the anim. //we need to add a frame at 0 that copies the first real frame @@ -174,6 +177,19 @@ public class AnimData { return -1; } + public int getNbKeyFrames(){ + if(translations != null){ + return translations.length; + } + if(rotations != null){ + return rotations.length; + } + if(scales != null){ + return scales.length; + } + return 0; + } + private void interpolate(Type type, float ratio, KeyFrame lastKeyFrame, KeyFrame nextKeyFrame, int currentIndex) { //TODO here we should interpolate differently according to the interpolation given in the gltf file. switch (type) { @@ -217,25 +233,34 @@ public class AnimData { } } - private void ensureArraysInit() { - if (translations == null || translations.length < times.length) { + private void ensureArraysLength() { + if (translations != null && translations.length < times.length) { + translations = new Vector3f[times.length]; + } + if (rotations != null && rotations.length < times.length) { + rotations = new Quaternion[times.length]; + } + if (scales != null && scales.length < times.length) { + scales = new Vector3f[times.length]; + } + } + + + //JME assumes there are translation and rotation track every time, so we create them with identity transforms if they don't exist + //TODO change this behavior in BoneTrack. + public void ensureTranslationRotations() { + if (translations == null) { translations = new Vector3f[times.length]; for (int i = 0; i < translations.length; i++) { translations[i] = new Vector3f(); } } - if (rotations == null || rotations.length < times.length) { + if (rotations == null) { rotations = new Quaternion[times.length]; for (int i = 0; i < rotations.length; i++) { rotations[i] = new Quaternion(); } } - if (scales == null || scales.length < times.length) { - scales = new Vector3f[times.length]; - for (int i = 0; i < scales.length; i++) { - scales[i] = new Vector3f().set(Vector3f.UNIT_XYZ); - } - } } private void setKeyFrameTransforms(Type type, KeyFrame keyFrame, float[] transformTimes) { From ae7a134f1e8763bf25ecaf894ef3f2136288feda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Mon, 9 Oct 2017 07:44:03 +0200 Subject: [PATCH 030/150] added functionality to use front mounted vive camera --- .../main/java/com/jme3/input/vr/OpenVR.java | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java index a9f3fdcfb..71007b5ca 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java @@ -18,6 +18,7 @@ import com.jme3.system.jopenvr.OpenVRUtil; import com.jme3.system.jopenvr.TrackedDevicePose_t; import com.jme3.system.jopenvr.VR_IVRCompositor_FnTable; import com.jme3.system.jopenvr.VR_IVRSystem_FnTable; +import com.jme3.system.jopenvr.VR_IVRTrackedCamera_FnTable; import com.jme3.util.VRUtil; import com.sun.jna.Memory; import com.sun.jna.Pointer; @@ -41,19 +42,20 @@ public class OpenVR implements VRAPI { private static final Logger logger = Logger.getLogger(OpenVR.class.getName()); private static VR_IVRCompositor_FnTable compositorFunctions; + private static VR_IVRTrackedCamera_FnTable cameraFunctions; private static VR_IVRSystem_FnTable vrsystemFunctions; private static boolean initSuccess = false; private static boolean flipEyes = false; - private IntBuffer hmdDisplayFrequency; - private TrackedDevicePose_t.ByReference hmdTrackedDevicePoseReference; - protected TrackedDevicePose_t[] hmdTrackedDevicePoses; + private static IntBuffer hmdDisplayFrequency; + private static TrackedDevicePose_t.ByReference hmdTrackedDevicePoseReference; + protected static TrackedDevicePose_t[] hmdTrackedDevicePoses; - protected IntByReference hmdErrorStore; + protected static IntByReference hmdErrorStore; - private final Quaternion rotStore = new Quaternion(); - private final Vector3f posStore = new Vector3f(); + private static final Quaternion rotStore = new Quaternion(); + private static final Vector3f posStore = new Vector3f(); private static FloatByReference tlastVsync; @@ -65,21 +67,20 @@ public class OpenVR implements VRAPI { // for debugging latency private int frames = 0; - protected Matrix4f[] poseMatrices; + protected static Matrix4f[] poseMatrices; - private final Matrix4f hmdPose = Matrix4f.IDENTITY.clone(); - private Matrix4f hmdProjectionLeftEye; - private Matrix4f hmdProjectionRightEye; - private Matrix4f hmdPoseLeftEye; - private Matrix4f hmdPoseRightEye; + private static final Matrix4f hmdPose = Matrix4f.IDENTITY.clone(); + private static Matrix4f hmdProjectionLeftEye; + private static Matrix4f hmdProjectionRightEye; + private static Matrix4f hmdPoseLeftEye; + private static Matrix4f hmdPoseRightEye; - private Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; - - private float vsyncToPhotons; - private double timePerFrame, frameCountRun; - private long frameCount; - private OpenVRInput VRinput; + private static Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; + private static float vsyncToPhotons; + private static double timePerFrame, frameCountRun; + private static long frameCount; + private static OpenVRInput VRinput; private VREnvironment environment = null; @@ -107,6 +108,10 @@ public class OpenVR implements VRAPI { return compositorFunctions; } + public VR_IVRTrackedCamera_FnTable getTrackedCamera(){ + return cameraFunctions; + } + @Override public String getName() { return "OpenVR"; @@ -235,6 +240,21 @@ public class OpenVR implements VRAPI { } return compositorFunctions != null; } + + public void initCamera(boolean allowed) { + hmdErrorStore.setValue(0); // clear the error store + if( allowed && vrsystemFunctions != null ) { + IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); + if (intptr != null){ + cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); + if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ + cameraFunctions.setAutoSynch(false); + cameraFunctions.read(); + logger.config("OpenVR Camera initialized"); + } + } + } + } @Override public void destroy() { From 2c044a29c5e1d5ac96abc9efd2a00ea4594085c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Mon, 9 Oct 2017 07:44:03 +0200 Subject: [PATCH 031/150] Revert "added functionality to use front mounted vive camera" This reverts commit ae7a134f1e8763bf25ecaf894ef3f2136288feda. --- .../main/java/com/jme3/input/vr/OpenVR.java | 56 ++++++------------- 1 file changed, 18 insertions(+), 38 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java index 71007b5ca..a9f3fdcfb 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java @@ -18,7 +18,6 @@ import com.jme3.system.jopenvr.OpenVRUtil; import com.jme3.system.jopenvr.TrackedDevicePose_t; import com.jme3.system.jopenvr.VR_IVRCompositor_FnTable; import com.jme3.system.jopenvr.VR_IVRSystem_FnTable; -import com.jme3.system.jopenvr.VR_IVRTrackedCamera_FnTable; import com.jme3.util.VRUtil; import com.sun.jna.Memory; import com.sun.jna.Pointer; @@ -42,20 +41,19 @@ public class OpenVR implements VRAPI { private static final Logger logger = Logger.getLogger(OpenVR.class.getName()); private static VR_IVRCompositor_FnTable compositorFunctions; - private static VR_IVRTrackedCamera_FnTable cameraFunctions; private static VR_IVRSystem_FnTable vrsystemFunctions; private static boolean initSuccess = false; private static boolean flipEyes = false; - private static IntBuffer hmdDisplayFrequency; - private static TrackedDevicePose_t.ByReference hmdTrackedDevicePoseReference; - protected static TrackedDevicePose_t[] hmdTrackedDevicePoses; + private IntBuffer hmdDisplayFrequency; + private TrackedDevicePose_t.ByReference hmdTrackedDevicePoseReference; + protected TrackedDevicePose_t[] hmdTrackedDevicePoses; - protected static IntByReference hmdErrorStore; + protected IntByReference hmdErrorStore; - private static final Quaternion rotStore = new Quaternion(); - private static final Vector3f posStore = new Vector3f(); + private final Quaternion rotStore = new Quaternion(); + private final Vector3f posStore = new Vector3f(); private static FloatByReference tlastVsync; @@ -67,20 +65,21 @@ public class OpenVR implements VRAPI { // for debugging latency private int frames = 0; - protected static Matrix4f[] poseMatrices; + protected Matrix4f[] poseMatrices; - private static final Matrix4f hmdPose = Matrix4f.IDENTITY.clone(); - private static Matrix4f hmdProjectionLeftEye; - private static Matrix4f hmdProjectionRightEye; - private static Matrix4f hmdPoseLeftEye; - private static Matrix4f hmdPoseRightEye; + private final Matrix4f hmdPose = Matrix4f.IDENTITY.clone(); + private Matrix4f hmdProjectionLeftEye; + private Matrix4f hmdProjectionRightEye; + private Matrix4f hmdPoseLeftEye; + private Matrix4f hmdPoseRightEye; - private static Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; + private Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; + + private float vsyncToPhotons; + private double timePerFrame, frameCountRun; + private long frameCount; + private OpenVRInput VRinput; - private static float vsyncToPhotons; - private static double timePerFrame, frameCountRun; - private static long frameCount; - private static OpenVRInput VRinput; private VREnvironment environment = null; @@ -108,10 +107,6 @@ public class OpenVR implements VRAPI { return compositorFunctions; } - public VR_IVRTrackedCamera_FnTable getTrackedCamera(){ - return cameraFunctions; - } - @Override public String getName() { return "OpenVR"; @@ -240,21 +235,6 @@ public class OpenVR implements VRAPI { } return compositorFunctions != null; } - - public void initCamera(boolean allowed) { - hmdErrorStore.setValue(0); // clear the error store - if( allowed && vrsystemFunctions != null ) { - IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); - if (intptr != null){ - cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); - if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ - cameraFunctions.setAutoSynch(false); - cameraFunctions.read(); - logger.config("OpenVR Camera initialized"); - } - } - } - } @Override public void destroy() { From a65b0ba3afde12a8660b522979be94d16669b0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Mon, 9 Oct 2017 07:44:03 +0200 Subject: [PATCH 032/150] added functionality to use front mounted vive camera. 2nd try --- .../main/java/com/jme3/input/vr/OpenVR.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java index a9f3fdcfb..a3cd4028d 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java @@ -18,6 +18,7 @@ import com.jme3.system.jopenvr.OpenVRUtil; import com.jme3.system.jopenvr.TrackedDevicePose_t; import com.jme3.system.jopenvr.VR_IVRCompositor_FnTable; import com.jme3.system.jopenvr.VR_IVRSystem_FnTable; +import com.jme3.system.jopenvr.VR_IVRTrackedCamera_FnTable; import com.jme3.util.VRUtil; import com.sun.jna.Memory; import com.sun.jna.Pointer; @@ -41,6 +42,7 @@ public class OpenVR implements VRAPI { private static final Logger logger = Logger.getLogger(OpenVR.class.getName()); private static VR_IVRCompositor_FnTable compositorFunctions; + private static VR_IVRTrackedCamera_FnTable cameraFunctions; private static VR_IVRSystem_FnTable vrsystemFunctions; private static boolean initSuccess = false; @@ -107,6 +109,10 @@ public class OpenVR implements VRAPI { return compositorFunctions; } + public VR_IVRTrackedCamera_FnTable getTrackedCamera(){ + return cameraFunctions; + } + @Override public String getName() { return "OpenVR"; @@ -235,6 +241,21 @@ public class OpenVR implements VRAPI { } return compositorFunctions != null; } + + public void initCamera(boolean allowed) { + hmdErrorStore.setValue(0); // clear the error store + if( allowed && vrsystemFunctions != null ) { + IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); + if (intptr != null){ + cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); + if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ + cameraFunctions.setAutoSynch(false); + cameraFunctions.read(); + logger.config("OpenVR Camera initialized"); + } + } + } + } @Override public void destroy() { From b9e3788ffa177e839054bdfc266390ac4fd89aa4 Mon Sep 17 00:00:00 2001 From: javasabr Date: Tue, 10 Oct 2017 06:12:55 +0300 Subject: [PATCH 033/150] fixed NPE when you try to remove an unused asset loader. --- jme3-core/src/main/java/com/jme3/asset/ImplHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java b/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java index 3bbd19c14..87acd1c7e 100644 --- a/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java +++ b/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java @@ -32,6 +32,7 @@ package com.jme3.asset; import com.jme3.asset.cache.AssetCache; + import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -282,6 +283,7 @@ final class ImplHandler { ImplThreadLocal local = classToLoaderMap.get(loaderType); // Remove it from the class->loader map classToLoaderMap.remove(loaderType); + if (local == null) return; // Remove it from the extension->loader map for (String extension : local.getExtensions()){ extensionToLoaderMap.remove(extension); From ec121f025fdea3be9cd6bee610c604f17c874e13 Mon Sep 17 00:00:00 2001 From: javasabr Date: Fri, 13 Oct 2017 08:45:33 +0300 Subject: [PATCH 034/150] simplified version. --- jme3-core/src/main/java/com/jme3/asset/ImplHandler.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java b/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java index 87acd1c7e..581c18b4e 100644 --- a/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java +++ b/jme3-core/src/main/java/com/jme3/asset/ImplHandler.java @@ -280,9 +280,8 @@ final class ImplHandler { // Synchronized access must be used for any ops on classToLoaderMap // Find the loader ImplThreadLocal for this class synchronized (classToLoaderMap){ - ImplThreadLocal local = classToLoaderMap.get(loaderType); // Remove it from the class->loader map - classToLoaderMap.remove(loaderType); + ImplThreadLocal local = classToLoaderMap.remove(loaderType); if (local == null) return; // Remove it from the extension->loader map for (String extension : local.getExtensions()){ From 5273045ddfa147be77d745e05736acbabec49ac3 Mon Sep 17 00:00:00 2001 From: Campbell Suter Date: Sat, 14 Oct 2017 10:01:42 +1300 Subject: [PATCH 035/150] Prevent double-updating the main scene in VR --- .../src/main/java/com/jme3/app/VRAppState.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index 7dbf7af41..54e7643ce 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -398,24 +398,12 @@ public class VRAppState extends AbstractAppState { } else if( environment.getObserver() != null ) { environment.getCamera().setFrame(((Spatial)environment.getObserver()).getWorldTranslation(), ((Spatial)environment.getObserver()).getWorldRotation()); } - - //FIXME: check if this code is necessary. - // Updates scene and gui states. - Iterator spatialIter = getLeftViewPort().getScenes().iterator(); - Spatial spatial = null; - while(spatialIter.hasNext()){ - spatial = spatialIter.next(); - spatial.updateLogicalState(tpf); - spatial.updateGeometricState(); - } if( environment.isInVR() == false || environment.getVRGUIManager().getPositioningMode() == VRGUIPositioningMode.MANUAL ) { // only update geometric state here if GUI is in manual mode, or not in VR // it will get updated automatically in the viewmanager update otherwise - spatialIter = application.getGuiViewPort().getScenes().iterator(); - spatial = null; - while(spatialIter.hasNext()){ - spatial = spatialIter.next(); + // TODO isn't this done by SimpleApplication? + for (Spatial spatial : application.getGuiViewPort().getScenes()) { spatial.updateGeometricState(); } } From ffed048472e625cf47daccfeed785ea6526348f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Sun, 15 Oct 2017 10:07:08 +0200 Subject: [PATCH 036/150] making VRViewManagerOSVR more similar to VRViewManagerOpenVR --- .../java/com/jme3/util/VRViewManagerOSVR.java | 127 +++--------------- 1 file changed, 19 insertions(+), 108 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java index e3d85406e..2019e6210 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java @@ -50,18 +50,6 @@ import com.sun.jna.ptr.PointerByReference; public class VRViewManagerOSVR extends AbstractVRViewManager{ private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName()); - private Camera leftCamera; - private ViewPort leftViewport; - private FilterPostProcessor leftPostProcessor; - private Texture2D leftEyeTexture; - private Texture2D leftEyeDepth; - - private Camera rightCamera; - private ViewPort rightViewport; - private FilterPostProcessor rightPostProcessor; - private Texture2D rightEyeTexture; - private Texture2D rightEyeDepth; - // OpenVR values private Texture_t leftTextureType; private Texture_t rightTextureType; @@ -73,15 +61,10 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ OSVR_ViewportDescription.ByValue osvr_viewDescRight; Pointer osvr_rmBufferState; - //private static boolean useCustomDistortion; - private float heightAdjustment; - private Texture2D dualEyeTex; private final PointerByReference grabRBS = new PointerByReference(); - private float resMult = 1f; - //final & temp values for camera calculations private final Vector3f finalPosition = new Vector3f(); private final Quaternion finalRotation = new Quaternion(); @@ -96,42 +79,6 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ this.environment = environment; } - /** - * Get the {@link Camera camera} attached to the left eye. - * @return the {@link Camera camera} attached to the left eye. - * @see #getRightCamera() - */ - public Camera getLeftCamera() { - return leftCamera; - } - - /** - * Get the {@link Camera camera} attached to the right eye. - * @return the {@link Camera camera} attached to the right eye. - * @see #getLeftCamera() - */ - public Camera getRightCamera() { - return rightCamera; - } - - /** - * Get the {@link ViewPort viewport} attached to the left eye. - * @return the {@link ViewPort viewport} attached to the left eye. - * @see #getRightViewPort() - */ - public ViewPort getLeftViewPort() { - return leftViewport; - } - - /** - * Get the {@link ViewPort viewport} attached to the right eye. - * @return the {@link ViewPort viewport} attached to the right eye. - * @see #getLeftViewPort() - */ - public ViewPort getRightViewPort() { - return rightViewport; - } - /** * Get the identifier of the left eye texture. * @return the identifier of the left eye texture. @@ -162,42 +109,6 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ return (int)dualEyeTex.getImage().getId(); } - /** - * Get the height adjustment to apply to the cameras before rendering. - * @return the height adjustment to apply to the cameras before rendering. - * @see #setHeightAdjustment(float) - */ - public float getHeightAdjustment() { - return heightAdjustment; - } - - /** - * Set the height adjustment to apply to the cameras before rendering. - * @param amount the height adjustment to apply to the cameras before rendering. - * @see #getHeightAdjustment() - */ - public void setHeightAdjustment(float amount) { - heightAdjustment = amount; - } - - /** - * Get the resolution multiplier. - * @return the resolution multiplier. - * @see #setResolutionMultiplier(float) - */ - public float getResolutionMuliplier() { - return resMult; - } - - /** - * Set the resolution multiplier. - * @param resMult the resolution multiplier. - * @see #getResolutionMuliplier() - */ - public void setResolutionMultiplier(float resMult) { - this.resMult = resMult; - } - /** * Initialize the system binds of the textures. */ @@ -442,8 +353,8 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ // other adjustments size.x *= xMult; - size.x *= resMult; - size.y *= resMult; + size.x *= getResolutionMuliplier(); + size.y *= getResolutionMuliplier(); if( cam.getWidth() != size.x || cam.getHeight() != size.y ){ cam.resize((int)size.x, (int)size.y, false); @@ -469,10 +380,10 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ return; } - leftEyeTexture = (Texture2D) leftViewport.getOutputFrameBuffer().getColorBuffer().getTexture(); - rightEyeTexture = (Texture2D)rightViewport.getOutputFrameBuffer().getColorBuffer().getTexture(); - leftEyeDepth = (Texture2D) leftViewport.getOutputFrameBuffer().getDepthBuffer().getTexture(); - rightEyeDepth = (Texture2D)rightViewport.getOutputFrameBuffer().getDepthBuffer().getTexture(); + leftEyeTexture = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getColorBuffer().getTexture(); + rightEyeTexture = (Texture2D)getRightViewPort().getOutputFrameBuffer().getColorBuffer().getTexture(); + leftEyeDepth = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture(); + rightEyeDepth = (Texture2D)getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture(); // main viewport is either going to be a distortion scene or nothing // mirroring is handled by copying framebuffers @@ -587,7 +498,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ if( obsPosition != null ){ finalPosition.addLocal(obsPosition); } - finalPosition.y += heightAdjustment; + finalPosition.y += getHeightAdjustment(); cam.setFrame(finalPosition, finalRotation); } @@ -595,7 +506,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ * Handles moving filters from the main view to each eye */ public void moveScreenProcessingToEyes() { - if( rightViewport == null ){ + if( getRightViewPort() == null ){ return; } @@ -617,7 +528,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ * @param sourceViewport the {@link ViewPort viewport} that contains the processors to use. */ public void syncScreenProcessing(ViewPort sourceViewport) { - if( rightViewport == null ){ + if( getRightViewPort() == null ){ return; } @@ -631,13 +542,13 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ // clear out all filters & processors, to start from scratch rightPostProcessor.removeAllFilters(); leftPostProcessor.removeAllFilters(); - leftViewport.clearProcessors(); - rightViewport.clearProcessors(); + getLeftViewPort().clearProcessors(); + getRightViewPort().clearProcessors(); // if we have no processors to sync, don't add the FilterPostProcessor if( sourceViewport.getProcessors().isEmpty() ) return; // add post processors we just made, which are empty - leftViewport.addProcessor(leftPostProcessor); - rightViewport.addProcessor(rightPostProcessor); + getLeftViewPort().addProcessor(leftPostProcessor); + getRightViewPort().addProcessor(rightPostProcessor); // go through all of the filters in the processors list // add them to the left viewport processor & clone them to the right for(SceneProcessor sceneProcessor : sourceViewport.getProcessors()) { @@ -670,8 +581,8 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ VRDirectionalLightShadowRenderer dlsr = (VRDirectionalLightShadowRenderer) sceneProcessor; VRDirectionalLightShadowRenderer dlsrRight = dlsr.clone(); dlsrRight.setLight(dlsr.getLight()); - rightViewport.getProcessors().add(0, dlsrRight); - leftViewport.getProcessors().add(0, sceneProcessor); + getRightViewPort().getProcessors().add(0, dlsrRight); + getLeftViewPort().getProcessors().add(0, sceneProcessor); } } // make sure each has a translucent filter renderer @@ -718,16 +629,16 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ //org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_FRAMEBUFFER_SRGB); if( !environment.isInstanceRendering()) { - leftViewport = setupViewBuffers(leftCamera, LEFT_VIEW_NAME); + leftViewPort = setupViewBuffers(leftCamera, LEFT_VIEW_NAME); rightCamera = leftCamera.clone(); if( environment.getVRHardware() != null ){ rightCamera.setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(rightCamera)); } - rightViewport = setupViewBuffers(rightCamera, RIGHT_VIEW_NAME); + rightViewPort = setupViewBuffers(rightCamera, RIGHT_VIEW_NAME); } else { System.err.println("[VRViewManager] THIS CODE NEED CHANGES !!!"); - leftViewport = environment.getApplication().getViewPort(); + leftViewPort = environment.getApplication().getViewPort(); //leftViewport.attachScene(app.getRootNode()); rightCamera = leftCamera.clone(); if( environment.getVRHardware() != null ){ @@ -742,7 +653,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ } // setup gui - environment.getVRGUIManager().setupGui(leftCamera, rightCamera, leftViewport, rightViewport); + environment.getVRGUIManager().setupGui(leftCamera, rightCamera, getLeftViewPort(), getRightViewPort()); if( environment.getVRHardware() != null ) { // call these to cache the results internally From 30de635cdf002c4a2e1d105c2b8e56046562e981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Sun, 15 Oct 2017 11:14:09 +0200 Subject: [PATCH 037/150] Changing back orientation quat modification --- .../src/main/java/com/jme3/input/vr/OSVR.java | 922 +++++++++--------- 1 file changed, 461 insertions(+), 461 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java index dce04e7b4..0258998b4 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java @@ -1,461 +1,461 @@ -/* - -https://github.com/sensics/OSVR-RenderManager/blob/master/examples/RenderManagerOpenGLCAPIExample.cpp - -- JVM crashes often.. placing breakpoints during initialization clears it up most of the time (WHY!?) - - OSVR is just unstable.. any way to improve things? -- render manager looks good, but left eye seems stretched - - */ -package com.jme3.input.vr; - -import com.jme3.app.VREnvironment; -import com.jme3.math.Matrix4f; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; -import com.jme3.renderer.Camera; -import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary; -import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary; -import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig; -import com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3; -import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_OpenResultsOpenGL; -import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL; -import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderInfoOpenGL; -import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderParams; -import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ViewportDescription; -import com.jme3.system.osvr.osvrrendermanageropengl.OsvrRenderManagerOpenGLLibrary; -import com.ochafik.lang.jnaerator.runtime.NativeSize; -import com.ochafik.lang.jnaerator.runtime.NativeSizeByReference; -import com.sun.jna.Pointer; -import com.sun.jna.ptr.PointerByReference; -import java.nio.FloatBuffer; -import java.util.logging.Logger; - -/** - * A class that wraps an OSVR system. - * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org - */ -public class OSVR implements VRAPI { - - private static final Logger logger = Logger.getLogger(OSVR.class.getName()); - - /** - * The first viewer index. - */ - public static final int FIRST_VIEWER = 0; - - /** - * The left eye index. - */ - public static final int EYE_LEFT = 0; - - /** - * The right eye index. - */ - public static final int EYE_RIGHT = 1; - - /** - * The size of the left eye. - */ - public static final NativeSize EYE_LEFT_SIZE = new NativeSize(EYE_LEFT); - - /** - * The size of the right eye. - */ - public static final NativeSize EYE_RIGHT_SIZE = new NativeSize(EYE_RIGHT); - - /** - * The default J String. - */ - public static byte[] defaultJString = { 'j', (byte)0 }; - - /** - * The default OpenGL String. - */ - public static byte[] OpenGLString = { 'O', 'p', 'e', 'n', 'G', 'L', (byte)0 }; - - private final Matrix4f[] eyeMatrix = new Matrix4f[2]; - - private PointerByReference grabRM; - private PointerByReference grabRMOGL; - private PointerByReference grabRIC; - - OSVR_RenderParams.ByValue renderParams; - OsvrClientKitLibrary.OSVR_ClientContext context; - com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue graphicsLibrary; - Pointer renderManager, renderManagerOpenGL, renderInfoCollection, registerBufferState; - OSVRInput VRinput; - NativeSize numRenderInfo; - NativeSizeByReference grabNumInfo = new NativeSizeByReference(); - OSVR_RenderInfoOpenGL.ByValue eyeLeftInfo, eyeRightInfo; - Matrix4f hmdPoseLeftEye; - Matrix4f hmdPoseRightEye; - Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; - OSVR_DisplayConfig displayConfig; - OSVR_Pose3 hmdPose = new OSVR_Pose3(); - Vector3f storePos = new Vector3f(); - Quaternion storeRot = new Quaternion(); - PointerByReference presentState = new PointerByReference(); - OSVR_OpenResultsOpenGL openResults = new OSVR_OpenResultsOpenGL(); - - long glfwContext; - long renderManagerContext; - long wglGLFW; - long wglRM; - - boolean initSuccess = false; - boolean flipEyes = false; - - private VREnvironment environment = null; - - /** - * Create a new OSVR system attached to the given {@link VREnvironment VR environment}. - * @param environment the {@link VREnvironment VR environment} to which the input is attached. - */ - public OSVR(VREnvironment environment){ - this.environment = environment; - } - - /** - * Access to the underlying OSVR structures. - * @param leftView the left viewport. - * @param rightView the right viewport. - * @param leftBuffer the left buffer. - * @param rightBuffer the right buffer. - * @return true if the structure are accessible and false otherwise. - */ - public boolean handleRenderBufferPresent(OSVR_ViewportDescription.ByValue leftView, OSVR_ViewportDescription.ByValue rightView, - OSVR_RenderBufferOpenGL.ByValue leftBuffer, OSVR_RenderBufferOpenGL.ByValue rightBuffer) { - if( eyeLeftInfo == null || eyeRightInfo == null ) return false; - byte retval; - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerStartPresentRenderBuffers(presentState); - getEyeInfo(); - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), leftBuffer, eyeLeftInfo, leftView); - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), rightBuffer, eyeRightInfo, rightView); - retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerFinishPresentRenderBuffers(renderManager, presentState.getValue(), renderParams, (byte)0); - return retval == 0; // only check the last error, since if something errored above, the last call won't work & all calls will log to syserr - } - - - - @Override - public boolean initialize() { - - logger.config("Initialize OSVR system."); - - hmdPose.setAutoSynch(false); - context = OsvrClientKitLibrary.osvrClientInit(defaultJString, 0); - VRinput = new OSVRInput(environment); - initSuccess = context != null && VRinput.init(); - if( initSuccess ) { - PointerByReference grabDisplay = new PointerByReference(); - byte retval = OsvrDisplayLibrary.osvrClientGetDisplay(context, grabDisplay); - if( retval != 0 ) { - System.out.println("OSVR Get Display Error: " + retval); - initSuccess = false; - return false; - } - displayConfig = new OSVR_DisplayConfig(grabDisplay.getValue()); - System.out.println("Waiting for the display to fully start up, including receiving initial pose update..."); - int i = 400; - while (OsvrDisplayLibrary.osvrClientCheckDisplayStartup(displayConfig) != 0) { - if( i-- < 0 ) { - System.out.println("Couldn't get display startup update in time, continuing anyway..."); - break; - } - OsvrClientKitLibrary.osvrClientUpdate(context); - try { - Thread.sleep(5); - } catch(Exception e) { } - } - System.out.println("OK, display startup status is good!"); - } - return initSuccess; - } - - - /** - * Grab the current GLFW context. - */ - public void grabGLFWContext() { - // get current conext - wglGLFW = org.lwjgl.opengl.WGL.wglGetCurrentContext(); - glfwContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext(); - } - - /** - * Enable context sharing. - * @return true if the context is successfully shared and false otherwise. - */ - public boolean shareContext() { - if( org.lwjgl.opengl.WGL.wglShareLists(wglRM, wglGLFW)) { - System.out.println("Context sharing success!"); - return true; - } else { - System.out.println("Context sharing problem..."); - return false; - } - } - - @Override - public boolean initVRCompositor(boolean allowed) { - if( !allowed || renderManager != null ) return false; - grabGLFWContext(); - graphicsLibrary = new com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue(); - graphicsLibrary.toolkit = null; - graphicsLibrary.setAutoSynch(false); - grabRM = new PointerByReference(); grabRMOGL = new PointerByReference(); - byte retval = OsvrRenderManagerOpenGLLibrary.osvrCreateRenderManagerOpenGL(context, OpenGLString, graphicsLibrary, grabRM, grabRMOGL); - if( retval == 0 ) { - renderManager = grabRM.getValue(); renderManagerOpenGL = grabRMOGL.getValue(); - if( renderManager == null || renderManagerOpenGL == null ) { - System.out.println("Render Manager Created NULL, error!"); - return false; - } - openResults.setAutoSynch(false); - retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerOpenDisplayOpenGL(renderManager, openResults); - if( retval == 0 ) { - wglRM = org.lwjgl.opengl.WGL.wglGetCurrentContext(); - renderManagerContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext(); - shareContext(); - OsvrClientKitLibrary.osvrClientUpdate(context); - renderParams = new OSVR_RenderParams.ByValue(); - renderParams.setAutoSynch(false); - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetDefaultRenderParams(renderParams); - grabRIC = new PointerByReference(); - retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoCollection(renderManager, renderParams, grabRIC); - if( retval == 0 ) { - renderInfoCollection = grabRIC.getValue(); - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetNumRenderInfoInCollection(renderInfoCollection, grabNumInfo); - numRenderInfo = grabNumInfo.getValue(); - eyeLeftInfo = new OSVR_RenderInfoOpenGL.ByValue(); - eyeRightInfo = new OSVR_RenderInfoOpenGL.ByValue(); - eyeLeftInfo.setAutoSynch(false); - eyeRightInfo.setAutoSynch(false); - return true; - } - OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); - System.out.println("OSVR Render Manager Info Collection Error: " + retval); - return false; - } - OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); - System.out.println("OSVR Open Render Manager Display Error: " + retval); - return false; - } - System.out.println("OSVR Create Render Manager Error: " + retval); - return false; - } - - @Override - public OsvrClientKitLibrary.OSVR_ClientContext getVRSystem() { - return context; - } - - @Override - public Pointer getCompositor() { - return renderManager; - } - - @Override - public String getName() { - return "OSVR"; - } - - @Override - public VRInputAPI getVRinput() { - return VRinput; - } - - @Override - public void setFlipEyes(boolean set) { - flipEyes = set; - } - - @Override - public void printLatencyInfoToConsole(boolean set) { - - } - - @Override - public int getDisplayFrequency() { - return 60; //debug display frequency - } - - @Override - public void destroy() { - if( renderManager != null ) OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); - if( displayConfig != null ) OsvrDisplayLibrary.osvrClientFreeDisplay(displayConfig); - } - - @Override - public boolean isInitialized() { - return initSuccess; - } - - @Override - public void reset() { - // TODO: no native OSVR reset function - // may need to take current position and negate it from future values - } - - @Override - public void getRenderSize(Vector2f store) { - if( eyeLeftInfo == null || eyeLeftInfo.viewport.width == 0.0 ) { - store.x = 1280f; store.y = 720f; - } else { - store.x = (float)eyeLeftInfo.viewport.width; - store.y = (float)eyeLeftInfo.viewport.height; - } - } - - /** - * Read and update the eye info from the underlying OSVR system. - */ - public void getEyeInfo() { - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_LEFT_SIZE, eyeLeftInfo); - OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_RIGHT_SIZE, eyeRightInfo); - eyeLeftInfo.read(); eyeRightInfo.read(); - } -/* - @Override - public float getFOV(int dir) { - return 105f; //default FOV - } -*/ - @Override - public float getInterpupillaryDistance() { - return 0.065f; //default IPD - } - - @Override - public Quaternion getOrientation() { - storeRot.set((float)-hmdPose.rotation.data[1], - (float)hmdPose.rotation.data[2], - (float)-hmdPose.rotation.data[3], - (float)hmdPose.rotation.data[0]); - if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); - return storeRot; - } - - @Override - public Vector3f getPosition() { - storePos.x = (float)-hmdPose.translation.data[0]; - storePos.y = (float)hmdPose.translation.data[1]; - storePos.z = (float)-hmdPose.translation.data[2]; - return storePos; - } - - @Override - public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) { - storePos.x = (float)-hmdPose.translation.data[0]; - storePos.y = (float)hmdPose.translation.data[1]; - storePos.z = (float)-hmdPose.translation.data[2]; - storeRot.set((float)-hmdPose.rotation.data[1], - (float)hmdPose.rotation.data[2], - (float)-hmdPose.rotation.data[3], - (float)hmdPose.rotation.data[0]); - if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); - } - - @Override - public void updatePose() { - if( context == null || displayConfig == null ) return; - OsvrClientKitLibrary.osvrClientUpdate(context); - OsvrDisplayLibrary.osvrClientGetViewerPose(displayConfig, FIRST_VIEWER, hmdPose.getPointer()); - VRinput.updateControllerStates(); - hmdPose.read(); - } - - @Override - public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { - if( eyeLeftInfo == null ) return cam.getProjectionMatrix(); - if( eyeMatrix[EYE_LEFT] == null ) { - FloatBuffer tfb = FloatBuffer.allocate(16); - com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_LEFT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb); - eyeMatrix[EYE_LEFT] = new Matrix4f(); - eyeMatrix[EYE_LEFT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12), - tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13), - tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14), - tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15)); - } - return eyeMatrix[EYE_LEFT]; - } - - @Override - public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) { - if( eyeRightInfo == null ) return cam.getProjectionMatrix(); - if( eyeMatrix[EYE_RIGHT] == null ) { - FloatBuffer tfb = FloatBuffer.allocate(16); - com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_RIGHT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb); - eyeMatrix[EYE_RIGHT] = new Matrix4f(); - eyeMatrix[EYE_RIGHT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12), - tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13), - tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14), - tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15)); - } - return eyeMatrix[EYE_RIGHT]; - } - - @Override - public Vector3f getHMDVectorPoseLeftEye() { - if( hmdPoseLeftEyeVec == null ) { - hmdPoseLeftEyeVec = new Vector3f(); - hmdPoseLeftEyeVec.x = 0.065f * -0.5f; - if( flipEyes == false ) hmdPoseLeftEyeVec.x *= -1f; // it seems these need flipping - } - return hmdPoseLeftEyeVec; - } - - @Override - public Vector3f getHMDVectorPoseRightEye() { - if( hmdPoseRightEyeVec == null ) { - hmdPoseRightEyeVec = new Vector3f(); - hmdPoseRightEyeVec.x = 0.065f * 0.5f; - if( flipEyes == false ) hmdPoseRightEyeVec.x *= -1f; // it seems these need flipping - } - return hmdPoseRightEyeVec; - } - - @Override - public Vector3f getSeatedToAbsolutePosition() { - return Vector3f.ZERO; - } - - @Override - public Matrix4f getHMDMatrixPoseLeftEye() { - // not actually used internally... - /*if( hmdPoseLeftEye != null ) { - return hmdPoseLeftEye; - } else { - FloatBuffer mat = FloatBuffer.allocate(16); - OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_LEFT, - (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS | - OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb); - hmdPoseLeftEye = new Matrix4f(tempfb.array()); - return hmdPoseLeftEye; - }*/ - return null; - } - - @Override - public Matrix4f getHMDMatrixPoseRightEye() { - // not actually used internally... - /*if( hmdPoseRightEye != null ) { - return hmdPoseRightEye; - } else { - OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_RIGHT, - (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS | - OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb); - hmdPoseRightEye = new Matrix4f(tempfb.array()); - return hmdPoseRightEye; - }*/ - return null; - } - - @Override - public HmdType getType() { - return HmdType.OSVR; - } -} +/* + +https://github.com/sensics/OSVR-RenderManager/blob/master/examples/RenderManagerOpenGLCAPIExample.cpp + +- JVM crashes often.. placing breakpoints during initialization clears it up most of the time (WHY!?) + - OSVR is just unstable.. any way to improve things? +- render manager looks good, but left eye seems stretched + + */ +package com.jme3.input.vr; + +import com.jme3.app.VREnvironment; +import com.jme3.math.Matrix4f; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; +import com.jme3.renderer.Camera; +import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary; +import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary; +import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig; +import com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3; +import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_OpenResultsOpenGL; +import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL; +import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderInfoOpenGL; +import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderParams; +import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ViewportDescription; +import com.jme3.system.osvr.osvrrendermanageropengl.OsvrRenderManagerOpenGLLibrary; +import com.ochafik.lang.jnaerator.runtime.NativeSize; +import com.ochafik.lang.jnaerator.runtime.NativeSizeByReference; +import com.sun.jna.Pointer; +import com.sun.jna.ptr.PointerByReference; +import java.nio.FloatBuffer; +import java.util.logging.Logger; + +/** + * A class that wraps an OSVR system. + * @author reden - phr00t - https://github.com/phr00t + * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + */ +public class OSVR implements VRAPI { + + private static final Logger logger = Logger.getLogger(OSVR.class.getName()); + + /** + * The first viewer index. + */ + public static final int FIRST_VIEWER = 0; + + /** + * The left eye index. + */ + public static final int EYE_LEFT = 0; + + /** + * The right eye index. + */ + public static final int EYE_RIGHT = 1; + + /** + * The size of the left eye. + */ + public static final NativeSize EYE_LEFT_SIZE = new NativeSize(EYE_LEFT); + + /** + * The size of the right eye. + */ + public static final NativeSize EYE_RIGHT_SIZE = new NativeSize(EYE_RIGHT); + + /** + * The default J String. + */ + public static byte[] defaultJString = { 'j', (byte)0 }; + + /** + * The default OpenGL String. + */ + public static byte[] OpenGLString = { 'O', 'p', 'e', 'n', 'G', 'L', (byte)0 }; + + private final Matrix4f[] eyeMatrix = new Matrix4f[2]; + + private PointerByReference grabRM; + private PointerByReference grabRMOGL; + private PointerByReference grabRIC; + + OSVR_RenderParams.ByValue renderParams; + OsvrClientKitLibrary.OSVR_ClientContext context; + com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue graphicsLibrary; + Pointer renderManager, renderManagerOpenGL, renderInfoCollection, registerBufferState; + OSVRInput VRinput; + NativeSize numRenderInfo; + NativeSizeByReference grabNumInfo = new NativeSizeByReference(); + OSVR_RenderInfoOpenGL.ByValue eyeLeftInfo, eyeRightInfo; + Matrix4f hmdPoseLeftEye; + Matrix4f hmdPoseRightEye; + Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand; + OSVR_DisplayConfig displayConfig; + OSVR_Pose3 hmdPose = new OSVR_Pose3(); + Vector3f storePos = new Vector3f(); + Quaternion storeRot = new Quaternion(); + PointerByReference presentState = new PointerByReference(); + OSVR_OpenResultsOpenGL openResults = new OSVR_OpenResultsOpenGL(); + + long glfwContext; + long renderManagerContext; + long wglGLFW; + long wglRM; + + boolean initSuccess = false; + boolean flipEyes = false; + + private VREnvironment environment = null; + + /** + * Create a new OSVR system attached to the given {@link VREnvironment VR environment}. + * @param environment the {@link VREnvironment VR environment} to which the input is attached. + */ + public OSVR(VREnvironment environment){ + this.environment = environment; + } + + /** + * Access to the underlying OSVR structures. + * @param leftView the left viewport. + * @param rightView the right viewport. + * @param leftBuffer the left buffer. + * @param rightBuffer the right buffer. + * @return true if the structure are accessible and false otherwise. + */ + public boolean handleRenderBufferPresent(OSVR_ViewportDescription.ByValue leftView, OSVR_ViewportDescription.ByValue rightView, + OSVR_RenderBufferOpenGL.ByValue leftBuffer, OSVR_RenderBufferOpenGL.ByValue rightBuffer) { + if( eyeLeftInfo == null || eyeRightInfo == null ) return false; + byte retval; + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerStartPresentRenderBuffers(presentState); + getEyeInfo(); + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), leftBuffer, eyeLeftInfo, leftView); + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), rightBuffer, eyeRightInfo, rightView); + retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerFinishPresentRenderBuffers(renderManager, presentState.getValue(), renderParams, (byte)0); + return retval == 0; // only check the last error, since if something errored above, the last call won't work & all calls will log to syserr + } + + + + @Override + public boolean initialize() { + + logger.config("Initialize OSVR system."); + + hmdPose.setAutoSynch(false); + context = OsvrClientKitLibrary.osvrClientInit(defaultJString, 0); + VRinput = new OSVRInput(environment); + initSuccess = context != null && VRinput.init(); + if( initSuccess ) { + PointerByReference grabDisplay = new PointerByReference(); + byte retval = OsvrDisplayLibrary.osvrClientGetDisplay(context, grabDisplay); + if( retval != 0 ) { + System.out.println("OSVR Get Display Error: " + retval); + initSuccess = false; + return false; + } + displayConfig = new OSVR_DisplayConfig(grabDisplay.getValue()); + System.out.println("Waiting for the display to fully start up, including receiving initial pose update..."); + int i = 400; + while (OsvrDisplayLibrary.osvrClientCheckDisplayStartup(displayConfig) != 0) { + if( i-- < 0 ) { + System.out.println("Couldn't get display startup update in time, continuing anyway..."); + break; + } + OsvrClientKitLibrary.osvrClientUpdate(context); + try { + Thread.sleep(5); + } catch(Exception e) { } + } + System.out.println("OK, display startup status is good!"); + } + return initSuccess; + } + + + /** + * Grab the current GLFW context. + */ + public void grabGLFWContext() { + // get current conext + wglGLFW = org.lwjgl.opengl.WGL.wglGetCurrentContext(); + glfwContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext(); + } + + /** + * Enable context sharing. + * @return true if the context is successfully shared and false otherwise. + */ + public boolean shareContext() { + if( org.lwjgl.opengl.WGL.wglShareLists(wglRM, wglGLFW)) { + System.out.println("Context sharing success!"); + return true; + } else { + System.out.println("Context sharing problem..."); + return false; + } + } + + @Override + public boolean initVRCompositor(boolean allowed) { + if( !allowed || renderManager != null ) return false; + grabGLFWContext(); + graphicsLibrary = new com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue(); + graphicsLibrary.toolkit = null; + graphicsLibrary.setAutoSynch(false); + grabRM = new PointerByReference(); grabRMOGL = new PointerByReference(); + byte retval = OsvrRenderManagerOpenGLLibrary.osvrCreateRenderManagerOpenGL(context, OpenGLString, graphicsLibrary, grabRM, grabRMOGL); + if( retval == 0 ) { + renderManager = grabRM.getValue(); renderManagerOpenGL = grabRMOGL.getValue(); + if( renderManager == null || renderManagerOpenGL == null ) { + System.out.println("Render Manager Created NULL, error!"); + return false; + } + openResults.setAutoSynch(false); + retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerOpenDisplayOpenGL(renderManager, openResults); + if( retval == 0 ) { + wglRM = org.lwjgl.opengl.WGL.wglGetCurrentContext(); + renderManagerContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext(); + shareContext(); + OsvrClientKitLibrary.osvrClientUpdate(context); + renderParams = new OSVR_RenderParams.ByValue(); + renderParams.setAutoSynch(false); + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetDefaultRenderParams(renderParams); + grabRIC = new PointerByReference(); + retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoCollection(renderManager, renderParams, grabRIC); + if( retval == 0 ) { + renderInfoCollection = grabRIC.getValue(); + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetNumRenderInfoInCollection(renderInfoCollection, grabNumInfo); + numRenderInfo = grabNumInfo.getValue(); + eyeLeftInfo = new OSVR_RenderInfoOpenGL.ByValue(); + eyeRightInfo = new OSVR_RenderInfoOpenGL.ByValue(); + eyeLeftInfo.setAutoSynch(false); + eyeRightInfo.setAutoSynch(false); + return true; + } + OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); + System.out.println("OSVR Render Manager Info Collection Error: " + retval); + return false; + } + OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); + System.out.println("OSVR Open Render Manager Display Error: " + retval); + return false; + } + System.out.println("OSVR Create Render Manager Error: " + retval); + return false; + } + + @Override + public OsvrClientKitLibrary.OSVR_ClientContext getVRSystem() { + return context; + } + + @Override + public Pointer getCompositor() { + return renderManager; + } + + @Override + public String getName() { + return "OSVR"; + } + + @Override + public VRInputAPI getVRinput() { + return VRinput; + } + + @Override + public void setFlipEyes(boolean set) { + flipEyes = set; + } + + @Override + public void printLatencyInfoToConsole(boolean set) { + + } + + @Override + public int getDisplayFrequency() { + return 60; //debug display frequency + } + + @Override + public void destroy() { + if( renderManager != null ) OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager); + if( displayConfig != null ) OsvrDisplayLibrary.osvrClientFreeDisplay(displayConfig); + } + + @Override + public boolean isInitialized() { + return initSuccess; + } + + @Override + public void reset() { + // TODO: no native OSVR reset function + // may need to take current position and negate it from future values + } + + @Override + public void getRenderSize(Vector2f store) { + if( eyeLeftInfo == null || eyeLeftInfo.viewport.width == 0.0 ) { + store.x = 1280f; store.y = 720f; + } else { + store.x = (float)eyeLeftInfo.viewport.width; + store.y = (float)eyeLeftInfo.viewport.height; + } + } + + /** + * Read and update the eye info from the underlying OSVR system. + */ + public void getEyeInfo() { + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_LEFT_SIZE, eyeLeftInfo); + OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_RIGHT_SIZE, eyeRightInfo); + eyeLeftInfo.read(); eyeRightInfo.read(); + } +/* + @Override + public float getFOV(int dir) { + return 105f; //default FOV + } +*/ + @Override + public float getInterpupillaryDistance() { + return 0.065f; //default IPD + } + + @Override + public Quaternion getOrientation() { + storeRot.set((float)hmdPose.rotation.data[1], + (float)hmdPose.rotation.data[2], + (float)hmdPose.rotation.data[3], + (float)hmdPose.rotation.data[0]); + if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); + return storeRot; + } + + @Override + public Vector3f getPosition() { + storePos.x = (float)-hmdPose.translation.data[0]; + storePos.y = (float)hmdPose.translation.data[1]; + storePos.z = (float)-hmdPose.translation.data[2]; + return storePos; + } + + @Override + public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) { + storePos.x = (float)-hmdPose.translation.data[0]; + storePos.y = (float)hmdPose.translation.data[1]; + storePos.z = (float)-hmdPose.translation.data[2]; + storeRot.set((float)hmdPose.rotation.data[1], + (float)hmdPose.rotation.data[2], + (float)hmdPose.rotation.data[3], + (float)hmdPose.rotation.data[0]); + if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); + } + + @Override + public void updatePose() { + if( context == null || displayConfig == null ) return; + OsvrClientKitLibrary.osvrClientUpdate(context); + OsvrDisplayLibrary.osvrClientGetViewerPose(displayConfig, FIRST_VIEWER, hmdPose.getPointer()); + VRinput.updateControllerStates(); + hmdPose.read(); + } + + @Override + public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) { + if( eyeLeftInfo == null ) return cam.getProjectionMatrix(); + if( eyeMatrix[EYE_LEFT] == null ) { + FloatBuffer tfb = FloatBuffer.allocate(16); + com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_LEFT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb); + eyeMatrix[EYE_LEFT] = new Matrix4f(); + eyeMatrix[EYE_LEFT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12), + tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13), + tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14), + tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15)); + } + return eyeMatrix[EYE_LEFT]; + } + + @Override + public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) { + if( eyeRightInfo == null ) return cam.getProjectionMatrix(); + if( eyeMatrix[EYE_RIGHT] == null ) { + FloatBuffer tfb = FloatBuffer.allocate(16); + com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_RIGHT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb); + eyeMatrix[EYE_RIGHT] = new Matrix4f(); + eyeMatrix[EYE_RIGHT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12), + tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13), + tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14), + tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15)); + } + return eyeMatrix[EYE_RIGHT]; + } + + @Override + public Vector3f getHMDVectorPoseLeftEye() { + if( hmdPoseLeftEyeVec == null ) { + hmdPoseLeftEyeVec = new Vector3f(); + hmdPoseLeftEyeVec.x = 0.065f * -0.5f; + if( flipEyes == false ) hmdPoseLeftEyeVec.x *= -1f; // it seems these need flipping + } + return hmdPoseLeftEyeVec; + } + + @Override + public Vector3f getHMDVectorPoseRightEye() { + if( hmdPoseRightEyeVec == null ) { + hmdPoseRightEyeVec = new Vector3f(); + hmdPoseRightEyeVec.x = 0.065f * 0.5f; + if( flipEyes == false ) hmdPoseRightEyeVec.x *= -1f; // it seems these need flipping + } + return hmdPoseRightEyeVec; + } + + @Override + public Vector3f getSeatedToAbsolutePosition() { + return Vector3f.ZERO; + } + + @Override + public Matrix4f getHMDMatrixPoseLeftEye() { + // not actually used internally... + /*if( hmdPoseLeftEye != null ) { + return hmdPoseLeftEye; + } else { + FloatBuffer mat = FloatBuffer.allocate(16); + OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_LEFT, + (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS | + OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb); + hmdPoseLeftEye = new Matrix4f(tempfb.array()); + return hmdPoseLeftEye; + }*/ + return null; + } + + @Override + public Matrix4f getHMDMatrixPoseRightEye() { + // not actually used internally... + /*if( hmdPoseRightEye != null ) { + return hmdPoseRightEye; + } else { + OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_RIGHT, + (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS | + OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb); + hmdPoseRightEye = new Matrix4f(tempfb.array()); + return hmdPoseRightEye; + }*/ + return null; + } + + @Override + public HmdType getType() { + return HmdType.OSVR; + } +} From 7c00561a3cf3ddb1da9357ff8b2351199d652d0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Sun, 15 Oct 2017 11:55:45 +0200 Subject: [PATCH 038/150] reverting orientation changes. --- jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java index 0258998b4..ec56c1837 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java @@ -331,9 +331,9 @@ public class OSVR implements VRAPI { @Override public Quaternion getOrientation() { - storeRot.set((float)hmdPose.rotation.data[1], + storeRot.set((float)-hmdPose.rotation.data[1], (float)hmdPose.rotation.data[2], - (float)hmdPose.rotation.data[3], + (float)-hmdPose.rotation.data[3], (float)hmdPose.rotation.data[0]); if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); return storeRot; @@ -352,9 +352,9 @@ public class OSVR implements VRAPI { storePos.x = (float)-hmdPose.translation.data[0]; storePos.y = (float)hmdPose.translation.data[1]; storePos.z = (float)-hmdPose.translation.data[2]; - storeRot.set((float)hmdPose.rotation.data[1], + storeRot.set((float)-hmdPose.rotation.data[1], (float)hmdPose.rotation.data[2], - (float)hmdPose.rotation.data[3], + (float)-hmdPose.rotation.data[3], (float)hmdPose.rotation.data[0]); if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z); } From 171007693bdc621318da8498c72470077234b9f3 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sat, 28 Oct 2017 18:13:05 +0200 Subject: [PATCH 039/150] De duplicate imports when generating a shader from shader nodes --- .../java/com/jme3/shader/ShaderGenerator.java | 29 ++++++-- .../com/jme3/shader/plugins/GLSLLoader.java | 69 +++++++++++++------ .../jme3/shader/plugins/ShaderAssetKey.java | 24 +++++++ 3 files changed, 94 insertions(+), 28 deletions(-) create mode 100644 jme3-core/src/plugins/java/com/jme3/shader/plugins/ShaderAssetKey.java diff --git a/jme3-core/src/main/java/com/jme3/shader/ShaderGenerator.java b/jme3-core/src/main/java/com/jme3/shader/ShaderGenerator.java index db3878afd..8783b195d 100644 --- a/jme3-core/src/main/java/com/jme3/shader/ShaderGenerator.java +++ b/jme3-core/src/main/java/com/jme3/shader/ShaderGenerator.java @@ -31,14 +31,15 @@ */ package com.jme3.shader; -import com.jme3.asset.AssetKey; import com.jme3.asset.AssetManager; import com.jme3.material.ShaderGenerationInfo; -import com.jme3.material.Technique; import com.jme3.material.TechniqueDef; import com.jme3.shader.Shader.ShaderType; -import java.util.List; -import java.util.regex.*; +import com.jme3.shader.plugins.ShaderAssetKey; + +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * This class is the base for a shader generator using the ShaderNodes system, @@ -66,6 +67,8 @@ public abstract class ShaderGenerator { */ Pattern extensions = Pattern.compile("(#extension.*\\s+)"); + private Map imports = new LinkedHashMap<>(); + /** * Build a shaderGenerator * @@ -126,7 +129,9 @@ public abstract class ShaderGenerator { // Too much code assumes that type is either Vertex or Fragment return null; } - + + imports.clear(); + indent = 0; StringBuilder sourceDeclaration = new StringBuilder(); @@ -145,6 +150,12 @@ public abstract class ShaderGenerator { generateEndOfMainSection(source, info, type); + //insert imports backward + int insertIndex = sourceDeclaration.length(); + for (String importSource : imports.values()) { + sourceDeclaration.insert(insertIndex, importSource); + } + sourceDeclaration.append(source); return moveExtensionsUp(sourceDeclaration); @@ -186,7 +197,13 @@ public abstract class ShaderGenerator { if (shaderNode.getDefinition().getType() == type) { int index = findShaderIndexFromVersion(shaderNode, type); String shaderPath = shaderNode.getDefinition().getShadersPath().get(index); - String loadedSource = (String) assetManager.loadAsset(new AssetKey(shaderPath)); + Map sources = (Map) assetManager.loadAsset(new ShaderAssetKey(shaderPath, false)); + String loadedSource = sources.get("[main]"); + for (String name : sources.keySet()) { + if (!name.equals("[main]")) { + imports.put(name, sources.get(name)); + } + } appendNodeDeclarationAndMain(loadedSource, sourceDeclaration, source, shaderNode, info, shaderPath); } } diff --git a/jme3-core/src/plugins/java/com/jme3/shader/plugins/GLSLLoader.java b/jme3-core/src/plugins/java/com/jme3/shader/plugins/GLSLLoader.java index 88b0ddd45..ce3264b2d 100644 --- a/jme3-core/src/plugins/java/com/jme3/shader/plugins/GLSLLoader.java +++ b/jme3-core/src/plugins/java/com/jme3/shader/plugins/GLSLLoader.java @@ -34,10 +34,7 @@ package com.jme3.shader.plugins; import com.jme3.asset.*; import com.jme3.asset.cache.AssetCache; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; +import java.io.*; import java.util.*; /** @@ -129,11 +126,11 @@ public class GLSLLoader implements AssetLoader { private ShaderDependencyNode nextIndependentNode() throws IOException { Collection allNodes = dependCache.values(); - + if (allNodes.isEmpty()) { return null; } - + for (ShaderDependencyNode node : allNodes) { if (node.getDependOnMe().isEmpty()) { return node; @@ -144,11 +141,11 @@ public class GLSLLoader implements AssetLoader { for (ShaderDependencyNode node : allNodes){ System.out.println(node.getName()); } - + throw new IOException("Circular dependency."); } - private String resolveDependencies(ShaderDependencyNode node, Set alreadyInjectedSet, StringBuilder extensions) { + private String resolveDependencies(ShaderDependencyNode node, Set alreadyInjectedSet, StringBuilder extensions, boolean injectDependencies) { if (alreadyInjectedSet.contains(node)) { return "// " + node.getName() + " was already injected at the top.\n"; } else { @@ -160,18 +157,27 @@ public class GLSLLoader implements AssetLoader { if (node.getDependencies().isEmpty()) { return node.getSource(); } else { - StringBuilder sb = new StringBuilder(node.getSource()); - List resolvedShaderNodes = new ArrayList<>(); + if (injectDependencies) { + StringBuilder sb = new StringBuilder(node.getSource()); + List resolvedShaderNodes = new ArrayList<>(); - for (ShaderDependencyNode dependencyNode : node.getDependencies()) { - resolvedShaderNodes.add(resolveDependencies(dependencyNode, alreadyInjectedSet, extensions)); - } - List injectIndices = node.getDependencyInjectIndices(); - for (int i = resolvedShaderNodes.size() - 1; i >= 0; i--) { - // Must insert them backwards .. - sb.insert(injectIndices.get(i), resolvedShaderNodes.get(i)); + for (ShaderDependencyNode dependencyNode : node.getDependencies()) { + resolvedShaderNodes.add(resolveDependencies(dependencyNode, alreadyInjectedSet, extensions, injectDependencies)); + } + + List injectIndices = node.getDependencyInjectIndices(); + for (int i = resolvedShaderNodes.size() - 1; i >= 0; i--) { + // Must insert them backwards .. + sb.insert(injectIndices.get(i), resolvedShaderNodes.get(i)); + } + return sb.toString(); + } else { + for (ShaderDependencyNode dependencyNode : node.getDependencies()) { + resolveDependencies(dependencyNode, alreadyInjectedSet, extensions, injectDependencies); + } + return null; } - return sb.toString(); + } } @@ -181,6 +187,10 @@ public class GLSLLoader implements AssetLoader { // to retrieve the fragment shader, use the content manager this.assetManager = info.getManager(); Reader reader = new InputStreamReader(info.openStream()); + boolean injectDependencies = true; + if (info.getKey() instanceof ShaderAssetKey) { + injectDependencies = ((ShaderAssetKey) info.getKey()).isInjectDependencies(); + } if (info.getKey().getExtension().equals("glsllib")) { // NOTE: Loopback, GLSLLIB is loaded by this loader // and needs data as InputStream @@ -188,10 +198,25 @@ public class GLSLLoader implements AssetLoader { } else { ShaderDependencyNode rootNode = loadNode(reader, "[main]"); StringBuilder extensions = new StringBuilder(); - String code = resolveDependencies(rootNode, new HashSet(), extensions); - extensions.append(code); - dependCache.clear(); - return extensions.toString(); + if (injectDependencies) { + String code = resolveDependencies(rootNode, new HashSet(), extensions, injectDependencies); + extensions.append(code); + dependCache.clear(); + return extensions.toString(); + } else { + Map files = new LinkedHashMap<>(); + HashSet dependencies = new HashSet<>(); + String code = resolveDependencies(rootNode, dependencies, extensions, injectDependencies); + extensions.append(code); + files.put("[main]", extensions.toString()); + + for (ShaderDependencyNode dependency : dependencies) { + files.put(dependency.getName(), dependency.getSource()); + } + + dependCache.clear(); + return files; + } } } } diff --git a/jme3-core/src/plugins/java/com/jme3/shader/plugins/ShaderAssetKey.java b/jme3-core/src/plugins/java/com/jme3/shader/plugins/ShaderAssetKey.java new file mode 100644 index 000000000..e27d92539 --- /dev/null +++ b/jme3-core/src/plugins/java/com/jme3/shader/plugins/ShaderAssetKey.java @@ -0,0 +1,24 @@ +package com.jme3.shader.plugins; + +import com.jme3.asset.AssetKey; + +/** + * Created by Nehon on 28/10/2017. + */ +public class ShaderAssetKey extends AssetKey { + + private boolean injectDependencies = false; + + public ShaderAssetKey(String name, boolean injectDependencies) { + super(name); + this.injectDependencies = injectDependencies; + } + + public boolean isInjectDependencies() { + return injectDependencies; + } + + public void setInjectDependencies(boolean injectDependencies) { + this.injectDependencies = injectDependencies; + } +} From 3328f2a3a7b9f4bde9a9057ceba236acfff3bc9f Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Sat, 4 Nov 2017 16:54:50 -0700 Subject: [PATCH 040/150] fix issue #762 (WireSphere generates parallels with wrong radii) --- .../java/com/jme3/scene/debug/WireSphere.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/debug/WireSphere.java b/jme3-core/src/main/java/com/jme3/scene/debug/WireSphere.java index 04338eac6..cf0244355 100644 --- a/jme3-core/src/main/java/com/jme3/scene/debug/WireSphere.java +++ b/jme3-core/src/main/java/com/jme3/scene/debug/WireSphere.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2012 jMonkeyEngine + * Copyright (c) 2009-2017 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -106,6 +106,9 @@ public class WireSphere extends Mesh { // pb.put(0).put(0).put(radius); // pb.put(0).put(0).put(-radius); + /* + * Update vertex positions for the great circle in the X-Y plane. + */ float rate = FastMath.TWO_PI / (float) samples; float angle = 0; for (int i = 0; i < samples; i++) { @@ -114,7 +117,9 @@ public class WireSphere extends Mesh { pb.put(x).put(y).put(0); angle += rate; } - + /* + * Update vertex positions for the great circle in the Y-Z plane. + */ angle = 0; for (int i = 0; i < samples; i++) { float x = radius * FastMath.cos(angle); @@ -122,23 +127,20 @@ public class WireSphere extends Mesh { pb.put(0).put(x).put(y); angle += rate; } - + /* + * Update vertex positions for 'zSamples' parallel circles. + */ float zRate = (radius * 2) / (float) (zSamples); float zHeight = -radius + (zRate / 2f); - - float rb = 1f / zSamples; float b = rb / 2f; - for (int k = 0; k < zSamples; k++) { angle = 0; - float scale = FastMath.sin(b * FastMath.PI); + float scale = 2f * FastMath.sqrt(b - b * b); for (int i = 0; i < samples; i++) { float x = radius * FastMath.cos(angle); float y = radius * FastMath.sin(angle); - pb.put(x * scale).put(zHeight).put(y * scale); - angle += rate; } zHeight += zRate; From e4b6bf82a23a04a7d7cf3aec2d1c0643d87eb571 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 5 Nov 2017 23:52:22 +0100 Subject: [PATCH 041/150] Better PBR env map generation --- .../jme3/environment/EnvironmentCamera.java | 6 +- .../jme3/environment/LightProbeFactory.java | 56 +- .../PrefilteredEnvMapFaceGenerator.java | 227 +- .../jme3/environment/util/CubeMapWrapper.java | 34 +- .../jme3/environment/util/EnvMapUtils.java | 22 +- .../texture/image/ByteAlignedImageCodec.java | 2 +- .../java/com/jme3/util/MipMapGenerator.java | 22 +- .../main/java/jme3test/light/pbr/RefEnv.java | 21 +- .../main/resources/Scenes/PBR/ref/scene.bin | Bin 0 -> 507936 bytes .../main/resources/Scenes/PBR/ref/scene.gltf | 2466 +++++++++++++++++ 10 files changed, 2718 insertions(+), 138 deletions(-) create mode 100644 jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin create mode 100644 jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.gltf diff --git a/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java b/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java index 1fba5d51d..aff4dd0b9 100644 --- a/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java +++ b/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java @@ -48,6 +48,7 @@ import com.jme3.texture.Texture2D; import com.jme3.texture.TextureCubeMap; import com.jme3.texture.image.ColorSpace; import com.jme3.util.BufferUtils; +import com.jme3.util.MipMapGenerator; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -72,6 +73,8 @@ public class EnvironmentCamera extends BaseAppState { protected Image.Format imageFormat = Image.Format.RGB16F; + public TextureCubeMap debugEnv; + //Axis for cameras static { //PositiveX axis(left, up, direction) @@ -188,10 +191,11 @@ public class EnvironmentCamera extends BaseAppState { buffers[i] = BufferUtils.createByteBuffer(size * size * imageFormat.getBitsPerPixel() / 8); renderManager.getRenderer().readFrameBufferWithFormat(framebuffers[i], buffers[i], imageFormat); images[i] = new Image(imageFormat, size, size, buffers[i], ColorSpace.Linear); + MipMapGenerator.generateMipMaps(images[i]); } final TextureCubeMap map = EnvMapUtils.makeCubeMap(images[0], images[1], images[2], images[3], images[4], images[5], imageFormat); - + debugEnv = map; job.callback.done(map); map.getImage().dispose(); jobs.remove(0); diff --git a/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java b/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java index b41bbd479..b76629a83 100644 --- a/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java +++ b/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java @@ -31,13 +31,14 @@ */ package com.jme3.environment; +import com.jme3.app.Application; import com.jme3.environment.generation.*; -import com.jme3.light.LightProbe; import com.jme3.environment.util.EnvMapUtils; -import com.jme3.app.Application; +import com.jme3.light.LightProbe; import com.jme3.scene.Node; import com.jme3.scene.Spatial; import com.jme3.texture.TextureCubeMap; + import java.util.concurrent.ScheduledThreadPoolExecutor; /** @@ -106,10 +107,11 @@ public class LightProbeFactory { * @param envCam the EnvironmentCamera * @param scene the Scene + * @param genType Fast or HighQuality. Fast may be ok for many types of environment, but you may need high quality when an environment map has very high lighting values. * @param listener the listener of the genration progress. * @return the created LightProbe */ - public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final EnvMapUtils.GenerationType genType, final JobProgressListener listener) { final LightProbe probe = new LightProbe(); probe.setPosition(envCam.getPosition()); probe.setPrefilteredMap(EnvMapUtils.createPrefilteredEnvMap(envCam.getSize(), envCam.getImageFormat())); @@ -117,33 +119,37 @@ public class LightProbeFactory { @Override public void done(TextureCubeMap map) { - generatePbrMaps(map, probe, envCam.getApplication(), listener); + generatePbrMaps(map, probe, envCam.getApplication(), genType, listener); } }); return probe; } - - /** - * Updates a LightProbe with the giver EnvironmentCamera in the given scene. - * + + public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + return makeProbe(envCam, scene, EnvMapUtils.GenerationType.Fast, listener); + } + + /** + * Updates a LightProbe with the given EnvironmentCamera in the given scene. + *

* Note that this is an assynchronous process that will run on multiple threads. * The process is thread safe. * The created lightProbe will only be marked as ready when the rendering process is done. - * - * The JobProgressListener will be notified of the progress of the generation. - * Note that you can also use a {@link JobProgressAdapter}. - * + *

+ * The JobProgressListener will be notified of the progress of the generation. + * Note that you can also use a {@link JobProgressAdapter}. + * + * @param probe the Light probe to update + * @param envCam the EnvironmentCamera + * @param scene the Scene + * @param genType Fast or HighQuality. Fast may be ok for many types of environment, but you may need high quality when an environment map has very high lighting values. + * @param listener the listener of the genration progress. + * @return the created LightProbe * @see LightProbe * @see EnvironmentCamera * @see JobProgressListener - * - * @param probe the Light probe to update - * @param envCam the EnvironmentCamera - * @param scene the Scene - * @param listener the listener of the genration progress. - * @return the created LightProbe */ - public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final EnvMapUtils.GenerationType genType, final JobProgressListener listener) { envCam.setPosition(probe.getPosition()); @@ -159,23 +165,27 @@ public class LightProbeFactory { @Override public void done(TextureCubeMap map) { - generatePbrMaps(map, probe, envCam.getApplication(), listener); + generatePbrMaps(map, probe, envCam.getApplication(), genType, listener); } }); return probe; } + public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + return updateProbe(probe, envCam, scene, EnvMapUtils.GenerationType.Fast, listener); + } + /** * Internally called to generate the maps. * This method will spawn 7 thread (one for the Irradiance spherical harmonics generator, and one for each face of the prefiltered env map). * Those threads will be executed in a ScheduledThreadPoolExecutor that will be shutdown when the genration is done. - * + * * @param envMap the raw env map rendered by the env camera * @param probe the LigthProbe to generate maps for * @param app the Application * @param listener a progress listener. (can be null if no progress reporting is needed) */ - private static void generatePbrMaps(TextureCubeMap envMap, final LightProbe probe, Application app, final JobProgressListener listener) { + private static void generatePbrMaps(TextureCubeMap envMap, final LightProbe probe, Application app, EnvMapUtils.GenerationType genType, final JobProgressListener listener) { IrradianceSphericalHarmonicsGenerator irrShGenerator; PrefilteredEnvMapFaceGenerator[] pemGenerators = new PrefilteredEnvMapFaceGenerator[6]; @@ -189,7 +199,7 @@ public class LightProbeFactory { for (int i = 0; i < pemGenerators.length; i++) { pemGenerators[i] = new PrefilteredEnvMapFaceGenerator(app, i, new JobListener(listener, jobState, probe, i)); - pemGenerators[i].setGenerationParam(EnvMapUtils.duplicateCubeMap(envMap), size, EnvMapUtils.FixSeamsMethod.None, probe.getPrefilteredEnvMap()); + pemGenerators[i].setGenerationParam(EnvMapUtils.duplicateCubeMap(envMap), size, EnvMapUtils.FixSeamsMethod.None, genType, probe.getPrefilteredEnvMap()); jobState.executor.execute(pemGenerators[i]); } } diff --git a/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java b/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java index 8233b11e5..8fe9cc8aa 100644 --- a/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java +++ b/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java @@ -31,27 +31,19 @@ */ package com.jme3.environment.generation; +import com.jme3.app.Application; import com.jme3.environment.util.CubeMapWrapper; import com.jme3.environment.util.EnvMapUtils; -import com.jme3.app.Application; import com.jme3.math.*; - -import static com.jme3.math.FastMath.abs; -import static com.jme3.math.FastMath.clamp; -import static com.jme3.math.FastMath.pow; -import static com.jme3.math.FastMath.sqrt; - import com.jme3.texture.TextureCubeMap; -import static com.jme3.environment.util.EnvMapUtils.getHammersleyPoint; -import static com.jme3.environment.util.EnvMapUtils.getRoughnessFromMip; -import static com.jme3.environment.util.EnvMapUtils.getSampleFromMip; -import static com.jme3.environment.util.EnvMapUtils.getVectorFromCubemapFaceTexCoord; - import java.util.concurrent.Callable; -import java.util.logging.Level; import java.util.logging.Logger; +import static com.jme3.environment.util.EnvMapUtils.*; +import static com.jme3.math.FastMath.abs; +import static com.jme3.math.FastMath.sqrt; + /** * Generates one face of the prefiltered environnement map for PBR. This job can * be lauched from a separate thread. @@ -69,6 +61,7 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { private int targetMapSize; private EnvMapUtils.FixSeamsMethod fixSeamsMethod; + private EnvMapUtils.GenerationType genType; private TextureCubeMap sourceMap; private TextureCubeMap store; private final Application app; @@ -107,11 +100,12 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { * {@link EnvMapUtils.FixSeamsMethod} * @param store The cube map to store the result in. */ - public void setGenerationParam(TextureCubeMap sourceMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, TextureCubeMap store) { + public void setGenerationParam(TextureCubeMap sourceMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, EnvMapUtils.GenerationType genType, TextureCubeMap store) { this.sourceMap = sourceMap; this.targetMapSize = targetMapSize; this.fixSeamsMethod = fixSeamsMethod; this.store = store; + this.genType = genType; init(); } @@ -162,68 +156,105 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { * @return The irradiance cube map for the given coefficients */ private TextureCubeMap generatePrefilteredEnvMap(TextureCubeMap sourceEnvMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, TextureCubeMap store) { - TextureCubeMap pem = store; + try { + TextureCubeMap pem = store; - int nbMipMap = (int) (Math.log(targetMapSize) / Math.log(2) - 1); + int nbMipMap = store.getImage().getMipMapSizes().length; - setEnd(nbMipMap); + setEnd(nbMipMap); + if (!sourceEnvMap.getImage().hasMipmaps() || sourceEnvMap.getImage().getMipMapSizes().length < nbMipMap) { + throw new IllegalArgumentException("The input cube map must have at least " + nbMipMap + "mip maps"); + } - CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); - CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); + CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); + CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); - Vector3f texelVect = new Vector3f(); - Vector3f color = new Vector3f(); - ColorRGBA outColor = new ColorRGBA(); - for (int mipLevel = 0; mipLevel < nbMipMap; mipLevel++) { - float roughness = getRoughnessFromMip(mipLevel, nbMipMap); - int nbSamples = getSampleFromMip(mipLevel, nbMipMap); - int targetMipMapSize = (int) pow(2, nbMipMap + 1 - mipLevel); + Vector3f texelVect = new Vector3f(); + Vector3f color = new Vector3f(); + ColorRGBA outColor = new ColorRGBA(); + int targetMipMapSize = targetMapSize; + for (int mipLevel = 0; mipLevel < nbMipMap; mipLevel++) { + float roughness = getRoughnessFromMip(mipLevel, nbMipMap); + int nbSamples = getSampleFromMip(mipLevel, nbMipMap); - for (int y = 0; y < targetMipMapSize; y++) { - for (int x = 0; x < targetMipMapSize; x++) { - color.set(0, 0, 0); - getVectorFromCubemapFaceTexCoord(x, y, targetMipMapSize, face, texelVect, fixSeamsMethod); - prefilterEnvMapTexel(sourceWrapper, roughness, texelVect, nbSamples, color); + for (int y = 0; y < targetMipMapSize; y++) { + for (int x = 0; x < targetMipMapSize; x++) { + color.set(0, 0, 0); + getVectorFromCubemapFaceTexCoord(x, y, targetMipMapSize, face, texelVect, fixSeamsMethod); + prefilterEnvMapTexel(sourceWrapper, roughness, texelVect, nbSamples, mipLevel, color); - outColor.set(Math.max(color.x, 0.0001f), Math.max(color.y, 0.0001f), Math.max(color.z, 0.0001f), 1); - log.log(Level.FINE, "coords {0},{1}", new Object[]{x, y}); - targetWrapper.setPixel(x, y, face, mipLevel, outColor); + outColor.set(Math.max(color.x, 0.0001f), Math.max(color.y, 0.0001f), Math.max(color.z, 0.0001f), 1); + targetWrapper.setPixel(x, y, face, mipLevel, outColor); + } } + targetMipMapSize /= 2; + progress(); } - progress(); - } - return pem; + return pem; + } catch (Exception e) { + e.printStackTrace(); + throw e; + } } - private Vector3f prefilterEnvMapTexel(CubeMapWrapper envMapReader, float roughness, Vector3f N, int numSamples, Vector3f store) { + private Vector3f prefilterEnvMapTexel(CubeMapWrapper envMapReader, float roughness, Vector3f N, int numSamples, int mipLevel, Vector3f store) { Vector3f prefilteredColor = store; float totalWeight = 0.0f; + int nbRotations = 1; + if (genType == GenerationType.HighQuality) { + nbRotations = numSamples == 1 ? 1 : 18; + } + + float rad = 2f * FastMath.PI / (float) nbRotations; + // offset rotation to avoid sampling pattern + float gi = (float) (FastMath.abs(N.z + N.x) * 256.0); + float offset = rad * (FastMath.cos((gi * 0.5f) % (2f * FastMath.PI)) * 0.5f + 0.5f); + // a = roughness² and a2 = a² float a2 = roughness * roughness; a2 *= a2; + + //Computing tangent frame + Vector3f upVector = Vector3f.UNIT_X; + if (abs(N.z) < 0.999) { + upVector = Vector3f.UNIT_Y; + } + Vector3f tangentX = tmp1.set(upVector).crossLocal(N).normalizeLocal(); + Vector3f tangentY = tmp2.set(N).crossLocal(tangentX); + + // https://placeholderart.wordpress.com/2015/07/28/implementation-notes-runtime-environment-map-filtering-for-image-based-lighting/ + // in local space view == normal == 0,0,1 + Vector3f V = new Vector3f(0, 0, 1); + + Vector3f lWorld = new Vector3f(); for (int i = 0; i < numSamples; i++) { Xi = getHammersleyPoint(i, numSamples, Xi); - H = importanceSampleGGX(Xi, a2, N, H); - + H = importanceSampleGGX(Xi, a2, H); H.normalizeLocal(); - tmp.set(H); - float NoH = N.dot(tmp); - - Vector3f L = tmp.multLocal(NoH * 2).subtractLocal(N); - float NoL = clamp(N.dot(L), 0.0f, 1.0f); - if (NoL > 0) { - envMapReader.getPixel(L, c); - prefilteredColor.setX(prefilteredColor.x + c.r * NoL); - prefilteredColor.setY(prefilteredColor.y + c.g * NoL); - prefilteredColor.setZ(prefilteredColor.z + c.b * NoL); - - totalWeight += NoL; + float VoH = H.z; + Vector3f L = H.multLocal(VoH * 2f).subtractLocal(V); + float NoL = L.z; + + float computedMipLevel = mipLevel; + if (mipLevel != 0) { + computedMipLevel = computeMipLevel(roughness, numSamples, this.targetMapSize, VoH); + } + + toWorld(L, N, tangentX, tangentY, lWorld); + totalWeight += samplePixel(envMapReader, lWorld, NoL, computedMipLevel, prefilteredColor); + + for (int j = 1; j < nbRotations; j++) { + rotateDirection(offset + j * rad, L, lWorld); + L.set(lWorld); + toWorld(L, N, tangentX, tangentY, lWorld); + totalWeight += samplePixel(envMapReader, lWorld, NoL, computedMipLevel, prefilteredColor); } + } if (totalWeight > 0) { prefilteredColor.divideLocal(totalWeight); @@ -232,7 +263,78 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { return prefilteredColor; } - public Vector3f importanceSampleGGX(Vector4f xi, float a2, Vector3f normal, Vector3f store) { + private float samplePixel(CubeMapWrapper envMapReader, Vector3f lWorld, float NoL, float computedMipLevel, Vector3f store) { + + if (NoL <= 0) { + return 0; + } + envMapReader.getPixel(lWorld, computedMipLevel, c); + store.setX(store.x + c.r * NoL); + store.setY(store.y + c.g * NoL); + store.setZ(store.z + c.b * NoL); + + return NoL; + } + + private void toWorld(Vector3f L, Vector3f N, Vector3f tangentX, Vector3f tangentY, Vector3f store) { + store.set(tangentX).multLocal(L.x); + tmp.set(tangentY).multLocal(L.y); + store.addLocal(tmp); + tmp.set(N).multLocal(L.z); + store.addLocal(tmp); + } + + private float computeMipLevel(float roughness, int numSamples, float size, float voH) { + // H[2] is NoH in local space + // adds 1.e-5 to avoid ggx / 0.0 + float NoH = voH + 1E-5f; + + // Probability Distribution Function + float Pdf = ggx(NoH, roughness) * NoH / (4.0f * voH); + + // Solid angle represented by this sample + float omegaS = 1.0f / (numSamples * Pdf); + + // Solid angle covered by 1 pixel with 6 faces that are EnvMapSize X EnvMapSize + float omegaP = 4.0f * FastMath.PI / (6.0f * size * size); + + // Original paper suggest biasing the mip to improve the results + float mipBias = 1.0f; // I tested that the result is better with bias 1 + double maxLod = Math.log(size) / Math.log(2f); + double log2 = Math.log(omegaS / omegaP) / Math.log(2); + return Math.min(Math.max(0.5f * (float) log2 + mipBias, 0.0f), (float) maxLod); + } + + + private float ggx(float NoH, float alpha) { + // use GGX / Trowbridge-Reitz, same as Disney and Unreal 4 + // cf http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf p3 + float tmp = alpha / (NoH * NoH * (alpha * alpha - 1.0f) + 1.0f); + return tmp * tmp * (1f / FastMath.PI); + } + + private Vector3f rotateDirection(float angle, Vector3f l, Vector3f store) { + float s, c, t; + + s = FastMath.sin(angle); + c = FastMath.cos(angle); + t = 1.f - c; + + store.x = l.x * c + l.y * s; + store.y = -l.x * s + l.y * c; + store.z = l.z * (t + c); + return store; + } + + /** + * Computes GGX half vector in local space + * + * @param xi + * @param a2 + * @param store + * @return + */ + public Vector3f importanceSampleGGX(Vector4f xi, float a2, Vector3f store) { if (store == null) { store = new Vector3f(); } @@ -243,22 +345,9 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { float sinThetaCosPhi = sinTheta * xi.z;//xi.z is cos(phi) float sinThetaSinPhi = sinTheta * xi.w;//xi.w is sin(phi) - Vector3f upVector = Vector3f.UNIT_X; - - if (abs(normal.z) < 0.999) { - upVector = Vector3f.UNIT_Y; - } - - Vector3f tangentX = tmp1.set(upVector).crossLocal(normal).normalizeLocal(); - Vector3f tangentY = tmp2.set(normal).crossLocal(tangentX); - - // Tangent to world space - tangentX.multLocal(sinThetaCosPhi); - tangentY.multLocal(sinThetaSinPhi); - tmp3.set(normal).multLocal(cosTheta); - - // Tangent to world space - store.set(tangentX).addLocal(tangentY).addLocal(tmp3); + store.x = sinThetaCosPhi; + store.y = sinThetaSinPhi; + store.z = cosTheta; return store; } diff --git a/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java b/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java index cdf66a6d1..7226f9610 100644 --- a/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java +++ b/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java @@ -31,17 +31,15 @@ */ package com.jme3.environment.util; -import com.jme3.environment.util.EnvMapUtils; -import com.jme3.math.ColorRGBA; -import static com.jme3.math.FastMath.pow; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; +import com.jme3.math.*; import com.jme3.texture.Image; import com.jme3.texture.TextureCubeMap; import com.jme3.texture.image.DefaultImageRaster; import com.jme3.texture.image.MipMapImageRaster; import com.jme3.util.BufferUtils; +import static com.jme3.math.FastMath.pow; + /** * Wraps a Cube map and allows to read from or write pixels into it. * @@ -57,6 +55,8 @@ public class CubeMapWrapper { private final Vector2f uvs = new Vector2f(); private final Image image; + private final ColorRGBA tmpColor = new ColorRGBA(); + /** * Creates a CubeMapWrapper for the given cube map * Note that the cube map must be initialized, and the mipmaps sizes should @@ -105,7 +105,7 @@ public class CubeMapWrapper { * @param store the color in which to store the pixel color read. * @return the color of the pixel read. */ - public ColorRGBA getPixel(Vector3f vector, int mipLevel, ColorRGBA store) { + public ColorRGBA getPixel(Vector3f vector, float mipLevel, ColorRGBA store) { if (mipMapRaster == null) { throw new IllegalArgumentException("This cube map has no mip maps"); } @@ -113,10 +113,26 @@ public class CubeMapWrapper { store = new ColorRGBA(); } - int face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[mipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); + int lowerMipLevel = (int) mipLevel; + int higherMipLevel = (int) FastMath.ceil(mipLevel); + float ratio = mipLevel - lowerMipLevel; + + int face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[lowerMipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); mipMapRaster.setSlice(face); - mipMapRaster.setMipLevel(mipLevel); - return mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, store); + mipMapRaster.setMipLevel(lowerMipLevel); + mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, store); + + face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[higherMipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); + mipMapRaster.setSlice(face); + mipMapRaster.setMipLevel(higherMipLevel); + mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, tmpColor); + + store.r = FastMath.interpolateLinear(ratio, store.r, tmpColor.r); + store.g = FastMath.interpolateLinear(ratio, store.g, tmpColor.g); + store.b = FastMath.interpolateLinear(ratio, store.b, tmpColor.b); + store.a = FastMath.interpolateLinear(ratio, store.a, tmpColor.a); + + return store; } /** diff --git a/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java b/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java index 4598ec0d6..91b65655e 100644 --- a/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java +++ b/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java @@ -37,18 +37,15 @@ import com.jme3.math.*; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.shape.Quad; -import com.jme3.texture.Image; -import com.jme3.texture.Texture; -import com.jme3.texture.Texture2D; -import com.jme3.texture.TextureCubeMap; +import com.jme3.texture.*; import com.jme3.texture.image.ColorSpace; import com.jme3.ui.Picture; import com.jme3.util.BufferUtils; +import com.jme3.util.TempVars; + import java.nio.ByteBuffer; -import java.util.ArrayList; -import static com.jme3.math.FastMath.*; -import com.jme3.util.TempVars; +import static com.jme3.math.FastMath.*; /** * @@ -88,6 +85,11 @@ public class EnvMapUtils { None } + public static enum GenerationType { + Fast, + HighQuality + } + /** * Creates a cube map from 6 images * @@ -117,6 +119,8 @@ public class EnvMapUtils { cubeImage.addData(backImg.getData(0)); cubeImage.addData(frontImg.getData(0)); + cubeImage.setMipMapSizes(rightImg.getMipMapSizes()); + TextureCubeMap cubeMap = new TextureCubeMap(cubeImage); cubeMap.setAnisotropicFilter(0); cubeMap.setMagFilter(Texture.MagFilter.Bilinear); @@ -148,6 +152,8 @@ public class EnvMapUtils { cubeImage.addData(d.duplicate()); } + cubeImage.setMipMapSizes(srcImg.getMipMapSizes()); + TextureCubeMap cubeMap = new TextureCubeMap(cubeImage); cubeMap.setAnisotropicFilter(sourceMap.getAnisotropicFilter()); cubeMap.setMagFilter(sourceMap.getMagFilter()); @@ -730,7 +736,7 @@ public class EnvMapUtils { pem.setMagFilter(Texture.MagFilter.Bilinear); pem.setMinFilter(Texture.MinFilter.Trilinear); pem.getImage().setColorSpace(ColorSpace.Linear); - int nbMipMap = (int) (Math.log(size) / Math.log(2) - 1); + int nbMipMap = Math.min(6, (int) (Math.log(size) / Math.log(2))); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.initMipMaps(nbMipMap); return pem; diff --git a/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java b/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java index ac1989d5c..d00ab7e22 100644 --- a/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java +++ b/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java @@ -110,7 +110,7 @@ class ByteAlignedImageCodec extends ImageCodec { } public void readComponents(ByteBuffer buf, int x, int y, int width, int offset, int[] components, byte[] tmp) { - readPixelRaw(buf, (x + y * width + offset) * bpp + offset, bpp, tmp); + readPixelRaw(buf, (x + y * width ) * bpp + offset, bpp, tmp); components[0] = readComponent(tmp, ap, az); components[1] = readComponent(tmp, rp, rz); components[2] = readComponent(tmp, gp, gz); diff --git a/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java b/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java index 3ac6a7ecd..7ea5b23f7 100644 --- a/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java +++ b/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java @@ -34,8 +34,8 @@ package com.jme3.util; import com.jme3.math.ColorRGBA; import com.jme3.math.FastMath; import com.jme3.texture.Image; -import com.jme3.texture.Image.Format; import com.jme3.texture.image.ImageRaster; + import java.nio.ByteBuffer; import java.util.ArrayList; @@ -58,8 +58,8 @@ public class MipMapGenerator { float xRatio = ((float)(input.getWidth() - 1)) / output.getWidth(); float yRatio = ((float)(input.getHeight() - 1)) / output.getHeight(); - - ColorRGBA outputColor = new ColorRGBA(); + + ColorRGBA outputColor = new ColorRGBA(0, 0, 0, 0); ColorRGBA bottomLeft = new ColorRGBA(); ColorRGBA bottomRight = new ColorRGBA(); ColorRGBA topLeft = new ColorRGBA(); @@ -72,29 +72,21 @@ public class MipMapGenerator { int x2 = (int)x2f; int y2 = (int)y2f; - - float xDiff = x2f - x2; - float yDiff = y2f - y2; - + input.getPixel(x2, y2, bottomLeft); input.getPixel(x2 + 1, y2, bottomRight); input.getPixel(x2, y2 + 1, topLeft); input.getPixel(x2 + 1, y2 + 1, topRight); - - bottomLeft.multLocal( (1f - xDiff) * (1f - yDiff) ); - bottomRight.multLocal( (xDiff) * (1f - yDiff) ); - topLeft.multLocal( (1f - xDiff) * (yDiff) ); - topRight.multLocal( (xDiff) * (yDiff) ); - + outputColor.set(bottomLeft).addLocal(bottomRight) .addLocal(topLeft).addLocal(topRight); - + outputColor.multLocal(1f / 4f); output.setPixel(x, y, outputColor); } } return outputImage; } - + public static Image resizeToPowerOf2(Image original){ int potWidth = FastMath.nearestPowerOfTwo(original.getWidth()); int potHeight = FastMath.nearestPowerOfTwo(original.getHeight()); diff --git a/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java b/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java index 17f3efa55..a88e12bb0 100644 --- a/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java +++ b/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java @@ -11,12 +11,8 @@ import com.jme3.input.controls.ActionListener; import com.jme3.input.controls.KeyTrigger; import com.jme3.light.LightProbe; import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector3f; -import com.jme3.scene.Geometry; -import com.jme3.scene.Node; -import com.jme3.scene.Spatial; +import com.jme3.math.*; +import com.jme3.scene.*; import com.jme3.ui.Picture; import com.jme3.util.SkyFactory; @@ -39,11 +35,13 @@ public class RefEnv extends SimpleApplication { @Override public void simpleInitApp() { - cam.setLocation(new Vector3f(-17.713732f, 1.8661976f, 17.156784f)); - cam.setRotation(new Quaternion(0.021403445f, 0.9428821f, -0.06178002f, 0.32664734f)); + cam.setLocation(new Vector3f(-17.95047f, 4.917353f, -17.970531f)); + cam.setRotation(new Quaternion(0.11724457f, 0.29356146f, -0.03630452f, 0.94802815f)); +// cam.setLocation(new Vector3f(14.790441f, 7.164179f, 19.720007f)); +// cam.setRotation(new Quaternion(-0.038261678f, 0.9578362f, -0.15233073f, -0.24058504f)); flyCam.setDragToRotate(true); flyCam.setMoveSpeed(5); - Spatial sc = assetManager.loadModel("Models/gltf/ref/scene.gltf"); + Spatial sc = assetManager.loadModel("Scenes/PBR/ref/scene.gltf"); rootNode.attachChild(sc); Spatial sky = SkyFactory.createSky(assetManager, "Textures/Sky/Path.hdr", SkyFactory.EnvMapType.EquirectMap); rootNode.attachChild(sky); @@ -68,7 +66,7 @@ public class RefEnv extends SimpleApplication { public void onAction(String name, boolean isPressed, float tpf) { if (name.equals("tex") && isPressed) { if (tex == null) { - return; + tex = EnvMapUtils.getCubeMapCrossDebugViewWithMipMaps(stateManager.getState(EnvironmentCamera.class).debugEnv, assetManager); } if (tex.getParent() == null) { guiNode.attachChild(tex); @@ -120,13 +118,12 @@ public class RefEnv extends SimpleApplication { frame++; if (frame == 2) { - final LightProbe probe = LightProbeFactory.makeProbe(stateManager.getState(EnvironmentCamera.class), rootNode, new JobProgressAdapter() { + final LightProbe probe = LightProbeFactory.makeProbe(stateManager.getState(EnvironmentCamera.class), rootNode, EnvMapUtils.GenerationType.Fast, new JobProgressAdapter() { @Override public void done(LightProbe result) { System.err.println("Done rendering env maps"); tex = EnvMapUtils.getCubeMapCrossDebugViewWithMipMaps(result.getPrefilteredEnvMap(), assetManager); - // guiNode.attachChild(tex); rootNode.getChild(0).setCullHint(Spatial.CullHint.Dynamic); } }); diff --git a/jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin b/jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb6b6831cf0c44983aef752c7022b9365219a6dd GIT binary patch literal 507936 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¼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 Date: Tue, 7 Nov 2017 17:17:22 +0300 Subject: [PATCH 042/150] fixed the problem with saving/loading light probes. --- jme3-core/src/main/java/com/jme3/light/LightProbe.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/light/LightProbe.java b/jme3-core/src/main/java/com/jme3/light/LightProbe.java index 1cc713445..2b962fc97 100644 --- a/jme3-core/src/main/java/com/jme3/light/LightProbe.java +++ b/jme3-core/src/main/java/com/jme3/light/LightProbe.java @@ -127,15 +127,13 @@ public class LightProbe extends Light implements Savable { public void read(JmeImporter im) throws IOException { super.read(im); InputCapsule ic = im.getCapsule(this); - - + prefilteredEnvMap = (TextureCubeMap) ic.readSavable("prefilteredEnvMap", null); - position = (Vector3f) ic.readSavable("position", this); + position = (Vector3f) ic.readSavable("position", null); bounds = (BoundingVolume) ic.readSavable("bounds", new BoundingSphere(1.0f, Vector3f.ZERO)); nbMipMaps = ic.readInt("nbMipMaps", 0); ready = ic.readBoolean("ready", false); - Savable[] coeffs = ic.readSavableArray("shCoeffs", null); if (coeffs == null) { ready = false; @@ -145,7 +143,6 @@ public class LightProbe extends Light implements Savable { for (int i = 0; i < coeffs.length; i++) { shCoeffs[i] = (Vector3f) coeffs[i]; } - } } From 9578b0410eedb0c324d9a8570b5be1c5d38f6ea4 Mon Sep 17 00:00:00 2001 From: javasabr Date: Tue, 31 Oct 2017 10:57:39 +0300 Subject: [PATCH 043/150] extended some things from shader node system. --- .../java/com/jme3/material/TechniqueDef.java | 21 ++--- .../jme3/shader/Glsl100ShaderGenerator.java | 62 +++++++++++---- .../com/jme3/shader/ShaderNodeVariable.java | 31 ++++++-- .../plugins/ShaderNodeLoaderDelegate.java | 76 +++++++++++++------ .../materialdef/J3mdTechniqueDefWriter.java | 9 +-- 5 files changed, 136 insertions(+), 63 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/material/TechniqueDef.java b/jme3-core/src/main/java/com/jme3/material/TechniqueDef.java index 882d2b63a..1b0111522 100644 --- a/jme3-core/src/main/java/com/jme3/material/TechniqueDef.java +++ b/jme3-core/src/main/java/com/jme3/material/TechniqueDef.java @@ -188,6 +188,7 @@ public class TechniqueDef implements Savable, Cloneable { defineTypes = new ArrayList(); paramToDefineId = new HashMap(); definesToShaderMap = new HashMap(); + worldBinds = new ArrayList<>(); } /** @@ -513,10 +514,8 @@ public class TechniqueDef implements Savable, Cloneable { } } - if (getWorldBindings() != null) { - for (UniformBinding binding : getWorldBindings()) { - shader.addUniformBinding(binding); - } + for (final UniformBinding binding : getWorldBindings()) { + shader.addUniformBinding(binding); } return shader; @@ -625,14 +624,10 @@ public class TechniqueDef implements Savable, Cloneable { * to the list of world parameters, false otherwise. */ public boolean addWorldParam(String name) { - if (worldBinds == null){ - worldBinds = new ArrayList(); - } - try { - worldBinds.add( UniformBinding.valueOf(name) ); + worldBinds.add(UniformBinding.valueOf(name)); return true; - } catch (IllegalArgumentException ex){ + } catch (IllegalArgumentException ex) { return false; } } @@ -821,10 +816,8 @@ public class TechniqueDef implements Savable, Cloneable { e.printStackTrace(); } - if (worldBinds != null) { - clone.worldBinds = new ArrayList<>(worldBinds.size()); - clone.worldBinds.addAll(worldBinds); - } + clone.worldBinds = new ArrayList<>(worldBinds.size()); + clone.worldBinds.addAll(worldBinds); return clone; } diff --git a/jme3-core/src/main/java/com/jme3/shader/Glsl100ShaderGenerator.java b/jme3-core/src/main/java/com/jme3/shader/Glsl100ShaderGenerator.java index 602f47f82..a4938c0bb 100644 --- a/jme3-core/src/main/java/com/jme3/shader/Glsl100ShaderGenerator.java +++ b/jme3-core/src/main/java/com/jme3/shader/Glsl100ShaderGenerator.java @@ -50,7 +50,7 @@ public class Glsl100ShaderGenerator extends ShaderGenerator { * the indentation characters 1à tabulation characters */ private final static String INDENTCHAR = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; - private ShaderNodeVariable inPosTmp; + protected ShaderNodeVariable inPosTmp; /** * creates a Glsl100ShaderGenerator @@ -110,7 +110,7 @@ public class Glsl100ShaderGenerator extends ShaderGenerator { protected void generateVaryings(StringBuilder source, ShaderGenerationInfo info, ShaderType type) { source.append("\n"); for (ShaderNodeVariable var : info.getVaryings()) { - declareVarying(source, var, type == ShaderType.Vertex ? false : true); + declareVarying(source, var, type != ShaderType.Vertex); } } @@ -141,7 +141,7 @@ public class Glsl100ShaderGenerator extends ShaderGenerator { @Override protected void generateStartOfMainSection(StringBuilder source, ShaderGenerationInfo info, ShaderType type) { source.append("\n"); - source.append("void main(){\n"); + source.append("void main() {\n"); indent(); appendIndent(source); if (type == ShaderType.Vertex) { @@ -237,27 +237,59 @@ public class Glsl100ShaderGenerator extends ShaderGenerator { comment(source, shaderNode, "Begin"); startCondition(shaderNode.getCondition(), source); - List declaredInputs = new ArrayList(); + final List declaredInputs = new ArrayList<>(); + for (VariableMapping mapping : shaderNode.getInputMapping()) { + final ShaderNodeVariable rightVariable = mapping.getRightVariable(); + final ShaderNodeVariable leftVariable = mapping.getLeftVariable(); + //Variables fed with a sampler matparam or world param are replaced by the matparam itself //It avoids issue with samplers that have to be uniforms. - if (isWorldOrMaterialParam(mapping.getRightVariable()) && mapping.getRightVariable().getType().startsWith("sampler")) { - nodeSource = replace(nodeSource, mapping.getLeftVariable(), mapping.getRightVariable().getPrefix() + mapping.getRightVariable().getName()); + if (isWorldOrMaterialParam(rightVariable) && rightVariable.getType().startsWith("sampler")) { + nodeSource = replace(nodeSource, leftVariable, rightVariable.getPrefix() + rightVariable.getName()); } else { - if (mapping.getLeftVariable().getType().startsWith("sampler")) { + + if (leftVariable.getType().startsWith("sampler")) { throw new IllegalArgumentException("a Sampler must be a uniform"); } + map(mapping, source); - String newName = shaderNode.getName() + "_" + mapping.getLeftVariable().getName(); - if (!declaredInputs.contains(newName)) { - nodeSource = replace(nodeSource, mapping.getLeftVariable(), newName); - declaredInputs.add(newName); - } } + + String newName = shaderNode.getName() + "_" + leftVariable.getName(); + if (!declaredInputs.contains(newName)) { + nodeSource = replace(nodeSource, leftVariable, newName); + declaredInputs.add(newName); + } + } + + final ShaderNodeDefinition definition = shaderNode.getDefinition(); + + for (final ShaderNodeVariable var : definition.getInputs()) { + + if (var.getDefaultValue() == null) { + continue; + } + + final String fullName = shaderNode.getName() + "_" + var.getName(); + + if (declaredInputs.contains(fullName)) { + continue; + } + + final ShaderNodeVariable variable = new ShaderNodeVariable(var.getType(), shaderNode.getName(), + var.getName(), var.getMultiplicity()); + + if (!isVarying(info, variable)) { + declareVariable(source, variable, var.getDefaultValue(), true, null); + } + + nodeSource = replaceVariableName(nodeSource, variable); + declaredInputs.add(fullName); } - - for (ShaderNodeVariable var : shaderNode.getDefinition().getOutputs()) { + + for (ShaderNodeVariable var : definition.getOutputs()) { ShaderNodeVariable v = new ShaderNodeVariable(var.getType(), shaderNode.getName(), var.getName(), var.getMultiplicity()); if (!declaredInputs.contains(shaderNode.getName() + "_" + var.getName())) { if (!isVarying(info, v)) { @@ -603,7 +635,7 @@ public class Glsl100ShaderGenerator extends ShaderGenerator { * makes sure inPosition attribute is of type vec3 or vec4 * @param var the inPosition attribute */ - private void fixInPositionType(ShaderNodeVariable var) { + protected void fixInPositionType(ShaderNodeVariable var) { if(!var.getType().equals("vec3") || !var.getType().equals("vec4")){ var.setType("vec3"); } diff --git a/jme3-core/src/main/java/com/jme3/shader/ShaderNodeVariable.java b/jme3-core/src/main/java/com/jme3/shader/ShaderNodeVariable.java index a1363ead1..6b4240d02 100644 --- a/jme3-core/src/main/java/com/jme3/shader/ShaderNodeVariable.java +++ b/jme3-core/src/main/java/com/jme3/shader/ShaderNodeVariable.java @@ -50,8 +50,10 @@ public class ShaderNodeVariable implements Savable, Cloneable { private String type; private String nameSpace; private String condition; - private boolean shaderOutput = false; private String multiplicity; + private String defaultValue; + + private boolean shaderOutput = false; /** * creates a ShaderNodeVariable @@ -180,6 +182,24 @@ public class ShaderNodeVariable implements Savable, Cloneable { this.nameSpace = nameSpace; } + /** + * Gets the default value of this variable. + * + * @return the default value of this variable. + */ + public String getDefaultValue() { + return defaultValue; + } + + /** + * Sets the default value of this variable. + * + * @param defaultValue the default value of this variable. + */ + public void setDefaultValue(final String defaultValue) { + this.defaultValue = defaultValue; + } + @Override public int hashCode() { int hash = 7; @@ -230,7 +250,7 @@ public class ShaderNodeVariable implements Savable, Cloneable { */ @Override public void write(JmeExporter ex) throws IOException { - OutputCapsule oc = (OutputCapsule) ex.getCapsule(this); + OutputCapsule oc = ex.getCapsule(this); oc.write(name, "name", ""); oc.write(type, "type", ""); oc.write(prefix, "prefix", ""); @@ -238,7 +258,7 @@ public class ShaderNodeVariable implements Savable, Cloneable { oc.write(condition, "condition", null); oc.write(shaderOutput, "shaderOutput", false); oc.write(multiplicity, "multiplicity", null); - + oc.write(defaultValue, "defaultValue", null); } /** @@ -249,14 +269,15 @@ public class ShaderNodeVariable implements Savable, Cloneable { */ @Override public void read(JmeImporter im) throws IOException { - InputCapsule ic = (InputCapsule) im.getCapsule(this); + InputCapsule ic = im.getCapsule(this); name = ic.readString("name", ""); type = ic.readString("type", ""); prefix = ic.readString("pefix", ""); nameSpace = ic.readString("nameSpace", ""); - condition = ic.readString("condition", null); + condition = ic.readString("condition", null); shaderOutput = ic.readBoolean("shaderOutput", false); multiplicity = ic.readString("multiplicity", null); + defaultValue = ic.readString("defaultValue", null); } /** diff --git a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java index 13f035426..cb75687b0 100644 --- a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java +++ b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java @@ -217,11 +217,15 @@ public class ShaderNodeLoaderDelegate { * @throws IOException */ protected ShaderNodeVariable readVariable(Statement statement) throws IOException { + String line = statement.getLine().trim().replaceAll("\\s*\\[", "["); String[] splitVar = line.split("\\s"); - if (splitVar.length != 2) { - throw new MatParseException("2 arguments", splitVar.length + "", statement); + + if (splitVar.length > 3) { + throw new MatParseException("More than 3 arguments", splitVar.length + "", statement); } + + String defaultValue = splitVar.length > 2? splitVar[2] : null; String varName = splitVar[1]; String varType = splitVar[0]; String multiplicity = null; @@ -230,13 +234,19 @@ public class ShaderNodeLoaderDelegate { //we have an array String[] arr = splitVar[1].split("\\["); varName = arr[0].trim(); - multiplicity = arr[1].replaceAll("\\]", "").trim(); + multiplicity = arr[1].replaceAll("\\]", "").trim(); } + if (varNames.contains(varName + ";")) { throw new MatParseException("Duplicate variable name " + varName, statement); } + varNames += varName + ";"; - return new ShaderNodeVariable(varType, "", varName, multiplicity); + + final ShaderNodeVariable variable = new ShaderNodeVariable(varType, "", varName, multiplicity); + variable.setDefaultValue(defaultValue); + + return variable; } /** @@ -262,7 +272,7 @@ public class ShaderNodeLoaderDelegate { String[] split = statement.getLine().split("[ \\{]"); if (line.startsWith("Definition")) { ShaderNodeDefinition def = findDefinition(statement); - shaderNode.setDefinition(def); + shaderNode.setDefinition(def); if(def.isNoOutput()){ techniqueDef.getShaderGenerationInfo().getUnusedNodes().remove(shaderNode.getName()); } @@ -276,12 +286,12 @@ public class ShaderNodeLoaderDelegate { techniqueDef.getShaderGenerationInfo().getUnusedNodes().remove(mapping.getRightVariable().getNameSpace()); shaderNode.getInputMapping().add(mapping); } - } else if (line.startsWith("OutputMapping")) { + } else if (line.startsWith("OutputMapping")) { for (Statement statement1 : statement.getContents()) { VariableMapping mapping = readOutputMapping(statement1); techniqueDef.getShaderGenerationInfo().getUnusedNodes().remove(shaderNode.getName()); shaderNode.getOutputMapping().add(mapping); - } + } } else { throw new MatParseException("ShaderNodeDefinition", split[0], statement); } @@ -298,7 +308,7 @@ public class ShaderNodeLoaderDelegate { * Format : .[.] = * .[.][:Condition] * - * + * * @param statement the statement to read * @return the read mapping */ @@ -660,19 +670,13 @@ public class ShaderNodeLoaderDelegate { throw new MatParseException("Could not find a Material Parameter named " + right.getName(), statement1); } if (shaderNode.getDefinition().getType() == Shader.ShaderType.Vertex) { - if (updateRightFromUniforms(param, mapping, vertexDeclaredUniforms, statement1)) { + if (updateRightFromUniforms(param, mapping, vertexDeclaredUniforms, statement1)) { + updateMaterialTextureType(statement1, mapping, left, param); storeVertexUniform(mapping.getRightVariable()); } } else { if (updateRightFromUniforms(param, mapping, fragmentDeclaredUniforms, statement1)) { - if (mapping.getRightVariable().getType().contains("|")) { - String type = fixSamplerType(left.getType(), mapping.getRightVariable().getType()); - if (type != null) { - mapping.getRightVariable().setType(type); - } else { - throw new MatParseException(param.getVarType().toString() + " can only be matched to one of " + param.getVarType().getGlslType().replaceAll("\\|", ",") + " found " + left.getType(), statement1); - } - } + updateMaterialTextureType(statement1, mapping, left, param); storeFragmentUniform(mapping.getRightVariable()); } } @@ -683,11 +687,11 @@ public class ShaderNodeLoaderDelegate { throw new MatParseException("Could not find a World Parameter named " + right.getName(), statement1); } if (shaderNode.getDefinition().getType() == Shader.ShaderType.Vertex) { - if (updateRightFromUniforms(worldParam, mapping, vertexDeclaredUniforms)) { + if (updateRightFromUniforms(worldParam, mapping, vertexDeclaredUniforms)) { storeVertexUniform(mapping.getRightVariable()); } } else { - if (updateRightFromUniforms(worldParam, mapping, fragmentDeclaredUniforms)) { + if (updateRightFromUniforms(worldParam, mapping, fragmentDeclaredUniforms)) { storeFragmentUniform(mapping.getRightVariable()); } } @@ -704,7 +708,7 @@ public class ShaderNodeLoaderDelegate { right.setNameSpace(node.getName()); right.setType(var.getType()); right.setMultiplicity(var.getMultiplicity()); - mapping.setRightVariable(right); + mapping.setRightVariable(right); storeVaryings(node, mapping.getRightVariable()); } @@ -714,6 +718,32 @@ public class ShaderNodeLoaderDelegate { return mapping; } + /** + * Updated the material texture type of the variable mapping. + * + * @param statement the statement. + * @param mapping the variable mapping. + * @param left the left variable. + * @param param the material parameter. + * @throws MatParseException + */ + private void updateMaterialTextureType(final Statement statement, final VariableMapping mapping, + final ShaderNodeVariable left, final MatParam param) throws MatParseException { + + if (!mapping.getRightVariable().getType().contains("|")) { + return; + } + + final String type = fixSamplerType(left.getType(), mapping.getRightVariable().getType()); + + if (type != null) { + mapping.getRightVariable().setType(type); + } else { + throw new MatParseException(param.getVarType().toString() + " can only be matched to one of " + + param.getVarType().getGlslType().replaceAll("\\|", ",") + " found " + left.getType(), statement); + } + } + /** * reads an output mapping * @@ -924,12 +954,12 @@ public class ShaderNodeLoaderDelegate { dv.addNode(shaderNode); //if a variable is declared with the same name as an input and an output and is a varying, set it as a shader output so it's declared as a varying only once. for (VariableMapping variableMapping : node.getInputMapping()) { - if (variableMapping.getLeftVariable().getName().equals(variable.getName())) { - variableMapping.getLeftVariable().setShaderOutput(true); + final ShaderNodeVariable leftVariable = variableMapping.getLeftVariable(); + if (leftVariable.getName().equals(variable.getName())) { + leftVariable.setShaderOutput(true); } } } - } /** diff --git a/jme3-plugins/src/main/java/com/jme3/material/plugin/export/materialdef/J3mdTechniqueDefWriter.java b/jme3-plugins/src/main/java/com/jme3/material/plugin/export/materialdef/J3mdTechniqueDefWriter.java index 23e30953a..e2e3098cc 100644 --- a/jme3-plugins/src/main/java/com/jme3/material/plugin/export/materialdef/J3mdTechniqueDefWriter.java +++ b/jme3-plugins/src/main/java/com/jme3/material/plugin/export/materialdef/J3mdTechniqueDefWriter.java @@ -168,13 +168,13 @@ public class J3mdTechniqueDefWriter { out.write(shaderNode.getDefinition().getPath()); out.write("\n"); - out.write(" InputMappings{\n"); + out.write(" InputMappings {\n"); for (VariableMapping mapping : shaderNode.getInputMapping()) { writeVariableMapping(out, shaderNode, mapping, matParams); } out.write(" }\n"); - out.write(" OutputMappings{\n"); + out.write(" OutputMappings {\n"); for (VariableMapping mapping : shaderNode.getOutputMapping()) { writeVariableMapping(out, shaderNode, mapping, matParams); } @@ -288,7 +288,4 @@ public class J3mdTechniqueDefWriter { } return null; } - -} - - +} \ No newline at end of file From 00ce009925a9b44a4e4fbfacc762514db618f3d6 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 22 Nov 2017 22:46:31 -0800 Subject: [PATCH 044/150] fix for issue #772: populate bullet debug mesh using unscaled shape --- .../java/com/jme3/bullet/util/DebugShapeFactory.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jme3-bullet/src/main/java/com/jme3/bullet/util/DebugShapeFactory.java b/jme3-bullet/src/main/java/com/jme3/bullet/util/DebugShapeFactory.java index c731035ca..939be4083 100644 --- a/jme3-bullet/src/main/java/com/jme3/bullet/util/DebugShapeFactory.java +++ b/jme3-bullet/src/main/java/com/jme3/bullet/util/DebugShapeFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2012 jMonkeyEngine + * Copyright (c) 2009-2017 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,6 +35,7 @@ import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.collision.shapes.CompoundCollisionShape; import com.jme3.bullet.collision.shapes.infos.ChildCollisionShape; import com.jme3.math.Matrix3f; +import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; import com.jme3.scene.Mesh; import com.jme3.scene.Node; @@ -111,9 +112,16 @@ public class DebugShapeFactory { public static Mesh getDebugMesh(CollisionShape shape) { Mesh mesh = new Mesh(); - mesh = new Mesh(); DebugMeshCallback callback = new DebugMeshCallback(); + /* + * Populate the mesh based on an unscaled shape; + * the shape's scale will be applied later, to the geometry. + */ + Vector3f savedScale = shape.getScale().clone(); + shape.setScale(Vector3f.UNIT_XYZ); getVertices(shape.getObjectId(), callback); + shape.setScale(savedScale); + mesh.setBuffer(Type.Position, 3, callback.getVertices()); mesh.getFloatBuffer(Type.Position).clear(); return mesh; From 87cfae6d7b8186fd679447001c115b9041e85ea1 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sat, 25 Nov 2017 15:00:58 +0100 Subject: [PATCH 045/150] Fixed InstancedGeometry shadow mode --- .../com/jme3/scene/instancing/InstancedNode.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java b/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java index 42f8a7615..506f0f5de 100644 --- a/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java @@ -31,21 +31,18 @@ */ package com.jme3.scene.instancing; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.material.MatParam; import com.jme3.material.Material; import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; -import com.jme3.scene.Geometry; -import com.jme3.scene.GeometryGroupNode; -import com.jme3.scene.Mesh; -import com.jme3.scene.Node; -import com.jme3.scene.Spatial; -import com.jme3.scene.UserData; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.*; import com.jme3.scene.control.Control; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.material.MatParam; import com.jme3.util.clone.Cloner; import com.jme3.util.clone.JmeCloneable; + import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -217,6 +214,7 @@ public class InstancedNode extends GeometryGroupNode { ig.setMesh(lookUp.mesh); ig.setUserData(UserData.JME_PHYSICSIGNORE, true); ig.setCullHint(CullHint.Never); + ig.setShadowMode(RenderQueue.ShadowMode.Inherit); instancesMap.put(lookUp.clone(), ig); attachChild(ig); } From 2120c9d3349ac853794456f2dc30de049fb4717e Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 26 Nov 2017 10:35:33 +0100 Subject: [PATCH 046/150] Attempt to fix a direct memory deallocation crash on android --- .../com/jme3/util/ReflectionAllocator.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java b/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java index 6ddc5fb87..7bb8a6040 100644 --- a/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java +++ b/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java @@ -149,10 +149,21 @@ public final class ReflectionAllocator implements BufferAllocator { // first Object viewedBuffer = localViewedBufferMethod.invoke(toBeDestroyed); if (viewedBuffer != null) { - destroyDirectBuffer((Buffer) viewedBuffer); - } else { - Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE, - "Buffer cannot be destroyed: {0}", toBeDestroyed); + if (viewedBuffer instanceof Buffer) { + destroyDirectBuffer((Buffer) viewedBuffer); + } else { + //on android there is an internal MemoryRef class that is returned and has a "free" method. + Method freeMethod = loadMethod(viewedBuffer.getClass().getName(), "free"); + if (freeMethod != null) { + freeMethod.invoke(viewedBuffer); + } else { + Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE, + "Buffer cannot be destroyed: {0}, {1}", new Object[]{toBeDestroyed, viewedBuffer}); + } + } + } else { + Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE, + "Buffer cannot be destroyed: {0}", toBeDestroyed); } } } From ae97614c835bf084108182630cf88f3461913483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Sun, 12 Nov 2017 11:00:38 +0100 Subject: [PATCH 047/150] Trying to make Cinematic serialization work. This way at least it doesn't crash: Removed anonymous inner class and made new class; CameraEvent Added a bunch of default constructors for other related classes in the process. --- .../java/com/jme3/animation/AnimChannel.java | 734 ++++----- .../com/jme3/animation/AnimationUtils.java | 4 +- .../java/com/jme3/cinematic/Cinematic.java | 1426 ++++++++--------- .../java/com/jme3/cinematic/KeyFrame.java | 182 ++- .../jme3/cinematic/events/AnimationEvent.java | 895 +++++------ .../jme3/cinematic/events/CameraEvent.java | 146 ++ .../jme3/cinematic/events/MotionEvent.java | 982 ++++++------ .../com/jme3/cinematic/events/SoundEvent.java | 459 +++--- .../main/java/com/jme3/scene/CameraNode.java | 245 +-- 9 files changed, 2609 insertions(+), 2464 deletions(-) create mode 100644 jme3-core/src/main/java/com/jme3/cinematic/events/CameraEvent.java diff --git a/jme3-core/src/main/java/com/jme3/animation/AnimChannel.java b/jme3-core/src/main/java/com/jme3/animation/AnimChannel.java index 44b836115..0cd24cab8 100644 --- a/jme3-core/src/main/java/com/jme3/animation/AnimChannel.java +++ b/jme3-core/src/main/java/com/jme3/animation/AnimChannel.java @@ -1,365 +1,369 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.animation; - -import com.jme3.math.FastMath; -import com.jme3.util.TempVars; -import java.util.BitSet; - -/** - * AnimChannel provides controls, such as play, pause, - * fast forward, etc, for an animation. The animation - * channel may influence the entire model or specific bones of the model's - * skeleton. A single model may have multiple animation channels influencing - * various parts of its body. For example, a character model may have an - * animation channel for its feet, and another for its torso, and - * the animations for each channel are controlled independently. - * - * @author Kirill Vainer - */ -public final class AnimChannel { - - private static final float DEFAULT_BLEND_TIME = 0.15f; - - private AnimControl control; - - private BitSet affectedBones; - - private Animation animation; - private Animation blendFrom; - private float time; - private float speed; - private float timeBlendFrom; - private float blendTime; - private float speedBlendFrom; - private boolean notified=false; - - private LoopMode loopMode, loopModeBlendFrom; - - private float blendAmount = 1f; - private float blendRate = 0; - - AnimChannel(AnimControl control){ - this.control = control; - } - - /** - * Returns the parent control of this AnimChannel. - * - * @return the parent control of this AnimChannel. - * @see AnimControl - */ - public AnimControl getControl() { - return control; - } - - /** - * @return The name of the currently playing animation, or null if - * none is assigned. - * - * @see AnimChannel#setAnim(java.lang.String) - */ - public String getAnimationName() { - return animation != null ? animation.getName() : null; - } - - /** - * @return The loop mode currently set for the animation. The loop mode - * determines what will happen to the animation once it finishes - * playing. - * - * For more information, see the LoopMode enum class. - * @see LoopMode - * @see AnimChannel#setLoopMode(com.jme3.animation.LoopMode) - */ - public LoopMode getLoopMode() { - return loopMode; - } - - /** - * @param loopMode Set the loop mode for the channel. The loop mode - * determines what will happen to the animation once it finishes - * playing. - * - * For more information, see the LoopMode enum class. - * @see LoopMode - */ - public void setLoopMode(LoopMode loopMode) { - this.loopMode = loopMode; - } - - /** - * @return The speed that is assigned to the animation channel. The speed - * is a scale value starting from 0.0, at 1.0 the animation will play - * at its default speed. - * - * @see AnimChannel#setSpeed(float) - */ - public float getSpeed() { - return speed; - } - - /** - * @param speed Set the speed of the animation channel. The speed - * is a scale value starting from 0.0, at 1.0 the animation will play - * at its default speed. - */ - public void setSpeed(float speed) { - this.speed = speed; - if(blendTime>0){ - this.speedBlendFrom = speed; - blendTime = Math.min(blendTime, animation.getLength() / speed); - blendRate = 1/ blendTime; - } - } - - /** - * @return The time of the currently playing animation. The time - * starts at 0 and continues on until getAnimMaxTime(). - * - * @see AnimChannel#setTime(float) - */ - public float getTime() { - return time; - } - - /** - * @param time Set the time of the currently playing animation, the time - * is clamped from 0 to {@link #getAnimMaxTime()}. - */ - public void setTime(float time) { - this.time = FastMath.clamp(time, 0, getAnimMaxTime()); - } - - /** - * @return The length of the currently playing animation, or zero - * if no animation is playing. - * - * @see AnimChannel#getTime() - */ - public float getAnimMaxTime(){ - return animation != null ? animation.getLength() : 0f; - } - - /** - * Set the current animation that is played by this AnimChannel. - *

- * This resets the time to zero, and optionally blends the animation - * over blendTime seconds with the currently playing animation. - * Notice that this method will reset the control's speed to 1.0. - * - * @param name The name of the animation to play - * @param blendTime The blend time over which to blend the new animation - * with the old one. If zero, then no blending will occur and the new - * animation will be applied instantly. - */ - public void setAnim(String name, float blendTime){ - if (name == null) - throw new IllegalArgumentException("name cannot be null"); - - if (blendTime < 0f) - throw new IllegalArgumentException("blendTime cannot be less than zero"); - - Animation anim = control.animationMap.get(name); - if (anim == null) - throw new IllegalArgumentException("Cannot find animation named: '"+name+"'"); - - control.notifyAnimChange(this, name); - - if (animation != null && blendTime > 0f){ - this.blendTime = blendTime; - // activate blending - blendTime = Math.min(blendTime, anim.getLength() / speed); - blendFrom = animation; - timeBlendFrom = time; - speedBlendFrom = speed; - loopModeBlendFrom = loopMode; - blendAmount = 0f; - blendRate = 1f / blendTime; - }else{ - blendFrom = null; - } - - animation = anim; - time = 0; - speed = 1f; - loopMode = LoopMode.Loop; - notified = false; - } - - /** - * Set the current animation that is played by this AnimChannel. - *

- * See {@link #setAnim(java.lang.String, float)}. - * The blendTime argument by default is 150 milliseconds. - * - * @param name The name of the animation to play - */ - public void setAnim(String name){ - setAnim(name, DEFAULT_BLEND_TIME); - } - - /** - * Add all the bones of the model's skeleton to be - * influenced by this animation channel. - */ - public void addAllBones() { - affectedBones = null; - } - - /** - * Add a single bone to be influenced by this animation channel. - */ - public void addBone(String name) { - addBone(control.getSkeleton().getBone(name)); - } - - /** - * Add a single bone to be influenced by this animation channel. - */ - public void addBone(Bone bone) { - int boneIndex = control.getSkeleton().getBoneIndex(bone); - if(affectedBones == null) { - affectedBones = new BitSet(control.getSkeleton().getBoneCount()); - } - affectedBones.set(boneIndex); - } - - /** - * Add bones to be influenced by this animation channel starting from the - * given bone name and going toward the root bone. - */ - public void addToRootBone(String name) { - addToRootBone(control.getSkeleton().getBone(name)); - } - - /** - * Add bones to be influenced by this animation channel starting from the - * given bone and going toward the root bone. - */ - public void addToRootBone(Bone bone) { - addBone(bone); - while (bone.getParent() != null) { - bone = bone.getParent(); - addBone(bone); - } - } - - /** - * Add bones to be influenced by this animation channel, starting - * from the given named bone and going toward its children. - */ - public void addFromRootBone(String name) { - addFromRootBone(control.getSkeleton().getBone(name)); - } - - /** - * Add bones to be influenced by this animation channel, starting - * from the given bone and going toward its children. - */ - public void addFromRootBone(Bone bone) { - addBone(bone); - if (bone.getChildren() == null) - return; - for (Bone childBone : bone.getChildren()) { - addBone(childBone); - addFromRootBone(childBone); - } - } - - BitSet getAffectedBones(){ - return affectedBones; - } - - public void reset(boolean rewind){ - if(rewind){ - setTime(0); - if(control.getSkeleton()!=null){ - control.getSkeleton().resetAndUpdate(); - }else{ - TempVars vars = TempVars.get(); - update(0, vars); - vars.release(); - } - } - animation = null; - notified = false; - } - - void update(float tpf, TempVars vars) { - if (animation == null) - return; - - if (blendFrom != null && blendAmount != 1.0f){ - // The blendFrom anim is set, the actual animation - // playing will be set -// blendFrom.setTime(timeBlendFrom, 1f, control, this, vars); - blendFrom.setTime(timeBlendFrom, 1f - blendAmount, control, this, vars); - - timeBlendFrom += tpf * speedBlendFrom; - timeBlendFrom = AnimationUtils.clampWrapTime(timeBlendFrom, - blendFrom.getLength(), - loopModeBlendFrom); - if (timeBlendFrom < 0){ - timeBlendFrom = -timeBlendFrom; - speedBlendFrom = -speedBlendFrom; - } - - blendAmount += tpf * blendRate; - if (blendAmount > 1f){ - blendAmount = 1f; - blendFrom = null; - } - } - - animation.setTime(time, blendAmount, control, this, vars); - time += tpf * speed; - if (animation.getLength() > 0){ - if (!notified && (time >= animation.getLength() || time < 0)) { - if (loopMode == LoopMode.DontLoop) { - // Note that this flag has to be set before calling the notify - // since the notify may start a new animation and then unset - // the flag. - notified = true; - } - control.notifyAnimCycleDone(this, animation.getName()); - } - } - time = AnimationUtils.clampWrapTime(time, animation.getLength(), loopMode); - if (time < 0){ - // Negative time indicates that speed should be inverted - // (for cycle loop mode only) - time = -time; - speed = -speed; - } - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.animation; + +import com.jme3.math.FastMath; +import com.jme3.util.TempVars; +import java.util.BitSet; + +/** + * AnimChannel provides controls, such as play, pause, + * fast forward, etc, for an animation. The animation + * channel may influence the entire model or specific bones of the model's + * skeleton. A single model may have multiple animation channels influencing + * various parts of its body. For example, a character model may have an + * animation channel for its feet, and another for its torso, and + * the animations for each channel are controlled independently. + * + * @author Kirill Vainer + */ +public final class AnimChannel { + + private static final float DEFAULT_BLEND_TIME = 0.15f; + + private AnimControl control; + + private BitSet affectedBones; + + private Animation animation; + private Animation blendFrom; + private float time; + private float speed; + private float timeBlendFrom; + private float blendTime; + private float speedBlendFrom; + private boolean notified=false; + + private LoopMode loopMode, loopModeBlendFrom; + + private float blendAmount = 1f; + private float blendRate = 0; + + public AnimChannel(){ + + } + + public AnimChannel(AnimControl control){ + this.control = control; + } + + /** + * Returns the parent control of this AnimChannel. + * + * @return the parent control of this AnimChannel. + * @see AnimControl + */ + public AnimControl getControl() { + return control; + } + + /** + * @return The name of the currently playing animation, or null if + * none is assigned. + * + * @see AnimChannel#setAnim(java.lang.String) + */ + public String getAnimationName() { + return animation != null ? animation.getName() : null; + } + + /** + * @return The loop mode currently set for the animation. The loop mode + * determines what will happen to the animation once it finishes + * playing. + * + * For more information, see the LoopMode enum class. + * @see LoopMode + * @see AnimChannel#setLoopMode(com.jme3.animation.LoopMode) + */ + public LoopMode getLoopMode() { + return loopMode; + } + + /** + * @param loopMode Set the loop mode for the channel. The loop mode + * determines what will happen to the animation once it finishes + * playing. + * + * For more information, see the LoopMode enum class. + * @see LoopMode + */ + public void setLoopMode(LoopMode loopMode) { + this.loopMode = loopMode; + } + + /** + * @return The speed that is assigned to the animation channel. The speed + * is a scale value starting from 0.0, at 1.0 the animation will play + * at its default speed. + * + * @see AnimChannel#setSpeed(float) + */ + public float getSpeed() { + return speed; + } + + /** + * @param speed Set the speed of the animation channel. The speed + * is a scale value starting from 0.0, at 1.0 the animation will play + * at its default speed. + */ + public void setSpeed(float speed) { + this.speed = speed; + if(blendTime>0){ + this.speedBlendFrom = speed; + blendTime = Math.min(blendTime, animation.getLength() / speed); + blendRate = 1/ blendTime; + } + } + + /** + * @return The time of the currently playing animation. The time + * starts at 0 and continues on until getAnimMaxTime(). + * + * @see AnimChannel#setTime(float) + */ + public float getTime() { + return time; + } + + /** + * @param time Set the time of the currently playing animation, the time + * is clamped from 0 to {@link #getAnimMaxTime()}. + */ + public void setTime(float time) { + this.time = FastMath.clamp(time, 0, getAnimMaxTime()); + } + + /** + * @return The length of the currently playing animation, or zero + * if no animation is playing. + * + * @see AnimChannel#getTime() + */ + public float getAnimMaxTime(){ + return animation != null ? animation.getLength() : 0f; + } + + /** + * Set the current animation that is played by this AnimChannel. + *

+ * This resets the time to zero, and optionally blends the animation + * over blendTime seconds with the currently playing animation. + * Notice that this method will reset the control's speed to 1.0. + * + * @param name The name of the animation to play + * @param blendTime The blend time over which to blend the new animation + * with the old one. If zero, then no blending will occur and the new + * animation will be applied instantly. + */ + public void setAnim(String name, float blendTime){ + if (name == null) + throw new IllegalArgumentException("name cannot be null"); + + if (blendTime < 0f) + throw new IllegalArgumentException("blendTime cannot be less than zero"); + + Animation anim = control.animationMap.get(name); + if (anim == null) + throw new IllegalArgumentException("Cannot find animation named: '"+name+"'"); + + control.notifyAnimChange(this, name); + + if (animation != null && blendTime > 0f){ + this.blendTime = blendTime; + // activate blending + blendTime = Math.min(blendTime, anim.getLength() / speed); + blendFrom = animation; + timeBlendFrom = time; + speedBlendFrom = speed; + loopModeBlendFrom = loopMode; + blendAmount = 0f; + blendRate = 1f / blendTime; + }else{ + blendFrom = null; + } + + animation = anim; + time = 0; + speed = 1f; + loopMode = LoopMode.Loop; + notified = false; + } + + /** + * Set the current animation that is played by this AnimChannel. + *

+ * See {@link #setAnim(java.lang.String, float)}. + * The blendTime argument by default is 150 milliseconds. + * + * @param name The name of the animation to play + */ + public void setAnim(String name){ + setAnim(name, DEFAULT_BLEND_TIME); + } + + /** + * Add all the bones of the model's skeleton to be + * influenced by this animation channel. + */ + public void addAllBones() { + affectedBones = null; + } + + /** + * Add a single bone to be influenced by this animation channel. + */ + public void addBone(String name) { + addBone(control.getSkeleton().getBone(name)); + } + + /** + * Add a single bone to be influenced by this animation channel. + */ + public void addBone(Bone bone) { + int boneIndex = control.getSkeleton().getBoneIndex(bone); + if(affectedBones == null) { + affectedBones = new BitSet(control.getSkeleton().getBoneCount()); + } + affectedBones.set(boneIndex); + } + + /** + * Add bones to be influenced by this animation channel starting from the + * given bone name and going toward the root bone. + */ + public void addToRootBone(String name) { + addToRootBone(control.getSkeleton().getBone(name)); + } + + /** + * Add bones to be influenced by this animation channel starting from the + * given bone and going toward the root bone. + */ + public void addToRootBone(Bone bone) { + addBone(bone); + while (bone.getParent() != null) { + bone = bone.getParent(); + addBone(bone); + } + } + + /** + * Add bones to be influenced by this animation channel, starting + * from the given named bone and going toward its children. + */ + public void addFromRootBone(String name) { + addFromRootBone(control.getSkeleton().getBone(name)); + } + + /** + * Add bones to be influenced by this animation channel, starting + * from the given bone and going toward its children. + */ + public void addFromRootBone(Bone bone) { + addBone(bone); + if (bone.getChildren() == null) + return; + for (Bone childBone : bone.getChildren()) { + addBone(childBone); + addFromRootBone(childBone); + } + } + + BitSet getAffectedBones(){ + return affectedBones; + } + + public void reset(boolean rewind){ + if(rewind){ + setTime(0); + if(control.getSkeleton()!=null){ + control.getSkeleton().resetAndUpdate(); + }else{ + TempVars vars = TempVars.get(); + update(0, vars); + vars.release(); + } + } + animation = null; + notified = false; + } + + void update(float tpf, TempVars vars) { + if (animation == null) + return; + + if (blendFrom != null && blendAmount != 1.0f){ + // The blendFrom anim is set, the actual animation + // playing will be set +// blendFrom.setTime(timeBlendFrom, 1f, control, this, vars); + blendFrom.setTime(timeBlendFrom, 1f - blendAmount, control, this, vars); + + timeBlendFrom += tpf * speedBlendFrom; + timeBlendFrom = AnimationUtils.clampWrapTime(timeBlendFrom, + blendFrom.getLength(), + loopModeBlendFrom); + if (timeBlendFrom < 0){ + timeBlendFrom = -timeBlendFrom; + speedBlendFrom = -speedBlendFrom; + } + + blendAmount += tpf * blendRate; + if (blendAmount > 1f){ + blendAmount = 1f; + blendFrom = null; + } + } + + animation.setTime(time, blendAmount, control, this, vars); + time += tpf * speed; + if (animation.getLength() > 0){ + if (!notified && (time >= animation.getLength() || time < 0)) { + if (loopMode == LoopMode.DontLoop) { + // Note that this flag has to be set before calling the notify + // since the notify may start a new animation and then unset + // the flag. + notified = true; + } + control.notifyAnimCycleDone(this, animation.getName()); + } + } + time = AnimationUtils.clampWrapTime(time, animation.getLength(), loopMode); + if (time < 0){ + // Negative time indicates that speed should be inverted + // (for cycle loop mode only) + time = -time; + speed = -speed; + } + } +} diff --git a/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java b/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java index 9272fe5e3..9cbe5d7dd 100644 --- a/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java +++ b/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java @@ -41,7 +41,9 @@ import static com.jme3.animation.LoopMode.Loop; */ public class AnimationUtils { - + public AnimationUtils(){ + + } /** * Clamps the time according to duration and loopMode * @param time diff --git a/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java b/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java index 6e1432f4a..8a9e99b65 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java @@ -1,720 +1,706 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic; - -import com.jme3.animation.LoopMode; -import com.jme3.app.Application; -import com.jme3.app.state.AppState; -import com.jme3.app.state.AppStateManager; -import com.jme3.cinematic.events.AbstractCinematicEvent; -import com.jme3.cinematic.events.CinematicEvent; -import com.jme3.export.*; -import com.jme3.renderer.Camera; -import com.jme3.renderer.RenderManager; -import com.jme3.scene.CameraNode; -import com.jme3.scene.Node; -import com.jme3.scene.control.CameraControl; -import com.jme3.scene.control.CameraControl.ControlDirection; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * An appstate for composing and playing cut scenes in a game. The cinematic - * schedules CinematicEvents over a timeline. Once the Cinematic created it has - * to be attached to the stateManager. - * - * You can add various CinematicEvents to a Cinematic, see package - * com.jme3.cinematic.events - * - * Two main methods can be used to add an event : - * - * @see Cinematic#addCinematicEvent(float, - * com.jme3.cinematic.events.CinematicEvent) , that adds an event at the given - * time form the cinematic start. - * - * @see - * Cinematic#enqueueCinematicEvent(com.jme3.cinematic.events.CinematicEvent) - * that enqueue events one after the other according to their initialDuration - * - * a cinematic has convenient methods to handle the playback : - * @see Cinematic#play() - * @see Cinematic#pause() - * @see Cinematic#stop() - * - * A cinematic is itself a CinematicEvent, meaning you can embed several - * Cinematics Embed cinematics must not be added to the stateManager though. - * - * Cinematic has a way to handle several point of view by creating CameraNode - * over a cam and activating them on schedule. - * @see Cinematic#bindCamera(java.lang.String, com.jme3.renderer.Camera) - * @see Cinematic#activateCamera(float, java.lang.String) - * @see Cinematic#setActiveCamera(java.lang.String) - * - * @author Nehon - */ -public class Cinematic extends AbstractCinematicEvent implements AppState { - - private static final Logger logger = Logger.getLogger(Application.class.getName()); - private Node scene; - protected TimeLine timeLine = new TimeLine(); - private int lastFetchedKeyFrame = -1; - private List cinematicEvents = new ArrayList(); - private Map cameras = new HashMap(); - private CameraNode currentCam; - private boolean initialized = false; - private Map> eventsData; - private float nextEnqueue = 0; - - /** - * Used for serialization creates a cinematic, don't use this constructor - * directly - */ - public Cinematic() { - } - - /** - * creates a cinematic - * - * @param scene the scene in which the cinematic should take place - */ - public Cinematic(Node scene) { - this.scene = scene; - } - - /** - * creates a cinematic - * - * @param scene the scene in which the cinematic should take place - * @param initialDuration the duration of the cinematic (without considering - * the speed) - */ - public Cinematic(Node scene, float initialDuration) { - super(initialDuration); - this.scene = scene; - } - - /** - * creates a cinematic - * - * @param scene the scene in which the cinematic should take place - * @param loopMode tells if this cinematic should be looped or not - */ - public Cinematic(Node scene, LoopMode loopMode) { - super(loopMode); - this.scene = scene; - } - - /** - * creates a cinematic - * - * @param scene the scene in which the cinematic should take place - * @param initialDuration the duration of the cinematic (without considering - * the speed) - * @param loopMode tells if this cinematic should be looped or not - */ - public Cinematic(Node scene, float initialDuration, LoopMode loopMode) { - super(initialDuration, loopMode); - this.scene = scene; - } - - /** - * called internally - */ - @Override - public void onPlay() { - if (isInitialized()) { - if (playState == PlayState.Paused) { - for (int i = 0; i < cinematicEvents.size(); i++) { - CinematicEvent ce = cinematicEvents.get(i); - if (ce.getPlayState() == PlayState.Paused) { - ce.play(); - } - } - } - } - } - - /** - * called internally - */ - @Override - public void onStop() { - time = 0; - lastFetchedKeyFrame = -1; - for (int i = 0; i < cinematicEvents.size(); i++) { - CinematicEvent ce = cinematicEvents.get(i); - ce.setTime(0); - ce.forceStop(); - } - setEnableCurrentCam(false); - } - - /** - * called internally - */ - @Override - public void onPause() { - for (int i = 0; i < cinematicEvents.size(); i++) { - CinematicEvent ce = cinematicEvents.get(i); - if (ce.getPlayState() == PlayState.Playing) { - ce.pause(); - } - } - } - - /** - * used internally for serialization - * - * @param ex - * @throws IOException - */ - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - - oc.writeSavableArrayList((ArrayList) cinematicEvents, "cinematicEvents", null); - oc.writeStringSavableMap(cameras, "cameras", null); - oc.write(timeLine, "timeLine", null); - - } - - /** - * used internally for serialization - * - * @param im - * @throws IOException - */ - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - - cinematicEvents = ic.readSavableArrayList("cinematicEvents", null); - cameras = (Map) ic.readStringSavableMap("cameras", null); - timeLine = (TimeLine) ic.readSavable("timeLine", null); - } - - /** - * sets the speed of the cinematic. Note that it will set the speed of all - * events in the cinematic. 1 is normal speed. use 0.5f to make the - * cinematic twice slower, use 2 to make it twice faster - * - * @param speed the speed - */ - @Override - public void setSpeed(float speed) { - super.setSpeed(speed); - for (int i = 0; i < cinematicEvents.size(); i++) { - CinematicEvent ce = cinematicEvents.get(i); - ce.setSpeed(speed); - } - - - } - - /** - * used internally - * - * @param stateManager the state manager - * @param app the application - */ - public void initialize(AppStateManager stateManager, Application app) { - initEvent(app, this); - for (CinematicEvent cinematicEvent : cinematicEvents) { - cinematicEvent.initEvent(app, this); - } - - initialized = true; - } - - /** - * used internally - * - * @return - */ - public boolean isInitialized() { - return initialized; - } - - /** - * passing true has the same effect as play() you should use play(), - * pause(), stop() to handle the cinematic playing state. - * - * @param enabled true or false - */ - public void setEnabled(boolean enabled) { - if (enabled) { - play(); - } - } - - /** - * return true if the cinematic appstate is enabled (the cinematic is - * playing) - * - * @return true if enabled - */ - public boolean isEnabled() { - return playState == PlayState.Playing; - } - - /** - * called internally - * - * @param stateManager the state manager - */ - public void stateAttached(AppStateManager stateManager) { - } - - /** - * called internally - * - * @param stateManager the state manager - */ - public void stateDetached(AppStateManager stateManager) { - stop(); - } - - /** - * called internally don't call it directly. - * - * @param tpf - */ - public void update(float tpf) { - if (isInitialized()) { - internalUpdate(tpf); - } - } - - /** - * used internally, don't call this directly. - * - * @param tpf - */ - @Override - public void onUpdate(float tpf) { - int keyFrameIndex = timeLine.getKeyFrameIndexFromTime(time); - - //iterate to make sure every key frame is triggered - for (int i = lastFetchedKeyFrame + 1; i <= keyFrameIndex; i++) { - KeyFrame keyFrame = timeLine.get(i); - if (keyFrame != null) { - keyFrame.trigger(); - } - } - - - for (int i = 0; i < cinematicEvents.size(); i++) { - CinematicEvent ce = cinematicEvents.get(i); - ce.internalUpdate(tpf); - } - - - lastFetchedKeyFrame = keyFrameIndex; - } - - /** - * This is used internally but can be called to shuffle through the - * cinematic. - * - * @param time the time to shuffle to. - */ - @Override - public void setTime(float time) { - - //stopping all events - onStop(); - super.setTime(time); - - int keyFrameIndex = timeLine.getKeyFrameIndexFromTime(time); - //triggering all the event from start to "time" - //then computing timeOffset for each event - for (int i = 0; i <= keyFrameIndex; i++) { - KeyFrame keyFrame = timeLine.get(i); - if (keyFrame != null) { - for (CinematicEvent ce : keyFrame.getCinematicEvents()) { - float t = this.time - timeLine.getKeyFrameTime(keyFrame); - if (t >= 0 && (t <= ce.getInitialDuration() || ce.getLoopMode() != LoopMode.DontLoop)) { - ce.play(); - } - ce.setTime(t); - } - } - } - lastFetchedKeyFrame = keyFrameIndex; - if (playState != PlayState.Playing) { - pause(); - } - } - - /** - * Adds a cinematic event to this cinematic at the given timestamp. This - * operation returns a keyFrame - * - * @param timeStamp the time when the event will start after the beginning of - * the cinematic - * @param cinematicEvent the cinematic event - * @return the keyFrame for that event. - */ - public KeyFrame addCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { - KeyFrame keyFrame = timeLine.getKeyFrameAtTime(timeStamp); - if (keyFrame == null) { - keyFrame = new KeyFrame(); - timeLine.addKeyFrameAtTime(timeStamp, keyFrame); - } - keyFrame.cinematicEvents.add(cinematicEvent); - cinematicEvents.add(cinematicEvent); - if (isInitialized()) { - cinematicEvent.initEvent(null, this); - } - return keyFrame; - } - - /** - * enqueue a cinematic event to a cinematic. This is a handy method when you - * want to chain event of a given duration without knowing their initial - * duration - * - * @param cinematicEvent the cinematic event to enqueue - * @return the timestamp the event was scheduled. - */ - public float enqueueCinematicEvent(CinematicEvent cinematicEvent) { - float scheduleTime = nextEnqueue; - addCinematicEvent(scheduleTime, cinematicEvent); - nextEnqueue += cinematicEvent.getInitialDuration(); - return scheduleTime; - } - - /** - * removes the first occurrence found of the given cinematicEvent. - * - * @param cinematicEvent the cinematicEvent to remove - * @return true if the element has been removed - */ - public boolean removeCinematicEvent(CinematicEvent cinematicEvent) { - cinematicEvent.dispose(); - cinematicEvents.remove(cinematicEvent); - for (KeyFrame keyFrame : timeLine.values()) { - if (keyFrame.cinematicEvents.remove(cinematicEvent)) { - return true; - } - } - return false; - } - - /** - * removes the first occurrence found of the given cinematicEvent for the - * given time stamp. - * - * @param timeStamp the timestamp when the cinematicEvent has been added - * @param cinematicEvent the cinematicEvent to remove - * @return true if the element has been removed - */ - public boolean removeCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { - cinematicEvent.dispose(); - KeyFrame keyFrame = timeLine.getKeyFrameAtTime(timeStamp); - return removeCinematicEvent(keyFrame, cinematicEvent); - } - - /** - * removes the first occurrence found of the given cinematicEvent for the - * given keyFrame - * - * @param keyFrame the keyFrame returned by the addCinematicEvent method. - * @param cinematicEvent the cinematicEvent to remove - * @return true if the element has been removed - */ - public boolean removeCinematicEvent(KeyFrame keyFrame, CinematicEvent cinematicEvent) { - cinematicEvent.dispose(); - boolean ret = keyFrame.cinematicEvents.remove(cinematicEvent); - cinematicEvents.remove(cinematicEvent); - if (keyFrame.isEmpty()) { - timeLine.removeKeyFrame(keyFrame.getIndex()); - } - return ret; - } - - /** - * called internally - * - * @see AppState#render(com.jme3.renderer.RenderManager) - */ - public void render(RenderManager rm) { - } - - /** - * called internally - * - * @see AppState#postRender() - */ - public void postRender() { - } - - /** - * called internally - * - * @see AppState#cleanup() - */ - public void cleanup() { - } - - /** - * fits the duration of the cinematic to the duration of all its child - * cinematic events - */ - public void fitDuration() { - KeyFrame kf = timeLine.getKeyFrameAtIndex(timeLine.getLastKeyFrameIndex()); - float d = 0; - for (int i = 0; i < kf.getCinematicEvents().size(); i++) { - CinematicEvent ce = kf.getCinematicEvents().get(i); - float dur = timeLine.getKeyFrameTime(kf) + ce.getDuration() * ce.getSpeed(); - if (d < dur) { - d = dur; - } - } - - initialDuration = d; - } - - /** - * Binds a camera to this cinematic, tagged by a unique name. This methods - * creates and returns a CameraNode for the cam and attach it to the scene. - * The control direction is set to SpatialToCamera. This camera Node can - * then be used in other events to handle the camera movements during the - * playback - * - * @param cameraName the unique tag the camera should have - * @param cam the scene camera. - * @return the created CameraNode. - */ - public CameraNode bindCamera(String cameraName, Camera cam) { - if (cameras.containsKey(cameraName)) { - throw new IllegalArgumentException("Camera " + cameraName + " is already binded to this cinematic"); - } - CameraNode node = new CameraNode(cameraName, cam); - node.setControlDir(ControlDirection.SpatialToCamera); - node.getControl(CameraControl.class).setEnabled(false); - cameras.put(cameraName, node); - scene.attachChild(node); - return node; - } - - /** - * returns a cameraNode given its name - * - * @param cameraName the camera name (as registered in - * Cinematic#bindCamera()) - * @return the cameraNode for this name - */ - public CameraNode getCamera(String cameraName) { - return cameras.get(cameraName); - } - - /** - * enable/disable the camera control of the cameraNode of the current cam - * - * @param enabled - */ - private void setEnableCurrentCam(boolean enabled) { - if (currentCam != null) { - currentCam.getControl(CameraControl.class).setEnabled(enabled); - } - } - - /** - * Sets the active camera instantly (use activateCamera if you want to - * schedule that event) - * - * @param cameraName the camera name (as registered in - * Cinematic#bindCamera()) - */ - public void setActiveCamera(String cameraName) { - setEnableCurrentCam(false); - currentCam = cameras.get(cameraName); - if (currentCam == null) { - logger.log(Level.WARNING, "{0} is not a camera bond to the cinematic, cannot activate", cameraName); - } - setEnableCurrentCam(true); - } - - /** - * schedule an event that will activate the camera at the given time - * - * @param timeStamp the time to activate the cam - * @param cameraName the camera name (as registered in - * Cinematic#bindCamera()) - */ - public void activateCamera(final float timeStamp, final String cameraName) { - addCinematicEvent(timeStamp, new AbstractCinematicEvent() { - @Override - public void play() { - super.play(); - stop(); - } - - @Override - public void onPlay() { - setActiveCamera(cameraName); - } - - @Override - public void onUpdate(float tpf) { - } - - @Override - public void onStop() { - } - - @Override - public void onPause() { - } - - @Override - public void forceStop() { - } - - @Override - public void setTime(float time) { - play(); - } - }); - } - - /** - * returns the complete eventdata map - * - * @return the eventdata map - */ - private Map> getEventsData() { - if (eventsData == null) { - eventsData = new HashMap>(); - } - return eventsData; - } - - /** - * used internally put an eventdata in the cinematic - * - * @param type the type of data - * @param key the key - * @param object the data - */ - public void putEventData(String type, Object key, Object object) { - Map> data = getEventsData(); - Map row = data.get(type); - if (row == null) { - row = new HashMap(); - } - row.put(key, object); - data.put(type, row); - } - - /** - * used internally return and event data - * - * @param type the type of data - * @param key the key - * @return - */ - public Object getEventData(String type, Object key) { - if (eventsData != null) { - Map row = eventsData.get(type); - if (row != null) { - return row.get(key); - } - } - return null; - } - - /** - * Used internally remove an eventData - * - * @param type the type of data - * @param key the key of the data - */ - public void removeEventData(String type, Object key) { - if (eventsData != null) { - Map row = eventsData.get(type); - if (row != null) { - row.remove(key); - } - } - } - - /** - * sets the scene to use for this cinematic it is expected that the scene is - * added before adding events to the cinematic - * - * @param scene the scene where the cinematic should take place. - */ - public void setScene(Node scene) { - this.scene = scene; - } - - /** - * return the scene where the cinematic occur - * - * @return the scene - */ - public Node getScene() { - return scene; - } - - /** - * clear the cinematic of its events. - */ - public void clear() { - dispose(); - cinematicEvents.clear(); - timeLine.clear(); - if (eventsData != null) { - eventsData.clear(); - } - } - - /** - * used internally to cleanup the cinematic. Called when the clear() method - * is called - */ - @Override - public void dispose() { - for (CinematicEvent event : cinematicEvents) { - event.dispose(); - } - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic; + +import com.jme3.animation.LoopMode; +import com.jme3.app.Application; +import com.jme3.app.state.AppState; +import com.jme3.app.state.AppStateManager; +import com.jme3.cinematic.events.AbstractCinematicEvent; +import com.jme3.cinematic.events.CameraEvent; +import com.jme3.cinematic.events.CinematicEvent; +import com.jme3.export.*; +import com.jme3.renderer.Camera; +import com.jme3.renderer.RenderManager; +import com.jme3.renderer.ViewPort; +import com.jme3.scene.CameraNode; +import com.jme3.scene.Node; +import com.jme3.scene.Spatial; +import com.jme3.scene.control.CameraControl; +import com.jme3.scene.control.CameraControl.ControlDirection; +import com.jme3.scene.control.Control; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * An appstate for composing and playing cut scenes in a game. The cinematic + * schedules CinematicEvents over a timeline. Once the Cinematic created it has + * to be attached to the stateManager. + * + * You can add various CinematicEvents to a Cinematic, see package + * com.jme3.cinematic.events + * + * Two main methods can be used to add an event : + * + * @see Cinematic#addCinematicEvent(float, + * com.jme3.cinematic.events.CinematicEvent) , that adds an event at the given + * time form the cinematic start. + * + * @see + * Cinematic#enqueueCinematicEvent(com.jme3.cinematic.events.CinematicEvent) + * that enqueue events one after the other according to their initialDuration + * + * a cinematic has convenient methods to handle the playback : + * @see Cinematic#play() + * @see Cinematic#pause() + * @see Cinematic#stop() + * + * A cinematic is itself a CinematicEvent, meaning you can embed several + * Cinematics Embed cinematics must not be added to the stateManager though. + * + * Cinematic has a way to handle several point of view by creating CameraNode + * over a cam and activating them on schedule. + * @see Cinematic#bindCamera(java.lang.String, com.jme3.renderer.Camera) + * @see Cinematic#activateCamera(float, java.lang.String) + * @see Cinematic#setActiveCamera(java.lang.String) + * + * @author Nehon + */ +public class Cinematic extends AbstractCinematicEvent implements AppState { + + private static final Logger logger = Logger.getLogger(Cinematic.class.getName()); + private Node scene; + protected TimeLine timeLine = new TimeLine(); + private int lastFetchedKeyFrame = -1; + private List cinematicEvents = new ArrayList<>(); + private Map cameras = new HashMap<>(); + private CameraNode currentCam; + private boolean initialized = false; + private Map> eventsData; + private float nextEnqueue = 0; + + /** + * Used for serialization creates a cinematic, don't use this constructor + * directly + */ + public Cinematic() { + super(); + } + + public Cinematic(float initialDuration) { + super(initialDuration); + } + + public Cinematic(LoopMode loopMode) { + super(loopMode); + } + + public Cinematic(float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + } + + /** + * creates a cinematic + * + * @param scene the scene in which the cinematic should take place + */ + public Cinematic(Node scene) { + this.scene = scene; + } + + /** + * creates a cinematic + * + * @param scene the scene in which the cinematic should take place + * @param initialDuration the duration of the cinematic (without considering + * the speed) + */ + public Cinematic(Node scene, float initialDuration) { + super(initialDuration); + this.scene = scene; + } + + /** + * creates a cinematic + * + * @param scene the scene in which the cinematic should take place + * @param loopMode tells if this cinematic should be looped or not + */ + public Cinematic(Node scene, LoopMode loopMode) { + super(loopMode); + this.scene = scene; + } + + /** + * creates a cinematic + * + * @param scene the scene in which the cinematic should take place + * @param initialDuration the duration of the cinematic (without considering + * the speed) + * @param loopMode tells if this cinematic should be looped or not + */ + public Cinematic(Node scene, float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + this.scene = scene; + } + + /** + * called internally + */ + @Override + public void onPlay() { + if (isInitialized()) { + if (playState == PlayState.Paused) { + for (int i = 0; i < cinematicEvents.size(); i++) { + CinematicEvent ce = cinematicEvents.get(i); + if (ce.getPlayState() == PlayState.Paused) { + ce.play(); + } + } + } + } + } + + /** + * called internally + */ + @Override + public void onStop() { + time = 0; + lastFetchedKeyFrame = -1; + for (int i = 0; i < cinematicEvents.size(); i++) { + CinematicEvent ce = cinematicEvents.get(i); + ce.setTime(0); + ce.forceStop(); + } + setEnableCurrentCam(false); + } + + /** + * called internally + */ + @Override + public void onPause() { + for (int i = 0; i < cinematicEvents.size(); i++) { + CinematicEvent ce = cinematicEvents.get(i); + if (ce.getPlayState() == PlayState.Playing) { + ce.pause(); + } + } + } + + /** + * used internally for serialization + * + * @param ex + * @throws IOException + */ + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + oc.write(cinematicEvents.toArray(new CinematicEvent[cinematicEvents.size()]), "cinematicEvents", null); + oc.writeStringSavableMap(cameras, "cameras", null); + oc.write(timeLine, "timeLine", null); + + } + + /** + * used internally for serialization + * + * @param im + * @throws IOException + */ + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule ic = im.getCapsule(this); + + Savable[] events = ic.readSavableArray("cinematicEvents", null); + for (Savable c : events) { +// addCinematicEvent(((CinematicEvent) c).getTime(), (CinematicEvent) c) + cinematicEvents.add((CinematicEvent) c); + } + cameras = (Map) ic.readStringSavableMap("cameras", null); + timeLine = (TimeLine) ic.readSavable("timeLine", null); + } + + /** + * sets the speed of the cinematic. Note that it will set the speed of all + * events in the cinematic. 1 is normal speed. use 0.5f to make the + * cinematic twice slower, use 2 to make it twice faster + * + * @param speed the speed + */ + @Override + public void setSpeed(float speed) { + super.setSpeed(speed); + for (int i = 0; i < cinematicEvents.size(); i++) { + CinematicEvent ce = cinematicEvents.get(i); + ce.setSpeed(speed); + } + + } + + /** + * used internally + * + * @param stateManager the state manager + * @param app the application + */ + public void initialize(AppStateManager stateManager, Application app) { + initEvent(app, this); + for (CinematicEvent cinematicEvent : cinematicEvents) { + cinematicEvent.initEvent(app, this); + } + + initialized = true; + } + + /** + * used internally + * + * @return + */ + public boolean isInitialized() { + return initialized; + } + + /** + * passing true has the same effect as play() you should use play(), + * pause(), stop() to handle the cinematic playing state. + * + * @param enabled true or false + */ + public void setEnabled(boolean enabled) { + if (enabled) { + play(); + } + } + + /** + * return true if the cinematic appstate is enabled (the cinematic is + * playing) + * + * @return true if enabled + */ + public boolean isEnabled() { + return playState == PlayState.Playing; + } + + /** + * called internally + * + * @param stateManager the state manager + */ + public void stateAttached(AppStateManager stateManager) { + } + + /** + * called internally + * + * @param stateManager the state manager + */ + public void stateDetached(AppStateManager stateManager) { + stop(); + } + + /** + * called internally don't call it directly. + * + * @param tpf + */ + @Override + public void update(float tpf) { + if (isInitialized()) { + internalUpdate(tpf); + } + } + + /** + * used internally, don't call this directly. + * + * @param tpf + */ + @Override + public void onUpdate(float tpf) { + int keyFrameIndex = timeLine.getKeyFrameIndexFromTime(time); + + //iterate to make sure every key frame is triggered + for (int i = lastFetchedKeyFrame + 1; i <= keyFrameIndex; i++) { + KeyFrame keyFrame = timeLine.get(i); + if (keyFrame != null) { + keyFrame.trigger(); + } + } + + for (int i = 0; i < cinematicEvents.size(); i++) { + CinematicEvent ce = cinematicEvents.get(i); + ce.internalUpdate(tpf); + } + + lastFetchedKeyFrame = keyFrameIndex; + } + + /** + * This is used internally but can be called to shuffle through the + * cinematic. + * + * @param time the time to shuffle to. + */ + @Override + public void setTime(float time) { + + //stopping all events + onStop(); + super.setTime(time); + + int keyFrameIndex = timeLine.getKeyFrameIndexFromTime(time); + //triggering all the event from start to "time" + //then computing timeOffset for each event + for (int i = 0; i <= keyFrameIndex; i++) { + KeyFrame keyFrame = timeLine.get(i); + if (keyFrame != null) { + for (CinematicEvent ce : keyFrame.getCinematicEvents()) { + float t = this.time - timeLine.getKeyFrameTime(keyFrame); + if (t >= 0 && (t <= ce.getInitialDuration() || ce.getLoopMode() != LoopMode.DontLoop)) { + ce.play(); + } + ce.setTime(t); + } + } + } + lastFetchedKeyFrame = keyFrameIndex; + if (playState != PlayState.Playing) { + pause(); + } + } + + /** + * Adds a cinematic event to this cinematic at the given timestamp. This + * operation returns a keyFrame + * + * @param timeStamp the time when the event will start after the beginning + * of the cinematic + * @param cinematicEvent the cinematic event + * @return the keyFrame for that event. + */ + public KeyFrame addCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { + KeyFrame keyFrame = timeLine.getKeyFrameAtTime(timeStamp); + if (keyFrame == null) { + keyFrame = new KeyFrame(); + timeLine.addKeyFrameAtTime(timeStamp, keyFrame); + } + keyFrame.cinematicEvents.add(cinematicEvent); + cinematicEvents.add(cinematicEvent); + if (isInitialized()) { + cinematicEvent.initEvent(null, this); + } + return keyFrame; + } + + /** + * enqueue a cinematic event to a cinematic. This is a handy method when you + * want to chain event of a given duration without knowing their initial + * duration + * + * @param cinematicEvent the cinematic event to enqueue + * @return the timestamp the event was scheduled. + */ + public float enqueueCinematicEvent(CinematicEvent cinematicEvent) { + float scheduleTime = nextEnqueue; + addCinematicEvent(scheduleTime, cinematicEvent); + nextEnqueue += cinematicEvent.getInitialDuration(); + return scheduleTime; + } + + /** + * removes the first occurrence found of the given cinematicEvent. + * + * @param cinematicEvent the cinematicEvent to remove + * @return true if the element has been removed + */ + public boolean removeCinematicEvent(CinematicEvent cinematicEvent) { + cinematicEvent.dispose(); + cinematicEvents.remove(cinematicEvent); + for (KeyFrame keyFrame : timeLine.values()) { + if (keyFrame.cinematicEvents.remove(cinematicEvent)) { + return true; + } + } + return false; + } + + /** + * removes the first occurrence found of the given cinematicEvent for the + * given time stamp. + * + * @param timeStamp the timestamp when the cinematicEvent has been added + * @param cinematicEvent the cinematicEvent to remove + * @return true if the element has been removed + */ + public boolean removeCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { + cinematicEvent.dispose(); + KeyFrame keyFrame = timeLine.getKeyFrameAtTime(timeStamp); + return removeCinematicEvent(keyFrame, cinematicEvent); + } + + /** + * removes the first occurrence found of the given cinematicEvent for the + * given keyFrame + * + * @param keyFrame the keyFrame returned by the addCinematicEvent method. + * @param cinematicEvent the cinematicEvent to remove + * @return true if the element has been removed + */ + public boolean removeCinematicEvent(KeyFrame keyFrame, CinematicEvent cinematicEvent) { + cinematicEvent.dispose(); + boolean ret = keyFrame.cinematicEvents.remove(cinematicEvent); + cinematicEvents.remove(cinematicEvent); + if (keyFrame.isEmpty()) { + timeLine.removeKeyFrame(keyFrame.getIndex()); + } + return ret; + } + + /** + * called internally + * + * @see AppState#render(com.jme3.renderer.RenderManager) + */ + public void render(RenderManager rm) { + } + + /** + * called internally + * + * @see AppState#postRender() + */ + public void postRender() { + } + + /** + * called internally + * + * @see AppState#cleanup() + */ + public void cleanup() { + } + + /** + * fits the duration of the cinematic to the duration of all its child + * cinematic events + */ + public void fitDuration() { + KeyFrame kf = timeLine.getKeyFrameAtIndex(timeLine.getLastKeyFrameIndex()); + float d = 0; + for (int i = 0; i < kf.getCinematicEvents().size(); i++) { + CinematicEvent ce = kf.getCinematicEvents().get(i); + float dur = timeLine.getKeyFrameTime(kf) + ce.getDuration() * ce.getSpeed(); + if (d < dur) { + d = dur; + } + } + + initialDuration = d; + } + + /** + * Binds a camera to this cinematic, tagged by a unique name. This methods + * creates and returns a CameraNode for the cam and attach it to the scene. + * The control direction is set to SpatialToCamera. This camera Node can + * then be used in other events to handle the camera movements during the + * playback + * + * @param cameraName the unique tag the camera should have + * @param cam the scene camera. + * @return the created CameraNode. + */ + public CameraNode bindCamera(String cameraName, Camera cam) { + if (cameras.containsKey(cameraName)) { + throw new IllegalArgumentException("Camera " + cameraName + " is already binded to this cinematic"); + } + CameraNode node = new CameraNode(cameraName, cam); + node.setControlDir(ControlDirection.SpatialToCamera); + node.getControl(CameraControl.class).setEnabled(false); + cameras.put(cameraName, node); + scene.attachChild(node); + return node; + } + + /** + * returns a cameraNode given its name + * + * @param cameraName the camera name (as registered in + * Cinematic#bindCamera()) + * @return the cameraNode for this name + */ + public CameraNode getCamera(String cameraName) { + return cameras.get(cameraName); + } + + /** + * enable/disable the camera control of the cameraNode of the current cam + * + * @param enabled + */ + private void setEnableCurrentCam(boolean enabled) { + if (currentCam != null) { + currentCam.getControl(CameraControl.class).setEnabled(enabled); + } + } + + /** + * Sets the active camera instantly (use activateCamera if you want to + * schedule that event) + * + * @param cameraName the camera name (as registered in + * Cinematic#bindCamera()) + */ + public void setActiveCamera(String cameraName) { + setEnableCurrentCam(false); + currentCam = cameras.get(cameraName); + if (currentCam == null) { + logger.log(Level.WARNING, "{0} is not a camera bond to the cinematic, cannot activate", cameraName); + } + setEnableCurrentCam(true); + } + + /** + * schedule an event that will activate the camera at the given time + * + * @param timeStamp the time to activate the cam + * @param cameraName the camera name (as registered in + * Cinematic#bindCamera()) + */ + public void activateCamera(final float timeStamp, final String cameraName) { + addCinematicEvent(timeStamp, new CameraEvent(this, cameraName)); + } + + /** + * returns the complete eventdata map + * + * @return the eventdata map + */ + private Map> getEventsData() { + if (eventsData == null) { + eventsData = new HashMap>(); + } + return eventsData; + } + + /** + * used internally put an eventdata in the cinematic + * + * @param type the type of data + * @param key the key + * @param object the data + */ + public void putEventData(String type, Object key, Object object) { + Map> data = getEventsData(); + Map row = data.get(type); + if (row == null) { + row = new HashMap(); + } + row.put(key, object); + data.put(type, row); + } + + /** + * used internally return and event data + * + * @param type the type of data + * @param key the key + * @return + */ + public Object getEventData(String type, Object key) { + if (eventsData != null) { + Map row = eventsData.get(type); + if (row != null) { + return row.get(key); + } + } + return null; + } + + /** + * Used internally remove an eventData + * + * @param type the type of data + * @param key the key of the data + */ + public void removeEventData(String type, Object key) { + if (eventsData != null) { + Map row = eventsData.get(type); + if (row != null) { + row.remove(key); + } + } + } + + /** + * sets the scene to use for this cinematic it is expected that the scene is + * added before adding events to the cinematic + * + * @param scene the scene where the cinematic should take place. + */ + public void setScene(Node scene) { + this.scene = scene; + } + + /** + * return the scene where the cinematic occur + * + * @return the scene + */ + public Node getScene() { + return scene; + } + + /** + * clear the cinematic of its events. + */ + public void clear() { + dispose(); + cinematicEvents.clear(); + timeLine.clear(); + if (eventsData != null) { + eventsData.clear(); + } + } + + /** + * used internally to cleanup the cinematic. Called when the clear() method + * is called + */ + @Override + public void dispose() { + for (CinematicEvent event : cinematicEvents) { + event.dispose(); + } + } +} diff --git a/jme3-core/src/main/java/com/jme3/cinematic/KeyFrame.java b/jme3-core/src/main/java/com/jme3/cinematic/KeyFrame.java index a794e3cd0..458a482a9 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/KeyFrame.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/KeyFrame.java @@ -1,89 +1,93 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic; - -import com.jme3.cinematic.events.CinematicEvent; -import com.jme3.export.*; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * - * @author Nehon - */ -public class KeyFrame implements Savable { - - List cinematicEvents = new ArrayList(); - private int index; - - public List getCinematicEvents() { - return cinematicEvents; - } - - public void setCinematicEvents(List cinematicEvents) { - this.cinematicEvents = cinematicEvents; - } - - public List trigger() { - for (CinematicEvent event : cinematicEvents) { - event.play(); - } - return cinematicEvents; - } - - public boolean isEmpty(){ - return cinematicEvents.isEmpty(); - } - - public void write(JmeExporter ex) throws IOException { - OutputCapsule oc = ex.getCapsule(this); - oc.writeSavableArrayList((ArrayList) cinematicEvents, "cinematicEvents", null); - oc.write(index, "index", 0); - } - - public void read(JmeImporter im) throws IOException { - InputCapsule ic = im.getCapsule(this); - cinematicEvents = ic.readSavableArrayList("cinematicEvents", null); - index=ic.readInt("index", 0); - } - - public int getIndex() { - return index; - } - - public void setIndex(int index) { - this.index = index; - } - - -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic; + +import com.jme3.cinematic.events.CinematicEvent; +import com.jme3.export.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author Nehon + */ +public class KeyFrame implements Savable { + + public KeyFrame(){ + + } + + List cinematicEvents = new ArrayList<>(); + private int index; + + public List getCinematicEvents() { + return cinematicEvents; + } + + public void setCinematicEvents(List cinematicEvents) { + this.cinematicEvents = cinematicEvents; + } + + public List trigger() { + for (CinematicEvent event : cinematicEvents) { + event.play(); + } + return cinematicEvents; + } + + public boolean isEmpty(){ + return cinematicEvents.isEmpty(); + } + + public void write(JmeExporter ex) throws IOException { + OutputCapsule oc = ex.getCapsule(this); + oc.writeSavableArrayList((ArrayList) cinematicEvents, "cinematicEvents", null); + oc.write(index, "index", 0); + } + + public void read(JmeImporter im) throws IOException { + InputCapsule ic = im.getCapsule(this); + cinematicEvents = ic.readSavableArrayList("cinematicEvents", null); + index=ic.readInt("index", 0); + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + +} diff --git a/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java b/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java index c77da581d..a3b8b7976 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java @@ -1,447 +1,448 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic.events; - -import com.jme3.animation.AnimChannel; -import com.jme3.animation.AnimControl; -import com.jme3.animation.LoopMode; -import com.jme3.app.Application; -import com.jme3.cinematic.Cinematic; -import com.jme3.cinematic.PlayState; -import com.jme3.export.InputCapsule; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.OutputCapsule; -import com.jme3.scene.Spatial; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Logger; - -/** - * An event based on an animation of a model. The model has to hold an - * AnimControl with valid animation (bone or spatial animations). - * - * It helps to schedule the playback of an animation on a model in a Cinematic. - * - * - * @author Nehon - */ -public class AnimationEvent extends AbstractCinematicEvent { - - // Version #2: directly keeping track on the model instead of trying to retrieve - //it from the scene according to its name, because the name is not supposed to be unique - //For backward compatibility, if the model is null it's looked up into the scene - public static final int SAVABLE_VERSION = 2; - private static final Logger log = Logger.getLogger(AnimationEvent.class.getName()); - public static final String MODEL_CHANNELS = "modelChannels"; - protected AnimChannel channel; - protected String animationName; - protected Spatial model; - //kept for backward compatibility - protected String modelName; - protected float blendTime = 0; - protected int channelIndex = 0; - // parent cinematic - protected Cinematic cinematic; - - /** - * used for serialization don't call directly use one of the following - * constructors - */ - public AnimationEvent() { - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - */ - public AnimationEvent(Spatial model, String animationName) { - this.model = model; - this.animationName = animationName; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, float blendTime) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, float blendTime) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, float blendTime) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, int channelIndex) { - this.model = model; - this.animationName = animationName; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param channelIndex the index of the channel default is 0. Events on the - * @param blendTime the time during the animation are gonna be blended - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex, float blendTime) { - this.model = model; - this.animationName = animationName; - this.loopMode = loopMode; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.channelIndex = channelIndex; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, int channelIndex) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, int channelIndex) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - @Override - public void initEvent(Application app, Cinematic cinematic) { - super.initEvent(app, cinematic); - this.cinematic = cinematic; - if (channel == null) { - Object s = cinematic.getEventData(MODEL_CHANNELS, model); - if (s == null) { - s = new HashMap(); - int numChannels = model.getControl(AnimControl.class).getNumChannels(); - for(int i = 0; i < numChannels; i++){ - ((HashMap)s).put(i, model.getControl(AnimControl.class).getChannel(i)); - } - cinematic.putEventData(MODEL_CHANNELS, model, s); - } - - Map map = (Map) s; - this.channel = map.get(channelIndex); - if (this.channel == null) { - if (model == null) { - //the model is null we try to find it according to the name - //this should occur only when loading an old saved cinematic - //othewise it's an error - model = cinematic.getScene().getChild(modelName); - } - if (model != null) { - channel = model.getControl(AnimControl.class).createChannel(); - map.put(channelIndex, channel); - } else { - //it's an error - throw new UnsupportedOperationException("model should not be null"); - } - } - - } - } - - @Override - public void setTime(float time) { - super.setTime(time); - if (!animationName.equals(channel.getAnimationName())) { - channel.setAnim(animationName, blendTime); - } - float t = time; - if (loopMode == loopMode.Loop) { - t = t % channel.getAnimMaxTime(); - } - if (loopMode == loopMode.Cycle) { - float parity = (float) Math.ceil(time / channel.getAnimMaxTime()); - if (parity > 0 && parity % 2 == 0) { - t = channel.getAnimMaxTime() - t % channel.getAnimMaxTime(); - } else { - t = t % channel.getAnimMaxTime(); - } - - } - if (t < 0) { - channel.setTime(0); - channel.reset(true); - } - if (t > channel.getAnimMaxTime()) { - channel.setTime(t); - channel.getControl().update(0); - stop(); - } else { - channel.setTime(t); - channel.getControl().update(0); - } - - } - - @Override - public void onPlay() { - channel.getControl().setEnabled(true); - if (playState == PlayState.Stopped) { - channel.setAnim(animationName, blendTime); - channel.setSpeed(speed); - channel.setLoopMode(loopMode); - channel.setTime(0); - } - } - - @Override - public void setSpeed(float speed) { - super.setSpeed(speed); - if (channel != null) { - channel.setSpeed(speed); - } - } - - @Override - public void onUpdate(float tpf) { - } - - @Override - public void onStop() { - } - - @Override - public void forceStop() { - if (channel != null) { - channel.setTime(time); - channel.reset(false); - } - super.forceStop(); - } - - @Override - public void onPause() { - if (channel != null) { - channel.getControl().setEnabled(false); - } - } - - @Override - public void setLoopMode(LoopMode loopMode) { - super.setLoopMode(loopMode); - if (channel != null) { - channel.setLoopMode(loopMode); - } - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - - oc.write(model, "model", null); - oc.write(animationName, "animationName", ""); - oc.write(blendTime, "blendTime", 0f); - oc.write(channelIndex, "channelIndex", 0); - - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - if (im.getFormatVersion() == 0) { - modelName = ic.readString("modelName", ""); - } - //FIXME always the same issue, because of the clonning of assets, this won't work - //we have to somehow store userdata in the spatial and then recurse the - //scene sub scenegraph to find the correct instance of the model - //This brings a reflaxion about the cinematic being an appstate, - //shouldn't it be a control over the scene - // this would allow to use the cloneForSpatial method and automatically - //rebind cloned references of original objects. - //for now as nobody probably ever saved a cinematic, this is not a critical issue - model = (Spatial) ic.readSavable("model", null); - animationName = ic.readString("animationName", ""); - blendTime = ic.readFloat("blendTime", 0f); - channelIndex = ic.readInt("channelIndex", 0); - } - - @Override - public void dispose() { - super.dispose(); - if (cinematic != null) { - Object o = cinematic.getEventData(MODEL_CHANNELS, model); - if (o != null) { - Collection values = ((HashMap) o).values(); - while (values.remove(channel)); - if (values.isEmpty()) { - cinematic.removeEventData(MODEL_CHANNELS, model); - } - } - cinematic = null; - channel = null; - } - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic.events; + +import com.jme3.animation.AnimChannel; +import com.jme3.animation.AnimControl; +import com.jme3.animation.LoopMode; +import com.jme3.app.Application; +import com.jme3.cinematic.Cinematic; +import com.jme3.cinematic.PlayState; +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import com.jme3.scene.Spatial; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Logger; + +/** + * An event based on an animation of a model. The model has to hold an + * AnimControl with valid animation (bone or spatial animations). + * + * It helps to schedule the playback of an animation on a model in a Cinematic. + * + * + * @author Nehon + */ +public class AnimationEvent extends AbstractCinematicEvent { + + // Version #2: directly keeping track on the model instead of trying to retrieve + //it from the scene according to its name, because the name is not supposed to be unique + //For backward compatibility, if the model is null it's looked up into the scene + public static final int SAVABLE_VERSION = 2; + private static final Logger log = Logger.getLogger(AnimationEvent.class.getName()); + public static final String MODEL_CHANNELS = "modelChannels"; + protected AnimChannel channel; + protected String animationName; + protected Spatial model; + //kept for backward compatibility + protected String modelName; + protected float blendTime = 0; + protected int channelIndex = 0; + // parent cinematic + protected Cinematic cinematic; + + /** + * used for serialization don't call directly use one of the following + * constructors + */ + public AnimationEvent() { + super(); + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + */ + public AnimationEvent(Spatial model, String animationName) { + this.model = model; + this.animationName = animationName; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration) { + super(initialDuration); + this.model = model; + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + this.model = model; + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, float blendTime) { + super(initialDuration); + this.model = model; + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, float blendTime) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, float blendTime) { + super(initialDuration, loopMode); + this.model = model; + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, int channelIndex) { + this.model = model; + this.animationName = animationName; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param channelIndex the index of the channel default is 0. Events on the + * @param blendTime the time during the animation are gonna be blended + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex, float blendTime) { + this.model = model; + this.animationName = animationName; + this.loopMode = loopMode; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.channelIndex = channelIndex; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, int channelIndex) { + super(initialDuration); + this.model = model; + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, int channelIndex) { + super(initialDuration, loopMode); + this.model = model; + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + @Override + public void initEvent(Application app, Cinematic cinematic) { + super.initEvent(app, cinematic); + this.cinematic = cinematic; + if (channel == null) { + Object s = cinematic.getEventData(MODEL_CHANNELS, model); + if (s == null) { + s = new HashMap(); + int numChannels = model.getControl(AnimControl.class).getNumChannels(); + for(int i = 0; i < numChannels; i++){ + ((HashMap)s).put(i, model.getControl(AnimControl.class).getChannel(i)); + } + cinematic.putEventData(MODEL_CHANNELS, model, s); + } + + Map map = (Map) s; + this.channel = map.get(channelIndex); + if (this.channel == null) { + if (model == null) { + //the model is null we try to find it according to the name + //this should occur only when loading an old saved cinematic + //othewise it's an error + model = cinematic.getScene().getChild(modelName); + } + if (model != null) { + channel = model.getControl(AnimControl.class).createChannel(); + map.put(channelIndex, channel); + } else { + //it's an error + throw new UnsupportedOperationException("model should not be null"); + } + } + + } + } + + @Override + public void setTime(float time) { + super.setTime(time); + if (!animationName.equals(channel.getAnimationName())) { + channel.setAnim(animationName, blendTime); + } + float t = time; + if (loopMode == loopMode.Loop) { + t = t % channel.getAnimMaxTime(); + } + if (loopMode == loopMode.Cycle) { + float parity = (float) Math.ceil(time / channel.getAnimMaxTime()); + if (parity > 0 && parity % 2 == 0) { + t = channel.getAnimMaxTime() - t % channel.getAnimMaxTime(); + } else { + t = t % channel.getAnimMaxTime(); + } + + } + if (t < 0) { + channel.setTime(0); + channel.reset(true); + } + if (t > channel.getAnimMaxTime()) { + channel.setTime(t); + channel.getControl().update(0); + stop(); + } else { + channel.setTime(t); + channel.getControl().update(0); + } + + } + + @Override + public void onPlay() { + channel.getControl().setEnabled(true); + if (playState == PlayState.Stopped) { + channel.setAnim(animationName, blendTime); + channel.setSpeed(speed); + channel.setLoopMode(loopMode); + channel.setTime(0); + } + } + + @Override + public void setSpeed(float speed) { + super.setSpeed(speed); + if (channel != null) { + channel.setSpeed(speed); + } + } + + @Override + public void onUpdate(float tpf) { + } + + @Override + public void onStop() { + } + + @Override + public void forceStop() { + if (channel != null) { + channel.setTime(time); + channel.reset(false); + } + super.forceStop(); + } + + @Override + public void onPause() { + if (channel != null) { + channel.getControl().setEnabled(false); + } + } + + @Override + public void setLoopMode(LoopMode loopMode) { + super.setLoopMode(loopMode); + if (channel != null) { + channel.setLoopMode(loopMode); + } + } + + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + + oc.write(model, "model", null); + oc.write(animationName, "animationName", ""); + oc.write(blendTime, "blendTime", 0f); + oc.write(channelIndex, "channelIndex", 0); + + } + + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule ic = im.getCapsule(this); + if (im.getFormatVersion() == 0) { + modelName = ic.readString("modelName", ""); + } + //FIXME always the same issue, because of the clonning of assets, this won't work + //we have to somehow store userdata in the spatial and then recurse the + //scene sub scenegraph to find the correct instance of the model + //This brings a reflaxion about the cinematic being an appstate, + //shouldn't it be a control over the scene + // this would allow to use the cloneForSpatial method and automatically + //rebind cloned references of original objects. + //for now as nobody probably ever saved a cinematic, this is not a critical issue + model = (Spatial) ic.readSavable("model", null); + animationName = ic.readString("animationName", ""); + blendTime = ic.readFloat("blendTime", 0f); + channelIndex = ic.readInt("channelIndex", 0); + } + + @Override + public void dispose() { + super.dispose(); + if (cinematic != null) { + Object o = cinematic.getEventData(MODEL_CHANNELS, model); + if (o != null) { + Collection values = ((HashMap) o).values(); + while (values.remove(channel)); + if (values.isEmpty()) { + cinematic.removeEventData(MODEL_CHANNELS, model); + } + } + cinematic = null; + channel = null; + } + } +} diff --git a/jme3-core/src/main/java/com/jme3/cinematic/events/CameraEvent.java b/jme3-core/src/main/java/com/jme3/cinematic/events/CameraEvent.java new file mode 100644 index 000000000..80d677e3c --- /dev/null +++ b/jme3-core/src/main/java/com/jme3/cinematic/events/CameraEvent.java @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2009-2017 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic.events; + +import com.jme3.app.Application; +import com.jme3.cinematic.Cinematic; +import com.jme3.cinematic.TimeLine; +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import com.jme3.export.Savable; +import com.jme3.scene.CameraNode; +import java.io.IOException; +import java.util.Map; + +/** + * + * @author Rickard + */ +public class CameraEvent extends AbstractCinematicEvent{ + + private String cameraName; + private Cinematic cinematic; + + public String getCameraName() { + return cameraName; + } + + public void setCameraName(String cameraName) { + this.cameraName = cameraName; + } + + public CameraEvent(){ + + } + + public CameraEvent(Cinematic parentEvent, String cameraName){ + this.cinematic = parentEvent; + this.cameraName = cameraName; + } + + @Override + public void initEvent(Application app, Cinematic cinematic) { + super.initEvent(app, cinematic); + this.cinematic = cinematic; + } + + @Override + public void play() { + super.play(); + stop(); + } + + @Override + public void onPlay() { + cinematic.setActiveCamera(cameraName); + } + + @Override + public void onUpdate(float tpf) { + } + + @Override + public void onStop() { + } + + @Override + public void onPause() { + } + + @Override + public void forceStop() { + } + + @Override + public void setTime(float time) { + play(); + } + + public Cinematic getCinematic() { + return cinematic; + } + + public void setCinematic(Cinematic cinematic) { + this.cinematic = cinematic; + } + + + + /** + * used internally for serialization + * + * @param ex + * @throws IOException + */ + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + oc.write(cameraName, "cameraName", null); + + } + + /** + * used internally for serialization + * + * @param im + * @throws IOException + */ + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule ic = im.getCapsule(this); + cameraName = ic.readString("cameraName", null); + } +} diff --git a/jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java b/jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java index b94bd25d7..176c3cb67 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/events/MotionEvent.java @@ -1,491 +1,491 @@ -/* - * Copyright (c) 2009-2016 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic.events; - -import com.jme3.animation.AnimationUtils; -import com.jme3.animation.LoopMode; -import com.jme3.app.Application; -import com.jme3.cinematic.Cinematic; -import com.jme3.cinematic.MotionPath; -import com.jme3.cinematic.PlayState; -import com.jme3.export.InputCapsule; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.OutputCapsule; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector3f; -import com.jme3.renderer.RenderManager; -import com.jme3.renderer.ViewPort; -import com.jme3.scene.Spatial; -import com.jme3.scene.control.Control; -import com.jme3.util.clone.Cloner; -import com.jme3.util.clone.JmeCloneable; -import java.io.IOException; - -/** - * A MotionEvent is a control over the spatial that manages the position and direction of the spatial while following a motion Path. - * - * You must first create a MotionPath and then create a MotionEvent to associate a spatial and the path. - * - * @author Nehon - */ -public class MotionEvent extends AbstractCinematicEvent implements Control, JmeCloneable { - - protected Spatial spatial; - protected int currentWayPoint; - protected float currentValue; - protected Vector3f direction = new Vector3f(); - protected Vector3f lookAt = null; - protected Vector3f upVector = Vector3f.UNIT_Y; - protected Quaternion rotation = null; - protected Direction directionType = Direction.None; - protected MotionPath path; - private boolean isControl = true; - private int travelDirection = 1; - /** - * the distance traveled by the spatial on the path - */ - protected float traveledDistance = 0; - - /** - * Enum for the different type of target direction behavior. - */ - public enum Direction { - - /** - * The target stays in the starting direction. - */ - None, - /** - * The target rotates with the direction of the path. - */ - Path, - /** - * The target rotates with the direction of the path but with the addition of a rotation. - * You need to use the setRotation method when using this Direction. - */ - PathAndRotation, - /** - * The target rotates with the given rotation. - */ - Rotation, - /** - * The target looks at a point. - * You need to use the setLookAt method when using this direction. - */ - LookAt - } - - /** - * Create MotionEvent, - * when using this constructor don't forget to assign spatial and path. - */ - public MotionEvent() { - super(); - } - - /** - * Creates a MotionPath for the given spatial on the given motion path. - * @param spatial - * @param path - */ - public MotionEvent(Spatial spatial, MotionPath path) { - super(); - spatial.addControl(this); - this.path = path; - } - - /** - * Creates a MotionPath for the given spatial on the given motion path. - * @param spatial - * @param path - */ - public MotionEvent(Spatial spatial, MotionPath path, float initialDuration) { - super(initialDuration); - spatial.addControl(this); - this.path = path; - } - - /** - * Creates a MotionPath for the given spatial on the given motion path. - * @param spatial - * @param path - */ - public MotionEvent(Spatial spatial, MotionPath path, LoopMode loopMode) { - super(); - spatial.addControl(this); - this.path = path; - this.loopMode = loopMode; - } - - /** - * Creates a MotionPath for the given spatial on the given motion path. - * @param spatial - * @param path - */ - public MotionEvent(Spatial spatial, MotionPath path, float initialDuration, LoopMode loopMode) { - super(initialDuration); - spatial.addControl(this); - this.path = path; - this.loopMode = loopMode; - } - - public void update(float tpf) { - if (isControl) { - internalUpdate(tpf); - } - } - - @Override - public void internalUpdate(float tpf) { - if (playState == PlayState.Playing) { - time = time + (tpf * speed); - if (loopMode == LoopMode.Loop && time < 0) { - time = initialDuration; - } - if ((time >= initialDuration || time < 0) && loopMode == LoopMode.DontLoop) { - if (time >= initialDuration) { - path.triggerWayPointReach(path.getNbWayPoints() - 1, this); - } - stop(); - } else { - time = AnimationUtils.clampWrapTime(time, initialDuration, loopMode); - if(time<0){ - speed = - speed; - time = - time; - } - onUpdate(tpf); - } - } - } - - @Override - public void initEvent(Application app, Cinematic cinematic) { - super.initEvent(app, cinematic); - isControl = false; - } - - @Override - public void setTime(float time) { - super.setTime(time); - onUpdate(0); - } - - public void onUpdate(float tpf) { - traveledDistance = path.interpolatePath(time, this, tpf); - computeTargetDirection(); - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - oc.write(lookAt, "lookAt", null); - oc.write(upVector, "upVector", Vector3f.UNIT_Y); - oc.write(rotation, "rotation", null); - oc.write(directionType, "directionType", Direction.None); - oc.write(path, "path", null); - oc.write(spatial, "spatial", null); - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule in = im.getCapsule(this); - lookAt = (Vector3f) in.readSavable("lookAt", null); - upVector = (Vector3f) in.readSavable("upVector", Vector3f.UNIT_Y); - rotation = (Quaternion) in.readSavable("rotation", null); - directionType = in.readEnum("directionType", Direction.class, Direction.None); - path = (MotionPath) in.readSavable("path", null); - spatial = (Spatial) in.readSavable("spatial", null); - } - - /** - * This method is meant to be called by the motion path only. - * @return - */ - public boolean needsDirection() { - return directionType == Direction.Path || directionType == Direction.PathAndRotation; - } - - private void computeTargetDirection() { - switch (directionType) { - case Path: - Quaternion q = new Quaternion(); - q.lookAt(direction, upVector); - spatial.setLocalRotation(q); - break; - case LookAt: - if (lookAt != null) { - spatial.lookAt(lookAt, upVector); - } - break; - case PathAndRotation: - if (rotation != null) { - Quaternion q2 = new Quaternion(); - q2.lookAt(direction, upVector); - q2.multLocal(rotation); - spatial.setLocalRotation(q2); - } - break; - case Rotation: - if (rotation != null) { - spatial.setLocalRotation(rotation); - } - break; - case None: - break; - default: - break; - } - } - - /** - * Clone this control for the given spatial. - * @param spatial - * @return - */ - @Override - public Control cloneForSpatial(Spatial spatial) { - MotionEvent control = new MotionEvent(); - control.setPath(path); - control.playState = playState; - control.currentWayPoint = currentWayPoint; - control.currentValue = currentValue; - control.direction = direction.clone(); - control.lookAt = lookAt; - control.upVector = upVector.clone(); - control.rotation = rotation; - control.initialDuration = initialDuration; - control.speed = speed; - control.loopMode = loopMode; - control.directionType = directionType; - - return control; - } - - @Override - public Object jmeClone() { - MotionEvent control = new MotionEvent(); - control.path = path; - control.playState = playState; - control.currentWayPoint = currentWayPoint; - control.currentValue = currentValue; - control.direction = direction.clone(); - control.lookAt = lookAt; - control.upVector = upVector.clone(); - control.rotation = rotation; - control.initialDuration = initialDuration; - control.speed = speed; - control.loopMode = loopMode; - control.directionType = directionType; - control.spatial = spatial; - - return control; - } - - @Override - public void cloneFields( Cloner cloner, Object original ) { - this.spatial = cloner.clone(spatial); - } - - @Override - public void onPlay() { - traveledDistance = 0; - } - - @Override - public void onStop() { - currentWayPoint = 0; - } - - @Override - public void onPause() { - } - - /** - * This method is meant to be called by the motion path only. - * @return - */ - public float getCurrentValue() { - return currentValue; - } - - /** - * This method is meant to be called by the motion path only. - * - */ - public void setCurrentValue(float currentValue) { - this.currentValue = currentValue; - } - - /** - * This method is meant to be called by the motion path only. - * @return - */ - public int getCurrentWayPoint() { - return currentWayPoint; - } - - /** - * This method is meant to be called by the motion path only. - * - */ - public void setCurrentWayPoint(int currentWayPoint) { - this.currentWayPoint = currentWayPoint; - } - - /** - * Returns the direction the spatial is moving. - * @return - */ - public Vector3f getDirection() { - return direction; - } - - /** - * Sets the direction of the spatial, using the Y axis as the up vector. - * Use MotionEvent#setDirection((Vector3f direction,Vector3f upVector) if - * you want a custum up vector. - * This method is used by the motion path. - * @param direction - */ - public void setDirection(Vector3f direction) { - setDirection(direction, Vector3f.UNIT_Y); - } - - /** - * Sets the direction of the spatial with the given up vector. - * This method is used by the motion path. - * @param direction - * @param upVector the up vector to consider for this direction. - */ - public void setDirection(Vector3f direction,Vector3f upVector) { - this.direction.set(direction); - this.upVector.set(upVector); - } - - /** - * Returns the direction type of the target. - * @return the direction type. - */ - public Direction getDirectionType() { - return directionType; - } - - /** - * Sets the direction type of the target. - * On each update the direction given to the target can have different behavior. - * See the Direction Enum for explanations. - * @param directionType the direction type. - */ - public void setDirectionType(Direction directionType) { - this.directionType = directionType; - } - - /** - * Set the lookAt for the target. - * This can be used only if direction Type is Direction.LookAt. - * @param lookAt the position to look at. - * @param upVector the up vector. - */ - public void setLookAt(Vector3f lookAt, Vector3f upVector) { - this.lookAt = lookAt; - this.upVector = upVector; - } - - /** - * Returns the rotation of the target. - * @return the rotation quaternion. - */ - public Quaternion getRotation() { - return rotation; - } - - /** - * Sets the rotation of the target. - * This can be used only if direction Type is Direction.PathAndRotation or Direction.Rotation. - * With PathAndRotation the target will face the direction of the path multiplied by the given Quaternion. - * With Rotation the rotation of the target will be set with the given Quaternion. - * @param rotation the rotation quaternion. - */ - public void setRotation(Quaternion rotation) { - this.rotation = rotation; - } - - /** - * Return the motion path this control follows. - * @return - */ - public MotionPath getPath() { - return path; - } - - /** - * Sets the motion path to follow. - * @param path - */ - public void setPath(MotionPath path) { - this.path = path; - } - - public void setEnabled(boolean enabled) { - if (enabled) { - play(); - } else { - pause(); - } - } - - public boolean isEnabled() { - return playState != PlayState.Stopped; - } - - public void render(RenderManager rm, ViewPort vp) { - } - - public void setSpatial(Spatial spatial) { - this.spatial = spatial; - } - - public Spatial getSpatial() { - return spatial; - } - - /** - * Return the distance traveled by the spatial on the path. - * @return - */ - public float getTraveledDistance() { - return traveledDistance; - } -} +/* + * Copyright (c) 2009-2016 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic.events; + +import com.jme3.animation.AnimationUtils; +import com.jme3.animation.LoopMode; +import com.jme3.app.Application; +import com.jme3.cinematic.Cinematic; +import com.jme3.cinematic.MotionPath; +import com.jme3.cinematic.PlayState; +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector3f; +import com.jme3.renderer.RenderManager; +import com.jme3.renderer.ViewPort; +import com.jme3.scene.Spatial; +import com.jme3.scene.control.Control; +import com.jme3.util.clone.Cloner; +import com.jme3.util.clone.JmeCloneable; +import java.io.IOException; + +/** + * A MotionEvent is a control over the spatial that manages the position and direction of the spatial while following a motion Path. + * + * You must first create a MotionPath and then create a MotionEvent to associate a spatial and the path. + * + * @author Nehon + */ +public class MotionEvent extends AbstractCinematicEvent implements Control, JmeCloneable { + + protected Spatial spatial; + protected int currentWayPoint; + protected float currentValue; + protected Vector3f direction = new Vector3f(); + protected Vector3f lookAt = null; + protected Vector3f upVector = Vector3f.UNIT_Y; + protected Quaternion rotation = null; + protected Direction directionType = Direction.None; + protected MotionPath path; + private boolean isControl = true; + private int travelDirection = 1; + /** + * the distance traveled by the spatial on the path + */ + protected float traveledDistance = 0; + + /** + * Enum for the different type of target direction behavior. + */ + public enum Direction { + + /** + * The target stays in the starting direction. + */ + None, + /** + * The target rotates with the direction of the path. + */ + Path, + /** + * The target rotates with the direction of the path but with the addition of a rotation. + * You need to use the setRotation method when using this Direction. + */ + PathAndRotation, + /** + * The target rotates with the given rotation. + */ + Rotation, + /** + * The target looks at a point. + * You need to use the setLookAt method when using this direction. + */ + LookAt + } + + /** + * Create MotionEvent, + * when using this constructor don't forget to assign spatial and path. + */ + public MotionEvent() { + super(); + } + + /** + * Creates a MotionPath for the given spatial on the given motion path. + * @param spatial + * @param path + */ + public MotionEvent(Spatial spatial, MotionPath path) { + super(); + spatial.addControl(this); + this.path = path; + } + + /** + * Creates a MotionPath for the given spatial on the given motion path. + * @param spatial + * @param path + */ + public MotionEvent(Spatial spatial, MotionPath path, float initialDuration) { + super(initialDuration); + spatial.addControl(this); + this.path = path; + } + + /** + * Creates a MotionPath for the given spatial on the given motion path. + * @param spatial + * @param path + */ + public MotionEvent(Spatial spatial, MotionPath path, LoopMode loopMode) { + super(); + spatial.addControl(this); + this.path = path; + this.loopMode = loopMode; + } + + /** + * Creates a MotionPath for the given spatial on the given motion path. + * @param spatial + * @param path + */ + public MotionEvent(Spatial spatial, MotionPath path, float initialDuration, LoopMode loopMode) { + super(initialDuration); + spatial.addControl(this); + this.path = path; + this.loopMode = loopMode; + } + + public void update(float tpf) { + if (isControl) { + internalUpdate(tpf); + } + } + + @Override + public void internalUpdate(float tpf) { + if (playState == PlayState.Playing) { + time = time + (tpf * speed); + if (loopMode == LoopMode.Loop && time < 0) { + time = initialDuration; + } + if ((time >= initialDuration || time < 0) && loopMode == LoopMode.DontLoop) { + if (time >= initialDuration) { + path.triggerWayPointReach(path.getNbWayPoints() - 1, this); + } + stop(); + } else { + time = AnimationUtils.clampWrapTime(time, initialDuration, loopMode); + if(time<0){ + speed = - speed; + time = - time; + } + onUpdate(tpf); + } + } + } + + @Override + public void initEvent(Application app, Cinematic cinematic) { + super.initEvent(app, cinematic); + isControl = false; + } + + @Override + public void setTime(float time) { + super.setTime(time); + onUpdate(0); + } + + public void onUpdate(float tpf) { + traveledDistance = path.interpolatePath(time, this, tpf); + computeTargetDirection(); + } + + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + oc.write(lookAt, "lookAt", null); + oc.write(upVector, "upVector", Vector3f.UNIT_Y); + oc.write(rotation, "rotation", null); + oc.write(directionType, "directionType", Direction.None); + oc.write(path, "path", null); + oc.write(spatial, "spatial", null); + } + + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule in = im.getCapsule(this); + lookAt = (Vector3f) in.readSavable("lookAt", null); + upVector = (Vector3f) in.readSavable("upVector", Vector3f.UNIT_Y); + rotation = (Quaternion) in.readSavable("rotation", null); + directionType = in.readEnum("directionType", Direction.class, Direction.None); + path = (MotionPath) in.readSavable("path", null); + spatial = (Spatial) in.readSavable("spatial", null); + } + + /** + * This method is meant to be called by the motion path only. + * @return + */ + public boolean needsDirection() { + return directionType == Direction.Path || directionType == Direction.PathAndRotation; + } + + private void computeTargetDirection() { + switch (directionType) { + case Path: + Quaternion q = new Quaternion(); + q.lookAt(direction, upVector); + spatial.setLocalRotation(q); + break; + case LookAt: + if (lookAt != null) { + spatial.lookAt(lookAt, upVector); + } + break; + case PathAndRotation: + if (rotation != null) { + Quaternion q2 = new Quaternion(); + q2.lookAt(direction, upVector); + q2.multLocal(rotation); + spatial.setLocalRotation(q2); + } + break; + case Rotation: + if (rotation != null) { + spatial.setLocalRotation(rotation); + } + break; + case None: + break; + default: + break; + } + } + + /** + * Clone this control for the given spatial. + * @param spatial + * @return + */ + @Override + public Control cloneForSpatial(Spatial spatial) { + MotionEvent control = new MotionEvent(); + control.setPath(path); + control.playState = playState; + control.currentWayPoint = currentWayPoint; + control.currentValue = currentValue; + control.direction = direction.clone(); + control.lookAt = lookAt; + control.upVector = upVector.clone(); + control.rotation = rotation; + control.initialDuration = initialDuration; + control.speed = speed; + control.loopMode = loopMode; + control.directionType = directionType; + + return control; + } + + @Override + public Object jmeClone() { + MotionEvent control = new MotionEvent(); + control.path = path; + control.playState = playState; + control.currentWayPoint = currentWayPoint; + control.currentValue = currentValue; + control.direction = direction.clone(); + control.lookAt = lookAt; + control.upVector = upVector.clone(); + control.rotation = rotation; + control.initialDuration = initialDuration; + control.speed = speed; + control.loopMode = loopMode; + control.directionType = directionType; + control.spatial = spatial; + + return control; + } + + @Override + public void cloneFields( Cloner cloner, Object original ) { + this.spatial = cloner.clone(spatial); + } + + @Override + public void onPlay() { + traveledDistance = 0; + } + + @Override + public void onStop() { + currentWayPoint = 0; + } + + @Override + public void onPause() { + } + + /** + * This method is meant to be called by the motion path only. + * @return + */ + public float getCurrentValue() { + return currentValue; + } + + /** + * This method is meant to be called by the motion path only. + * + */ + public void setCurrentValue(float currentValue) { + this.currentValue = currentValue; + } + + /** + * This method is meant to be called by the motion path only. + * @return + */ + public int getCurrentWayPoint() { + return currentWayPoint; + } + + /** + * This method is meant to be called by the motion path only. + * + */ + public void setCurrentWayPoint(int currentWayPoint) { + this.currentWayPoint = currentWayPoint; + } + + /** + * Returns the direction the spatial is moving. + * @return + */ + public Vector3f getDirection() { + return direction; + } + + /** + * Sets the direction of the spatial, using the Y axis as the up vector. + * Use MotionEvent#setDirection((Vector3f direction,Vector3f upVector) if + * you want a custum up vector. + * This method is used by the motion path. + * @param direction + */ + public void setDirection(Vector3f direction) { + setDirection(direction, Vector3f.UNIT_Y); + } + + /** + * Sets the direction of the spatial with the given up vector. + * This method is used by the motion path. + * @param direction + * @param upVector the up vector to consider for this direction. + */ + public void setDirection(Vector3f direction,Vector3f upVector) { + this.direction.set(direction); + this.upVector.set(upVector); + } + + /** + * Returns the direction type of the target. + * @return the direction type. + */ + public Direction getDirectionType() { + return directionType; + } + + /** + * Sets the direction type of the target. + * On each update the direction given to the target can have different behavior. + * See the Direction Enum for explanations. + * @param directionType the direction type. + */ + public void setDirectionType(Direction directionType) { + this.directionType = directionType; + } + + /** + * Set the lookAt for the target. + * This can be used only if direction Type is Direction.LookAt. + * @param lookAt the position to look at. + * @param upVector the up vector. + */ + public void setLookAt(Vector3f lookAt, Vector3f upVector) { + this.lookAt = lookAt; + this.upVector = upVector; + } + + /** + * Returns the rotation of the target. + * @return the rotation quaternion. + */ + public Quaternion getRotation() { + return rotation; + } + + /** + * Sets the rotation of the target. + * This can be used only if direction Type is Direction.PathAndRotation or Direction.Rotation. + * With PathAndRotation the target will face the direction of the path multiplied by the given Quaternion. + * With Rotation the rotation of the target will be set with the given Quaternion. + * @param rotation the rotation quaternion. + */ + public void setRotation(Quaternion rotation) { + this.rotation = rotation; + } + + /** + * Return the motion path this control follows. + * @return + */ + public MotionPath getPath() { + return path; + } + + /** + * Sets the motion path to follow. + * @param path + */ + public void setPath(MotionPath path) { + this.path = path; + } + + public void setEnabled(boolean enabled) { + if (enabled) { + play(); + } else { + pause(); + } + } + + public boolean isEnabled() { + return playState != PlayState.Stopped; + } + + public void render(RenderManager rm, ViewPort vp) { + } + + public void setSpatial(Spatial spatial) { + this.spatial = spatial; + } + + public Spatial getSpatial() { + return spatial; + } + + /** + * Return the distance traveled by the spatial on the path. + * @return + */ + public float getTraveledDistance() { + return traveledDistance; + } +} diff --git a/jme3-core/src/main/java/com/jme3/cinematic/events/SoundEvent.java b/jme3-core/src/main/java/com/jme3/cinematic/events/SoundEvent.java index 02c3ae754..6de7e21f6 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/events/SoundEvent.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/events/SoundEvent.java @@ -1,229 +1,230 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic.events; - -import com.jme3.animation.LoopMode; -import com.jme3.app.Application; -import com.jme3.audio.AudioNode; -import com.jme3.audio.AudioSource; -import com.jme3.cinematic.Cinematic; -import com.jme3.export.InputCapsule; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.OutputCapsule; -import java.io.IOException; - -/** - * A sound track to be played in a cinematic. - * @author Nehon - */ -public class SoundEvent extends AbstractCinematicEvent { - - protected String path; - protected AudioNode audioNode; - protected boolean stream = false; - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - */ - public SoundEvent(String path) { - this.path = path; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param stream true to make the audio data streamed - */ - public SoundEvent(String path, boolean stream) { - this(path); - this.stream = stream; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param stream true to make the audio data streamed - * @param initialDuration the initial duration of the event - */ - public SoundEvent(String path, boolean stream, float initialDuration) { - super(initialDuration); - this.path = path; - this.stream = stream; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param stream true to make the audio data streamed - * @param loopMode the loopMode - * @see LoopMode - */ - public SoundEvent(String path, boolean stream, LoopMode loopMode) { - super(loopMode); - this.path = path; - this.stream = stream; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param stream true to make the audio data streamed - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - */ - public SoundEvent(String path, boolean stream, float initialDuration, LoopMode loopMode) { - super(initialDuration, loopMode); - this.path = path; - this.stream = stream; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param initialDuration the initial duration of the event - */ - public SoundEvent(String path, float initialDuration) { - super(initialDuration); - this.path = path; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param loopMode the loopMode - * @see LoopMode - */ - public SoundEvent(String path, LoopMode loopMode) { - super(loopMode); - this.path = path; - } - - /** - * creates a sound track from the given resource path - * @param path the path to an audio file (ie : "Sounds/mySound.wav") - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - */ - public SoundEvent(String path, float initialDuration, LoopMode loopMode) { - super(initialDuration, loopMode); - this.path = path; - } - - /** - * creates a sound event - * used for serialization - */ - public SoundEvent() { - } - - @Override - public void initEvent(Application app, Cinematic cinematic) { - super.initEvent(app, cinematic); - audioNode = new AudioNode(app.getAssetManager(), path, stream); - audioNode.setPositional(false); - setLoopMode(loopMode); - } - - @Override - public void setTime(float time) { - super.setTime(time); - //can occur on rewind - if (time < 0f) { - stop(); - }else{ - audioNode.setTimeOffset(time); - } - } - - @Override - public void onPlay() { - audioNode.play(); - } - - @Override - public void onStop() { - audioNode.stop(); - - } - - @Override - public void onPause() { - audioNode.pause(); - } - - @Override - public void onUpdate(float tpf) { - if (audioNode.getStatus() == AudioSource.Status.Stopped) { - stop(); - } - } - - /** - * Returns the underlying audio node of this sound track - * @return - */ - public AudioNode getAudioNode() { - return audioNode; - } - - @Override - public void setLoopMode(LoopMode loopMode) { - super.setLoopMode(loopMode); - - if (loopMode != LoopMode.DontLoop) { - audioNode.setLooping(true); - } else { - audioNode.setLooping(false); - } - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - oc.write(path, "path", ""); - oc.write(stream, "stream", false); - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - path = ic.readString("path", ""); - stream = ic.readBoolean("stream", false); - - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic.events; + +import com.jme3.animation.LoopMode; +import com.jme3.app.Application; +import com.jme3.audio.AudioNode; +import com.jme3.audio.AudioSource; +import com.jme3.cinematic.Cinematic; +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import java.io.IOException; + +/** + * A sound track to be played in a cinematic. + * @author Nehon + */ +public class SoundEvent extends AbstractCinematicEvent { + + protected String path; + protected AudioNode audioNode; + protected boolean stream = false; + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + */ + public SoundEvent(String path) { + this.path = path; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param stream true to make the audio data streamed + */ + public SoundEvent(String path, boolean stream) { + this(path); + this.stream = stream; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param stream true to make the audio data streamed + * @param initialDuration the initial duration of the event + */ + public SoundEvent(String path, boolean stream, float initialDuration) { + super(initialDuration); + this.path = path; + this.stream = stream; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param stream true to make the audio data streamed + * @param loopMode the loopMode + * @see LoopMode + */ + public SoundEvent(String path, boolean stream, LoopMode loopMode) { + super(loopMode); + this.path = path; + this.stream = stream; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param stream true to make the audio data streamed + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + */ + public SoundEvent(String path, boolean stream, float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + this.path = path; + this.stream = stream; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param initialDuration the initial duration of the event + */ + public SoundEvent(String path, float initialDuration) { + super(initialDuration); + this.path = path; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param loopMode the loopMode + * @see LoopMode + */ + public SoundEvent(String path, LoopMode loopMode) { + super(loopMode); + this.path = path; + } + + /** + * creates a sound track from the given resource path + * @param path the path to an audio file (ie : "Sounds/mySound.wav") + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + */ + public SoundEvent(String path, float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + this.path = path; + } + + /** + * creates a sound event + * used for serialization + */ + public SoundEvent() { + super(); + } + + @Override + public void initEvent(Application app, Cinematic cinematic) { + super.initEvent(app, cinematic); + audioNode = new AudioNode(app.getAssetManager(), path, stream); + audioNode.setPositional(false); + setLoopMode(loopMode); + } + + @Override + public void setTime(float time) { + super.setTime(time); + //can occur on rewind + if (time < 0f) { + stop(); + }else{ + audioNode.setTimeOffset(time); + } + } + + @Override + public void onPlay() { + audioNode.play(); + } + + @Override + public void onStop() { + audioNode.stop(); + + } + + @Override + public void onPause() { + audioNode.pause(); + } + + @Override + public void onUpdate(float tpf) { + if (audioNode.getStatus() == AudioSource.Status.Stopped) { + stop(); + } + } + + /** + * Returns the underlying audio node of this sound track + * @return + */ + public AudioNode getAudioNode() { + return audioNode; + } + + @Override + public void setLoopMode(LoopMode loopMode) { + super.setLoopMode(loopMode); + + if (loopMode != LoopMode.DontLoop) { + audioNode.setLooping(true); + } else { + audioNode.setLooping(false); + } + } + + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + oc.write(path, "path", ""); + oc.write(stream, "stream", false); + } + + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule ic = im.getCapsule(this); + path = ic.readString("path", ""); + stream = ic.readBoolean("stream", false); + + } +} diff --git a/jme3-core/src/main/java/com/jme3/scene/CameraNode.java b/jme3-core/src/main/java/com/jme3/scene/CameraNode.java index 44fed8208..220686f56 100644 --- a/jme3-core/src/main/java/com/jme3/scene/CameraNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/CameraNode.java @@ -1,122 +1,123 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.scene; - -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.renderer.Camera; -import com.jme3.scene.control.CameraControl; -import com.jme3.scene.control.CameraControl.ControlDirection; -import com.jme3.util.clone.Cloner; -import java.io.IOException; - -/** - * CameraNode simply uses {@link CameraControl} to implement - * linking of camera and node data. - * - * @author Tim8Dev - */ -public class CameraNode extends Node { - - private CameraControl camControl; - - /** - * Serialization only. Do not use. - */ - public CameraNode() { - } - - public CameraNode(String name, Camera camera) { - this(name, new CameraControl(camera)); - } - - public CameraNode(String name, CameraControl control) { - super(name); - addControl(control); - camControl = control; - } - - public void setEnabled(boolean enabled) { - camControl.setEnabled(enabled); - } - - public boolean isEnabled() { - return camControl.isEnabled(); - } - - public void setControlDir(ControlDirection controlDir) { - camControl.setControlDir(controlDir); - } - - public void setCamera(Camera camera) { - camControl.setCamera(camera); - } - - public ControlDirection getControlDir() { - return camControl.getControlDir(); - } - - public Camera getCamera() { - return camControl.getCamera(); - } - -// @Override -// public void lookAt(Vector3f position, Vector3f upVector) { -// this.lookAt(position, upVector); -// camControl.getCamera().lookAt(position, upVector); -// } - - /** - * Called internally by com.jme3.util.clone.Cloner. Do not call directly. - */ - @Override - public void cloneFields( Cloner cloner, Object original ) { - super.cloneFields(cloner, original); - - // A change in behavior... I think previously CameraNode was probably - // not really cloneable... or at least its camControl would be pointing - // to the wrong control. -pspeed - this.camControl = cloner.clone(camControl); - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - camControl = (CameraControl)im.getCapsule(this).readSavable("camControl", null); - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - ex.getCapsule(this).write(camControl, "camControl", null); - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.scene; + +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.renderer.Camera; +import com.jme3.scene.control.CameraControl; +import com.jme3.scene.control.CameraControl.ControlDirection; +import com.jme3.util.clone.Cloner; +import java.io.IOException; + +/** + * CameraNode simply uses {@link CameraControl} to implement + * linking of camera and node data. + * + * @author Tim8Dev + */ +public class CameraNode extends Node { + + private CameraControl camControl; + + /** + * Serialization only. Do not use. + */ + public CameraNode() { + super(); + } + + public CameraNode(String name, Camera camera) { + this(name, new CameraControl(camera)); + } + + public CameraNode(String name, CameraControl control) { + super(name); + addControl(control); + camControl = control; + } + + public void setEnabled(boolean enabled) { + camControl.setEnabled(enabled); + } + + public boolean isEnabled() { + return camControl.isEnabled(); + } + + public void setControlDir(ControlDirection controlDir) { + camControl.setControlDir(controlDir); + } + + public void setCamera(Camera camera) { + camControl.setCamera(camera); + } + + public ControlDirection getControlDir() { + return camControl.getControlDir(); + } + + public Camera getCamera() { + return camControl.getCamera(); + } + +// @Override +// public void lookAt(Vector3f position, Vector3f upVector) { +// this.lookAt(position, upVector); +// camControl.getCamera().lookAt(position, upVector); +// } + + /** + * Called internally by com.jme3.util.clone.Cloner. Do not call directly. + */ + @Override + public void cloneFields( Cloner cloner, Object original ) { + super.cloneFields(cloner, original); + + // A change in behavior... I think previously CameraNode was probably + // not really cloneable... or at least its camControl would be pointing + // to the wrong control. -pspeed + this.camControl = cloner.clone(camControl); + } + + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + camControl = (CameraControl)im.getCapsule(this).readSavable("camControl", null); + } + + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + ex.getCapsule(this).write(camControl, "camControl", null); + } +} From 74f2f703b32d4e6bc3f5483ccc33ba534f6f5c57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Fri, 24 Nov 2017 10:19:53 +0100 Subject: [PATCH 048/150] Several changes to load cinematics Cinematic: * Reattach CameraNode to scene * Set CameraNode's camera to be app's camera AnimationEvent: * Save modelName * Use modelName and try to replace scene's model in initEvent --- .../java/com/jme3/cinematic/Cinematic.java | 13 +- .../jme3/cinematic/events/AnimationEvent.java | 924 +++++++++--------- 2 files changed, 487 insertions(+), 450 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java b/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java index 8a9e99b65..c14ac9dbd 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/Cinematic.java @@ -277,7 +277,11 @@ public class Cinematic extends AbstractCinematicEvent implements AppState { for (CinematicEvent cinematicEvent : cinematicEvents) { cinematicEvent.initEvent(app, this); } - + if(!cameras.isEmpty()){ + for(CameraNode n : cameras.values()){ + n.setCamera(app.getCamera()); + } + } initialized = true; } @@ -336,7 +340,7 @@ public class Cinematic extends AbstractCinematicEvent implements AppState { */ @Override public void update(float tpf) { - if (isInitialized()) { + if (isInitialized() && playState == PlayState.Playing) { internalUpdate(tpf); } } @@ -670,6 +674,11 @@ public class Cinematic extends AbstractCinematicEvent implements AppState { */ public void setScene(Node scene) { this.scene = scene; + if(!cameras.isEmpty()){ + for(CameraNode n : cameras.values()){ + this.scene.attachChild(n); + } + } } /** diff --git a/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java b/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java index a3b8b7976..6dfc2a260 100644 --- a/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java +++ b/jme3-core/src/main/java/com/jme3/cinematic/events/AnimationEvent.java @@ -1,448 +1,476 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.cinematic.events; - -import com.jme3.animation.AnimChannel; -import com.jme3.animation.AnimControl; -import com.jme3.animation.LoopMode; -import com.jme3.app.Application; -import com.jme3.cinematic.Cinematic; -import com.jme3.cinematic.PlayState; -import com.jme3.export.InputCapsule; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.OutputCapsule; -import com.jme3.scene.Spatial; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Logger; - -/** - * An event based on an animation of a model. The model has to hold an - * AnimControl with valid animation (bone or spatial animations). - * - * It helps to schedule the playback of an animation on a model in a Cinematic. - * - * - * @author Nehon - */ -public class AnimationEvent extends AbstractCinematicEvent { - - // Version #2: directly keeping track on the model instead of trying to retrieve - //it from the scene according to its name, because the name is not supposed to be unique - //For backward compatibility, if the model is null it's looked up into the scene - public static final int SAVABLE_VERSION = 2; - private static final Logger log = Logger.getLogger(AnimationEvent.class.getName()); - public static final String MODEL_CHANNELS = "modelChannels"; - protected AnimChannel channel; - protected String animationName; - protected Spatial model; - //kept for backward compatibility - protected String modelName; - protected float blendTime = 0; - protected int channelIndex = 0; - // parent cinematic - protected Cinematic cinematic; - - /** - * used for serialization don't call directly use one of the following - * constructors - */ - public AnimationEvent() { - super(); - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - */ - public AnimationEvent(Spatial model, String animationName) { - this.model = model; - this.animationName = animationName; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, float blendTime) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, float blendTime) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - * @param blendTime the time during the animation are gonna be blended - * @see AnimChannel#setAnim(java.lang.String, float) - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, float blendTime) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param loopMode the loopMode - * @see LoopMode - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex) { - super(loopMode); - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, int channelIndex) { - this.model = model; - this.animationName = animationName; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param channelIndex the index of the channel default is 0. Events on the - * @param blendTime the time during the animation are gonna be blended - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex, float blendTime) { - this.model = model; - this.animationName = animationName; - this.loopMode = loopMode; - initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); - this.channelIndex = channelIndex; - this.blendTime = blendTime; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, int channelIndex) { - super(initialDuration); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - /** - * creates an animation event - * - * @param model the model on which the animation will be played - * @param animationName the name of the animation to play - * @param initialDuration the initial duration of the event - * @param loopMode the loopMode - * @see LoopMode - * @param channelIndex the index of the channel default is 0. Events on the - * same channelIndex will use the same channel. - */ - public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, int channelIndex) { - super(initialDuration, loopMode); - this.model = model; - this.animationName = animationName; - this.channelIndex = channelIndex; - } - - @Override - public void initEvent(Application app, Cinematic cinematic) { - super.initEvent(app, cinematic); - this.cinematic = cinematic; - if (channel == null) { - Object s = cinematic.getEventData(MODEL_CHANNELS, model); - if (s == null) { - s = new HashMap(); - int numChannels = model.getControl(AnimControl.class).getNumChannels(); - for(int i = 0; i < numChannels; i++){ - ((HashMap)s).put(i, model.getControl(AnimControl.class).getChannel(i)); - } - cinematic.putEventData(MODEL_CHANNELS, model, s); - } - - Map map = (Map) s; - this.channel = map.get(channelIndex); - if (this.channel == null) { - if (model == null) { - //the model is null we try to find it according to the name - //this should occur only when loading an old saved cinematic - //othewise it's an error - model = cinematic.getScene().getChild(modelName); - } - if (model != null) { - channel = model.getControl(AnimControl.class).createChannel(); - map.put(channelIndex, channel); - } else { - //it's an error - throw new UnsupportedOperationException("model should not be null"); - } - } - - } - } - - @Override - public void setTime(float time) { - super.setTime(time); - if (!animationName.equals(channel.getAnimationName())) { - channel.setAnim(animationName, blendTime); - } - float t = time; - if (loopMode == loopMode.Loop) { - t = t % channel.getAnimMaxTime(); - } - if (loopMode == loopMode.Cycle) { - float parity = (float) Math.ceil(time / channel.getAnimMaxTime()); - if (parity > 0 && parity % 2 == 0) { - t = channel.getAnimMaxTime() - t % channel.getAnimMaxTime(); - } else { - t = t % channel.getAnimMaxTime(); - } - - } - if (t < 0) { - channel.setTime(0); - channel.reset(true); - } - if (t > channel.getAnimMaxTime()) { - channel.setTime(t); - channel.getControl().update(0); - stop(); - } else { - channel.setTime(t); - channel.getControl().update(0); - } - - } - - @Override - public void onPlay() { - channel.getControl().setEnabled(true); - if (playState == PlayState.Stopped) { - channel.setAnim(animationName, blendTime); - channel.setSpeed(speed); - channel.setLoopMode(loopMode); - channel.setTime(0); - } - } - - @Override - public void setSpeed(float speed) { - super.setSpeed(speed); - if (channel != null) { - channel.setSpeed(speed); - } - } - - @Override - public void onUpdate(float tpf) { - } - - @Override - public void onStop() { - } - - @Override - public void forceStop() { - if (channel != null) { - channel.setTime(time); - channel.reset(false); - } - super.forceStop(); - } - - @Override - public void onPause() { - if (channel != null) { - channel.getControl().setEnabled(false); - } - } - - @Override - public void setLoopMode(LoopMode loopMode) { - super.setLoopMode(loopMode); - if (channel != null) { - channel.setLoopMode(loopMode); - } - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - - oc.write(model, "model", null); - oc.write(animationName, "animationName", ""); - oc.write(blendTime, "blendTime", 0f); - oc.write(channelIndex, "channelIndex", 0); - - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - if (im.getFormatVersion() == 0) { - modelName = ic.readString("modelName", ""); - } - //FIXME always the same issue, because of the clonning of assets, this won't work - //we have to somehow store userdata in the spatial and then recurse the - //scene sub scenegraph to find the correct instance of the model - //This brings a reflaxion about the cinematic being an appstate, - //shouldn't it be a control over the scene - // this would allow to use the cloneForSpatial method and automatically - //rebind cloned references of original objects. - //for now as nobody probably ever saved a cinematic, this is not a critical issue - model = (Spatial) ic.readSavable("model", null); - animationName = ic.readString("animationName", ""); - blendTime = ic.readFloat("blendTime", 0f); - channelIndex = ic.readInt("channelIndex", 0); - } - - @Override - public void dispose() { - super.dispose(); - if (cinematic != null) { - Object o = cinematic.getEventData(MODEL_CHANNELS, model); - if (o != null) { - Collection values = ((HashMap) o).values(); - while (values.remove(channel)); - if (values.isEmpty()) { - cinematic.removeEventData(MODEL_CHANNELS, model); - } - } - cinematic = null; - channel = null; - } - } -} +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.cinematic.events; + +import com.jme3.animation.AnimChannel; +import com.jme3.animation.AnimControl; +import com.jme3.animation.LoopMode; +import com.jme3.app.Application; +import com.jme3.cinematic.Cinematic; +import com.jme3.cinematic.PlayState; +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import com.jme3.scene.Node; +import com.jme3.scene.Spatial; +import com.jme3.util.clone.Cloner; +import com.jme3.util.clone.JmeCloneable; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Logger; + +/** + * An event based on an animation of a model. The model has to hold an + * AnimControl with valid animation (bone or spatial animations). + * + * It helps to schedule the playback of an animation on a model in a Cinematic. + * + * + * @author Nehon + */ +public class AnimationEvent extends AbstractCinematicEvent { + + // Version #2: directly keeping track on the model instead of trying to retrieve + //it from the scene according to its name, because the name is not supposed to be unique + //For backward compatibility, if the model is null it's looked up into the scene + public static final int SAVABLE_VERSION = 2; + private static final Logger log = Logger.getLogger(AnimationEvent.class.getName()); + public static final String MODEL_CHANNELS = "modelChannels"; + protected AnimChannel channel; + protected String animationName; + protected Spatial model; + //kept for backward compatibility + protected String modelName; + protected float blendTime = 0; + protected int channelIndex = 0; + // parent cinematic + protected Cinematic cinematic; + + /** + * used for serialization don't call directly use one of the following + * constructors + */ + public AnimationEvent() { + super(); + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + */ + public AnimationEvent(Spatial model, String animationName) { + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration) { + super(initialDuration); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode) { + super(initialDuration, loopMode); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, float blendTime) { + super(initialDuration); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, float blendTime) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + * @param blendTime the time during the animation are gonna be blended + * @see AnimChannel#setAnim(java.lang.String, float) + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, float blendTime) { + super(initialDuration, loopMode); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param loopMode the loopMode + * @see LoopMode + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex) { + super(loopMode); + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, int channelIndex) { + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param channelIndex the index of the channel default is 0. Events on the + * @param blendTime the time during the animation are gonna be blended + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, LoopMode loopMode, int channelIndex, float blendTime) { + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.loopMode = loopMode; + initialDuration = model.getControl(AnimControl.class).getAnimationLength(animationName); + this.channelIndex = channelIndex; + this.blendTime = blendTime; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, int channelIndex) { + super(initialDuration); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + /** + * creates an animation event + * + * @param model the model on which the animation will be played + * @param animationName the name of the animation to play + * @param initialDuration the initial duration of the event + * @param loopMode the loopMode + * @see LoopMode + * @param channelIndex the index of the channel default is 0. Events on the + * same channelIndex will use the same channel. + */ + public AnimationEvent(Spatial model, String animationName, float initialDuration, LoopMode loopMode, int channelIndex) { + super(initialDuration, loopMode); + this.model = model; + this.modelName = model.getName(); + this.animationName = animationName; + this.channelIndex = channelIndex; + } + + @Override + public void initEvent(Application app, Cinematic cinematic) { + super.initEvent(app, cinematic); + this.cinematic = cinematic; + if (channel == null) { + Object s = cinematic.getEventData(MODEL_CHANNELS, model); + if (s == null) { + s = new HashMap(); + int numChannels = model.getControl(AnimControl.class).getNumChannels(); + for(int i = 0; i < numChannels; i++){ + ((HashMap)s).put(i, model.getControl(AnimControl.class).getChannel(i)); + } + cinematic.putEventData(MODEL_CHANNELS, model, s); + } + + Map map = (Map) s; + this.channel = map.get(channelIndex); + if (this.channel == null) { + if (model == null) { + //the model is null we try to find it according to the name + //this should occur only when loading an old saved cinematic + //othewise it's an error + model = cinematic.getScene().getChild(modelName); + } + if (model != null) { + if(cinematic.getScene() != null){ + Spatial sceneModel = cinematic.getScene().getChild(model.getName()); + if(sceneModel != null){ + Node parent = sceneModel.getParent(); + parent.detachChild(sceneModel); + sceneModel = model; + parent.attachChild(sceneModel); + } else { + cinematic.getScene().attachChild(model); + } + } + + channel = model.getControl(AnimControl.class).createChannel(); + map.put(channelIndex, channel); + } else { + //it's an error + throw new UnsupportedOperationException("model should not be null"); + } + } + + } + } + + @Override + public void setTime(float time) { + super.setTime(time); + if (!animationName.equals(channel.getAnimationName())) { + channel.setAnim(animationName, blendTime); + } + float t = time; + if (loopMode == loopMode.Loop) { + t = t % channel.getAnimMaxTime(); + } + if (loopMode == loopMode.Cycle) { + float parity = (float) Math.ceil(time / channel.getAnimMaxTime()); + if (parity > 0 && parity % 2 == 0) { + t = channel.getAnimMaxTime() - t % channel.getAnimMaxTime(); + } else { + t = t % channel.getAnimMaxTime(); + } + + } + if (t < 0) { + channel.setTime(0); + channel.reset(true); + } + if (t > channel.getAnimMaxTime()) { + channel.setTime(t); + channel.getControl().update(0); + stop(); + } else { + channel.setTime(t); + channel.getControl().update(0); + } + + } + + @Override + public void onPlay() { + channel.getControl().setEnabled(true); + if (playState == PlayState.Stopped) { + channel.setAnim(animationName, blendTime); + channel.setSpeed(speed); + channel.setLoopMode(loopMode); + channel.setTime(0); + } + } + + @Override + public void setSpeed(float speed) { + super.setSpeed(speed); + if (channel != null) { + channel.setSpeed(speed); + } + } + + @Override + public void onUpdate(float tpf) { + } + + @Override + public void onStop() { + } + + @Override + public void forceStop() { + if (channel != null) { + channel.setTime(time); + channel.reset(false); + } + super.forceStop(); + } + + @Override + public void onPause() { + if (channel != null) { + channel.getControl().setEnabled(false); + } + } + + @Override + public void setLoopMode(LoopMode loopMode) { + super.setLoopMode(loopMode); + if (channel != null) { + channel.setLoopMode(loopMode); + } + } + + @Override + public void write(JmeExporter ex) throws IOException { + super.write(ex); + OutputCapsule oc = ex.getCapsule(this); + + oc.write(model, "model", null); + oc.write(modelName, "modelName", null); + oc.write(animationName, "animationName", ""); + oc.write(blendTime, "blendTime", 0f); + oc.write(channelIndex, "channelIndex", 0); + + } + + @Override + public void read(JmeImporter im) throws IOException { + super.read(im); + InputCapsule ic = im.getCapsule(this); +// if (im.getFormatVersion() == 0) { + modelName = ic.readString("modelName", ""); +// } + //FIXME always the same issue, because of the clonning of assets, this won't work + //we have to somehow store userdata in the spatial and then recurse the + //scene sub scenegraph to find the correct instance of the model + //This brings a reflaxion about the cinematic being an appstate, + //shouldn't it be a control over the scene + // this would allow to use the cloneForSpatial method and automatically + //rebind cloned references of original objects. + //for now as nobody probably ever saved a cinematic, this is not a critical issue + model = (Spatial) ic.readSavable("model", null); + animationName = ic.readString("animationName", ""); + blendTime = ic.readFloat("blendTime", 0f); + channelIndex = ic.readInt("channelIndex", 0); + } + + @Override + public void dispose() { + super.dispose(); + if (cinematic != null) { + Object o = cinematic.getEventData(MODEL_CHANNELS, model); + if (o != null) { + Collection values = ((HashMap) o).values(); + while (values.remove(channel)); + if (values.isEmpty()) { + cinematic.removeEventData(MODEL_CHANNELS, model); + } + } + cinematic = null; + channel = null; + } + } +} From 8674d8af4b0c0b05ac8bb1c1f9c4cd11491ffd14 Mon Sep 17 00:00:00 2001 From: javasabr Date: Fri, 24 Nov 2017 10:49:53 +0300 Subject: [PATCH 049/150] fixed detecting varyings during loading shader nodes in the case, when we have several output parameters with the same name but with different name spaces. --- .../plugins/ShaderNodeLoaderDelegate.java | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java index cb75687b0..06241f242 100644 --- a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java +++ b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java @@ -70,10 +70,10 @@ public class ShaderNodeLoaderDelegate { protected ShaderNodeDefinition shaderNodeDefinition; protected ShaderNode shaderNode; protected TechniqueDef techniqueDef; - protected Map attributes = new HashMap(); - protected Map vertexDeclaredUniforms = new HashMap(); - protected Map fragmentDeclaredUniforms = new HashMap(); - protected Map varyings = new HashMap(); + protected Map attributes = new HashMap<>(); + protected Map vertexDeclaredUniforms = new HashMap<>(); + protected Map fragmentDeclaredUniforms = new HashMap<>(); + protected Map varyings = new HashMap<>(); protected MaterialDef materialDef; protected String shaderLanguage; protected String shaderName; @@ -553,13 +553,13 @@ public class ShaderNodeLoaderDelegate { //the right variable must have the same multiplicity and the same condition. right.setMultiplicity(multiplicity); right.setCondition(mapping.getLeftVariable().getCondition()); - } + } dv = new DeclaredVariable(right); map.put(right.getName(), dv); - dv.addNode(shaderNode); + dv.addNode(shaderNode); mapping.setRightVariable(right); return true; - } + } dv.addNode(shaderNode); mapping.setRightVariable(dv.var); return false; @@ -943,21 +943,33 @@ public class ShaderNodeLoaderDelegate { */ public void storeVaryings(ShaderNode node, ShaderNodeVariable variable) { variable.setShaderOutput(true); - if (node.getDefinition().getType() == Shader.ShaderType.Vertex && shaderNode.getDefinition().getType() == Shader.ShaderType.Fragment) { - DeclaredVariable dv = varyings.get(variable.getName()); - if (dv == null) { - techniqueDef.getShaderGenerationInfo().getVaryings().add(variable); - dv = new DeclaredVariable(variable); - varyings.put(variable.getName(), dv); - } - dv.addNode(shaderNode); - //if a variable is declared with the same name as an input and an output and is a varying, set it as a shader output so it's declared as a varying only once. - for (VariableMapping variableMapping : node.getInputMapping()) { - final ShaderNodeVariable leftVariable = variableMapping.getLeftVariable(); - if (leftVariable.getName().equals(variable.getName())) { - leftVariable.setShaderOutput(true); - } + final ShaderNodeDefinition nodeDefinition = node.getDefinition(); + final ShaderNodeDefinition currentDefinition = shaderNode.getDefinition(); + + if (nodeDefinition.getType() != Shader.ShaderType.Vertex || + currentDefinition.getType() != Shader.ShaderType.Fragment) { + return; + } + + final String fullName = node.getName() + "." + variable.getName(); + + DeclaredVariable declaredVar = varyings.get(fullName); + + if (declaredVar == null) { + techniqueDef.getShaderGenerationInfo().getVaryings().add(variable); + declaredVar = new DeclaredVariable(variable); + varyings.put(fullName, declaredVar); + } + + declaredVar.addNode(shaderNode); + + // if a variable is declared with the same name as an input and an output and is a varying, + // set it as a shader output so it's declared as a varying only once. + for (final VariableMapping variableMapping : node.getInputMapping()) { + final ShaderNodeVariable leftVariable = variableMapping.getLeftVariable(); + if (leftVariable.getName().equals(variable.getName())) { + leftVariable.setShaderOutput(true); } } } @@ -1022,7 +1034,7 @@ public class ShaderNodeLoaderDelegate { private Map getNodeDefinitions() { if (nodeDefinitions == null) { - nodeDefinitions = new HashMap(); + nodeDefinitions = new HashMap<>(); } return nodeDefinitions; } From 24e467a8719221489392fe95d8e4ff4a862d58fa Mon Sep 17 00:00:00 2001 From: javasabr Date: Tue, 21 Nov 2017 07:09:35 +0300 Subject: [PATCH 050/150] fixed the problem with the reference to light, when we had incorrect reference to the light after loading/cloning spatial of this control. --- .../com/jme3/scene/control/LightControl.java | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/control/LightControl.java b/jme3-core/src/main/java/com/jme3/scene/control/LightControl.java index 36d29c542..1cdfdaf07 100644 --- a/jme3-core/src/main/java/com/jme3/scene/control/LightControl.java +++ b/jme3-core/src/main/java/com/jme3/scene/control/LightControl.java @@ -42,8 +42,9 @@ import com.jme3.light.SpotLight; import com.jme3.math.Vector3f; import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; -import com.jme3.scene.Spatial; import com.jme3.util.TempVars; +import com.jme3.util.clone.Cloner; + import java.io.IOException; /** @@ -54,7 +55,10 @@ import java.io.IOException; */ public class LightControl extends AbstractControl { - public static enum ControlDirection { + private static final String CONTROL_DIR_NAME = "controlDir"; + private static final String LIGHT_NAME = "light"; + + public enum ControlDirection { /** * Means, that the Light's transform is "copied" @@ -67,6 +71,7 @@ public class LightControl extends AbstractControl { */ SpatialToLight; } + private Light light; private ControlDirection controlDir = ControlDirection.SpatialToLight; @@ -113,7 +118,7 @@ public class LightControl extends AbstractControl { if (spatial != null && light != null) { switch (controlDir) { case SpatialToLight: - spatialTolight(light); + spatialToLight(light); break; case LightToSpatial: lightToSpatial(light); @@ -122,22 +127,29 @@ public class LightControl extends AbstractControl { } } - private void spatialTolight(Light light) { + private void spatialToLight(Light light) { + + final Vector3f worldTranslation = spatial.getWorldTranslation(); + if (light instanceof PointLight) { - ((PointLight) light).setPosition(spatial.getWorldTranslation()); + ((PointLight) light).setPosition(worldTranslation); + return; } - TempVars vars = TempVars.get(); + + final TempVars vars = TempVars.get(); + final Vector3f vec = vars.vect1; if (light instanceof DirectionalLight) { - ((DirectionalLight) light).setDirection(vars.vect1.set(spatial.getWorldTranslation()).multLocal(-1.0f)); + ((DirectionalLight) light).setDirection(vec.set(worldTranslation).multLocal(-1.0f)); } if (light instanceof SpotLight) { - ((SpotLight) light).setPosition(spatial.getWorldTranslation()); - ((SpotLight) light).setDirection(spatial.getWorldRotation().multLocal(vars.vect1.set(Vector3f.UNIT_Y).multLocal(-1))); + final SpotLight spotLight = (SpotLight) light; + spotLight.setPosition(worldTranslation); + spotLight.setDirection(spatial.getWorldRotation().multLocal(vec.set(Vector3f.UNIT_Y).multLocal(-1))); } - vars.release(); + vars.release(); } private void lightToSpatial(Light light) { @@ -158,8 +170,6 @@ public class LightControl extends AbstractControl { } vars.release(); //TODO add code for Spot light here when it's done - - } @Override @@ -167,23 +177,18 @@ public class LightControl extends AbstractControl { // nothing to do } - // default implementation from AbstractControl is equivalent - //@Override - //public Control cloneForSpatial(Spatial newSpatial) { - // LightControl control = new LightControl(light, controlDir); - // control.setSpatial(newSpatial); - // control.setEnabled(isEnabled()); - // return control; - //} - private static final String CONTROL_DIR_NAME = "controlDir"; - private static final String LIGHT_NAME = "light"; - + @Override + public void cloneFields(final Cloner cloner, final Object original) { + super.cloneFields(cloner, original); + light = cloner.clone(light); + } + @Override public void read(JmeImporter im) throws IOException { super.read(im); InputCapsule ic = im.getCapsule(this); controlDir = ic.readEnum(CONTROL_DIR_NAME, ControlDirection.class, ControlDirection.SpatialToLight); - light = (Light)ic.readSavable(LIGHT_NAME, null); + light = (Light) ic.readSavable(LIGHT_NAME, null); } @Override From 7aafb514bf66316d706ef611e80eddc8f77ae688 Mon Sep 17 00:00:00 2001 From: NemesisMate Date: Sun, 7 May 2017 14:09:12 +0100 Subject: [PATCH 051/150] Fixed #652 The issue was due to the texture blending with the object material. By default the material is gray (hence, a gray border). If the material color in blender is set to another color this is being the artifact's color. It can bee seen where the alpha in the texture isn't totally 0 or 1. The current implementation weren't taking in account the material transparency when blending, so the fix is basically to use it just like blender does: --- .../blender/textures/blending/TextureBlenderAWT.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java index 1d7bf2146..db4acc68f 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java @@ -163,8 +163,16 @@ public class TextureBlenderAWT extends AbstractTextureBlender { * the blender context */ protected void blendPixel(float[] result, float[] materialColor, float[] pixelColor, BlenderContext blenderContext) { + // We calculate first the importance of the texture (colFactor * texAlphaValue) float blendFactor = this.blendFactor * pixelColor[3]; - float oneMinusFactor = 1.0f - blendFactor, col; + // Then, we get the object material factor ((1 - texture importance) * matAlphaValue) + float oneMinusFactor = (1f - blendFactor) * materialColor[3]; + // Finally, we can get the final blendFactor, which is 1 - the material factor. + blendFactor = 1f - oneMinusFactor; + + // --- Compact method --- + // float blendFactor = this.blendFactor * (1f - ((1f - pixelColor[3]) * materialColor[3])); + // float oneMinusFactor = 1f - blendFactor; switch (blendType) { case MTEX_BLEND: From ab8ddd5ab5be9763ca93aa75ad903083b733617e Mon Sep 17 00:00:00 2001 From: NemesisMate Date: Sat, 15 Jul 2017 10:39:56 +0100 Subject: [PATCH 052/150] Added missing var declaration. --- .../plugins/blender/textures/blending/TextureBlenderAWT.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java index db4acc68f..1c6f2549d 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/blending/TextureBlenderAWT.java @@ -174,6 +174,8 @@ public class TextureBlenderAWT extends AbstractTextureBlender { // float blendFactor = this.blendFactor * (1f - ((1f - pixelColor[3]) * materialColor[3])); // float oneMinusFactor = 1f - blendFactor; + float col; + switch (blendType) { case MTEX_BLEND: result[0] = blendFactor * pixelColor[0] + oneMinusFactor * materialColor[0]; From a9cf6a348fc3a3d4ff1bb8787bdce71fc8424da7 Mon Sep 17 00:00:00 2001 From: NemesisMate Date: Thu, 27 Apr 2017 13:32:14 +0100 Subject: [PATCH 053/150] Fix #646 Ignoring the alpha influencer (mapping) if the color one was found first. --- .../plugins/blender/textures/TextureHelper.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java index 8913f5864..8bd1a2503 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java @@ -614,8 +614,15 @@ public class TextureHelper extends AbstractBlenderHelper { int texflag = ((Number) textureData.mtex.getFieldValue("texflag")).intValue(); boolean negateTexture = (texflag & 0x04) != 0; + boolean colorSet = false; for (int i = 0; i < mappings.length; ++i) { if ((mappings[i] & mapto.intValue()) != 0) { + if(mappings[i] == MaterialContext.MTEX_COL) { + colorSet = true; + } else if(colorSet && mappings[i] == MaterialContext.MTEX_ALPHA) { + continue; + } + CombinedTexture combinedTexture = new CombinedTexture(mappings[i], !skyTexture); int blendType = ((Number) textureData.mtex.getFieldValue("blendtype")).intValue(); float[] color = new float[] { ((Number) textureData.mtex.getFieldValue("r")).floatValue(), ((Number) textureData.mtex.getFieldValue("g")).floatValue(), ((Number) textureData.mtex.getFieldValue("b")).floatValue() }; @@ -646,8 +653,16 @@ public class TextureHelper extends AbstractBlenderHelper { Map> result = new HashMap>(); for (TextureData data : textures) { Number mapto = (Number) data.mtex.getFieldValue("mapto"); + + boolean colorSet = false; for (int i = 0; i < mappings.length; ++i) { if ((mappings[i] & mapto.intValue()) != 0) { + if(mappings[i] == MaterialContext.MTEX_COL) { + colorSet = true; + } else if(colorSet && mappings[i] == MaterialContext.MTEX_ALPHA) { + continue; + } + List datas = result.get(mappings[i]); if (datas == null) { datas = new ArrayList(); @@ -668,4 +683,4 @@ public class TextureHelper extends AbstractBlenderHelper { /** The name of the user's UV coordinates that are used for this texture. */ public String uvCoordinatesName; } -} \ No newline at end of file +} From 893741701bff098bc087797f79758f71e10fc8a2 Mon Sep 17 00:00:00 2001 From: NemesisMate Date: Sat, 15 Apr 2017 14:15:14 +0100 Subject: [PATCH 054/150] Fixed #642 It was overriding the userDefinedUVCoords each time any one of them was used, so if different textures were depending on it, a new texCoord buffer was being created. --- .../blender/materials/MaterialContext.java | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/materials/MaterialContext.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/materials/MaterialContext.java index 1995da0af..a1b6695d8 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/materials/MaterialContext.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/materials/MaterialContext.java @@ -1,6 +1,7 @@ package com.jme3.scene.plugins.blender.materials; import java.io.IOException; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -163,6 +164,12 @@ public final class MaterialContext implements Savable { material.setColor("Ambient", new ColorRGBA(ambientFactor, ambientFactor, ambientFactor, 1f)); } + + // initializing unused "user-defined UV coords" to all available + Map> unusedUserDefinedUVCoords = Collections.emptyMap(); + if(userDefinedUVCoordinates != null && !userDefinedUVCoordinates.isEmpty()) { + unusedUserDefinedUVCoords = new HashMap<>(userDefinedUVCoordinates); + } // applying textures int textureIndex = 0; @@ -175,16 +182,19 @@ public final class MaterialContext implements Savable { String usedUserUVSet = combinedTexture.flatten(geometry, geometriesOMA, userDefinedUVCoordinates, blenderContext); this.setTexture(material, combinedTexture.getMappingType(), combinedTexture.getResultTexture()); - List uvs = combinedTexture.getResultUVS(); - if(uvs != null && uvs.size() > 0) { - VertexBuffer uvCoordsBuffer = new VertexBuffer(TextureHelper.TEXCOORD_TYPES[textureIndex++]); - uvCoordsBuffer.setupData(Usage.Static, 2, Format.Float, BufferUtils.createFloatBuffer(uvs.toArray(new Vector2f[uvs.size()]))); - geometry.getMesh().setBuffer(uvCoordsBuffer); - }//uvs might be null if the user assigned non existing UV coordinates group name to the mesh (this should be fixed in blender file) - if(usedUserUVSet != null) { - userDefinedUVCoordinates = new HashMap<>(userDefinedUVCoordinates); - userDefinedUVCoordinates.remove(usedUserUVSet); + if(usedUserUVSet == null || unusedUserDefinedUVCoords.containsKey(usedUserUVSet)) { + List uvs = combinedTexture.getResultUVS(); + if(uvs != null && uvs.size() > 0) { + VertexBuffer uvCoordsBuffer = new VertexBuffer(TextureHelper.TEXCOORD_TYPES[textureIndex++]); + uvCoordsBuffer.setupData(Usage.Static, 2, Format.Float, BufferUtils.createFloatBuffer(uvs.toArray(new Vector2f[uvs.size()]))); + geometry.getMesh().setBuffer(uvCoordsBuffer); + }//uvs might be null if the user assigned non existing UV coordinates group name to the mesh (this should be fixed in blender file) + + // Remove used "user-defined UV coords" from the unused collection + if(usedUserUVSet != null) { + unusedUserDefinedUVCoords.remove(usedUserUVSet); + } } } else { LOGGER.log(Level.WARNING, "The texture could not be applied because JME only supports up to {0} different UV's.", TextureHelper.TEXCOORD_TYPES.length); @@ -192,12 +202,12 @@ public final class MaterialContext implements Savable { } } - if (userDefinedUVCoordinates != null && userDefinedUVCoordinates.size() > 0) { + if (unusedUserDefinedUVCoords != null && unusedUserDefinedUVCoords.size() > 0) { LOGGER.fine("Storing unused, user defined UV coordinates sets."); - if (userDefinedUVCoordinates.size() > TextureHelper.TEXCOORD_TYPES.length) { + if (unusedUserDefinedUVCoords.size() > TextureHelper.TEXCOORD_TYPES.length) { LOGGER.log(Level.WARNING, "The blender file has defined more than {0} different UV coordinates for the mesh. JME supports only {0} UV coordinates buffers.", TextureHelper.TEXCOORD_TYPES.length); } - for (Entry> entry : userDefinedUVCoordinates.entrySet()) { + for (Entry> entry : unusedUserDefinedUVCoords.entrySet()) { if (textureIndex < TextureHelper.TEXCOORD_TYPES.length) { List uvs = entry.getValue(); VertexBuffer uvCoordsBuffer = new VertexBuffer(TextureHelper.TEXCOORD_TYPES[textureIndex++]); From 5d729af1c47b31f88f4eff62f22c5797e6d1314b Mon Sep 17 00:00:00 2001 From: NemesisMate Date: Fri, 14 Apr 2017 09:07:05 +0100 Subject: [PATCH 055/150] Fixed a IndexOutOfBoundsException when residual weights are present --- .../plugins/blender/meshes/MeshHelper.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/MeshHelper.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/MeshHelper.java index 49482c87f..4fcab8723 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/MeshHelper.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/meshes/MeshHelper.java @@ -291,27 +291,30 @@ public class MeshHelper extends AbstractBlenderHelper { Structure defbase = (Structure) parent.getFieldValue("defbase"); List groupNames = new ArrayList(); List defs = defbase.evaluateListBase(); - for (Structure def : defs) { - groupNames.add(def.getFieldValue("name").toString()); - } + + if(!defs.isEmpty()) { + for (Structure def : defs) { + groupNames.add(def.getFieldValue("name").toString()); + } - Pointer pDvert = (Pointer) meshStructure.getFieldValue("dvert");// dvert = DeformVERTices - if (pDvert.isNotNull()) {// assigning weights and bone indices - List dverts = pDvert.fetchData(); - for (Structure dvert : dverts) { - Map weightsForVertex = new HashMap(); - Pointer pDW = (Pointer) dvert.getFieldValue("dw"); - if (pDW.isNotNull()) { - List dw = pDW.fetchData(); - for (Structure deformWeight : dw) { - int groupIndex = ((Number) deformWeight.getFieldValue("def_nr")).intValue(); - float weight = ((Number) deformWeight.getFieldValue("weight")).floatValue(); - String groupName = groupNames.get(groupIndex); + Pointer pDvert = (Pointer) meshStructure.getFieldValue("dvert");// dvert = DeformVERTices + if (pDvert.isNotNull()) {// assigning weights and bone indices + List dverts = pDvert.fetchData(); + for (Structure dvert : dverts) { + Map weightsForVertex = new HashMap(); + Pointer pDW = (Pointer) dvert.getFieldValue("dw"); + if (pDW.isNotNull()) { + List dw = pDW.fetchData(); + for (Structure deformWeight : dw) { + int groupIndex = ((Number) deformWeight.getFieldValue("def_nr")).intValue(); + float weight = ((Number) deformWeight.getFieldValue("weight")).floatValue(); + String groupName = groupNames.get(groupIndex); - weightsForVertex.put(groupName, weight); + weightsForVertex.put(groupName, weight); + } } + result.add(weightsForVertex); } - result.add(weightsForVertex); } } } From 1b761604103c51114edef87345e945165745c165 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Wed, 13 Sep 2017 18:53:50 +0200 Subject: [PATCH 056/150] Blender Importer: Don't crash when a packed texture couldn't be loaded --- .../scene/plugins/blender/textures/TextureHelper.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java index 8bd1a2503..3e5e0bf1c 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java @@ -251,7 +251,13 @@ public class TextureHelper extends AbstractBlenderHelper { blenderContext.getInputStream().setPosition(dataFileBlock.getBlockPosition()); // Should the texture be flipped? It works for sinbad .. - result = new Texture2D(new ImageLoader().loadImage(blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true)); + Image img = new ImageLoader().loadImage(blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true); + + if (img != null) { + result = new Texture2D(img); + } else { + LOGGER.fine("ImageLoader returned null. It probably failed to load the packed texture"); + } } } //} else { From 9100cff4aae070aebd67921e80359d39cc2067b5 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Wed, 13 Sep 2017 19:28:50 +0200 Subject: [PATCH 057/150] BlenderImporter: Don't silently fail when a packed file couldn't be loaded but use a Placeholder Texture --- .../jme3/scene/plugins/blender/textures/TextureHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java index 3e5e0bf1c..2d83dcde6 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java @@ -72,6 +72,7 @@ import com.jme3.texture.Texture.WrapMode; import com.jme3.texture.Texture2D; import com.jme3.texture.image.ColorSpace; import com.jme3.util.BufferUtils; +import com.jme3.util.PlaceholderAssets; /** * A class that is used in texture calculations. @@ -256,7 +257,8 @@ public class TextureHelper extends AbstractBlenderHelper { if (img != null) { result = new Texture2D(img); } else { - LOGGER.fine("ImageLoader returned null. It probably failed to load the packed texture"); + result = new Texture2D(PlaceholderAssets.getPlaceholderImage(blenderContext.getAssetManager())); + LOGGER.fine("ImageLoader returned null. It probably failed to load the packed texture, using placeholder asset"); } } } From a717a5e50ffdb1c9feb3f30281cc41ea86c08038 Mon Sep 17 00:00:00 2001 From: javasabr Date: Mon, 27 Nov 2017 10:24:54 +0300 Subject: [PATCH 058/150] fixed NPE during loading shader node material without vertex nodes. --- .../src/main/java/com/jme3/material/ShaderGenerationInfo.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jme3-core/src/main/java/com/jme3/material/ShaderGenerationInfo.java b/jme3-core/src/main/java/com/jme3/material/ShaderGenerationInfo.java index dda02c67c..3a42ee328 100644 --- a/jme3-core/src/main/java/com/jme3/material/ShaderGenerationInfo.java +++ b/jme3-core/src/main/java/com/jme3/material/ShaderGenerationInfo.java @@ -206,7 +206,9 @@ public class ShaderGenerationInfo implements Savable, Cloneable { clone.vertexUniforms.add(uniform.clone()); } - clone.vertexGlobal = vertexGlobal.clone(); + if (vertexGlobal != null) { + clone.vertexGlobal = vertexGlobal.clone(); + } for (ShaderNodeVariable varying : varyings) { clone.varyings.add(varying.clone()); From 43b52cb77cfcb0093d561ee3043f6d6a9afbfcfd Mon Sep 17 00:00:00 2001 From: javasabr Date: Mon, 27 Nov 2017 13:22:45 +0300 Subject: [PATCH 059/150] Fixed finding definitions during material loading. --- .../plugins/ShaderNodeLoaderDelegate.java | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java index 06241f242..9dc620460 100644 --- a/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java +++ b/jme3-core/src/plugins/java/com/jme3/material/plugins/ShaderNodeLoaderDelegate.java @@ -899,39 +899,51 @@ public class ShaderNodeLoaderDelegate { } /** - * find the definition from this statement (loads it if necessary) + * Find the definition from this statement (loads it if necessary) * * @param statement the statement being read * @return the definition * @throws IOException */ public ShaderNodeDefinition findDefinition(Statement statement) throws IOException { - String defLine[] = statement.getLine().split(":"); - String defName = defLine[1].trim(); - ShaderNodeDefinition def = getNodeDefinitions().get(defName); - if (def == null) { - if (defLine.length == 3) { - List defs = null; - try { - defs = assetManager.loadAsset(new ShaderNodeDefinitionKey(defLine[2].trim())); - } catch (AssetNotFoundException e) { - throw new MatParseException("Couldn't find " + defLine[2].trim(), statement, e); - } + final String defLine[] = statement.getLine().split(":"); - for (ShaderNodeDefinition definition : defs) { - if (defName.equals(definition.getName())) { - def = definition; - } - if (!(getNodeDefinitions().containsKey(definition.getName()))) { - getNodeDefinitions().put(definition.getName(), definition); - } - } + if (defLine.length != 3) { + throw new MatParseException("Can't find shader node definition for: ", statement); + } + + final Map nodeDefinitions = getNodeDefinitions(); + final String definitionName = defLine[1].trim(); + final String definitionPath = defLine[2].trim(); + final String fullName = definitionName + ":" + definitionPath; + + ShaderNodeDefinition def = nodeDefinitions.get(fullName); + if (def != null) { + return def; + } + + List defs; + try { + defs = assetManager.loadAsset(new ShaderNodeDefinitionKey(definitionPath)); + } catch (final AssetNotFoundException e) { + throw new MatParseException("Couldn't find " + definitionPath, statement, e); + } + + for (final ShaderNodeDefinition definition : defs) { + if (definitionName.equals(definition.getName())) { + def = definition; } - if (def == null) { - throw new MatParseException(defName + " is not a declared as Shader Node Definition", statement); + final String key = definition.getName() + ":" + definitionPath; + if (!(nodeDefinitions.containsKey(key))) { + nodeDefinitions.put(key, definition); } } + + if (def == null) { + throw new MatParseException(definitionName + " is not a declared as Shader Node Definition", statement); + } + return def; } From 6e07a214c6c99f647a901796ad44334b0b0d68d4 Mon Sep 17 00:00:00 2001 From: javasabr Date: Sun, 6 Aug 2017 12:03:06 +0300 Subject: [PATCH 060/150] Added a lit bit improvements for SafeArrayList: 1. improved comparing a SafeArrayList with another SafeArrayList. 2. improved the constructor by other collection 3. added a new constructor with init capacity. --- .../java/com/jme3/util/SafeArrayList.java | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java b/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java index 30593cd4b..7fb08ad6c 100644 --- a/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java +++ b/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java @@ -92,9 +92,21 @@ public class SafeArrayList implements List, Cloneable { this.elementType = elementType; } - public SafeArrayList(Class elementType, Collection c) { + public SafeArrayList(final Class elementType, final int capacity) { this.elementType = elementType; - addAll(c); + this.buffer = new ArrayList<>(capacity); + } + + public SafeArrayList(final Class elementType, final Collection collection) { + this.elementType = elementType; + + if (collection instanceof SafeArrayList) { + this.buffer = Arrays.asList(((SafeArrayList) collection).getArray()); + } else { + this.buffer = new ArrayList<>(collection); + } + + this.size = buffer.size(); } public SafeArrayList clone() { @@ -150,12 +162,12 @@ public class SafeArrayList implements List, Cloneable { return buffer; if( backingArray == null ) { - buffer = new ArrayList(); + buffer = new ArrayList<>(); } else { // Only keep the array or the buffer but never both at // the same time. 1) it saves space, 2) it keeps the rest // of the code safer. - buffer = new ArrayList( Arrays.asList(backingArray) ); + buffer = new ArrayList<>( Arrays.asList(backingArray) ); backingArray = null; } return buffer; @@ -243,10 +255,19 @@ public class SafeArrayList implements List, Cloneable { } public boolean equals(Object o) { - if( o == this ) + + if (o == this) { return true; - if( !(o instanceof List) ) //covers null too + } else if (o instanceof SafeArrayList) { + + final Object[] targetArray = ((SafeArrayList) o).getArray(); + final E[] array = getArray(); + + return Arrays.equals(targetArray, array); + } else if (!(o instanceof List)) {//covers null too return false; + } + List other = (List)o; Iterator i1 = iterator(); Iterator i2 = other.iterator(); From 15fd80d67f2c1cbc701b7774a36ada076f80d418 Mon Sep 17 00:00:00 2001 From: javasabr Date: Sun, 6 Aug 2017 12:41:58 +0300 Subject: [PATCH 061/150] Some improvements with terrain LOD control: 1. Added the new option to use camera from render view port(default false) 2. Removed unnecessary synchronize blocks 3. Replaced each control own executor to global terrain executor 4. Removed unused things 5. Reduced memory allocations 6. Fixed the issue with cloning. --- .../executor/TerrainExecutorService.java | 108 +++++ .../geomipmap/MultiTerrainLodControl.java | 72 ++- .../geomipmap/TerrainGridLodControl.java | 4 +- .../terrain/geomipmap/TerrainLodControl.java | 417 ++++++++++-------- 4 files changed, 401 insertions(+), 200 deletions(-) create mode 100644 jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java new file mode 100644 index 000000000..b89864fce --- /dev/null +++ b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java @@ -0,0 +1,108 @@ +package com.jme3.terrain.executor; + +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * The class to provide single executor service to run background tasks of terrain staff. + * + * @author JavaSaBr + */ +public class TerrainExecutorService { + + private static final Runtime RUNTIME = Runtime.getRuntime(); + + /** + * The constructor of the terrain executor service. + */ + private static volatile Callable constructor = new Callable() { + + @Override + public ExecutorService call() throws Exception { + return Executors.newFixedThreadPool(RUNTIME.availableProcessors(), new ThreadFactory() { + + private final AtomicInteger counter = new AtomicInteger(-1); + + @Override + public Thread newThread(final Runnable task) { + final Thread thread = new Thread(task); + thread.setName("jME3 Terrain Thread [" + counter.incrementAndGet() + "]"); + thread.setDaemon(true); + return thread; + } + }); + } + }; + + /** + * Set a new constructor of executor service to provide other implementation. + * + * @param constructor the constructor. + */ + private static void setConstructor(final Callable constructor) { + TerrainExecutorService.constructor = constructor; + } + + /** + * https://stackoverflow.com/questions/29883403/double-checked-locking-without-volatile + *

+ * This suggestion is of Aleksey Shipilev + */ + private static class LazyInitializer { + public final TerrainExecutorService instance; + public LazyInitializer(final TerrainExecutorService instance) { + this.instance = instance; + } + } + + /** + * The lazy singleton. + */ + private static LazyInitializer initializer; + + public static TerrainExecutorService getInstance() { + + LazyInitializer lazy = initializer; + + if (lazy == null) { // check 1 + synchronized (TerrainExecutorService.class) { + lazy = initializer; + if (lazy == null) { // check2 + lazy = new LazyInitializer(new TerrainExecutorService()); + initializer = lazy; + } + } + } + + return lazy.instance; + } + + /** + * The implementation of executor service. + */ + private final ExecutorService executorService; + + private TerrainExecutorService() { + try { + this.executorService = constructor.call(); + } catch (final Exception e) { + throw new RuntimeException(e); + } + } + + public Future submit(final Callable task) { + return executorService.submit(task); + } + + public Future submit(final Runnable task, final T result) { + return executorService.submit(task, result); + } + + public Future submit(final Runnable task) { + return executorService.submit(task); + } + + public void execute(final Runnable command) { + executorService.execute(command); + } +} diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java index 995bc8f13..541f7a997 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java @@ -33,8 +33,11 @@ package com.jme3.terrain.geomipmap; import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; +import com.jme3.terrain.Terrain; import com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator; import com.jme3.terrain.geomipmap.lodcalc.LodCalculator; +import com.jme3.util.SafeArrayList; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -48,21 +51,41 @@ import java.util.List; * @author Brent Owens */ public class MultiTerrainLodControl extends TerrainLodControl { - - List terrains = new ArrayList(); - private List addedTerrains = new ArrayList(); - private List removedTerrains = new ArrayList(); - public MultiTerrainLodControl(List cameras) { - this.cameras = cameras; - lodCalculator = new DistanceLodCalculator(65, 2.7f); + private SafeArrayList terrains; + + private List addedTerrains; + private List removedTerrains; + + public MultiTerrainLodControl() { + terrains = new SafeArrayList<>(TerrainQuad.class); + removedTerrains = new ArrayList<>(); + addedTerrains = new ArrayList<>(); + } + + public MultiTerrainLodControl(final Terrain terrain) { + this(); + setTerrain(terrain); + } + + public MultiTerrainLodControl(final Camera camera) { + this(); + setCamera(camera); + } + + public MultiTerrainLodControl(final Terrain terrain, final Camera camera) { + this(terrain); + setCamera(camera); } - public MultiTerrainLodControl(Camera camera) { - List cams = new ArrayList(); - cams.add(camera); - this.cameras = cams; - lodCalculator = new DistanceLodCalculator(65, 2.7f); + public MultiTerrainLodControl(final Terrain terrain, final List cameras) { + this(terrain); + setCameras(cameras); + } + + @Override + protected DistanceLodCalculator makeLodCalculator() { + return new DistanceLodCalculator(65, 2.7f); } /** @@ -84,7 +107,8 @@ public class MultiTerrainLodControl extends TerrainLodControl { } @Override - protected UpdateLOD getLodThread(List locations, LodCalculator lodCalculator) { + protected UpdateLOD createLodUpdateTask(final SafeArrayList locations, + final LodCalculator lodCalculator) { return new UpdateMultiLOD(locations, lodCalculator); } @@ -92,8 +116,9 @@ public class MultiTerrainLodControl extends TerrainLodControl { protected void prepareTerrain() { if (!addedTerrains.isEmpty()) { for (TerrainQuad t : addedTerrains) { - if (!terrains.contains(t)) + if (!terrains.contains(t)) { terrains.add(t); + } } addedTerrains.clear(); } @@ -103,8 +128,10 @@ public class MultiTerrainLodControl extends TerrainLodControl { removedTerrains.clear(); } - for (TerrainQuad terrain : terrains) - terrain.cacheTerrainTransforms();// cache the terrain's world transforms so they can be accessed on the separate thread safely + for (TerrainQuad terrain : terrains.getArray()) { + // cache the terrain's world transforms so they can be accessed on the separate thread safely + terrain.cacheTerrainTransforms(); + } } /** @@ -112,18 +139,15 @@ public class MultiTerrainLodControl extends TerrainLodControl { * multiple terrains. */ protected class UpdateMultiLOD extends UpdateLOD { - - - protected UpdateMultiLOD(List camLocations, LodCalculator lodCalculator) { + + protected UpdateMultiLOD(final SafeArrayList camLocations, final LodCalculator lodCalculator) { super(camLocations, lodCalculator); } @Override public HashMap call() throws Exception { - - setLodCalcRunning(true); - - HashMap updated = new HashMap(); + + HashMap updated = new HashMap<>(); for (TerrainQuad terrainQuad : terrains) { // go through each patch and calculate its LOD based on camera distance @@ -146,7 +170,7 @@ public class MultiTerrainLodControl extends TerrainLodControl { } //setUpdateQuadLODs(updated); // set back to main ogl thread - setLodCalcRunning(false); + lodCalcRunning.set(false); return updated; } diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainGridLodControl.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainGridLodControl.java index 65a209be3..20a088901 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainGridLodControl.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainGridLodControl.java @@ -35,7 +35,7 @@ import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; import com.jme3.terrain.Terrain; import com.jme3.terrain.geomipmap.lodcalc.LodCalculator; -import java.util.List; +import com.jme3.util.SafeArrayList; /** * Updates grid offsets and cell positions. @@ -50,7 +50,7 @@ public class TerrainGridLodControl extends TerrainLodControl { } @Override - protected void updateLOD(List locations, LodCalculator lodCalculator) { + protected void updateLOD(SafeArrayList locations, LodCalculator lodCalculator) { TerrainGrid terrainGrid = (TerrainGrid)getSpatial(); // for now, only the first camera is handled. diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java index d551ff4e5..d38a32878 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java @@ -44,20 +44,19 @@ import com.jme3.scene.Spatial; import com.jme3.scene.control.AbstractControl; import com.jme3.scene.control.Control; import com.jme3.terrain.Terrain; +import com.jme3.terrain.executor.TerrainExecutorService; import com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator; import com.jme3.terrain.geomipmap.lodcalc.LodCalculator; +import com.jme3.util.SafeArrayList; import com.jme3.util.clone.Cloner; -import com.jme3.util.clone.JmeCloneable; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.Future; -import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; import java.util.logging.Logger; @@ -84,32 +83,68 @@ import java.util.logging.Logger; */ public class TerrainLodControl extends AbstractControl { - private Terrain terrain; - protected List cameras; - private List cameraLocations = new ArrayList(); - protected LodCalculator lodCalculator; - private boolean hasResetLod = false; // used when enabled is set to false + /** + * The list of cameras for when terrain supports multiple cameras (ie split screen) + */ + protected SafeArrayList cameras; + protected SafeArrayList cameraLocations; + protected SafeArrayList lastCameraLocations; - private HashMap updatedPatches; - private final Object updatePatchesLock = new Object(); + protected AtomicBoolean lodCalcRunning; - protected List lastCameraLocations; // used for LOD calc - private AtomicBoolean lodCalcRunning = new AtomicBoolean(false); - private int lodOffCount = 0; + /** + * The previous location of {@link #camera}. + */ + protected Vector3f previousCameraLocation; + + /** + * The camera from render view port. + */ + protected Camera camera; - protected ExecutorService executor; + protected Terrain terrain; + protected LodCalculator lodCalculator; protected Future> indexer; - private boolean forceUpdate = true; + + private int lodOffCount; + + /** + * The flag of using a camera from render viewport instead cameras from {@link #cameras}. + */ + protected boolean useRenderCamera; + + protected boolean forceUpdate; + protected boolean hasResetLod; // used when enabled is set to false public TerrainLodControl() { + hasResetLod = false; + forceUpdate = true; + previousCameraLocation = new Vector3f(); + cameras = new SafeArrayList<>(Camera.class); + cameraLocations = new SafeArrayList<>(Vector3f.class); + lastCameraLocations = new SafeArrayList<>(Vector3f.class); + lodCalcRunning = new AtomicBoolean(false); + lodOffCount = 0; + lodCalculator = makeLodCalculator(); // a default calculator } - public TerrainLodControl(Terrain terrain, Camera camera) { - List cams = new ArrayList(); - cams.add(camera); + protected DistanceLodCalculator makeLodCalculator() { + return new DistanceLodCalculator(65, 2.7f); + } + + public TerrainLodControl(final Terrain terrain) { + this(); this.terrain = terrain; - this.cameras = cams; - lodCalculator = new DistanceLodCalculator(65, 2.7f); // a default calculator + } + + public TerrainLodControl(final Camera camera) { + this(); + setCamera(camera); + } + + public TerrainLodControl(final Terrain terrain, final Camera camera) { + this(terrain); + setCamera(camera); } /** @@ -117,41 +152,44 @@ public class TerrainLodControl extends AbstractControl { * @param terrain to act upon (must be a Spatial) * @param cameras one or more cameras to reference for LOD calc */ - public TerrainLodControl(Terrain terrain, List cameras) { - this.terrain = terrain; - this.cameras = cameras; - lodCalculator = new DistanceLodCalculator(65, 2.7f); // a default calculator + public TerrainLodControl(final Terrain terrain, final List cameras) { + this(terrain); + setCameras(cameras); } - @Override - protected void controlRender(RenderManager rm, ViewPort vp) { + /** + * @param useRenderCamera true if need to use a camera from render view port. + */ + public void setUseRenderCamera(final boolean useRenderCamera) { + this.useRenderCamera = useRenderCamera; } /** - * Set your own custom executor to be used. The control will use - * this instead of creating its own. + * @return true if need to use a camera from render view port. */ - public void setExecutor(ExecutorService executor) { - this.executor = executor; + public boolean isUseRenderCamera() { + return useRenderCamera; } - protected ExecutorService createExecutorService() { - return Executors.newSingleThreadExecutor(new ThreadFactory() { - public Thread newThread(Runnable r) { - Thread th = new Thread(r); - th.setName("jME3 Terrain Thread"); - th.setDaemon(true); - return th; - } - }); + @Override + protected void controlRender(final RenderManager rm, final ViewPort vp) { + + if (!isUseRenderCamera()) { + return; + } else if (camera == vp.getCamera()) { + return; + } + + camera = vp.getCamera(); + previousCameraLocation.set(camera.getLocation()); } @Override protected void controlUpdate(float tpf) { - //list of cameras for when terrain supports multiple cameras (ie split screen) - if (lodCalculator == null) + if (lodCalculator == null) { return; + } if (!enabled) { if (!hasResetLod) { @@ -161,12 +199,26 @@ public class TerrainLodControl extends AbstractControl { } } - if (cameras != null) { - cameraLocations.clear(); - for (Camera c : cameras) // populate them - { - cameraLocations.add(c.getLocation()); + // if we use a camera from render + if (isUseRenderCamera()) { + updateLOD(lodCalculator); + } + // if we use set cameras + else if (!cameras.isEmpty()) { + + // need to have count of positions the same with count of cameras + if (cameraLocations.size() != cameras.size()) { + cameraLocations.clear(); + for (int i = 0; i < cameras.size(); i++) { + cameraLocations.add(new Vector3f()); + } + } + + // we need to update current camera positions + for (int i = 0; i < cameras.size(); i++) { + cameraLocations.get(i).set(cameras.get(i).getLocation()); } + updateLOD(cameraLocations, lodCalculator); } } @@ -176,53 +228,110 @@ public class TerrainLodControl extends AbstractControl { * It will clear up any threads it had. */ public void detachAndCleanUpControl() { - if (executor != null) - executor.shutdownNow(); + + if (indexer != null) { + indexer.cancel(true); + indexer = null; + } + getSpatial().removeControl(this); } // do all of the LOD calculations - protected void updateLOD(List locations, LodCalculator lodCalculator) { - if(getSpatial() == null){ + protected void updateLOD(final LodCalculator lodCalculator) { + + if (getSpatial() == null || camera == null) { return; } // update any existing ones that need updating updateQuadLODs(); - if (lodCalculator.isLodOff()) { - // we want to calculate the base lod at least once - if (lodOffCount == 1) - return; - else - lodOffCount++; - } else - lodOffCount = 0; + if (updateLodOffCount(lodCalculator)) { + return; + } + + final Vector3f currentLocation = camera.getLocation(); - if (lastCameraLocations != null) { - if (!forceUpdate && lastCameraLocationsTheSame(locations) && !lodCalculator.isLodOff()) - return; // don't update if in same spot - else - lastCameraLocations = cloneVectorList(locations); - forceUpdate = false; + if (!forceUpdate && previousCameraLocation.equals(currentLocation) && !lodCalculator.isLodOff()) { + return; // don't update if in same spot + } else { + previousCameraLocation.set(currentLocation); } - else { - lastCameraLocations = cloneVectorList(locations); + + forceUpdate = false; + + if (!lodCalcRunning.compareAndSet(false, true)) { + return; + } + + prepareTerrain(); + + final SafeArrayList locations = new SafeArrayList<>(Vector3f.class, 1); + locations.add(currentLocation); + + final TerrainExecutorService executorService = TerrainExecutorService.getInstance(); + indexer = executorService.submit(createLodUpdateTask(locations, lodCalculator)); + } + + // do all of the LOD calculations + protected void updateLOD(final SafeArrayList locations, final LodCalculator lodCalculator) { + + if (getSpatial() == null || locations.isEmpty()) { return; } - if (isLodCalcRunning()) { + // update any existing ones that need updating + updateQuadLODs(); + + if (updateLodOffCount(lodCalculator)) { return; } - setLodCalcRunning(true); - if (executor == null) - executor = createExecutorService(); + if (!forceUpdate && locations.equals(lastCameraLocations) && !lodCalculator.isLodOff()) { + return; // don't update if in same spot + } else { + + // need to have count of last camera locations the same with count of locations + if (lastCameraLocations.size() != locations.size()) { + lastCameraLocations.clear(); + for (int i = 0; i < locations.size(); i++) { + lastCameraLocations.add(new Vector3f()); + } + } + + // we need to update last camera locations to current + for (int i = 0; i < locations.size(); i++) { + lastCameraLocations.get(i).set(locations.get(i)); + } + } + + forceUpdate = false; + + if (!lodCalcRunning.compareAndSet(false, true)) { + return; + } prepareTerrain(); - UpdateLOD updateLodThread = getLodThread(locations, lodCalculator); - indexer = executor.submit(updateLodThread); + final TerrainExecutorService executorService = TerrainExecutorService.getInstance(); + indexer = executorService.submit(createLodUpdateTask(cloneVectorList(locations), lodCalculator)); + } + + protected boolean updateLodOffCount(final LodCalculator lodCalculator) { + + if (lodCalculator.isLodOff()) { + // we want to calculate the base lod at least once + if (lodOffCount == 1) { + return true; + } else { + lodOffCount++; + } + } else { + lodOffCount = 0; + } + + return false; } /** @@ -234,11 +343,12 @@ public class TerrainLodControl extends AbstractControl { } protected void prepareTerrain() { - TerrainQuad terrain = (TerrainQuad)getSpatial(); - terrain.cacheTerrainTransforms();// cache the terrain's world transforms so they can be accessed on the separate thread safely + TerrainQuad terrain = (TerrainQuad) getSpatial(); + // cache the terrain's world transforms so they can be accessed on the separate thread safely + terrain.cacheTerrainTransforms(); } - protected UpdateLOD getLodThread(List locations, LodCalculator lodCalculator) { + protected UpdateLOD createLodUpdateTask(final SafeArrayList locations, final LodCalculator lodCalculator) { return new UpdateLOD(locations, lodCalculator); } @@ -246,115 +356,78 @@ public class TerrainLodControl extends AbstractControl { * Back on the ogl thread: update the terrain patch geometries */ private void updateQuadLODs() { - if (indexer != null) { - if (indexer.isDone()) { - try { - - HashMap updated = indexer.get(); - if (updated != null) { - // do the actual geometry update here - for (UpdatedTerrainPatch utp : updated.values()) { - utp.updateAll(); - } - } - - } catch (InterruptedException ex) { - Logger.getLogger(TerrainLodControl.class.getName()).log(Level.SEVERE, null, ex); - } catch (ExecutionException ex) { - Logger.getLogger(TerrainLodControl.class.getName()).log(Level.SEVERE, null, ex); - } finally { - indexer = null; - } - } + + if (indexer == null || !indexer.isDone()) { + return; } - } - private boolean lastCameraLocationsTheSame(List locations) { - boolean theSame = true; - for (Vector3f l : locations) { - for (Vector3f v : lastCameraLocations) { - if (!v.equals(l) ) { - theSame = false; - return false; + try { + + final HashMap updated = indexer.get(); + if (updated != null) { + // do the actual geometry update here + for (final UpdatedTerrainPatch utp : updated.values()) { + utp.updateAll(); } } + + } catch (final InterruptedException | ExecutionException ex) { + Logger.getLogger(TerrainLodControl.class.getName()).log(Level.SEVERE, null, ex); + } finally { + indexer = null; } - return theSame; } - protected synchronized boolean isLodCalcRunning() { - return lodCalcRunning.get(); - } + private SafeArrayList cloneVectorList(SafeArrayList locations) { - protected synchronized void setLodCalcRunning(boolean running) { - lodCalcRunning.set(running); - } + final SafeArrayList cloned = new SafeArrayList<>(Vector3f.class, locations.size()); + + for (final Vector3f location : locations.getArray()) { + cloned.add(location.clone()); + } - private List cloneVectorList(List locations) { - List cloned = new ArrayList(); - for(Vector3f l : locations) - cloned.add(l.clone()); return cloned; } - - - - @Override public Object jmeClone() { - if (spatial instanceof Terrain) { - TerrainLodControl cloned = new TerrainLodControl((Terrain) spatial, cameras); - cloned.setLodCalculator(lodCalculator.clone()); - cloned.spatial = spatial; - return cloned; + try { + return super.clone(); + } catch (final CloneNotSupportedException e) { + throw new RuntimeException(e); } - return null; } @Override - public void cloneFields( Cloner cloner, Object original ) { + public void cloneFields(final Cloner cloner, final Object original) { super.cloneFields(cloner, original); this.lodCalculator = cloner.clone(lodCalculator); - - try { - // Not deep clone of the cameras themselves - this.cameras = cloner.javaClone(cameras); - } catch( CloneNotSupportedException e ) { - throw new RuntimeException("Error cloning", e); - } + this.cameras = new SafeArrayList<>(Camera.class, cameras); + this.cameraLocations = new SafeArrayList<>(Vector3f.class); + this.lastCameraLocations = new SafeArrayList<>(Vector3f.class); + this.lodCalcRunning = new AtomicBoolean(); + this.previousCameraLocation = new Vector3f(); } - @Override - public Control cloneForSpatial(Spatial spatial) { + public Control cloneForSpatial(final Spatial spatial) { if (spatial instanceof Terrain) { - List cameraClone = new ArrayList(); - if (cameras != null) { - for (Camera c : cameras) { - cameraClone.add(c); - } - } - TerrainLodControl cloned = new TerrainLodControl((Terrain) spatial, cameraClone); + TerrainLodControl cloned = new TerrainLodControl((Terrain) spatial, new ArrayList<>(cameras)); cloned.setLodCalculator(lodCalculator.clone()); return cloned; } return null; } - public void setCamera(Camera camera) { - List cams = new ArrayList(); - cams.add(camera); - setCameras(cams); + public void setCamera(final Camera camera) { + this.cameras.clear(); + this.cameras.add(camera); } - public void setCameras(List cameras) { - this.cameras = cameras; - cameraLocations.clear(); - for (Camera c : cameras) { - cameraLocations.add(c.getLocation()); - } + public void setCameras(final List cameras) { + this.cameras.clear(); + this.cameras.addAll(cameras); } @Override @@ -373,7 +446,7 @@ public class TerrainLodControl extends AbstractControl { return lodCalculator; } - public void setLodCalculator(LodCalculator lodCalculator) { + public void setLodCalculator(final LodCalculator lodCalculator) { this.lodCalculator = lodCalculator; } @@ -393,64 +466,60 @@ public class TerrainLodControl extends AbstractControl { /** * Calculates the LOD of all child terrain patches. */ - protected class UpdateLOD implements Callable> { - protected List camLocations; - protected LodCalculator lodCalculator; + protected class UpdateLOD implements Callable> { - protected UpdateLOD(List camLocations, LodCalculator lodCalculator) { + protected final SafeArrayList camLocations; + protected final LodCalculator lodCalculator; + + protected UpdateLOD(final SafeArrayList camLocations, final LodCalculator lodCalculator) { this.camLocations = camLocations; this.lodCalculator = lodCalculator; } public HashMap call() throws Exception { - //long start = System.currentTimeMillis(); - //if (isLodCalcRunning()) { - // return null; - //} - setLodCalcRunning(true); - TerrainQuad terrainQuad = (TerrainQuad)getSpatial(); + TerrainQuad terrainQuad = (TerrainQuad) getSpatial(); // go through each patch and calculate its LOD based on camera distance - HashMap updated = new HashMap(); - boolean lodChanged = terrainQuad.calculateLod(camLocations, updated, lodCalculator); // 'updated' gets populated here + HashMap updated = new HashMap<>(); + // 'updated' gets populated here + boolean lodChanged = terrainQuad.calculateLod(camLocations, updated, lodCalculator); if (!lodChanged) { // not worth updating anything else since no one's LOD changed - setLodCalcRunning(false); + lodCalcRunning.set(false); return null; } - // then calculate its neighbour LOD values for seaming in the shader terrainQuad.findNeighboursLod(updated); - - terrainQuad.fixEdges(updated); // 'updated' can get added to here - + // 'updated' can get added to here + terrainQuad.fixEdges(updated); terrainQuad.reIndexPages(updated, lodCalculator.usesVariableLod()); //setUpdateQuadLODs(updated); // set back to main ogl thread - setLodCalcRunning(false); + lodCalcRunning.set(false); return updated; } } @Override - public void write(JmeExporter ex) throws IOException { + public void write(final JmeExporter ex) throws IOException { super.write(ex); OutputCapsule oc = ex.getCapsule(this); oc.write((Node)terrain, "terrain", null); oc.write(lodCalculator, "lodCalculator", null); + oc.write(useRenderCamera, "useRenderCamera", false); } @Override - public void read(JmeImporter im) throws IOException { + public void read(final JmeImporter im) throws IOException { super.read(im); InputCapsule ic = im.getCapsule(this); terrain = (Terrain) ic.readSavable("terrain", null); lodCalculator = (LodCalculator) ic.readSavable("lodCalculator", new DistanceLodCalculator()); + useRenderCamera = ic.readBoolean("useRenderCamera", false); } - } From bc1584d2399a8b3f99bf97cc3289441ceb81aaeb Mon Sep 17 00:00:00 2001 From: javasabr Date: Sun, 6 Aug 2017 12:44:14 +0300 Subject: [PATCH 062/150] made the method as public. --- .../java/com/jme3/terrain/executor/TerrainExecutorService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java index b89864fce..61b57f1f0 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java @@ -39,7 +39,7 @@ public class TerrainExecutorService { * * @param constructor the constructor. */ - private static void setConstructor(final Callable constructor) { + public static void setConstructor(final Callable constructor) { TerrainExecutorService.constructor = constructor; } From 69b7f7e65543939ec4b33c9c4786b74eae9d02f8 Mon Sep 17 00:00:00 2001 From: javasabr Date: Sun, 6 Aug 2017 18:12:10 +0300 Subject: [PATCH 063/150] fixed some changes. --- .../terrain/executor/TerrainExecutorService.java | 2 +- .../geomipmap/MultiTerrainLodControl.java | 4 ++-- .../terrain/geomipmap/TerrainLodControl.java | 16 +++++++--------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java index 61b57f1f0..7d8dbe3ba 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/executor/TerrainExecutorService.java @@ -4,7 +4,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; /** - * The class to provide single executor service to run background tasks of terrain staff. + * The class to provide single executor service to run background tasks of terrain stuff. * * @author JavaSaBr */ diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java index 541f7a997..9e37fb6b2 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/MultiTerrainLodControl.java @@ -107,7 +107,7 @@ public class MultiTerrainLodControl extends TerrainLodControl { } @Override - protected UpdateLOD createLodUpdateTask(final SafeArrayList locations, + protected UpdateLOD createLodUpdateTask(final List locations, final LodCalculator lodCalculator) { return new UpdateMultiLOD(locations, lodCalculator); } @@ -140,7 +140,7 @@ public class MultiTerrainLodControl extends TerrainLodControl { */ protected class UpdateMultiLOD extends UpdateLOD { - protected UpdateMultiLOD(final SafeArrayList camLocations, final LodCalculator lodCalculator) { + protected UpdateMultiLOD(final List camLocations, final LodCalculator lodCalculator) { super(camLocations, lodCalculator); } diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java index d38a32878..a6b94024e 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainLodControl.java @@ -31,6 +31,7 @@ */ package com.jme3.terrain.geomipmap; +import static java.util.Collections.singletonList; import com.jme3.export.InputCapsule; import com.jme3.export.JmeExporter; import com.jme3.export.JmeImporter; @@ -267,11 +268,8 @@ public class TerrainLodControl extends AbstractControl { prepareTerrain(); - final SafeArrayList locations = new SafeArrayList<>(Vector3f.class, 1); - locations.add(currentLocation); - final TerrainExecutorService executorService = TerrainExecutorService.getInstance(); - indexer = executorService.submit(createLodUpdateTask(locations, lodCalculator)); + indexer = executorService.submit(createLodUpdateTask(singletonList(currentLocation), lodCalculator)); } // do all of the LOD calculations @@ -348,7 +346,7 @@ public class TerrainLodControl extends AbstractControl { terrain.cacheTerrainTransforms(); } - protected UpdateLOD createLodUpdateTask(final SafeArrayList locations, final LodCalculator lodCalculator) { + protected UpdateLOD createLodUpdateTask(final List locations, final LodCalculator lodCalculator) { return new UpdateLOD(locations, lodCalculator); } @@ -378,9 +376,9 @@ public class TerrainLodControl extends AbstractControl { } } - private SafeArrayList cloneVectorList(SafeArrayList locations) { + private List cloneVectorList(SafeArrayList locations) { - final SafeArrayList cloned = new SafeArrayList<>(Vector3f.class, locations.size()); + final List cloned = new ArrayList<>(locations.size()); for (final Vector3f location : locations.getArray()) { cloned.add(location.clone()); @@ -468,10 +466,10 @@ public class TerrainLodControl extends AbstractControl { */ protected class UpdateLOD implements Callable> { - protected final SafeArrayList camLocations; + protected final List camLocations; protected final LodCalculator lodCalculator; - protected UpdateLOD(final SafeArrayList camLocations, final LodCalculator lodCalculator) { + protected UpdateLOD(final List camLocations, final LodCalculator lodCalculator) { this.camLocations = camLocations; this.lodCalculator = lodCalculator; } From 06599d1eac79f839ac7744e2a526b326bd214ecd Mon Sep 17 00:00:00 2001 From: javasabr Date: Tue, 19 Sep 2017 07:16:35 +0300 Subject: [PATCH 064/150] fixed the constructor. --- jme3-core/src/main/java/com/jme3/util/SafeArrayList.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java b/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java index 7fb08ad6c..0085b20d3 100644 --- a/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java +++ b/jme3-core/src/main/java/com/jme3/util/SafeArrayList.java @@ -99,13 +99,7 @@ public class SafeArrayList implements List, Cloneable { public SafeArrayList(final Class elementType, final Collection collection) { this.elementType = elementType; - - if (collection instanceof SafeArrayList) { - this.buffer = Arrays.asList(((SafeArrayList) collection).getArray()); - } else { - this.buffer = new ArrayList<>(collection); - } - + this.buffer = new ArrayList<>(collection); this.size = buffer.size(); } From 93001ec290ab85c3ed5fa688bd80ef078ff87dea Mon Sep 17 00:00:00 2001 From: Kirill Vainer Date: Thu, 14 Sep 2017 22:29:26 -0400 Subject: [PATCH 065/150] Fix #456 --- build.gradle | 12 ++++++------ common.gradle | 3 +++ jme3-android/build.gradle | 2 +- jme3-jbullet/build.gradle | 6 +++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index e1af45a55..ee5c9c321 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ apply from: file('version.gradle') subprojects { if(!project.name.equals('jme3-android-examples')) { apply from: rootProject.file('common.gradle') - if (!['jme3-testdata', 'sdk'].contains(project.name)) { + if (!project.name.equals('jme3-testdata')) { apply from: rootProject.file('bintray.gradle') } } else { @@ -66,9 +66,9 @@ task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"P archiveName "jME" + jmeFullVersion + ".zip" into("/") { from {"./dist"} - } + } into("/sources") { - from {"$buildDir/libDist/sources"} + from {"$buildDir/libDist/sources"} } } @@ -88,14 +88,14 @@ task dist(dependsOn: [':jme3-examples:dist', 'mergedJavadoc']){ task mergedJavadoc(type: Javadoc, description: 'Creates Javadoc from all the projects.') { title = 'jMonkeyEngine3' destinationDir = mkdir("dist/javadoc") - + options.encoding = 'UTF-8' // Allows Javadoc to be generated on Java 8 despite doclint errors. if (JavaVersion.current().isJava8Compatible()) { options.addStringOption('Xdoclint:none', '-quiet') } - + options.overview = file("javadoc-overview.html") // Note: The closures below are executed lazily. source subprojects.collect {project -> @@ -137,7 +137,7 @@ task configureAndroidNDK { if (System.env.ANDROID_NDK != null) { ndkBuildPath = System.env.ANDROID_NDK + File.separator + ndkBuildFile } - + if (new File(ndkBuildPath).exists()) { ndkExists = true ndkCommandPath = ndkBuildPath diff --git a/common.gradle b/common.gradle index d15f1c582..c396df30a 100644 --- a/common.gradle +++ b/common.gradle @@ -16,6 +16,9 @@ repositories { maven { url "http://nifty-gui.sourceforge.net/nifty-maven-repo" } + flatDir { + dirs rootProject.file('lib') + } } dependencies { diff --git a/jme3-android/build.gradle b/jme3-android/build.gradle index e49befecd..4caad528e 100644 --- a/jme3-android/build.gradle +++ b/jme3-android/build.gradle @@ -5,5 +5,5 @@ if (!hasProperty('mainClass')) { dependencies { compile project(':jme3-core') compile project(':jme3-plugins') - compile files('../lib/android.jar') + compileOnly 'android:android' } diff --git a/jme3-jbullet/build.gradle b/jme3-jbullet/build.gradle index 0e3967ab2..473f03b04 100644 --- a/jme3-jbullet/build.gradle +++ b/jme3-jbullet/build.gradle @@ -12,9 +12,9 @@ sourceSets { } dependencies { - compile ('java3d:vecmath:1.3.1') - compile files('../lib/jbullet.jar', '../lib/stack-alloc.jar') + compile 'java3d:vecmath:1.3.1' + compile 'jbullet:jbullet' + compile 'stack-alloc:stack-alloc' compile project(':jme3-core') compile project(':jme3-terrain') -// compile project(':jme3-bullet') } From 9c0b977154eb27a2015793414ce4d7902195295b Mon Sep 17 00:00:00 2001 From: Kirill Vainer Date: Sun, 17 Sep 2017 22:56:12 -0400 Subject: [PATCH 066/150] upgrade to gradle 4.1 --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 53556 -> 54227 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- gradlew | 22 +++++++++++++++------- gradlew.bat | 6 ------ 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index ee5c9c321..14d97755e 100644 --- a/build.gradle +++ b/build.gradle @@ -116,7 +116,7 @@ task mergedSource(type: Copy){ } task wrapper(type: Wrapper, description: 'Creates and deploys the Gradle wrapper to the current directory.') { - gradleVersion = '3.2.1' + gradleVersion = '4.1' } ext { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ca78035ef0501d802d4fc55381ef2d5c3ce0ec6e..51288f9c2f05faf8d42e1a751a387ca7923882c3 100644 GIT binary patch delta 23104 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 delta 22359 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 U$cOFV)F@5M#0-Hjbl?j91HOb-2LJ#7 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e89f72e3d..3a174dff1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Nov 25 13:05:50 EST 2016 +#Sun Sep 17 22:55:30 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip diff --git a/gradlew b/gradlew index 27309d923..4453ccea3 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f6d5974e7..e95643d6a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -49,7 +49,6 @@ goto fail @rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line From 96836de6e8dba64415f33c29d408e6d22639cc3a Mon Sep 17 00:00:00 2001 From: Nehon Date: Tue, 28 Nov 2017 08:47:32 +0100 Subject: [PATCH 067/150] Prevents attachement nodes to have the NumBone parameter set --- jme3-core/src/main/java/com/jme3/animation/Bone.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/animation/Bone.java b/jme3-core/src/main/java/com/jme3/animation/Bone.java index 15ac6cc6f..5b4568cd9 100644 --- a/jme3-core/src/main/java/com/jme3/animation/Bone.java +++ b/jme3-core/src/main/java/com/jme3/animation/Bone.java @@ -32,15 +32,15 @@ package com.jme3.animation; import com.jme3.export.*; +import com.jme3.material.MatParamOverride; import com.jme3.math.*; -import com.jme3.scene.Geometry; -import com.jme3.scene.Mesh; -import com.jme3.scene.Node; -import com.jme3.scene.Spatial; +import com.jme3.scene.*; +import com.jme3.shader.VarType; import com.jme3.util.SafeArrayList; import com.jme3.util.TempVars; -import com.jme3.util.clone.JmeCloneable; import com.jme3.util.clone.Cloner; +import com.jme3.util.clone.JmeCloneable; + import java.io.IOException; import java.util.ArrayList; @@ -723,6 +723,8 @@ public final class Bone implements Savable, JmeCloneable { if (attachNode == null) { attachNode = new Node(name + "_attachnode"); attachNode.setUserData("AttachedBone", this); + //We don't want the node to have a numBone set by a parent node so we force it to null + attachNode.addMatParamOverride(new MatParamOverride(VarType.Int, "NumberOfBones", null)); } return attachNode; From 58a92118797a23acec3061a376682a5c33868432 Mon Sep 17 00:00:00 2001 From: Julien Seinturier Date: Wed, 29 Nov 2017 17:14:04 +0100 Subject: [PATCH 068/150] OpenVR 1.0.9 and Occulus Support (#779) * Updated OpenVR implementation to 1.0.9 User can specify external OpenVR library to load with openvr.library.path system property. Usage: java -Dopenvr.library.name=my_path_to_library MyApp Removed reference to OCCULUS VR and OpenVR from VRAppstate as this class is generic and does not have to be linked to specific implementation. VRMouseManager can be buggous using OSVR or Occulus VR. Refactored VR implementation packages in order to separate all available implementation. Modifying or adding implementation should no more impact other ones. Renamed some classes in order to be uniform --- .../main/java/com/jme3/app/VRAppState.java | 42 +- .../main/java/com/jme3/app/VRApplication.java | 24 +- .../main/java/com/jme3/app/VRConstants.java | 28 +- .../main/java/com/jme3/app/VREnvironment.java | 64 +- .../com/jme3/input/lwjgl/GlfwKeyInputVR.java | 2 +- .../jme3/input/lwjgl/GlfwMouseInputVR.java | 2 +- .../vr/AbstractVRMouseManager.java} | 563 ++- .../vr}/AbstractVRViewManager.java | 8 +- .../main/java/com/jme3/input/vr/HmdType.java | 2 +- .../main/java/com/jme3/input/vr/VRAPI.java | 6 +- .../main/java/com/jme3/input/vr/VRBounds.java | 78 +- .../java/com/jme3/input/vr/VRInputAPI.java | 2 +- .../java/com/jme3/input/vr/VRInputType.java | 26 +- .../com/jme3/input/vr/VRMouseManager.java | 107 + .../jme3/input/vr/VRTrackedController.java | 3 +- .../{util => input/vr}/VRViewManager.java | 12 +- .../input/vr/oculus/OculusMouseManager.java | 108 + .../jme3/input/vr/{ => oculus}/OculusVR.java | 4 +- .../input/vr/{ => oculus}/OculusVRInput.java | 11 +- .../vr/oculus/OculusViewManager.java} | 14 +- .../jme3/input/vr/{ => openvr}/OpenVR.java | 58 +- .../jme3/input/vr/openvr/OpenVRBounds.java | 59 + .../input/vr/{ => openvr}/OpenVRInput.java | 12 +- .../input/vr/openvr/OpenVRMouseManager.java | 114 + .../{ => openvr}/OpenVRTrackedController.java | 8 +- .../vr/openvr/OpenVRViewManager.java} | 21 +- .../com/jme3/input/vr/{ => osvr}/OSVR.java | 7 +- .../jme3/input/vr/{ => osvr}/OSVRInput.java | 12 +- .../jme3/input/vr/osvr/OSVRMouseManager.java | 108 + .../vr/osvr/OSVRViewManager.java} | 27 +- .../main/java/com/jme3/post/CartoonSSAO.java | 2 +- .../java/com/jme3/post/PreNormalCaching.java | 2 +- .../jme3/shadow/AbstractShadowFilterVR.java | 2 +- .../jme3/shadow/AbstractShadowRendererVR.java | 2 +- .../DirectionalLightShadowFilterVR.java | 2 +- .../DirectionalLightShadowRendererVR.java | 2 +- .../InstancedDirectionalShadowFilter.java | 2 +- .../system/jopenvr/AppOverrideKeys_t.java | 78 +- .../jme3/system/jopenvr/COpenVRContext.java | 143 +- .../CameraVideoStreamFrameHeader_t.java | 88 +- .../jopenvr/Compositor_CumulativeStats.java | 72 +- .../jopenvr/Compositor_FrameTiming.java | 92 +- .../jopenvr/Compositor_OverlaySettings.java | 72 +- .../system/jopenvr/D3D12TextureData_t.java | 82 +- .../jopenvr/DistortionCoordinates_t.java | 104 +- .../jme3/system/jopenvr/HiddenAreaMesh_t.java | 68 +- .../com/jme3/system/jopenvr/HmdColor_t.java | 64 +- .../jme3/system/jopenvr/HmdMatrix34_t.java | 68 +- .../jme3/system/jopenvr/HmdMatrix44_t.java | 68 +- .../com/jme3/system/jopenvr/HmdQuad_t.java | 68 +- .../jme3/system/jopenvr/HmdQuaternion_t.java | 64 +- .../com/jme3/system/jopenvr/HmdRect2_t.java | 66 +- .../com/jme3/system/jopenvr/HmdVector2_t.java | 68 +- .../com/jme3/system/jopenvr/HmdVector3_t.java | 68 +- .../jme3/system/jopenvr/HmdVector3d_t.java | 68 +- .../com/jme3/system/jopenvr/HmdVector4_t.java | 68 +- .../jopenvr/IntersectionMaskCircle_t.java | 60 +- .../jopenvr/IntersectionMaskRectangle_t.java | 64 +- .../jme3/system/jopenvr/JOpenVRLibrary.java | 3387 +++++++++-------- .../system/jopenvr/NotificationBitmap_t.java | 76 +- .../com/jme3/system/jopenvr/OpenVRUtil.java | 8 +- .../jopenvr/RenderModel_ComponentState_t.java | 74 +- .../RenderModel_ControllerMode_State_t.java | 52 +- .../jopenvr/RenderModel_TextureMap_t.java | 72 +- .../system/jopenvr/RenderModel_Vertex_t.java | 84 +- .../jme3/system/jopenvr/RenderModel_t.java | 94 +- .../com/jme3/system/jopenvr/Texture_t.java | 92 +- .../system/jopenvr/TrackedDevicePose_t.java | 96 +- .../system/jopenvr/VRControllerAxis_t.java | 56 +- .../system/jopenvr/VRControllerState_t.java | 80 +- .../jopenvr/VREvent_ApplicationLaunch_t.java | 56 +- .../system/jopenvr/VREvent_Chaperone_t.java | 56 +- .../system/jopenvr/VREvent_Controller_t.java | 52 +- .../jme3/system/jopenvr/VREvent_Data_t.java | 260 +- .../VREvent_EditingCameraSurface_t.java | 56 +- .../jme3/system/jopenvr/VREvent_Ipd_t.java | 52 +- .../system/jopenvr/VREvent_Keyboard_t.java | 72 +- .../jopenvr/VREvent_MessageOverlay_t.java | 52 +- .../jme3/system/jopenvr/VREvent_Mouse_t.java | 60 +- .../jopenvr/VREvent_Notification_t.java | 56 +- .../system/jopenvr/VREvent_Overlay_t.java | 52 +- .../jopenvr/VREvent_PerformanceTest_t.java | 52 +- .../system/jopenvr/VREvent_Process_t.java | 60 +- .../system/jopenvr/VREvent_Property_t.java | 72 +- .../system/jopenvr/VREvent_Reserved_t.java | 56 +- .../jopenvr/VREvent_ScreenshotProgress_t.java | 52 +- .../system/jopenvr/VREvent_Screenshot_t.java | 56 +- .../jme3/system/jopenvr/VREvent_Scroll_t.java | 60 +- .../VREvent_SeatedZeroPoseReset_t.java | 52 +- .../jme3/system/jopenvr/VREvent_Status_t.java | 52 +- .../jopenvr/VREvent_TouchPadMove_t.java | 72 +- .../com/jme3/system/jopenvr/VREvent_t.java | 80 +- ...erlayIntersectionMaskPrimitive_Data_t.java | 68 +- .../VROverlayIntersectionMaskPrimitive_t.java | 72 +- .../VROverlayIntersectionParams_t.java | 80 +- .../VROverlayIntersectionResults_t.java | 78 +- .../system/jopenvr/VRTextureBounds_t.java | 64 +- .../system/jopenvr/VRVulkanTextureData_t.java | 86 +- .../jopenvr/VR_IVRApplications_FnTable.java | 414 +- .../jopenvr/VR_IVRChaperoneSetup_FnTable.java | 282 +- .../jopenvr/VR_IVRChaperone_FnTable.java | 178 +- .../jopenvr/VR_IVRCompositor_FnTable.java | 534 +-- .../jopenvr/VR_IVRDriverManager_FnTable.java | 50 + .../VR_IVRExtendedDisplay_FnTable.java | 98 +- .../jopenvr/VR_IVRNotifications_FnTable.java | 82 +- .../system/jopenvr/VR_IVROverlay_FnTable.java | 972 ++--- .../jopenvr/VR_IVRRenderModels_FnTable.java | 258 +- .../jopenvr/VR_IVRResources_FnTable.java | 82 +- .../jopenvr/VR_IVRScreenshots_FnTable.java | 162 +- .../jopenvr/VR_IVRSettings_FnTable.java | 186 +- .../system/jopenvr/VR_IVRSystem_FnTable.java | 627 +-- .../jopenvr/VR_IVRTrackedCamera_FnTable.java | 186 +- .../com/jme3/util/VRGUIPositioningMode.java | 2 +- .../main/java/com/jme3/util/VRGuiManager.java | 16 +- .../src/main/java/com/jme3/util/VRUtil.java | 6 +- 115 files changed, 7001 insertions(+), 6380 deletions(-) rename jme3-vr/src/main/java/com/jme3/{util/VRMouseManager.java => input/vr/AbstractVRMouseManager.java} (56%) rename jme3-vr/src/main/java/com/jme3/{util => input/vr}/AbstractVRViewManager.java (95%) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/VRMouseManager.java rename jme3-vr/src/main/java/com/jme3/{util => input/vr}/VRViewManager.java (89%) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusMouseManager.java rename jme3-vr/src/main/java/com/jme3/input/vr/{ => oculus}/OculusVR.java (99%) rename jme3-vr/src/main/java/com/jme3/input/vr/{ => oculus}/OculusVRInput.java (96%) rename jme3-vr/src/main/java/com/jme3/{util/VRViewManagerOculus.java => input/vr/oculus/OculusViewManager.java} (96%) rename jme3-vr/src/main/java/com/jme3/input/vr/{ => openvr}/OpenVR.java (91%) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRBounds.java rename jme3-vr/src/main/java/com/jme3/input/vr/{ => openvr}/OpenVRInput.java (95%) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRMouseManager.java rename jme3-vr/src/main/java/com/jme3/input/vr/{ => openvr}/OpenVRTrackedController.java (88%) rename jme3-vr/src/main/java/com/jme3/{util/VRViewManagerOpenVR.java => input/vr/openvr/OpenVRViewManager.java} (96%) rename jme3-vr/src/main/java/com/jme3/input/vr/{ => osvr}/OSVR.java (96%) rename jme3-vr/src/main/java/com/jme3/input/vr/{ => osvr}/OSVRInput.java (97%) create mode 100644 jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java rename jme3-vr/src/main/java/com/jme3/{util/VRViewManagerOSVR.java => input/vr/osvr/OSVRViewManager.java} (96%) create mode 100644 jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRDriverManager_FnTable.java diff --git a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java index 54e7643ce..df329a505 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRAppState.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRAppState.java @@ -34,10 +34,10 @@ package com.jme3.app; import com.jme3.app.Application; import com.jme3.app.state.AbstractAppState; import com.jme3.app.state.AppStateManager; -import com.jme3.input.vr.OculusVR; -import com.jme3.input.vr.OpenVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.VRMouseManager; +import com.jme3.input.vr.VRViewManager; import com.jme3.math.ColorRGBA; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; @@ -48,8 +48,6 @@ import com.jme3.scene.Spatial; import com.jme3.system.AppSettings; import com.jme3.util.VRGUIPositioningMode; import com.jme3.util.VRGuiManager; -import com.jme3.util.VRMouseManager; -import com.jme3.util.VRViewManager; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; @@ -74,7 +72,7 @@ import java.util.logging.Logger; *

  • To start the main {@link Application application}. * * Attaching an instance of this app state to an already started application may cause crashes. - * @author Julien Seinturier - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class VRAppState extends AbstractAppState { @@ -404,17 +402,25 @@ public class VRAppState extends AbstractAppState { // it will get updated automatically in the viewmanager update otherwise // TODO isn't this done by SimpleApplication? for (Spatial spatial : application.getGuiViewPort().getScenes()) { + //spatial.updateLogicalState(tpf); spatial.updateGeometricState(); } } - + // use the analog control on the first tracked controller to push around the mouse - // FIXME crashes on Rift/Touch (and probably OSVR), as it assumes the presence of the Vive touchpads - if(getVRHardware() instanceof OpenVR) { - environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); - } + environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf); } + @Override + public void render(RenderManager rm) { + super.render(rm); + + // update compositor + if( environment.getVRViewManager() != null ) { + environment.getVRViewManager().render(); + } + } + @Override public void postRender() { super.postRender(); @@ -425,16 +431,6 @@ public class VRAppState extends AbstractAppState { } } - @Override - public void render(RenderManager rm) { - super.render(rm); - - // update compositor - if( environment.getVRViewManager() != null ) { - environment.getVRViewManager().render(); - } - } - @Override public void initialize(AppStateManager stateManager, Application app) { super.initialize(stateManager, app); @@ -601,11 +597,7 @@ public class VRAppState extends AbstractAppState { settings.setFrequency(environment.getVRHardware().getDisplayFrequency()); settings.setFullscreen(false); settings.setVSync(false); // stop vsyncing on primary monitor! - - // TODO: Is this preventing desktop display on _ALL_ HMDs? - if(!(getVRHardware() instanceof OculusVR)) { - settings.setSwapBuffers(environment.isSwapBuffers()); - } + settings.setSwapBuffers(environment.isSwapBuffers()); } // Updating application settings diff --git a/jme3-vr/src/main/java/com/jme3/app/VRApplication.java b/jme3-vr/src/main/java/com/jme3/app/VRApplication.java index 9d502431d..2ad8ee134 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRApplication.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRApplication.java @@ -18,10 +18,12 @@ import com.jme3.input.KeyInput; import com.jme3.input.MouseInput; import com.jme3.input.TouchInput; import com.jme3.input.controls.KeyTrigger; -import com.jme3.input.vr.OSVR; -import com.jme3.input.vr.OpenVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.openvr.OpenVR; +import com.jme3.input.vr.openvr.OpenVRMouseManager; +import com.jme3.input.vr.openvr.OpenVRViewManager; +import com.jme3.input.vr.osvr.OSVR; import com.jme3.math.ColorRGBA; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; @@ -47,8 +49,6 @@ import com.jme3.system.lwjgl.LwjglDisplayVR; import com.jme3.system.lwjgl.LwjglOffscreenBufferVR; import com.jme3.util.VRGUIPositioningMode; import com.jme3.util.VRGuiManager; -import com.jme3.util.VRMouseManager; -import com.jme3.util.VRViewManagerOpenVR; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; @@ -72,7 +72,7 @@ import org.lwjgl.system.Platform; *

    * This class is no more functional and is deprecated. Please use {@link VRAppState VRAppState} instead. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * @deprecated use {@link VRAppState VRAppState} instead. */ public abstract class VRApplication implements Application, SystemListener { @@ -171,8 +171,8 @@ public abstract class VRApplication implements Application, SystemListener { private VRAPI VRhardware = null; private VRGuiManager guiManager = null; - private VRMouseManager mouseManager = null; - private VRViewManagerOpenVR viewmanager = null; + private OpenVRMouseManager mouseManager = null; + private OpenVRViewManager viewmanager = null; private String OS; @@ -259,10 +259,10 @@ public abstract class VRApplication implements Application, SystemListener { guiManager = new VRGuiManager(null); // Create a new view manager. - viewmanager = new VRViewManagerOpenVR(null); + viewmanager = new OpenVRViewManager(null); // Create a new mouse manager. - mouseManager = new VRMouseManager(null); + mouseManager = new OpenVRMouseManager(null); // we are going to use OpenVR now, not the Oculus Rift // OpenVR does support the Rift @@ -311,7 +311,7 @@ public abstract class VRApplication implements Application, SystemListener { * Get the VR view manager. * @return the VR view manager. */ - public VRViewManagerOpenVR getVRViewManager() { + public OpenVRViewManager getVRViewManager() { return viewmanager; } @@ -327,7 +327,7 @@ public abstract class VRApplication implements Application, SystemListener { * Get the VR mouse manager attached to this application. * @return the VR mouse manager attached to this application. */ - public VRMouseManager getVRMouseManager(){ + public OpenVRMouseManager getVRMouseManager(){ return mouseManager; } @@ -1359,7 +1359,7 @@ public abstract class VRApplication implements Application, SystemListener { } //FIXME: WARNING !! - viewmanager = new VRViewManagerOpenVR(null); + viewmanager = new OpenVRViewManager(null); viewmanager.setResolutionMultiplier(resMult); inputManager.addMapping(RESET_HMD, new KeyTrigger(KeyInput.KEY_F9)); setLostFocusBehavior(LostFocusBehavior.Disabled); diff --git a/jme3-vr/src/main/java/com/jme3/app/VRConstants.java b/jme3-vr/src/main/java/com/jme3/app/VRConstants.java index d8ec7fea7..969f6cb80 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VRConstants.java +++ b/jme3-vr/src/main/java/com/jme3/app/VRConstants.java @@ -6,7 +6,7 @@ import com.jme3.system.AppSettings; /** * Some constants dedicated to the VR module. - * @author Julien Seinturier - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * @since 3.1.0 */ public class VRConstants { @@ -117,6 +117,7 @@ public class VRConstants { *

  • {@link VRConstants#SETTING_VRAPI_OPENVR_VALUE SETTING_VRAPI_OPENVR_VALUE}: Use OpenVR binding. *
  • {@link VRConstants#SETTING_VRAPI_OSVR_VALUE SETTING_VRAPI_OSVR_VALUE}: Use OSVR binding. *
  • {@link VRConstants#SETTING_VRAPI_OPENVR_LWJGL_VALUE SETTING_VRAPI_OPENVR_LWJGL_VALUE}: Use OpenVR binding from LWJGL. + *
  • {@link VRConstants#SETTING_VRAPI_OCULUSVR_VALUE SETTING_VRAPI_OCULUSVR_VALUE}: Use Occulus Rift binding binding. * * Type: int
    * Usage: {@link AppSettings appSettings}.{@link HashMap#put(Object, Object) put}(VRConstants.SETTING_VRAPI, value) @@ -126,29 +127,34 @@ public class VRConstants { /** * The identifier of the OpenVR system. - * @see #SETTING_VRAPI + * @see #SETTING_VRAPI_OSVR_VALUE + * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE + * @see #SETTING_VRAPI_OCULUSVR_VALUE */ public static final int SETTING_VRAPI_OPENVR_VALUE = 1; /** * The identifier of the OSVR system. - * @see #SETTING_VRAPI + * @see #SETTING_VRAPI_OPENVR_VALUE + * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE + * @see #SETTING_VRAPI_OCULUSVR_VALUE */ public static final int SETTING_VRAPI_OSVR_VALUE = 2; /** * The identifier of the OpenVR from LWJGL system. - * @see #SETTING_VRAPI + * @see #SETTING_VRAPI_OPENVR_VALUE + * @see #SETTING_VRAPI_OSVR_VALUE + * @see #SETTING_VRAPI_OCULUSVR_VALUE */ public static final int SETTING_VRAPI_OPENVR_LWJGL_VALUE = 3; - + /** - * The identifier of the LibOVR (Oculus) system. - * - * @see #SETTING_VRAPI + * The identifier of the Oculus Rift system. + * @see #SETTING_VRAPI_OPENVR_VALUE + * @see #SETTING_VRAPI_OSVR_VALUE + * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE */ - public static final int SETTING_VRAPI_OCULUSVR_VALUE = 4; - - + public static final int SETTING_VRAPI_OCULUSVR_VALUE = 4; } diff --git a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java index 7ab9e29ff..400d5396c 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java +++ b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java @@ -5,23 +5,30 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.jme3.app.state.AppState; -import com.jme3.input.vr.OSVR; -import com.jme3.input.vr.OpenVR; -import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRBounds; import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.VRMouseManager; +import com.jme3.input.vr.VRViewManager; +import com.jme3.input.vr.oculus.OculusMouseManager; +import com.jme3.input.vr.oculus.OculusVR; +import com.jme3.input.vr.oculus.OculusViewManager; +import com.jme3.input.vr.openvr.OpenVR; +import com.jme3.input.vr.openvr.OpenVRMouseManager; +import com.jme3.input.vr.openvr.OpenVRViewManager; +import com.jme3.input.vr.osvr.OSVR; +import com.jme3.input.vr.osvr.OSVRViewManager; import com.jme3.renderer.Camera; import com.jme3.scene.Spatial; import com.jme3.system.AppSettings; import com.jme3.system.jopenvr.JOpenVRLibrary; import com.jme3.util.VRGuiManager; -import com.jme3.util.VRMouseManager; -import com.jme3.util.VRViewManager; -import com.jme3.util.VRViewManagerOSVR; -import com.jme3.util.VRViewManagerOculus; -import com.jme3.util.VRViewManagerOpenVR; +/** + * + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ public class VREnvironment { private static final Logger logger = Logger.getLogger(VREnvironment.class.getName()); @@ -74,11 +81,8 @@ public class VREnvironment { public VREnvironment(AppSettings settings){ this.settings = settings; - - guiManager = new VRGuiManager(this); - mouseManager = new VRMouseManager(this); - - bounds = new VRBounds(); + + bounds = null; processSettings(); } @@ -91,9 +95,19 @@ public class VREnvironment { return hardware; } + /** + * Set the VR bounds. + * @return the VR bounds. + * @see #getVRBounds() + */ + public void setVRBounds(VRBounds bounds){ + this.bounds = bounds; + } + /** * Get the VR bounds. * @return the VR bounds. + * @see #setVRBounds(VRBounds) */ public VRBounds getVRBounds(){ return bounds; @@ -387,11 +401,11 @@ public class VREnvironment { // Instanciate view manager if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE){ - viewmanager = new VRViewManagerOpenVR(this); + viewmanager = new OpenVRViewManager(this); } else if (vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE){ - viewmanager = new VRViewManagerOSVR(this); - } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { - viewmanager = new VRViewManagerOculus(this); + viewmanager = new OSVRViewManager(this); + } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { + viewmanager = new OculusViewManager(this); } else { logger.severe("Cannot instanciate view manager, unknown VRAPI type: "+vrBinding); } @@ -416,17 +430,29 @@ public class VREnvironment { if( vrSupportedOS) { if( vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE ) { + + guiManager = new VRGuiManager(this); + mouseManager = new OpenVRMouseManager(this); + hardware = new OSVR(this); initialized = true; logger.config("Creating OSVR wrapper [SUCCESS]"); } else if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) { + + guiManager = new VRGuiManager(this); + mouseManager = new OpenVRMouseManager(this); + hardware = new OpenVR(this); initialized = true; logger.config("Creating OpenVR wrapper [SUCCESS]"); } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { + + guiManager = new VRGuiManager(this); + mouseManager = new OculusMouseManager(this); + hardware = new OculusVR(this); - initialized = true; - logger.config("Creating LibOVR wrapper [SUCCESS]"); + initialized = true; + logger.config("Creating Occulus Rift wrapper [SUCCESS]"); } else { logger.config("Cannot create VR binding: "+vrBinding+" [FAILED]"); logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]"); diff --git a/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwKeyInputVR.java b/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwKeyInputVR.java index c670ccd3e..e551f0fdc 100644 --- a/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwKeyInputVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwKeyInputVR.java @@ -48,7 +48,7 @@ import static org.lwjgl.glfw.GLFW.*; /** * A key input that wraps GLFW underlying components. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * */ public class GlfwKeyInputVR implements KeyInput { diff --git a/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwMouseInputVR.java b/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwMouseInputVR.java index e1060666a..5dbb958fb 100644 --- a/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwMouseInputVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwMouseInputVR.java @@ -63,7 +63,7 @@ import org.lwjgl.system.MemoryUtil; * This class support modifications dedicated to VR rendering. * @author Daniel Johansson (dannyjo) * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org */ public class GlfwMouseInputVR implements MouseInput { diff --git a/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRMouseManager.java similarity index 56% rename from jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java rename to jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRMouseManager.java index 164ea12e6..8d73e7c04 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRMouseManager.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRMouseManager.java @@ -1,335 +1,228 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package com.jme3.util; - -import java.util.logging.Logger; - -import org.lwjgl.glfw.GLFW; - -import com.jme3.app.VREnvironment; -import com.jme3.input.MouseInput; -import com.jme3.input.controls.AnalogListener; -import com.jme3.input.lwjgl.GlfwMouseInputVR; -import com.jme3.input.vr.VRInputType; -import com.jme3.material.RenderState.BlendMode; -import com.jme3.math.Vector2f; -import com.jme3.scene.Node; -import com.jme3.system.AppSettings; -import com.jme3.system.lwjgl.LwjglWindow; -import com.jme3.texture.Texture; -import com.jme3.texture.Texture2D; -import com.jme3.ui.Picture; - -/** - * A class dedicated to the handling of the mouse within VR environment. - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org - * - */ -public class VRMouseManager { - - private static final Logger logger = Logger.getLogger(VRMouseManager.class.getName()); - - - private VREnvironment environment = null; - - private final int AVERAGE_AMNT = 4; - private int avgCounter; - - private Picture mouseImage; - private int recentCenterCount = 0; - private final Vector2f cursorPos = new Vector2f(); - private float ySize, sensitivity = 8f, acceleration = 2f; - private final float[] lastXmv = new float[AVERAGE_AMNT], lastYmv = new float[AVERAGE_AMNT]; - private boolean thumbstickMode; - private float moveScale = 1f; - - private float avg(float[] arr) { - float amt = 0f; - for(float f : arr) amt += f; - return amt / arr.length; - } - - /** - * Create a new VR mouse manager within the given {@link VREnvironment VR environment}. - * @param environment the VR environment of the mouse manager. - */ - public VRMouseManager(VREnvironment environment){ - this.environment = environment; - } - - /** - * Initialize the VR mouse manager. - */ - protected void initialize() { - - logger.config("Initializing VR mouse manager."); - - // load default mouseimage - mouseImage = new Picture("mouse"); - setImage("Common/Util/mouse.png"); - // hide default cursor by making it invisible - - MouseInput mi = environment.getApplication().getContext().getMouseInput(); - if( mi instanceof GlfwMouseInputVR ){ - ((GlfwMouseInputVR)mi).hideActiveCursor(); - } - centerMouse(); - - logger.config("Initialized VR mouse manager [SUCCESS]"); - } - - public void setThumbstickMode(boolean set) { - thumbstickMode = set; - } - - public boolean isThumbstickMode() { - return thumbstickMode; - } - - /** - * Set the speed of the mouse. - * @param sensitivity the sensitivity of the mouse. - * @param acceleration the acceleration of the mouse. - * @see #getSpeedAcceleration() - * @see #getSpeedSensitivity() - */ - public void setSpeed(float sensitivity, float acceleration) { - this.sensitivity = sensitivity; - this.acceleration = acceleration; - } - - /** - * Get the sensitivity of the mouse. - * @return the sensitivity of the mouse. - * @see #setSpeed(float, float) - */ - public float getSpeedSensitivity() { - return sensitivity; - } - - /** - * Get the acceleration of the mouse. - * @return the acceleration of the mouse. - * @see #setSpeed(float, float) - */ - public float getSpeedAcceleration() { - return acceleration; - } - - /** - * Set the mouse move scale. - * @param set the mouse move scale. - */ - public void setMouseMoveScale(float set) { - moveScale = set; - } - - /** - * Set the image to use as mouse cursor. The given string describe an asset that the underlying application asset manager has to load. - * @param texture the image to use as mouse cursor. - */ - public void setImage(String texture) { - - if (environment != null){ - - if (environment.getApplication() != null){ - if( environment.isInVR() == false ){ - Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); - mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true); - ySize = tex.getImage().getHeight(); - mouseImage.setHeight(ySize); - mouseImage.setWidth(tex.getImage().getWidth()); - mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); - mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); - } else { - Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); - mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true); - ySize = tex.getImage().getHeight(); - mouseImage.setHeight(ySize); - mouseImage.setWidth(tex.getImage().getWidth()); - mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); - mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); - } - } else { - throw new IllegalStateException("This VR environment is not attached to any application."); - } - - } else { - throw new IllegalStateException("This VR view manager is not attached to any VR environment."); - } - } - - /** - * Update analog controller as it was a mouse controller. - * @param inputIndex the index of the controller attached to the VR system. - * @param mouseListener the JMonkey mouse listener to trigger. - * @param mouseXName the mouseX identifier. - * @param mouseYName the mouseY identifier - * @param tpf the time per frame. - */ - public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) { - - if (environment != null){ - if (environment.getApplication() != null){ - // got a tracked controller to use as the "mouse" - if( environment.isInVR() == false || - environment.getVRinput() == null || - environment.getVRinput().isInputDeviceTracking(inputIndex) == false ){ - return; - } - - Vector2f tpDelta; - // TODO option to use Touch joysticks - if( thumbstickMode ) { - tpDelta = environment.getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis); - } else { - tpDelta = environment.getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis); - } - - float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * sensitivity, acceleration); - float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * sensitivity, acceleration); - - if( tpDelta.x < 0f ){ - Xamount = -Xamount; - } - - if( tpDelta.y < 0f ){ - Yamount = -Yamount; - } - - Xamount *= moveScale; Yamount *= moveScale; - if( mouseListener != null ) { - if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf); - if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf); - } - - if( environment.getApplication().getInputManager().isCursorVisible() ) { - int index = (avgCounter+1) % AVERAGE_AMNT; - lastXmv[index] = Xamount * 133f; - lastYmv[index] = Yamount * 133f; - cursorPos.x -= avg(lastXmv); - cursorPos.y -= avg(lastYmv); - Vector2f maxsize = environment.getVRGUIManager().getCanvasSize(); - - if( cursorPos.x > maxsize.x ){ - cursorPos.x = maxsize.x; - } - - if( cursorPos.x < 0f ){ - cursorPos.x = 0f; - } - - if( cursorPos.y > maxsize.y ){ - cursorPos.y = maxsize.y; - } - - if( cursorPos.y < 0f ){ - cursorPos.y = 0f; - } - } - } else { - throw new IllegalStateException("This VR environment is not attached to any application."); - } - } else { - throw new IllegalStateException("This VR view manager is not attached to any VR environment."); - } - } - - /** - * Get the actual cursor position. - * @return the actual cursor position. - */ - public Vector2f getCursorPosition() { - - if (environment != null){ - if (environment.getApplication() != null){ - if( environment.isInVR() ) { - return cursorPos; - } - - return environment.getApplication().getInputManager().getCursorPosition(); - } else { - throw new IllegalStateException("This VR environment is not attached to any application."); - } - } else { - throw new IllegalStateException("This VR view manager is not attached to any VR environment."); - } - } - - /** - * Center the mouse on the display. - */ - public void centerMouse() { - - if (environment != null){ - if (environment.getApplication() != null){ - // set mouse in center of the screen if newly added - Vector2f size = environment.getVRGUIManager().getCanvasSize(); - MouseInput mi = environment.getApplication().getContext().getMouseInput(); - AppSettings as = environment.getApplication().getContext().getSettings(); - if( mi instanceof GlfwMouseInputVR ) ((GlfwMouseInputVR)mi).setCursorPosition((int)(as.getWidth() / 2f), (int)(as.getHeight() / 2f)); - if( environment.isInVR() ) { - cursorPos.x = size.x / 2f; - cursorPos.y = size.y / 2f; - recentCenterCount = 2; - } - } else { - throw new IllegalStateException("This VR environment is not attached to any application."); - } - } else { - throw new IllegalStateException("This VR view manager is not attached to any VR environment."); - } - - } - - /** - * Update the mouse manager. This method should not be called manually. - * The standard behavior for this method is to be called from the {@link VRViewManager#update(float) update method} of the attached {@link VRViewManager VR view manager}. - * @param tpf the time per frame. - */ - protected void update(float tpf) { - // if we are showing the cursor, add our picture as it - - if( environment.getApplication().getInputManager().isCursorVisible() ) { - if( mouseImage.getParent() == null ) { - - environment.getApplication().getGuiViewPort().attachScene(mouseImage); - centerMouse(); - // the "real" mouse pointer should stay hidden - if (environment.getApplication().getContext() instanceof LwjglWindow){ - GLFW.glfwSetInputMode(((LwjglWindow)environment.getApplication().getContext()).getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_DISABLED); - } - } - // handle mouse movements, which may be in addition to (or exclusive from) tracked movement - MouseInput mi = environment.getApplication().getContext().getMouseInput(); - if( mi instanceof GlfwMouseInputVR ) { - if( recentCenterCount <= 0 ) { - //Vector2f winratio = VRGuiManager.getCanvasToWindowRatio(); - cursorPos.x += ((GlfwMouseInputVR)mi).getLastDeltaX();// * winratio.x; - cursorPos.y += ((GlfwMouseInputVR)mi).getLastDeltaY();// * winratio.y; - if( cursorPos.x < 0f ) cursorPos.x = 0f; - if( cursorPos.y < 0f ) cursorPos.y = 0f; - if( cursorPos.x > environment.getVRGUIManager().getCanvasSize().x ) cursorPos.x = environment.getVRGUIManager().getCanvasSize().x; - if( cursorPos.y > environment.getVRGUIManager().getCanvasSize().y ) cursorPos.y = environment.getVRGUIManager().getCanvasSize().y; - } else recentCenterCount--; - ((GlfwMouseInputVR)mi).clearDeltas(); - } - // ok, update the cursor graphic position - Vector2f currentPos = getCursorPosition(); - mouseImage.setLocalTranslation(currentPos.x, currentPos.y - ySize, environment.getVRGUIManager().getGuiDistance() + 1f); - - mouseImage.updateGeometricState(); - - } else if( mouseImage.getParent() != null ) { - Node n = mouseImage.getParent(); - mouseImage.removeFromParent(); - - if (n != null){ - n.updateGeometricState(); - } - } - } -} +package com.jme3.input.vr; + +import java.util.logging.Logger; + +import org.lwjgl.glfw.GLFW; + +import com.jme3.app.VREnvironment; +import com.jme3.input.MouseInput; +import com.jme3.input.lwjgl.GlfwMouseInputVR; +import com.jme3.material.RenderState.BlendMode; +import com.jme3.math.Vector2f; +import com.jme3.scene.Node; +import com.jme3.system.AppSettings; +import com.jme3.system.lwjgl.LwjglWindow; +import com.jme3.texture.Texture; +import com.jme3.texture.Texture2D; +import com.jme3.ui.Picture; + +/** + * An abstract implementation of a {@link VRMouseManager}. This class should be overrided by specific hardware implementation of VR devices. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ +public abstract class AbstractVRMouseManager implements VRMouseManager { + + private static final Logger logger = Logger.getLogger(AbstractVRMouseManager.class.getName()); + + private VREnvironment environment = null; + + + + private Picture mouseImage; + private int recentCenterCount = 0; + + protected final Vector2f cursorPos = new Vector2f(); + + private float ySize, sensitivity = 8f, acceleration = 2f; + + private boolean thumbstickMode; + private float moveScale = 1f; + + /** + * Create a new AbstractVRMouseManager attached to the given {@link VREnvironment VR environment}. + * @param environment the {@link VREnvironment VR environment} that this manager is attached to. + */ + public AbstractVRMouseManager(VREnvironment environment) { + this.environment = environment; + } + + @Override + public void initialize() { + + logger.config("Initializing VR mouse manager."); + + // load default mouseimage + mouseImage = new Picture("mouse"); + setImage("Common/Util/mouse.png"); + // hide default cursor by making it invisible + + MouseInput mi = environment.getApplication().getContext().getMouseInput(); + if( mi instanceof GlfwMouseInputVR ){ + ((GlfwMouseInputVR)mi).hideActiveCursor(); + } + centerMouse(); + + logger.config("Initialized VR mouse manager [SUCCESS]"); + } + + @Override + public VREnvironment getVREnvironment() { + return environment; + } + + @Override + public void setThumbstickMode(boolean set) { + thumbstickMode = set; + } + + @Override + public boolean isThumbstickMode() { + return thumbstickMode; + } + + @Override + public void setSpeed(float sensitivity, float acceleration) { + this.sensitivity = sensitivity; + this.acceleration = acceleration; + } + + @Override + public float getSpeedSensitivity() { + return sensitivity; + } + + @Override + public float getSpeedAcceleration() { + return acceleration; + } + + @Override + public float getMouseMoveScale() { + return moveScale; + } + + @Override + public void setMouseMoveScale(float set) { + moveScale = set; + } + + @Override + public void setImage(String texture) { + + if (environment != null){ + + if (environment.getApplication() != null){ + if( environment.isInVR() == false ){ + Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); + mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true); + ySize = tex.getImage().getHeight(); + mouseImage.setHeight(ySize); + mouseImage.setWidth(tex.getImage().getWidth()); + mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); + mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); + } else { + Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); + mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true); + ySize = tex.getImage().getHeight(); + mouseImage.setHeight(ySize); + mouseImage.setWidth(tex.getImage().getWidth()); + mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); + mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + + @Override + public Vector2f getCursorPosition() { + + if (environment != null){ + if (environment.getApplication() != null){ + if( environment.isInVR() ) { + return cursorPos; + } + + return environment.getApplication().getInputManager().getCursorPosition(); + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + @Override + public void centerMouse() { + + if (environment != null){ + if (environment.getApplication() != null){ + // set mouse in center of the screen if newly added + Vector2f size = environment.getVRGUIManager().getCanvasSize(); + MouseInput mi = environment.getApplication().getContext().getMouseInput(); + AppSettings as = environment.getApplication().getContext().getSettings(); + if( mi instanceof GlfwMouseInputVR ) ((GlfwMouseInputVR)mi).setCursorPosition((int)(as.getWidth() / 2f), (int)(as.getHeight() / 2f)); + if( environment.isInVR() ) { + cursorPos.x = size.x / 2f; + cursorPos.y = size.y / 2f; + recentCenterCount = 2; + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + + } + + @Override + public void update(float tpf) { + // if we are showing the cursor, add our picture as it + + if( environment.getApplication().getInputManager().isCursorVisible() ) { + if( mouseImage.getParent() == null ) { + + environment.getApplication().getGuiViewPort().attachScene(mouseImage); + centerMouse(); + // the "real" mouse pointer should stay hidden + if (environment.getApplication().getContext() instanceof LwjglWindow){ + GLFW.glfwSetInputMode(((LwjglWindow)environment.getApplication().getContext()).getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_DISABLED); + } + } + // handle mouse movements, which may be in addition to (or exclusive from) tracked movement + MouseInput mi = environment.getApplication().getContext().getMouseInput(); + if( mi instanceof GlfwMouseInputVR ) { + if( recentCenterCount <= 0 ) { + //Vector2f winratio = VRGuiManager.getCanvasToWindowRatio(); + cursorPos.x += ((GlfwMouseInputVR)mi).getLastDeltaX();// * winratio.x; + cursorPos.y += ((GlfwMouseInputVR)mi).getLastDeltaY();// * winratio.y; + if( cursorPos.x < 0f ) cursorPos.x = 0f; + if( cursorPos.y < 0f ) cursorPos.y = 0f; + if( cursorPos.x > environment.getVRGUIManager().getCanvasSize().x ) cursorPos.x = environment.getVRGUIManager().getCanvasSize().x; + if( cursorPos.y > environment.getVRGUIManager().getCanvasSize().y ) cursorPos.y = environment.getVRGUIManager().getCanvasSize().y; + } else recentCenterCount--; + ((GlfwMouseInputVR)mi).clearDeltas(); + } + // ok, update the cursor graphic position + Vector2f currentPos = getCursorPosition(); + mouseImage.setLocalTranslation(currentPos.x, currentPos.y - ySize, environment.getVRGUIManager().getGuiDistance() + 1f); + + mouseImage.updateGeometricState(); + + } else if( mouseImage.getParent() != null ) { + Node n = mouseImage.getParent(); + mouseImage.removeFromParent(); + + if (n != null){ + n.updateGeometricState(); + } + } + } +} diff --git a/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRViewManager.java similarity index 95% rename from jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java rename to jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRViewManager.java index 6c664dd59..54251fadf 100644 --- a/jme3-vr/src/main/java/com/jme3/util/AbstractVRViewManager.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRViewManager.java @@ -1,4 +1,4 @@ -package com.jme3.util; +package com.jme3.input.vr; import com.jme3.app.VREnvironment; import com.jme3.post.CartoonSSAO; @@ -18,7 +18,7 @@ import com.jme3.texture.Texture2D; /** * A VR view manager. This class holds methods that enable to submit 3D views to the VR compositor. * System dependent classes should extends from this one. - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public abstract class AbstractVRViewManager implements VRViewManager { @@ -128,10 +128,6 @@ public abstract class AbstractVRViewManager implements VRViewManager { public VREnvironment getVREnvironment(){ return environment; } - - @Override - public void render() { - } /** * Handles moving filters from the main view to each eye diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/HmdType.java b/jme3-vr/src/main/java/com/jme3/input/vr/HmdType.java index 044a032ef..5ad535d72 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/HmdType.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/HmdType.java @@ -3,7 +3,7 @@ package com.jme3.input.vr; /** * The type of VR Head Mounted Device (HMD) * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public enum HmdType { diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java index 308611d57..365e515b9 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java @@ -14,7 +14,7 @@ import com.jme3.renderer.Camera; /** * An interface that represents a VR system. This interface has to be implemented in order to wrap underlying VR system (OpenVR, OSVR, ...) * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public interface VRAPI { @@ -86,8 +86,8 @@ public interface VRAPI { public boolean isInitialized(); /** - * Reset (recenter) the VR system. The current position of the HMD is - * now considered the origin (observer+[0,0,0]). + * Reset the VR system. After a call to this method, the current position of the HMD should be + * the origin (i-e the observer without any combined transformation). */ public void reset(); diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRBounds.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRBounds.java index 0f81b4105..288812c68 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRBounds.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRBounds.java @@ -1,61 +1,17 @@ -package com.jme3.input.vr; - -import com.jme3.math.Vector2f; -import com.jme3.system.jopenvr.JOpenVRLibrary; -import com.jme3.system.jopenvr.VR_IVRChaperone_FnTable; -import com.sun.jna.ptr.FloatByReference; - -import java.util.logging.Logger; - -/** - * A class that represents VR world bounds. - * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org - */ -public class VRBounds { - - private static Logger logger = Logger.getLogger(VRBounds.class.getName()); - - private VR_IVRChaperone_FnTable vrChaperone; - private Vector2f playSize; - - /** - * Initialize the VR bounds. - * @return true if the initialization is a success and false otherwise. - */ - public boolean init(OpenVR api) { - - logger.config("Initialize VR bounds..."); - - if( vrChaperone == null ) { - vrChaperone = new VR_IVRChaperone_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRChaperone_Version, api.hmdErrorStore).getPointer()); - if( vrChaperone != null ) { - vrChaperone.setAutoSynch(false); - vrChaperone.read(); - FloatByReference fbX = new FloatByReference(); - FloatByReference fbZ = new FloatByReference(); - vrChaperone.GetPlayAreaSize.apply(fbX, fbZ); - playSize = new Vector2f(fbX.getValue(), fbZ.getValue()); - - logger.config("Initialize VR bounds [SUCCESS]"); - return true; // init success - } - - logger.warning("Initialize VR bounds [FAILED]."); - return false; // failed to init - } - - logger.config("Initialize VR bounds already done."); - return true; // already initialized - } - - /** - * Get the size of the VR world. - * @return the size of the VR world. - */ - public Vector2f getPlaySize() { - return playSize; - } - -} - +package com.jme3.input.vr; + +import com.jme3.math.Vector2f; + +/** + * This interface describe the VR playground bounds. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ +public interface VRBounds { + + /** + * Get the size of the VR playground. + * @return the size of the VR playground. + */ + public Vector2f getPlaySize(); +} diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputAPI.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputAPI.java index 50733e04b..d576d1943 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputAPI.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputAPI.java @@ -12,7 +12,7 @@ import com.jme3.math.Vector3f; /** * An interface that represents a VR input (typically a VR device such as a controller). * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public interface VRInputAPI { diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java index 2d529cf77..c82e2b518 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java @@ -1,11 +1,9 @@ package com.jme3.input.vr; -import static org.lwjgl.ovr.OVR.*; // For the button constants - /** * The type of a VR input. This enumeration enables to determine which part of the VR device is involved within input callback. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * */ public enum VRInputType { @@ -59,18 +57,18 @@ public enum VRInputType { /** * The upper buttons on the Oculus Touch controllers - B on the right controller, and Y on the left. */ - OculusTopButton(ovrButton_B | ovrButton_Y), + OculusTopButton(org.lwjgl.ovr.OVR.ovrButton_B | org.lwjgl.ovr.OVR.ovrButton_Y), /** * The lower (not counting menu) buttons on the Oculus Touch * controllers - A on the right controller, and X on the left. */ - OculusBottomButton(ovrButton_A | ovrButton_X), + OculusBottomButton(org.lwjgl.ovr.OVR.ovrButton_A | org.lwjgl.ovr.OVR.ovrButton_X), /** * The 'click' button on the Oculus Touch thumbsticks. */ - OculusThumbstickButton(ovrButton_LThumb | ovrButton_RThumb), + OculusThumbstickButton(org.lwjgl.ovr.OVR.ovrButton_LThumb | org.lwjgl.ovr.OVR.ovrButton_RThumb), /** * The game-usable menu button, under and to the left of the 'X' button on the left controller. @@ -78,22 +76,22 @@ public enum VRInputType { * Most games use this to pause - it preferably should be used for at least that purpose, and is * uncomfortable to rest your thumb on (in games where you suddenly have to pause/open a menu). */ - OculusMenuButton(ovrButton_Enter), + OculusMenuButton(org.lwjgl.ovr.OVR.ovrButton_Enter), /** * The capacitive touch sensors on the top buttons (Y and B) of the Oculus Touch. */ - OculusTopTouch(ovrTouch_B | ovrTouch_Y), + OculusTopTouch(org.lwjgl.ovr.OVR.ovrTouch_B | org.lwjgl.ovr.OVR.ovrTouch_Y), /** * The capacitive touch sensors on the lower buttons (X and A) of the Oculus Touch. */ - OculusBottomTouch(ovrTouch_A | ovrTouch_X), + OculusBottomTouch(org.lwjgl.ovr.OVR.ovrTouch_A | org.lwjgl.ovr.OVR.ovrTouch_X), /** * The capacitive touch sensors on the thumbsticks of the Oculus Touch. */ - OculusThumbstickTouch(ovrTouch_LThumb | ovrTouch_RThumb), + OculusThumbstickTouch(org.lwjgl.ovr.OVR.ovrTouch_LThumb | org.lwjgl.ovr.OVR.ovrTouch_RThumb), /** * The capacitive touch sensors on the thumbrests of the Oculus Touch - this is a textured pad @@ -102,7 +100,7 @@ public enum VRInputType { * While it probably goes without saying, only use this for gesture support and do not bind game * elements to it. */ - OculusThumbrestTouch(ovrTouch_LThumbRest | ovrTouch_RThumbRest), + OculusThumbrestTouch(org.lwjgl.ovr.OVR.ovrTouch_LThumbRest | org.lwjgl.ovr.OVR.ovrTouch_RThumbRest), /** * The state of a software calculation based on the capacitive touch sensor values that determine if @@ -111,12 +109,12 @@ public enum VRInputType { * This should be used instead of calculating this yourself based on the touch results of all the other * parts of the controller. */ - OculusThumbUp(ovrTouch_LThumbUp | ovrTouch_RThumbUp), + OculusThumbUp(org.lwjgl.ovr.OVR.ovrTouch_LThumbUp | org.lwjgl.ovr.OVR.ovrTouch_RThumbUp), /** * Is the user resting their finger on the trigger of an Oculus Touch controller? */ - OculusIndexTouch(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing), + OculusIndexTouch(org.lwjgl.ovr.OVR.ovrTouch_LIndexPointing | org.lwjgl.ovr.OVR.ovrTouch_RIndexPointing), /** * Is the user pointing their finger forwards, as if to press a button? @@ -124,7 +122,7 @@ public enum VRInputType { * This is internally calculated from proximity and filtering is applied - it should be used rather * than !OculusIndexTouch, as it will probably lead to better results. */ - OculusIndexPointing(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing); + OculusIndexPointing(org.lwjgl.ovr.OVR.ovrTouch_LIndexPointing | org.lwjgl.ovr.OVR.ovrTouch_RIndexPointing); /** * The value that codes the input type. diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRMouseManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRMouseManager.java new file mode 100644 index 000000000..5257cd05c --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRMouseManager.java @@ -0,0 +1,107 @@ +package com.jme3.input.vr; + +import com.jme3.app.VREnvironment; +import com.jme3.input.controls.AnalogListener; +import com.jme3.math.Vector2f; + +/** + * A class dedicated to the handling of the mouse within VR environment. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + */ +public interface VRMouseManager { + + + /** + * Initialize the VR mouse manager. + */ + public void initialize(); + + /** + * Get the {@link VREnvironment VR Environment} to which this manager is attached. + * @return the {@link VREnvironment VR Environment} to which this manager is attached. + */ + public VREnvironment getVREnvironment(); + + /** + * Set if the VR device controller is used within thumb stick mode. + * @param set true if the VR device controller is used within thumb stick mode and false otherwise. + */ + public void setThumbstickMode(boolean set); + + /** + * Get if the VR device controller is used within thumb stick mode. + * @return true if the VR device controller is used within thumb stick mode and false otherwise. + */ + public boolean isThumbstickMode(); + + /** + * Set the speed of the mouse. + * @param sensitivity the sensitivity of the mouse. + * @param acceleration the acceleration of the mouse. + * @see #getSpeedAcceleration() + * @see #getSpeedSensitivity() + */ + public void setSpeed(float sensitivity, float acceleration); + + /** + * Get the sensitivity of the mouse. + * @return the sensitivity of the mouse. + * @see #setSpeed(float, float) + */ + public float getSpeedSensitivity(); + + /** + * Get the acceleration of the mouse. + * @return the acceleration of the mouse. + * @see #setSpeed(float, float) + */ + public float getSpeedAcceleration(); + + /** + * Get the move scale. + * return the move scale. + * @see #setMouseMoveScale(float) + */ + public float getMouseMoveScale(); + + /** + * Set the mouse move scale. + * @param set the mouse move scale. + * @see #getMouseMoveScale() + */ + public void setMouseMoveScale(float set); + + /** + * Set the image to use as mouse cursor. The given string describe an asset that the underlying application asset manager has to load. + * @param texture the image to use as mouse cursor. + */ + public void setImage(String texture); + + /** + * Update analog controller as it was a mouse controller. + * @param inputIndex the index of the controller attached to the VR system. + * @param mouseListener the JMonkey mouse listener to trigger. + * @param mouseXName the mouseX identifier. + * @param mouseYName the mouseY identifier + * @param tpf the time per frame. + */ + public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf); + + /** + * Get the actual cursor position. + * @return the actual cursor position. + */ + public Vector2f getCursorPosition(); + + /** + * Center the mouse on the display. + */ + public void centerMouse(); + + /** + * Update the mouse manager. This method should not be called manually. + * The standard behavior for this method is to be called from the {@link VRViewManager#update(float) update method} of the attached {@link VRViewManager VR view manager}. + * @param tpf the time per frame. + */ + public void update(float tpf); +} diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/VRTrackedController.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRTrackedController.java index 3ce20e5c0..f47e36aa8 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/VRTrackedController.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRTrackedController.java @@ -6,8 +6,7 @@ import com.jme3.math.Vector3f; /** * TODO - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org - * + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public interface VRTrackedController { diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/VRViewManager.java similarity index 89% rename from jme3-vr/src/main/java/com/jme3/util/VRViewManager.java rename to jme3-vr/src/main/java/com/jme3/input/vr/VRViewManager.java index 1a5eaeb75..96b3eda95 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManager.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/VRViewManager.java @@ -1,4 +1,4 @@ -package com.jme3.util; +package com.jme3.input.vr; import com.jme3.app.VRAppState; import com.jme3.app.VREnvironment; @@ -11,7 +11,7 @@ import com.jme3.texture.Texture2D; /** * A VR view manager. This interface describes methods that enable to submit 3D views to the VR compositor. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public interface VRViewManager { @@ -151,15 +151,17 @@ public interface VRViewManager { public void update(float tpf); /** - * Set up the scene for rendering. - * This method should be called before any rendering takes place. + * This method contains action to be done during the rendering phase. + * This method should be called for example from the {@link com.jme3.app.state.AppState#render(com.jme3.renderer.RenderManager) render} method of an {@link com.jme3.app.state.AppState app state}. + * @see #postRender() */ public void render(); - + /** * Send the rendering result as textures to the two eyes. * This method should be called after all the rendering operations * (for example at the end of the {@link AppState#postRender() postRender()} method of the attached app state.) + * @see #preRender() */ public void postRender(); diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusMouseManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusMouseManager.java new file mode 100644 index 000000000..52fbaf7b0 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusMouseManager.java @@ -0,0 +1,108 @@ +package com.jme3.input.vr.oculus; + +import com.jme3.app.VREnvironment; +import com.jme3.input.controls.AnalogListener; +import com.jme3.input.vr.AbstractVRMouseManager; +import com.jme3.input.vr.VRInputType; +import com.jme3.math.Vector2f; + +/** + * A class dedicated to the mouse handling within Oculus Rift based VR experience. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ +public class OculusMouseManager extends AbstractVRMouseManager { + + private final int AVERAGE_AMNT = 4; + + private int avgCounter; + + private final float[] lastXmv = new float[AVERAGE_AMNT]; + + private final float[] lastYmv = new float[AVERAGE_AMNT]; + + /** + * Create a new VR mouse manager within the given {@link VREnvironment VR environment}. + * @param environment the VR environment of the mouse manager. + */ + public OculusMouseManager(VREnvironment environment){ + super(environment); + } + + @Override + public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) { + + if (getVREnvironment() != null){ + if (getVREnvironment().getApplication() != null){ + // got a tracked controller to use as the "mouse" + if( getVREnvironment().isInVR() == false || + getVREnvironment().getVRinput() == null || + getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){ + return; + } + + Vector2f tpDelta; + // TODO option to use Touch joysticks + if( isThumbstickMode() ) { + tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.OculusThumbstickAxis); + } else { + tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.OculusThumbstickAxis); + } + + float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration()); + float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration()); + + if( tpDelta.x < 0f ){ + Xamount = -Xamount; + } + + if( tpDelta.y < 0f ){ + Yamount = -Yamount; + } + + Xamount *= getMouseMoveScale(); + Yamount *= getMouseMoveScale(); + + if( mouseListener != null ) { + if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf); + if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf); + } + + if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) { + int index = (avgCounter+1) % AVERAGE_AMNT; + lastXmv[index] = Xamount * 133f; + lastYmv[index] = Yamount * 133f; + cursorPos.x -= avg(lastXmv); + cursorPos.y -= avg(lastYmv); + Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize(); + + if( cursorPos.x > maxsize.x ){ + cursorPos.x = maxsize.x; + } + + if( cursorPos.x < 0f ){ + cursorPos.x = 0f; + } + + if( cursorPos.y > maxsize.y ){ + cursorPos.y = maxsize.y; + } + + if( cursorPos.y < 0f ){ + cursorPos.y = 0f; + } + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + private float avg(float[] arr) { + float amt = 0f; + for(float f : arr) amt += f; + return amt / arr.length; + } +} diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVR.java similarity index 99% rename from jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java rename to jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVR.java index 5ce192864..7dcc36b9f 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVR.java @@ -3,9 +3,11 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package com.jme3.input.vr; +package com.jme3.input.vr.oculus; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.HmdType; +import com.jme3.input.vr.VRAPI; import com.jme3.math.*; import com.jme3.renderer.Camera; import com.jme3.texture.*; diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVRInput.java similarity index 96% rename from jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java rename to jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVRInput.java index 9016850bc..e3631e72a 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OculusVRInput.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVRInput.java @@ -1,10 +1,13 @@ -package com.jme3.input.vr; +package com.jme3.input.vr.oculus; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.VRInputType; +import com.jme3.input.vr.VRTrackedController; import com.jme3.math.*; import com.jme3.renderer.Camera; import com.jme3.scene.Spatial; -import com.jme3.util.VRViewManagerOculus; + import org.lwjgl.ovr.*; import static org.lwjgl.ovr.OVR.*; @@ -129,7 +132,7 @@ public class OculusVRInput implements VRInputAPI { // Copied from OpenVRInput VREnvironment env = hardware.getEnvironment(); - VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); + OculusViewManager vrvm = (OculusViewManager) hardware.getEnvironment().getVRViewManager(); Object obs = env.getObserver(); Quaternion tempq = new Quaternion(); // TODO move to class scope? @@ -147,7 +150,7 @@ public class OculusVRInput implements VRInputAPI { // Copied from OpenVRInput VREnvironment env = hardware.getEnvironment(); - VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); + OculusViewManager vrvm = (OculusViewManager) hardware.getEnvironment().getVRViewManager(); Object obs = env.getObserver(); Vector3f pos = getPosition(index); diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusViewManager.java similarity index 96% rename from jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java rename to jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusViewManager.java index 53a00aabd..ac97ab3ef 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOculus.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusViewManager.java @@ -29,16 +29,18 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package com.jme3.util; +package com.jme3.input.vr.oculus; import com.jme3.app.VREnvironment; -import com.jme3.input.vr.OculusVR; +import com.jme3.input.vr.AbstractVRViewManager; import com.jme3.input.vr.VRAPI; import com.jme3.math.*; import com.jme3.renderer.Camera; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; import com.jme3.texture.*; +import com.jme3.util.BufferUtils; +import com.jme3.util.VRGUIPositioningMode; import java.nio.IntBuffer; import java.util.Iterator; @@ -55,9 +57,9 @@ import static org.lwjgl.ovr.OVRErrorCode.*; * * @author Campbell Suter */ -public class VRViewManagerOculus extends AbstractVRViewManager { +public class OculusViewManager extends AbstractVRViewManager { - private static final Logger LOG = Logger.getLogger(VRViewManagerOculus.class.getName()); + private static final Logger LOG = Logger.getLogger(OculusViewManager.class.getName()); private final VREnvironment environment; private final OculusVR hardware; @@ -69,7 +71,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { private final Vector3f hmdPos = new Vector3f(); private final Quaternion hmdRot = new Quaternion(); - public VRViewManagerOculus(VREnvironment environment) { + public OculusViewManager(VREnvironment environment) { this.environment = environment; VRAPI hardware = environment.getVRHardware(); @@ -153,7 +155,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager { environment.getVRMouseManager().update(tpf); // update GUI position? - if (environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { + if (environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().updateGuiQuadGeometricState(); } diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVR.java similarity index 91% rename from jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java rename to jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVR.java index a3cd4028d..8e10ecd0a 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVR.java @@ -3,9 +3,11 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package com.jme3.input.vr; +package com.jme3.input.vr.openvr; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.HmdType; +import com.jme3.input.vr.VRAPI; import com.jme3.math.Matrix4f; import com.jme3.math.Quaternion; import com.jme3.math.Vector2f; @@ -35,15 +37,15 @@ import java.util.logging.Logger; /** * A class that wraps an OpenVR system. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class OpenVR implements VRAPI { private static final Logger logger = Logger.getLogger(OpenVR.class.getName()); private static VR_IVRCompositor_FnTable compositorFunctions; - private static VR_IVRTrackedCamera_FnTable cameraFunctions; private static VR_IVRSystem_FnTable vrsystemFunctions; + private static VR_IVRTrackedCamera_FnTable cameraFunctions; private static boolean initSuccess = false; private static boolean flipEyes = false; @@ -110,7 +112,7 @@ public class OpenVR implements VRAPI { } public VR_IVRTrackedCamera_FnTable getTrackedCamera(){ - return cameraFunctions; + return cameraFunctions; } @Override @@ -145,7 +147,17 @@ public class OpenVR implements VRAPI { hmdErrorStore = new IntByReference(); vrsystemFunctions = null; + + // Init the native linking to the OpenVR library. + try{ + JOpenVRLibrary.init(); + } catch(Throwable t){ + logger.log(Level.SEVERE, "Cannot link to OpenVR system library: "+t.getMessage(), t); + return false; + } + JOpenVRLibrary.VR_InitInternal(hmdErrorStore, JOpenVRLibrary.EVRApplicationType.EVRApplicationType_VRApplication_Scene); + if( hmdErrorStore.getValue() == 0 ) { vrsystemFunctions = new VR_IVRSystem_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRSystem_Version, hmdErrorStore).getPointer()); } @@ -160,6 +172,7 @@ public class OpenVR implements VRAPI { vrsystemFunctions.setAutoSynch(false); vrsystemFunctions.read(); + tlastVsync = new FloatByReference(); _tframeCount = new LongByReference(); @@ -188,7 +201,9 @@ public class OpenVR implements VRAPI { VRinput.updateConnectedControllers(); // init bounds & chaperone info - environment.getVRBounds().init(this); + OpenVRBounds bounds = new OpenVRBounds(); + bounds.init(this); + environment.setVRBounds(bounds); logger.config("Initializing OpenVR system [SUCCESS]"); initSuccess = true; @@ -241,22 +256,27 @@ public class OpenVR implements VRAPI { } return compositorFunctions != null; } - + + /** + * Initialize the headset camera. + * @param allowed true is the use of the headset camera is allowed and false otherwise. + */ public void initCamera(boolean allowed) { - hmdErrorStore.setValue(0); // clear the error store - if( allowed && vrsystemFunctions != null ) { - IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); - if (intptr != null){ - cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); - if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ - cameraFunctions.setAutoSynch(false); - cameraFunctions.read(); - logger.config("OpenVR Camera initialized"); - } - } - } + hmdErrorStore.setValue(0); // clear the error store + + if( allowed && vrsystemFunctions != null ) { + IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); + if (intptr != null){ + cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); + if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ + cameraFunctions.setAutoSynch(false); + cameraFunctions.read(); + logger.config("OpenVR Camera initialized"); + } + } + } } - + @Override public void destroy() { JOpenVRLibrary.VR_ShutdownInternal(); diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRBounds.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRBounds.java new file mode 100644 index 000000000..b487a5f22 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRBounds.java @@ -0,0 +1,59 @@ +package com.jme3.input.vr.openvr; + +import com.jme3.input.vr.VRBounds; +import com.jme3.math.Vector2f; +import com.jme3.system.jopenvr.JOpenVRLibrary; +import com.jme3.system.jopenvr.VR_IVRChaperone_FnTable; +import com.sun.jna.ptr.FloatByReference; + +import java.util.logging.Logger; + +/** + * A class that represents VR world bounds. + * @author reden - phr00t - https://github.com/phr00t + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + */ +public class OpenVRBounds implements VRBounds { + + private static Logger logger = Logger.getLogger(OpenVRBounds.class.getName()); + + private VR_IVRChaperone_FnTable vrChaperone; + private Vector2f playSize; + + /** + * Initialize the VR bounds. + * @return true if the initialization is a success and false otherwise. + */ + public boolean init(OpenVR api) { + + logger.config("Initialize VR bounds..."); + + if( vrChaperone == null ) { + vrChaperone = new VR_IVRChaperone_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRChaperone_Version, api.hmdErrorStore).getPointer()); + if( vrChaperone != null ) { + vrChaperone.setAutoSynch(false); + vrChaperone.read(); + FloatByReference fbX = new FloatByReference(); + FloatByReference fbZ = new FloatByReference(); + vrChaperone.GetPlayAreaSize.apply(fbX, fbZ); + playSize = new Vector2f(fbX.getValue(), fbZ.getValue()); + + logger.config("Initialize VR bounds [SUCCESS]"); + return true; // init success + } + + logger.warning("Initialize VR bounds [FAILED]."); + return false; // failed to init + } + + logger.config("Initialize VR bounds already done."); + return true; // already initialized + } + + @Override + public Vector2f getPlaySize() { + return playSize; + } + +} + diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRInput.java similarity index 95% rename from jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java rename to jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRInput.java index 2f9b81e95..1619d7a9f 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRInput.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package com.jme3.input.vr; +package com.jme3.input.vr.openvr; import java.util.ArrayList; import java.util.List; @@ -11,6 +11,9 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.VRInputType; +import com.jme3.input.vr.VRTrackedController; import com.jme3.math.Quaternion; import com.jme3.math.Vector2f; import com.jme3.math.Vector3f; @@ -21,7 +24,6 @@ import com.jme3.system.jopenvr.OpenVRUtil; import com.jme3.system.jopenvr.VRControllerState_t; import com.jme3.system.jopenvr.VR_IVRSystem_FnTable; import com.jme3.util.VRUtil; -import com.jme3.util.VRViewManagerOpenVR; /* make helper functions to pull the following easily from raw data (DONE) @@ -65,7 +67,7 @@ Button press: 2, touch: 2 * null values will be returned if no valid pose exists, or that input device isn't available * user code should check for null values. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class OpenVRInput implements VRInputAPI { @@ -393,7 +395,7 @@ public class OpenVRInput implements VRInputAPI { public Quaternion getFinalObserverRotation(int index) { if (environment != null){ - VRViewManagerOpenVR vrvm = (VRViewManagerOpenVR)environment.getVRViewManager(); + OpenVRViewManager vrvm = (OpenVRViewManager)environment.getVRViewManager(); if (vrvm != null){ if(isInputDeviceTracking(index) == false ){ @@ -422,7 +424,7 @@ public class OpenVRInput implements VRInputAPI { public Vector3f getFinalObserverPosition(int index) { if (environment != null){ - VRViewManagerOpenVR vrvm = (VRViewManagerOpenVR)environment.getVRViewManager(); + OpenVRViewManager vrvm = (OpenVRViewManager)environment.getVRViewManager(); if (vrvm != null){ if(isInputDeviceTracking(index) == false ){ diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRMouseManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRMouseManager.java new file mode 100644 index 000000000..72de95cc0 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRMouseManager.java @@ -0,0 +1,114 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.jme3.input.vr.openvr; + +import com.jme3.app.VREnvironment; +import com.jme3.input.controls.AnalogListener; +import com.jme3.input.vr.AbstractVRMouseManager; +import com.jme3.input.vr.VRInputType; +import com.jme3.math.Vector2f; + + +/** + * A class dedicated to the handling of the mouse within VR environment. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + */ +public class OpenVRMouseManager extends AbstractVRMouseManager { + + private final int AVERAGE_AMNT = 4; + + private int avgCounter; + + private final float[] lastXmv = new float[AVERAGE_AMNT]; + + private final float[] lastYmv = new float[AVERAGE_AMNT]; + + /** + * Create a new VR mouse manager within the given {@link VREnvironment VR environment}. + * @param environment the VR environment of the mouse manager. + */ + public OpenVRMouseManager(VREnvironment environment){ + super(environment); + } + + + @Override + public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) { + + if (getVREnvironment() != null){ + if (getVREnvironment().getApplication() != null){ + // got a tracked controller to use as the "mouse" + if( getVREnvironment().isInVR() == false || + getVREnvironment().getVRinput() == null || + getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){ + return; + } + + Vector2f tpDelta; + // TODO option to use Touch joysticks + if( isThumbstickMode() ) { + tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis); + } else { + tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis); + } + + float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration()); + float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration()); + + if( tpDelta.x < 0f ){ + Xamount = -Xamount; + } + + if( tpDelta.y < 0f ){ + Yamount = -Yamount; + } + + Xamount *= getMouseMoveScale(); + Yamount *= getMouseMoveScale(); + + if( mouseListener != null ) { + if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf); + if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf); + } + + if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) { + int index = (avgCounter+1) % AVERAGE_AMNT; + lastXmv[index] = Xamount * 133f; + lastYmv[index] = Yamount * 133f; + cursorPos.x -= avg(lastXmv); + cursorPos.y -= avg(lastYmv); + Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize(); + + if( cursorPos.x > maxsize.x ){ + cursorPos.x = maxsize.x; + } + + if( cursorPos.x < 0f ){ + cursorPos.x = 0f; + } + + if( cursorPos.y > maxsize.y ){ + cursorPos.y = maxsize.y; + } + + if( cursorPos.y < 0f ){ + cursorPos.y = 0f; + } + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + private float avg(float[] arr) { + float amt = 0f; + for(float f : arr) amt += f; + return amt / arr.length; + } +} diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRTrackedController.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRTrackedController.java similarity index 88% rename from jme3-vr/src/main/java/com/jme3/input/vr/OpenVRTrackedController.java rename to jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRTrackedController.java index 026830604..741a518e6 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRTrackedController.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRTrackedController.java @@ -1,10 +1,16 @@ -package com.jme3.input.vr; +package com.jme3.input.vr.openvr; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.VRTrackedController; import com.jme3.math.Matrix4f; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; +/** + * + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ public class OpenVRTrackedController implements VRTrackedController{ /** diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOpenVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRViewManager.java similarity index 96% rename from jme3-vr/src/main/java/com/jme3/util/VRViewManagerOpenVR.java rename to jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRViewManager.java index 545754a59..b2880c3a7 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOpenVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRViewManager.java @@ -2,12 +2,11 @@ * To change this template, choose Tools | Templates * and open the template in the editor. */ -package com.jme3.util; +package com.jme3.input.vr.openvr; import com.jme3.app.VREnvironment; -import com.jme3.input.vr.OpenVR; +import com.jme3.input.vr.AbstractVRViewManager; import com.jme3.input.vr.VRAPI; -import com.jme3.input.vr.VRTrackedController; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.Quaternion; @@ -32,6 +31,7 @@ import com.jme3.texture.Image; import com.jme3.texture.Texture; import com.jme3.texture.Texture2D; import com.jme3.ui.Picture; +import com.jme3.util.VRGUIPositioningMode; import java.util.Iterator; import java.util.logging.Logger; @@ -39,11 +39,11 @@ import java.util.logging.Logger; /** * A VR view manager based on OpenVR. This class enable to submit 3D views to the VR compositor. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ -public class VRViewManagerOpenVR extends AbstractVRViewManager { +public class OpenVRViewManager extends AbstractVRViewManager { - private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName()); + private static final Logger logger = Logger.getLogger(OpenVRViewManager.class.getName()); // OpenVR values private VRTextureBounds_t leftTextureBounds; @@ -64,7 +64,7 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager { * Create a new VR view manager attached to the given {@link VREnvironment VR environment}. * @param environment the {@link VREnvironment VR environment} to which this view manager is attached. */ - public VRViewManagerOpenVR(VREnvironment environment){ + public OpenVRViewManager(VREnvironment environment){ this.environment = environment; } @@ -168,6 +168,11 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager { } } + @Override + public void render() { + + } + @Override public void postRender() { @@ -464,7 +469,7 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager { environment.getVRMouseManager().update(tpf); // update GUI position? - if( environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { + if( environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().updateGuiQuadGeometricState(); } diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java similarity index 96% rename from jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java rename to jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java index ec56c1837..28d7aac06 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OSVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java @@ -7,9 +7,12 @@ https://github.com/sensics/OSVR-RenderManager/blob/master/examples/RenderManager - render manager looks good, but left eye seems stretched */ -package com.jme3.input.vr; +package com.jme3.input.vr.osvr; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.HmdType; +import com.jme3.input.vr.VRAPI; +import com.jme3.input.vr.VRInputAPI; import com.jme3.math.Matrix4f; import com.jme3.math.Quaternion; import com.jme3.math.Vector2f; @@ -35,7 +38,7 @@ import java.util.logging.Logger; /** * A class that wraps an OSVR system. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class OSVR implements VRAPI { diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OSVRInput.java b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java similarity index 97% rename from jme3-vr/src/main/java/com/jme3/input/vr/OSVRInput.java rename to jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java index 8d11f3a2e..ab18f6288 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OSVRInput.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java @@ -3,11 +3,14 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package com.jme3.input.vr; +package com.jme3.input.vr.osvr; import java.util.logging.Logger; import com.jme3.app.VREnvironment; +import com.jme3.input.vr.VRInputAPI; +import com.jme3.input.vr.VRInputType; +import com.jme3.input.vr.VRTrackedController; import com.jme3.math.Quaternion; import com.jme3.math.Vector2f; import com.jme3.math.Vector3f; @@ -20,7 +23,6 @@ import com.jme3.system.osvr.osvrclientreporttypes.OSVR_ButtonReport; import com.jme3.system.osvr.osvrclientreporttypes.OSVR_Pose3; import com.jme3.system.osvr.osvrinterface.OsvrInterfaceLibrary; import com.jme3.system.osvr.osvrtimevalue.OSVR_TimeValue; -import com.jme3.util.VRViewManagerOSVR; import com.sun.jna.Callback; import com.sun.jna.Pointer; import com.sun.jna.ptr.PointerByReference; @@ -29,7 +31,7 @@ import com.sun.jna.ptr.PointerByReference; /** * A class that wraps an OSVR input. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class OSVRInput implements VRInputAPI { @@ -301,7 +303,7 @@ public class OSVRInput implements VRInputAPI { @Override public Quaternion getFinalObserverRotation(int index) { - VRViewManagerOSVR vrvm = (VRViewManagerOSVR)environment.getVRViewManager(); + OSVRViewManager vrvm = (OSVRViewManager)environment.getVRViewManager(); if( vrvm == null || isInputDeviceTracking(index) == false ) return null; Object obs = environment.getObserver(); if( obs instanceof Camera ) { @@ -314,7 +316,7 @@ public class OSVRInput implements VRInputAPI { @Override public Vector3f getFinalObserverPosition(int index) { - VRViewManagerOSVR vrvm = (VRViewManagerOSVR) environment.getVRViewManager(); + OSVRViewManager vrvm = (OSVRViewManager) environment.getVRViewManager(); if( vrvm == null || isInputDeviceTracking(index) == false ) return null; Object obs = environment.getObserver(); Vector3f pos = getPosition(index); diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java new file mode 100644 index 000000000..5b1c8635b --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java @@ -0,0 +1,108 @@ +package com.jme3.input.vr.osvr; + +import com.jme3.app.VREnvironment; +import com.jme3.input.controls.AnalogListener; +import com.jme3.input.vr.AbstractVRMouseManager; +import com.jme3.input.vr.VRInputType; +import com.jme3.math.Vector2f; + +/** + * A class dedicated to the mouse handling within OSVR based VR experience. + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + */ +public class OSVRMouseManager extends AbstractVRMouseManager { + + private final int AVERAGE_AMNT = 4; + + private int avgCounter; + + private final float[] lastXmv = new float[AVERAGE_AMNT]; + + private final float[] lastYmv = new float[AVERAGE_AMNT]; + + /** + * Create a new VR mouse manager within the given {@link VREnvironment VR environment}. + * @param environment the VR environment of the mouse manager. + */ + public OSVRMouseManager(VREnvironment environment){ + super(environment); + } + + + @Override + public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) { + + if (getVREnvironment() != null){ + if (getVREnvironment().getApplication() != null){ + // got a tracked controller to use as the "mouse" + if( getVREnvironment().isInVR() == false || + getVREnvironment().getVRinput() == null || + getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){ + return; + } + + Vector2f tpDelta; + // TODO option to use Touch joysticks + if( isThumbstickMode() ) { + tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis); + } else { + tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis); + } + + float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration()); + float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration()); + + if( tpDelta.x < 0f ){ + Xamount = -Xamount; + } + + if( tpDelta.y < 0f ){ + Yamount = -Yamount; + } + + Xamount *= getMouseMoveScale(); + Yamount *= getMouseMoveScale(); + + if( mouseListener != null ) { + if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf); + if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf); + } + + if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) { + int index = (avgCounter+1) % AVERAGE_AMNT; + lastXmv[index] = Xamount * 133f; + lastYmv[index] = Yamount * 133f; + cursorPos.x -= avg(lastXmv); + cursorPos.y -= avg(lastYmv); + Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize(); + + if( cursorPos.x > maxsize.x ){ + cursorPos.x = maxsize.x; + } + + if( cursorPos.x < 0f ){ + cursorPos.x = 0f; + } + + if( cursorPos.y > maxsize.y ){ + cursorPos.y = maxsize.y; + } + + if( cursorPos.y < 0f ){ + cursorPos.y = 0f; + } + } + } else { + throw new IllegalStateException("This VR environment is not attached to any application."); + } + } else { + throw new IllegalStateException("This VR view manager is not attached to any VR environment."); + } + } + + private float avg(float[] arr) { + float amt = 0f; + for(float f : arr) amt += f; + return amt / arr.length; + } +} diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java similarity index 96% rename from jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java rename to jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java index 2019e6210..077a19f12 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java @@ -1,12 +1,13 @@ -package com.jme3.util; +package com.jme3.input.vr.osvr; import java.awt.GraphicsEnvironment; import java.util.Iterator; import java.util.logging.Logger; import com.jme3.app.VREnvironment; -import com.jme3.input.vr.OSVR; +import com.jme3.input.vr.AbstractVRViewManager; import com.jme3.input.vr.VRAPI; +import com.jme3.input.vr.openvr.OpenVRViewManager; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.Quaternion; @@ -44,11 +45,17 @@ import com.jme3.texture.Image; import com.jme3.texture.Texture; import com.jme3.texture.Texture2D; import com.jme3.ui.Picture; +import com.jme3.util.VRGUIPositioningMode; import com.sun.jna.Pointer; import com.sun.jna.ptr.PointerByReference; -public class VRViewManagerOSVR extends AbstractVRViewManager{ - private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName()); +/** + * + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ +public class OSVRViewManager extends AbstractVRViewManager{ + private static final Logger logger = Logger.getLogger(OpenVRViewManager.class.getName()); // OpenVR values private Texture_t leftTextureType; @@ -75,7 +82,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ * Create a new VR view manager attached to the given {@link VREnvironment VR environment}. * @param environment the {@link VREnvironment VR environment} to which this view manager is attached. */ - public VRViewManagerOSVR(VREnvironment environment){ + public OSVRViewManager(VREnvironment environment){ this.environment = environment; } @@ -476,7 +483,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ environment.getVRMouseManager().update(tpf); // update GUI position? - if( environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { + if( environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().updateGuiQuadGeometricState(); } @@ -864,5 +871,11 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{ distortionMesh.setBuffer(VertexBuffer.Type.TexCoord3, 2, texcoordB); distortionMesh.setStatic(); return distortionMesh; - } + } + + @Override + public void render() { + // TODO Auto-generated method stub + + } } diff --git a/jme3-vr/src/main/java/com/jme3/post/CartoonSSAO.java b/jme3-vr/src/main/java/com/jme3/post/CartoonSSAO.java index cc3c36b09..e578e6e76 100644 --- a/jme3-vr/src/main/java/com/jme3/post/CartoonSSAO.java +++ b/jme3-vr/src/main/java/com/jme3/post/CartoonSSAO.java @@ -17,7 +17,7 @@ import com.jme3.texture.Image.Format; /** * A Cartoon Screen Space Ambient Occlusion filter with instance rendering capabilities. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * */ public class CartoonSSAO extends Filter{ diff --git a/jme3-vr/src/main/java/com/jme3/post/PreNormalCaching.java b/jme3-vr/src/main/java/com/jme3/post/PreNormalCaching.java index 94a0009ab..83159f134 100644 --- a/jme3-vr/src/main/java/com/jme3/post/PreNormalCaching.java +++ b/jme3-vr/src/main/java/com/jme3/post/PreNormalCaching.java @@ -15,7 +15,7 @@ import com.jme3.texture.FrameBuffer; /** * Pre normal caching class. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class PreNormalCaching { diff --git a/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowFilterVR.java b/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowFilterVR.java index 00ab55319..3b090e95d 100644 --- a/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowFilterVR.java +++ b/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowFilterVR.java @@ -55,7 +55,7 @@ import java.io.IOException; * * @author Rémy Bouquet aka Nehon * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * @param the type of the underlying renderer (subclass of {@link AbstractShadowRendererVR}). */ public abstract class AbstractShadowFilterVR extends Filter { diff --git a/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowRendererVR.java b/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowRendererVR.java index 8c9fae742..ade7f5e4f 100644 --- a/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowRendererVR.java +++ b/jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowRendererVR.java @@ -71,7 +71,7 @@ import java.util.List; * * @author Rémy Bouquet aka Nehon * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public abstract class AbstractShadowRendererVR implements SceneProcessor, Savable { diff --git a/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowFilterVR.java b/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowFilterVR.java index 30399999f..41dc9eaba 100644 --- a/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowFilterVR.java +++ b/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowFilterVR.java @@ -55,7 +55,7 @@ import java.io.IOException; * * @author Rémy Bouquet aka Nehon * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class DirectionalLightShadowFilterVR extends AbstractShadowFilterVR { diff --git a/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowRendererVR.java b/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowRendererVR.java index f9bdd1f59..ac74bf5bb 100644 --- a/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowRendererVR.java +++ b/jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowRendererVR.java @@ -63,7 +63,7 @@ import java.io.IOException; *

    * @author Rémy Bouquet aka Nehon * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class DirectionalLightShadowRendererVR extends AbstractShadowRendererVR { diff --git a/jme3-vr/src/main/java/com/jme3/shadow/InstancedDirectionalShadowFilter.java b/jme3-vr/src/main/java/com/jme3/shadow/InstancedDirectionalShadowFilter.java index 1ad3cf85d..d3f079812 100644 --- a/jme3-vr/src/main/java/com/jme3/shadow/InstancedDirectionalShadowFilter.java +++ b/jme3-vr/src/main/java/com/jme3/shadow/InstancedDirectionalShadowFilter.java @@ -13,7 +13,7 @@ import com.jme3.renderer.Camera; /** * An instanced version of the {@link DirectionalLightShadowFilterVR directional light shadow filter} dedi. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr */ public class InstancedDirectionalShadowFilter extends DirectionalLightShadowFilterVR { diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/AppOverrideKeys_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/AppOverrideKeys_t.java index 0c085466d..588a73e0e 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/AppOverrideKeys_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/AppOverrideKeys_t.java @@ -4,46 +4,46 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1133
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class AppOverrideKeys_t extends Structure { + * native declaration : headers\openvr_capi.h:1160
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class AppOverrideKeys_t extends Structure { /** - * const char *
    - * C type : char* - */ - public Pointer pchKey; + * const char *
    + * C type : char* + */ + public Pointer pchKey; /** - * const char *
    - * C type : char* - */ - public Pointer pchValue; - public AppOverrideKeys_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("pchKey", "pchValue"); - } + * const char *
    + * C type : char* + */ + public Pointer pchValue; + public AppOverrideKeys_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("pchKey", "pchValue"); + } /** - * @param pchKey const char *
    - * C type : char*
    - * @param pchValue const char *
    - * C type : char* - */ - public AppOverrideKeys_t(Pointer pchKey, Pointer pchValue) { - super(); - this.pchKey = pchKey; - this.pchValue = pchValue; - } - public AppOverrideKeys_t(Pointer peer) { - super(peer); - } - public static class ByReference extends AppOverrideKeys_t implements Structure.ByReference { - - }; - public static class ByValue extends AppOverrideKeys_t implements Structure.ByValue { - - }; + * @param pchKey const char *
    + * C type : char*
    + * @param pchValue const char *
    + * C type : char* + */ + public AppOverrideKeys_t(Pointer pchKey, Pointer pchValue) { + super(); + this.pchKey = pchKey; + this.pchValue = pchValue; + } + public AppOverrideKeys_t(Pointer peer) { + super(peer); + } + public static class ByReference extends AppOverrideKeys_t implements Structure.ByReference { + + }; + public static class ByValue extends AppOverrideKeys_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/COpenVRContext.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/COpenVRContext.java index 0fd88b1ab..8f85d1e5c 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/COpenVRContext.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/COpenVRContext.java @@ -5,85 +5,90 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1262
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class COpenVRContext extends Structure { + * native declaration : headers\openvr_capi.h:1291
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class COpenVRContext extends Structure { /** - * class vr::IVRSystem *
    - * C type : intptr_t - */ - public IntByReference m_pVRSystem; + * class vr::IVRSystem *
    + * C type : intptr_t + */ + public IntByReference m_pVRSystem; /** - * class vr::IVRChaperone *
    - * C type : intptr_t - */ - public IntByReference m_pVRChaperone; + * class vr::IVRChaperone *
    + * C type : intptr_t + */ + public IntByReference m_pVRChaperone; /** - * class vr::IVRChaperoneSetup *
    - * C type : intptr_t - */ - public IntByReference m_pVRChaperoneSetup; + * class vr::IVRChaperoneSetup *
    + * C type : intptr_t + */ + public IntByReference m_pVRChaperoneSetup; /** - * class vr::IVRCompositor *
    - * C type : intptr_t - */ - public IntByReference m_pVRCompositor; + * class vr::IVRCompositor *
    + * C type : intptr_t + */ + public IntByReference m_pVRCompositor; /** - * class vr::IVROverlay *
    - * C type : intptr_t - */ - public IntByReference m_pVROverlay; + * class vr::IVROverlay *
    + * C type : intptr_t + */ + public IntByReference m_pVROverlay; /** - * class vr::IVRResources *
    - * C type : intptr_t - */ - public IntByReference m_pVRResources; + * class vr::IVRResources *
    + * C type : intptr_t + */ + public IntByReference m_pVRResources; /** - * class vr::IVRRenderModels *
    - * C type : intptr_t - */ - public IntByReference m_pVRRenderModels; + * class vr::IVRRenderModels *
    + * C type : intptr_t + */ + public IntByReference m_pVRRenderModels; /** - * class vr::IVRExtendedDisplay *
    - * C type : intptr_t - */ - public IntByReference m_pVRExtendedDisplay; + * class vr::IVRExtendedDisplay *
    + * C type : intptr_t + */ + public IntByReference m_pVRExtendedDisplay; /** - * class vr::IVRSettings *
    - * C type : intptr_t - */ - public IntByReference m_pVRSettings; + * class vr::IVRSettings *
    + * C type : intptr_t + */ + public IntByReference m_pVRSettings; /** - * class vr::IVRApplications *
    - * C type : intptr_t - */ - public IntByReference m_pVRApplications; + * class vr::IVRApplications *
    + * C type : intptr_t + */ + public IntByReference m_pVRApplications; /** - * class vr::IVRTrackedCamera *
    - * C type : intptr_t - */ - public IntByReference m_pVRTrackedCamera; + * class vr::IVRTrackedCamera *
    + * C type : intptr_t + */ + public IntByReference m_pVRTrackedCamera; /** - * class vr::IVRScreenshots *
    - * C type : intptr_t - */ - public IntByReference m_pVRScreenshots; - public COpenVRContext() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_pVRSystem", "m_pVRChaperone", "m_pVRChaperoneSetup", "m_pVRCompositor", "m_pVROverlay", "m_pVRResources", "m_pVRRenderModels", "m_pVRExtendedDisplay", "m_pVRSettings", "m_pVRApplications", "m_pVRTrackedCamera", "m_pVRScreenshots"); - } - public COpenVRContext(Pointer peer) { - super(peer); - } - public static class ByReference extends COpenVRContext implements Structure.ByReference { - - }; - public static class ByValue extends COpenVRContext implements Structure.ByValue { - - }; + * class vr::IVRScreenshots *
    + * C type : intptr_t + */ + public IntByReference m_pVRScreenshots; + /** + * class vr::IVRDriverManager *
    + * C type : intptr_t + */ + public IntByReference m_pVRDriverManager; + public COpenVRContext() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_pVRSystem", "m_pVRChaperone", "m_pVRChaperoneSetup", "m_pVRCompositor", "m_pVROverlay", "m_pVRResources", "m_pVRRenderModels", "m_pVRExtendedDisplay", "m_pVRSettings", "m_pVRApplications", "m_pVRTrackedCamera", "m_pVRScreenshots", "m_pVRDriverManager"); + } + public COpenVRContext(Pointer peer) { + super(peer); + } + public static class ByReference extends COpenVRContext implements Structure.ByReference { + + }; + public static class ByValue extends COpenVRContext implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/CameraVideoStreamFrameHeader_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/CameraVideoStreamFrameHeader_t.java index d519ad028..d7f7f690b 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/CameraVideoStreamFrameHeader_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/CameraVideoStreamFrameHeader_t.java @@ -4,50 +4,50 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1127
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class CameraVideoStreamFrameHeader_t extends Structure { + * native declaration : headers\openvr_capi.h:1154
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class CameraVideoStreamFrameHeader_t extends Structure { /** - * @see EVRTrackedCameraFrameType
    - * C type : EVRTrackedCameraFrameType - */ - public int eFrameType; - public int nWidth; - public int nHeight; - public int nBytesPerPixel; - public int nFrameSequence; - /** C type : TrackedDevicePose_t */ - public TrackedDevicePose_t standingTrackedDevicePose; - public CameraVideoStreamFrameHeader_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("eFrameType", "nWidth", "nHeight", "nBytesPerPixel", "nFrameSequence", "standingTrackedDevicePose"); - } + * @see EVRTrackedCameraFrameType
    + * C type : EVRTrackedCameraFrameType + */ + public int eFrameType; + public int nWidth; + public int nHeight; + public int nBytesPerPixel; + public int nFrameSequence; + /** C type : TrackedDevicePose_t */ + public TrackedDevicePose_t standingTrackedDevicePose; + public CameraVideoStreamFrameHeader_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("eFrameType", "nWidth", "nHeight", "nBytesPerPixel", "nFrameSequence", "standingTrackedDevicePose"); + } /** - * @param eFrameType @see EVRTrackedCameraFrameType
    - * C type : EVRTrackedCameraFrameType
    - * @param standingTrackedDevicePose C type : TrackedDevicePose_t - */ - public CameraVideoStreamFrameHeader_t(int eFrameType, int nWidth, int nHeight, int nBytesPerPixel, int nFrameSequence, TrackedDevicePose_t standingTrackedDevicePose) { - super(); - this.eFrameType = eFrameType; - this.nWidth = nWidth; - this.nHeight = nHeight; - this.nBytesPerPixel = nBytesPerPixel; - this.nFrameSequence = nFrameSequence; - this.standingTrackedDevicePose = standingTrackedDevicePose; - } - public CameraVideoStreamFrameHeader_t(Pointer peer) { - super(peer); - } - public static class ByReference extends CameraVideoStreamFrameHeader_t implements Structure.ByReference { - - }; - public static class ByValue extends CameraVideoStreamFrameHeader_t implements Structure.ByValue { - - }; + * @param eFrameType @see EVRTrackedCameraFrameType
    + * C type : EVRTrackedCameraFrameType
    + * @param standingTrackedDevicePose C type : TrackedDevicePose_t + */ + public CameraVideoStreamFrameHeader_t(int eFrameType, int nWidth, int nHeight, int nBytesPerPixel, int nFrameSequence, TrackedDevicePose_t standingTrackedDevicePose) { + super(); + this.eFrameType = eFrameType; + this.nWidth = nWidth; + this.nHeight = nHeight; + this.nBytesPerPixel = nBytesPerPixel; + this.nFrameSequence = nFrameSequence; + this.standingTrackedDevicePose = standingTrackedDevicePose; + } + public CameraVideoStreamFrameHeader_t(Pointer peer) { + super(peer); + } + public static class ByReference extends CameraVideoStreamFrameHeader_t implements Structure.ByReference { + + }; + public static class ByValue extends CameraVideoStreamFrameHeader_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_CumulativeStats.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_CumulativeStats.java index 285ac08e7..23f44fb91 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_CumulativeStats.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_CumulativeStats.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1176
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class Compositor_CumulativeStats extends Structure { - public int m_nPid; - public int m_nNumFramePresents; - public int m_nNumDroppedFrames; - public int m_nNumReprojectedFrames; - public int m_nNumFramePresentsOnStartup; - public int m_nNumDroppedFramesOnStartup; - public int m_nNumReprojectedFramesOnStartup; - public int m_nNumLoading; - public int m_nNumFramePresentsLoading; - public int m_nNumDroppedFramesLoading; - public int m_nNumReprojectedFramesLoading; - public int m_nNumTimedOut; - public int m_nNumFramePresentsTimedOut; - public int m_nNumDroppedFramesTimedOut; - public int m_nNumReprojectedFramesTimedOut; - public Compositor_CumulativeStats() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nPid", "m_nNumFramePresents", "m_nNumDroppedFrames", "m_nNumReprojectedFrames", "m_nNumFramePresentsOnStartup", "m_nNumDroppedFramesOnStartup", "m_nNumReprojectedFramesOnStartup", "m_nNumLoading", "m_nNumFramePresentsLoading", "m_nNumDroppedFramesLoading", "m_nNumReprojectedFramesLoading", "m_nNumTimedOut", "m_nNumFramePresentsTimedOut", "m_nNumDroppedFramesTimedOut", "m_nNumReprojectedFramesTimedOut"); - } - public Compositor_CumulativeStats(Pointer peer) { - super(peer); - } - public static class ByReference extends Compositor_CumulativeStats implements Structure.ByReference { - - }; - public static class ByValue extends Compositor_CumulativeStats implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1203
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class Compositor_CumulativeStats extends Structure { + public int m_nPid; + public int m_nNumFramePresents; + public int m_nNumDroppedFrames; + public int m_nNumReprojectedFrames; + public int m_nNumFramePresentsOnStartup; + public int m_nNumDroppedFramesOnStartup; + public int m_nNumReprojectedFramesOnStartup; + public int m_nNumLoading; + public int m_nNumFramePresentsLoading; + public int m_nNumDroppedFramesLoading; + public int m_nNumReprojectedFramesLoading; + public int m_nNumTimedOut; + public int m_nNumFramePresentsTimedOut; + public int m_nNumDroppedFramesTimedOut; + public int m_nNumReprojectedFramesTimedOut; + public Compositor_CumulativeStats() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nPid", "m_nNumFramePresents", "m_nNumDroppedFrames", "m_nNumReprojectedFrames", "m_nNumFramePresentsOnStartup", "m_nNumDroppedFramesOnStartup", "m_nNumReprojectedFramesOnStartup", "m_nNumLoading", "m_nNumFramePresentsLoading", "m_nNumDroppedFramesLoading", "m_nNumReprojectedFramesLoading", "m_nNumTimedOut", "m_nNumFramePresentsTimedOut", "m_nNumDroppedFramesTimedOut", "m_nNumReprojectedFramesTimedOut"); + } + public Compositor_CumulativeStats(Pointer peer) { + super(peer); + } + public static class ByReference extends Compositor_CumulativeStats implements Structure.ByReference { + + }; + public static class ByValue extends Compositor_CumulativeStats implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_FrameTiming.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_FrameTiming.java index 3e4598d21..680c463fd 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_FrameTiming.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_FrameTiming.java @@ -4,50 +4,50 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1159
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class Compositor_FrameTiming extends Structure { - public int m_nSize; - public int m_nFrameIndex; - public int m_nNumFramePresents; - public int m_nNumMisPresented; - public int m_nNumDroppedFrames; - public int m_nReprojectionFlags; - public double m_flSystemTimeInSeconds; - public float m_flPreSubmitGpuMs; - public float m_flPostSubmitGpuMs; - public float m_flTotalRenderGpuMs; - public float m_flCompositorRenderGpuMs; - public float m_flCompositorRenderCpuMs; - public float m_flCompositorIdleCpuMs; - public float m_flClientFrameIntervalMs; - public float m_flPresentCallCpuMs; - public float m_flWaitForPresentCpuMs; - public float m_flSubmitFrameMs; - public float m_flWaitGetPosesCalledMs; - public float m_flNewPosesReadyMs; - public float m_flNewFrameReadyMs; - public float m_flCompositorUpdateStartMs; - public float m_flCompositorUpdateEndMs; - public float m_flCompositorRenderStartMs; - /** C type : TrackedDevicePose_t */ - public TrackedDevicePose_t m_HmdPose; - public Compositor_FrameTiming() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nSize", "m_nFrameIndex", "m_nNumFramePresents", "m_nNumMisPresented", "m_nNumDroppedFrames", "m_nReprojectionFlags", "m_flSystemTimeInSeconds", "m_flPreSubmitGpuMs", "m_flPostSubmitGpuMs", "m_flTotalRenderGpuMs", "m_flCompositorRenderGpuMs", "m_flCompositorRenderCpuMs", "m_flCompositorIdleCpuMs", "m_flClientFrameIntervalMs", "m_flPresentCallCpuMs", "m_flWaitForPresentCpuMs", "m_flSubmitFrameMs", "m_flWaitGetPosesCalledMs", "m_flNewPosesReadyMs", "m_flNewFrameReadyMs", "m_flCompositorUpdateStartMs", "m_flCompositorUpdateEndMs", "m_flCompositorRenderStartMs", "m_HmdPose"); - } - public Compositor_FrameTiming(Pointer peer) { - super(peer); - } - public static class ByReference extends Compositor_FrameTiming implements Structure.ByReference { - - }; - public static class ByValue extends Compositor_FrameTiming implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1186
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class Compositor_FrameTiming extends Structure { + public int m_nSize; + public int m_nFrameIndex; + public int m_nNumFramePresents; + public int m_nNumMisPresented; + public int m_nNumDroppedFrames; + public int m_nReprojectionFlags; + public double m_flSystemTimeInSeconds; + public float m_flPreSubmitGpuMs; + public float m_flPostSubmitGpuMs; + public float m_flTotalRenderGpuMs; + public float m_flCompositorRenderGpuMs; + public float m_flCompositorRenderCpuMs; + public float m_flCompositorIdleCpuMs; + public float m_flClientFrameIntervalMs; + public float m_flPresentCallCpuMs; + public float m_flWaitForPresentCpuMs; + public float m_flSubmitFrameMs; + public float m_flWaitGetPosesCalledMs; + public float m_flNewPosesReadyMs; + public float m_flNewFrameReadyMs; + public float m_flCompositorUpdateStartMs; + public float m_flCompositorUpdateEndMs; + public float m_flCompositorRenderStartMs; + /** C type : TrackedDevicePose_t */ + public TrackedDevicePose_t m_HmdPose; + public Compositor_FrameTiming() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nSize", "m_nFrameIndex", "m_nNumFramePresents", "m_nNumMisPresented", "m_nNumDroppedFrames", "m_nReprojectionFlags", "m_flSystemTimeInSeconds", "m_flPreSubmitGpuMs", "m_flPostSubmitGpuMs", "m_flTotalRenderGpuMs", "m_flCompositorRenderGpuMs", "m_flCompositorRenderCpuMs", "m_flCompositorIdleCpuMs", "m_flClientFrameIntervalMs", "m_flPresentCallCpuMs", "m_flWaitForPresentCpuMs", "m_flSubmitFrameMs", "m_flWaitGetPosesCalledMs", "m_flNewPosesReadyMs", "m_flNewFrameReadyMs", "m_flCompositorUpdateStartMs", "m_flCompositorUpdateEndMs", "m_flCompositorRenderStartMs", "m_HmdPose"); + } + public Compositor_FrameTiming(Pointer peer) { + super(peer); + } + public static class ByReference extends Compositor_FrameTiming implements Structure.ByReference { + + }; + public static class ByValue extends Compositor_FrameTiming implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_OverlaySettings.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_OverlaySettings.java index d9f72ea4b..9875cc952 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_OverlaySettings.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_OverlaySettings.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1117
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class Compositor_OverlaySettings extends Structure { - public int size; - public byte curved; - public byte antialias; - public float scale; - public float distance; - public float alpha; - public float uOffset; - public float vOffset; - public float uScale; - public float vScale; - public float gridDivs; - public float gridWidth; - public float gridScale; - /** C type : HmdMatrix44_t */ - public HmdMatrix44_t transform; - public Compositor_OverlaySettings() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("size", "curved", "antialias", "scale", "distance", "alpha", "uOffset", "vOffset", "uScale", "vScale", "gridDivs", "gridWidth", "gridScale", "transform"); - } - public Compositor_OverlaySettings(Pointer peer) { - super(peer); - } - public static class ByReference extends Compositor_OverlaySettings implements Structure.ByReference { - - }; - public static class ByValue extends Compositor_OverlaySettings implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1144
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class Compositor_OverlaySettings extends Structure { + public int size; + public byte curved; + public byte antialias; + public float scale; + public float distance; + public float alpha; + public float uOffset; + public float vOffset; + public float uScale; + public float vScale; + public float gridDivs; + public float gridWidth; + public float gridScale; + /** C type : HmdMatrix44_t */ + public HmdMatrix44_t transform; + public Compositor_OverlaySettings() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("size", "curved", "antialias", "scale", "distance", "alpha", "uOffset", "vOffset", "uScale", "vScale", "gridDivs", "gridWidth", "gridScale", "transform"); + } + public Compositor_OverlaySettings(Pointer peer) { + super(peer); + } + public static class ByReference extends Compositor_OverlaySettings implements Structure.ByReference { + + }; + public static class ByValue extends Compositor_OverlaySettings implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/D3D12TextureData_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/D3D12TextureData_t.java index 60d2437e5..5639198ca 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/D3D12TextureData_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/D3D12TextureData_t.java @@ -6,48 +6,48 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1003
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class D3D12TextureData_t extends Structure { + * native declaration : headers\openvr_capi.h:1030
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class D3D12TextureData_t extends Structure { /** - * struct ID3D12Resource *
    - * C type : ID3D12Resource* - */ - public ID3D12Resource m_pResource; + * struct ID3D12Resource *
    + * C type : ID3D12Resource* + */ + public ID3D12Resource m_pResource; /** - * struct ID3D12CommandQueue *
    - * C type : ID3D12CommandQueue* - */ - public ID3D12CommandQueue m_pCommandQueue; - public int m_nNodeMask; - public D3D12TextureData_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_pResource", "m_pCommandQueue", "m_nNodeMask"); - } + * struct ID3D12CommandQueue *
    + * C type : ID3D12CommandQueue* + */ + public ID3D12CommandQueue m_pCommandQueue; + public int m_nNodeMask; + public D3D12TextureData_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_pResource", "m_pCommandQueue", "m_nNodeMask"); + } /** - * @param m_pResource struct ID3D12Resource *
    - * C type : ID3D12Resource*
    - * @param m_pCommandQueue struct ID3D12CommandQueue *
    - * C type : ID3D12CommandQueue* - */ - public D3D12TextureData_t(ID3D12Resource m_pResource, ID3D12CommandQueue m_pCommandQueue, int m_nNodeMask) { - super(); - this.m_pResource = m_pResource; - this.m_pCommandQueue = m_pCommandQueue; - this.m_nNodeMask = m_nNodeMask; - } - public D3D12TextureData_t(Pointer peer) { - super(peer); - } - public static class ByReference extends D3D12TextureData_t implements Structure.ByReference { - - }; - public static class ByValue extends D3D12TextureData_t implements Structure.ByValue { - - }; + * @param m_pResource struct ID3D12Resource *
    + * C type : ID3D12Resource*
    + * @param m_pCommandQueue struct ID3D12CommandQueue *
    + * C type : ID3D12CommandQueue* + */ + public D3D12TextureData_t(ID3D12Resource m_pResource, ID3D12CommandQueue m_pCommandQueue, int m_nNodeMask) { + super(); + this.m_pResource = m_pResource; + this.m_pCommandQueue = m_pCommandQueue; + this.m_nNodeMask = m_nNodeMask; + } + public D3D12TextureData_t(Pointer peer) { + super(peer); + } + public static class ByReference extends D3D12TextureData_t implements Structure.ByReference { + + }; + public static class ByValue extends D3D12TextureData_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/DistortionCoordinates_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/DistortionCoordinates_t.java index d57170895..780da5845 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/DistortionCoordinates_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/DistortionCoordinates_t.java @@ -4,60 +4,60 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:954
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class DistortionCoordinates_t extends Structure { + * native declaration : headers\openvr_capi.h:981
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class DistortionCoordinates_t extends Structure { /** - * float[2]
    - * C type : float[2] - */ - public float[] rfRed = new float[2]; + * float[2]
    + * C type : float[2] + */ + public float[] rfRed = new float[2]; /** - * float[2]
    - * C type : float[2] - */ - public float[] rfGreen = new float[2]; + * float[2]
    + * C type : float[2] + */ + public float[] rfGreen = new float[2]; /** - * float[2]
    - * C type : float[2] - */ - public float[] rfBlue = new float[2]; - public DistortionCoordinates_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("rfRed", "rfGreen", "rfBlue"); - } + * float[2]
    + * C type : float[2] + */ + public float[] rfBlue = new float[2]; + public DistortionCoordinates_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("rfRed", "rfGreen", "rfBlue"); + } /** - * @param rfRed float[2]
    - * C type : float[2]
    - * @param rfGreen float[2]
    - * C type : float[2]
    - * @param rfBlue float[2]
    - * C type : float[2] - */ - public DistortionCoordinates_t(float rfRed[], float rfGreen[], float rfBlue[]) { - super(); - if ((rfRed.length != this.rfRed.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.rfRed = rfRed; - if ((rfGreen.length != this.rfGreen.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.rfGreen = rfGreen; - if ((rfBlue.length != this.rfBlue.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.rfBlue = rfBlue; - } - public DistortionCoordinates_t(Pointer peer) { - super(peer); - } - public static class ByReference extends DistortionCoordinates_t implements Structure.ByReference { - - }; - public static class ByValue extends DistortionCoordinates_t implements Structure.ByValue { - - }; + * @param rfRed float[2]
    + * C type : float[2]
    + * @param rfGreen float[2]
    + * C type : float[2]
    + * @param rfBlue float[2]
    + * C type : float[2] + */ + public DistortionCoordinates_t(float rfRed[], float rfGreen[], float rfBlue[]) { + super(); + if ((rfRed.length != this.rfRed.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.rfRed = rfRed; + if ((rfGreen.length != this.rfGreen.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.rfGreen = rfGreen; + if ((rfBlue.length != this.rfBlue.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.rfBlue = rfBlue; + } + public DistortionCoordinates_t(Pointer peer) { + super(peer); + } + public static class ByReference extends DistortionCoordinates_t implements Structure.ByReference { + + }; + public static class ByValue extends DistortionCoordinates_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HiddenAreaMesh_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HiddenAreaMesh_t.java index d8beaeb74..582f296c2 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HiddenAreaMesh_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HiddenAreaMesh_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1090
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HiddenAreaMesh_t extends Structure { + * native declaration : headers\openvr_capi.h:1117
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HiddenAreaMesh_t extends Structure { /** - * const struct vr::HmdVector2_t *
    - * C type : HmdVector2_t* - */ - public com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData; - public int unTriangleCount; - public HiddenAreaMesh_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("pVertexData", "unTriangleCount"); - } + * const struct vr::HmdVector2_t *
    + * C type : HmdVector2_t* + */ + public com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData; + public int unTriangleCount; + public HiddenAreaMesh_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("pVertexData", "unTriangleCount"); + } /** - * @param pVertexData const struct vr::HmdVector2_t *
    - * C type : HmdVector2_t* - */ - public HiddenAreaMesh_t(com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData, int unTriangleCount) { - super(); - this.pVertexData = pVertexData; - this.unTriangleCount = unTriangleCount; - } - public HiddenAreaMesh_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HiddenAreaMesh_t implements Structure.ByReference { - - }; - public static class ByValue extends HiddenAreaMesh_t implements Structure.ByValue { - - }; + * @param pVertexData const struct vr::HmdVector2_t *
    + * C type : HmdVector2_t* + */ + public HiddenAreaMesh_t(com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData, int unTriangleCount) { + super(); + this.pVertexData = pVertexData; + this.unTriangleCount = unTriangleCount; + } + public HiddenAreaMesh_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HiddenAreaMesh_t implements Structure.ByReference { + + }; + public static class ByValue extends HiddenAreaMesh_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdColor_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdColor_t.java index c0771cfce..32e3ef1fb 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdColor_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdColor_t.java @@ -4,36 +4,36 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:938
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdColor_t extends Structure { - public float r; - public float g; - public float b; - public float a; - public HmdColor_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("r", "g", "b", "a"); - } - public HmdColor_t(float r, float g, float b, float a) { - super(); - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - public HmdColor_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdColor_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdColor_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:965
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdColor_t extends Structure { + public float r; + public float g; + public float b; + public float a; + public HmdColor_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("r", "g", "b", "a"); + } + public HmdColor_t(float r, float g, float b, float a) { + super(); + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + public HmdColor_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdColor_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdColor_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix34_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix34_t.java index f649a5f13..e28e27c1d 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix34_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix34_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:906
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdMatrix34_t extends Structure { + * native declaration : headers\openvr_capi.h:933
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdMatrix34_t extends Structure { /** - * float[3][4]
    - * C type : float[3][4] - */ - public float[] m = new float[((3) * (4))]; - public HmdMatrix34_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m"); - } + * float[3][4]
    + * C type : float[3][4] + */ + public float[] m = new float[((3) * (4))]; + public HmdMatrix34_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m"); + } /** - * @param m float[3][4]
    - * C type : float[3][4] - */ - public HmdMatrix34_t(float m[]) { - super(); - if ((m.length != this.m.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.m = m; - } - public HmdMatrix34_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdMatrix34_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdMatrix34_t implements Structure.ByValue { - - }; + * @param m float[3][4]
    + * C type : float[3][4] + */ + public HmdMatrix34_t(float m[]) { + super(); + if ((m.length != this.m.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.m = m; + } + public HmdMatrix34_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdMatrix34_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdMatrix34_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix44_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix44_t.java index 3422b1bf7..83a093abd 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix44_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix44_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:910
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdMatrix44_t extends Structure { + * native declaration : headers\openvr_capi.h:937
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdMatrix44_t extends Structure { /** - * float[4][4]
    - * C type : float[4][4] - */ - public float[] m = new float[((4) * (4))]; - public HmdMatrix44_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m"); - } + * float[4][4]
    + * C type : float[4][4] + */ + public float[] m = new float[((4) * (4))]; + public HmdMatrix44_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m"); + } /** - * @param m float[4][4]
    - * C type : float[4][4] - */ - public HmdMatrix44_t(float m[]) { - super(); - if ((m.length != this.m.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.m = m; - } - public HmdMatrix44_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdMatrix44_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdMatrix44_t implements Structure.ByValue { - - }; + * @param m float[4][4]
    + * C type : float[4][4] + */ + public HmdMatrix44_t(float m[]) { + super(); + if ((m.length != this.m.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.m = m; + } + public HmdMatrix44_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdMatrix44_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdMatrix44_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuad_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuad_t.java index 51565b92c..f0ddccb70 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuad_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuad_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:942
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdQuad_t extends Structure { + * native declaration : headers\openvr_capi.h:969
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdQuad_t extends Structure { /** - * struct vr::HmdVector3_t[4]
    - * C type : HmdVector3_t[4] - */ - public HmdVector3_t[] vCorners = new HmdVector3_t[4]; - public HmdQuad_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("vCorners"); - } + * struct vr::HmdVector3_t[4]
    + * C type : HmdVector3_t[4] + */ + public HmdVector3_t[] vCorners = new HmdVector3_t[4]; + public HmdQuad_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("vCorners"); + } /** - * @param vCorners struct vr::HmdVector3_t[4]
    - * C type : HmdVector3_t[4] - */ - public HmdQuad_t(HmdVector3_t vCorners[]) { - super(); - if ((vCorners.length != this.vCorners.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.vCorners = vCorners; - } - public HmdQuad_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdQuad_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdQuad_t implements Structure.ByValue { - - }; + * @param vCorners struct vr::HmdVector3_t[4]
    + * C type : HmdVector3_t[4] + */ + public HmdQuad_t(HmdVector3_t vCorners[]) { + super(); + if ((vCorners.length != this.vCorners.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.vCorners = vCorners; + } + public HmdQuad_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdQuad_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdQuad_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuaternion_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuaternion_t.java index f96ea2d8a..a02389493 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuaternion_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuaternion_t.java @@ -4,36 +4,36 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:932
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdQuaternion_t extends Structure { - public double w; - public double x; - public double y; - public double z; - public HmdQuaternion_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("w", "x", "y", "z"); - } - public HmdQuaternion_t(double w, double x, double y, double z) { - super(); - this.w = w; - this.x = x; - this.y = y; - this.z = z; - } - public HmdQuaternion_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdQuaternion_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdQuaternion_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:959
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdQuaternion_t extends Structure { + public double w; + public double x; + public double y; + public double z; + public HmdQuaternion_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("w", "x", "y", "z"); + } + public HmdQuaternion_t(double w, double x, double y, double z) { + super(); + this.w = w; + this.x = x; + this.y = y; + this.z = z; + } + public HmdQuaternion_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdQuaternion_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdQuaternion_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdRect2_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdRect2_t.java index 24d144c10..39fce7ebb 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdRect2_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdRect2_t.java @@ -4,38 +4,38 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:946
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdRect2_t extends Structure { - /** C type : HmdVector2_t */ - public HmdVector2_t vTopLeft; - /** C type : HmdVector2_t */ - public HmdVector2_t vBottomRight; - public HmdRect2_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("vTopLeft", "vBottomRight"); - } + * native declaration : headers\openvr_capi.h:973
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdRect2_t extends Structure { + /** C type : HmdVector2_t */ + public HmdVector2_t vTopLeft; + /** C type : HmdVector2_t */ + public HmdVector2_t vBottomRight; + public HmdRect2_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("vTopLeft", "vBottomRight"); + } /** - * @param vTopLeft C type : HmdVector2_t
    - * @param vBottomRight C type : HmdVector2_t - */ - public HmdRect2_t(HmdVector2_t vTopLeft, HmdVector2_t vBottomRight) { - super(); - this.vTopLeft = vTopLeft; - this.vBottomRight = vBottomRight; - } - public HmdRect2_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdRect2_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdRect2_t implements Structure.ByValue { - - }; + * @param vTopLeft C type : HmdVector2_t
    + * @param vBottomRight C type : HmdVector2_t + */ + public HmdRect2_t(HmdVector2_t vTopLeft, HmdVector2_t vBottomRight) { + super(); + this.vTopLeft = vTopLeft; + this.vBottomRight = vBottomRight; + } + public HmdRect2_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdRect2_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdRect2_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector2_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector2_t.java index 07980d03e..700bf9a5e 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector2_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector2_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:926
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdVector2_t extends Structure { + * native declaration : headers\openvr_capi.h:953
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdVector2_t extends Structure { /** - * float[2]
    - * C type : float[2] - */ - public float[] v = new float[2]; - public HmdVector2_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("v"); - } + * float[2]
    + * C type : float[2] + */ + public float[] v = new float[2]; + public HmdVector2_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("v"); + } /** - * @param v float[2]
    - * C type : float[2] - */ - public HmdVector2_t(float v[]) { - super(); - if ((v.length != this.v.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.v = v; - } - public HmdVector2_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdVector2_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdVector2_t implements Structure.ByValue { - - }; + * @param v float[2]
    + * C type : float[2] + */ + public HmdVector2_t(float v[]) { + super(); + if ((v.length != this.v.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.v = v; + } + public HmdVector2_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdVector2_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdVector2_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3_t.java index 79b1aa023..b136791e1 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:914
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdVector3_t extends Structure { + * native declaration : headers\openvr_capi.h:941
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdVector3_t extends Structure { /** - * float[3]
    - * C type : float[3] - */ - public float[] v = new float[3]; - public HmdVector3_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("v"); - } + * float[3]
    + * C type : float[3] + */ + public float[] v = new float[3]; + public HmdVector3_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("v"); + } /** - * @param v float[3]
    - * C type : float[3] - */ - public HmdVector3_t(float v[]) { - super(); - if ((v.length != this.v.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.v = v; - } - public HmdVector3_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdVector3_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdVector3_t implements Structure.ByValue { - - }; + * @param v float[3]
    + * C type : float[3] + */ + public HmdVector3_t(float v[]) { + super(); + if ((v.length != this.v.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.v = v; + } + public HmdVector3_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdVector3_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdVector3_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3d_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3d_t.java index 83f7cca24..8a4f0b499 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3d_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3d_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:922
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdVector3d_t extends Structure { + * native declaration : headers\openvr_capi.h:949
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdVector3d_t extends Structure { /** - * double[3]
    - * C type : double[3] - */ - public double[] v = new double[3]; - public HmdVector3d_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("v"); - } + * double[3]
    + * C type : double[3] + */ + public double[] v = new double[3]; + public HmdVector3d_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("v"); + } /** - * @param v double[3]
    - * C type : double[3] - */ - public HmdVector3d_t(double v[]) { - super(); - if ((v.length != this.v.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.v = v; - } - public HmdVector3d_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdVector3d_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdVector3d_t implements Structure.ByValue { - - }; + * @param v double[3]
    + * C type : double[3] + */ + public HmdVector3d_t(double v[]) { + super(); + if ((v.length != this.v.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.v = v; + } + public HmdVector3d_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdVector3d_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdVector3d_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector4_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector4_t.java index 7c13cb220..c2c3d06a3 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector4_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector4_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:918
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class HmdVector4_t extends Structure { + * native declaration : headers\openvr_capi.h:945
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class HmdVector4_t extends Structure { /** - * float[4]
    - * C type : float[4] - */ - public float[] v = new float[4]; - public HmdVector4_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("v"); - } + * float[4]
    + * C type : float[4] + */ + public float[] v = new float[4]; + public HmdVector4_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("v"); + } /** - * @param v float[4]
    - * C type : float[4] - */ - public HmdVector4_t(float v[]) { - super(); - if ((v.length != this.v.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.v = v; - } - public HmdVector4_t(Pointer peer) { - super(peer); - } - public static class ByReference extends HmdVector4_t implements Structure.ByReference { - - }; - public static class ByValue extends HmdVector4_t implements Structure.ByValue { - - }; + * @param v float[4]
    + * C type : float[4] + */ + public HmdVector4_t(float v[]) { + super(); + if ((v.length != this.v.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.v = v; + } + public HmdVector4_t(Pointer peer) { + super(peer); + } + public static class ByReference extends HmdVector4_t implements Structure.ByReference { + + }; + public static class ByValue extends HmdVector4_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskCircle_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskCircle_t.java index ae463d988..2cf98516f 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskCircle_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskCircle_t.java @@ -4,34 +4,34 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1200
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class IntersectionMaskCircle_t extends Structure { - public float m_flCenterX; - public float m_flCenterY; - public float m_flRadius; - public IntersectionMaskCircle_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_flCenterX", "m_flCenterY", "m_flRadius"); - } - public IntersectionMaskCircle_t(float m_flCenterX, float m_flCenterY, float m_flRadius) { - super(); - this.m_flCenterX = m_flCenterX; - this.m_flCenterY = m_flCenterY; - this.m_flRadius = m_flRadius; - } - public IntersectionMaskCircle_t(Pointer peer) { - super(peer); - } - public static class ByReference extends IntersectionMaskCircle_t implements Structure.ByReference { - - }; - public static class ByValue extends IntersectionMaskCircle_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1227
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class IntersectionMaskCircle_t extends Structure { + public float m_flCenterX; + public float m_flCenterY; + public float m_flRadius; + public IntersectionMaskCircle_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_flCenterX", "m_flCenterY", "m_flRadius"); + } + public IntersectionMaskCircle_t(float m_flCenterX, float m_flCenterY, float m_flRadius) { + super(); + this.m_flCenterX = m_flCenterX; + this.m_flCenterY = m_flCenterY; + this.m_flRadius = m_flRadius; + } + public IntersectionMaskCircle_t(Pointer peer) { + super(peer); + } + public static class ByReference extends IntersectionMaskCircle_t implements Structure.ByReference { + + }; + public static class ByValue extends IntersectionMaskCircle_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskRectangle_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskRectangle_t.java index bbbd2f5a1..bb9b3e0da 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskRectangle_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskRectangle_t.java @@ -4,36 +4,36 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1195
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class IntersectionMaskRectangle_t extends Structure { - public float m_flTopLeftX; - public float m_flTopLeftY; - public float m_flWidth; - public float m_flHeight; - public IntersectionMaskRectangle_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_flTopLeftX", "m_flTopLeftY", "m_flWidth", "m_flHeight"); - } - public IntersectionMaskRectangle_t(float m_flTopLeftX, float m_flTopLeftY, float m_flWidth, float m_flHeight) { - super(); - this.m_flTopLeftX = m_flTopLeftX; - this.m_flTopLeftY = m_flTopLeftY; - this.m_flWidth = m_flWidth; - this.m_flHeight = m_flHeight; - } - public IntersectionMaskRectangle_t(Pointer peer) { - super(peer); - } - public static class ByReference extends IntersectionMaskRectangle_t implements Structure.ByReference { - - }; - public static class ByValue extends IntersectionMaskRectangle_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1222
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class IntersectionMaskRectangle_t extends Structure { + public float m_flTopLeftX; + public float m_flTopLeftY; + public float m_flWidth; + public float m_flHeight; + public IntersectionMaskRectangle_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_flTopLeftX", "m_flTopLeftY", "m_flWidth", "m_flHeight"); + } + public IntersectionMaskRectangle_t(float m_flTopLeftX, float m_flTopLeftY, float m_flWidth, float m_flHeight) { + super(); + this.m_flTopLeftX = m_flTopLeftX; + this.m_flTopLeftY = m_flTopLeftY; + this.m_flWidth = m_flWidth; + this.m_flHeight = m_flHeight; + } + public IntersectionMaskRectangle_t(Pointer peer) { + super(peer); + } + public static class ByReference extends IntersectionMaskRectangle_t implements Structure.ByReference { + + }; + public static class ByValue extends IntersectionMaskRectangle_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/JOpenVRLibrary.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/JOpenVRLibrary.java index 6d1b7abfc..2a3b99733 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/JOpenVRLibrary.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/JOpenVRLibrary.java @@ -6,48 +6,1618 @@ import com.sun.jna.Pointer; import com.sun.jna.PointerType; import com.sun.jna.ptr.IntByReference; import java.nio.IntBuffer; +import java.util.logging.Logger; /** - * JNA Wrapper for library JOpenVR
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ + * JNA Wrapper for library JOpenVR
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ public class JOpenVRLibrary implements Library { + private static final Logger logger = Logger.getLogger(JOpenVRLibrary.class.getName()); + + private static String JNA_LIBRARY_NAME; + private static NativeLibrary JNA_NATIVE_LIB; + + /** + * The system property that specifies an implementation of OpenVR (openvr_api file) to use. + * This property has to be set at the program launch using -D connector. + * If this property is not set, the embedded library is loaded. + */ + public static final String JNA_OPENVR_LIBRARY_PATH = "openvr.library.path"; +/* + static { + init(); + } +*/ /** - * Get the version of the underlying OpenVR API.
    - * see https://github.com/ValveSoftware/openvr/tree/v1.0.6. + * Init the native binding to the underlying system library. + * @return true if the link is effective and false otherwise. */ - public static final String OPENVR_VERSION = "1.0.6"; + public static void init() throws UnsatisfiedLinkError { + Native.unregister(JOpenVRLibrary.class); + + String path = System.getProperty(JNA_OPENVR_LIBRARY_PATH); + if (path != null){ + + JNA_LIBRARY_NAME = path; + + logger.config("Using OpenVR implementation located at "+JNA_LIBRARY_NAME); + + JNA_NATIVE_LIB = NativeLibrary.getInstance(JOpenVRLibrary.JNA_LIBRARY_NAME); + Native.register(JOpenVRLibrary.class, JOpenVRLibrary.JNA_NATIVE_LIB); + } else { + + JNA_LIBRARY_NAME = "openvr_api"; + + logger.config("Using embedded OpenVR implementation "+JOpenVRLibrary.JNA_LIBRARY_NAME); + + JNA_NATIVE_LIB = NativeLibrary.getInstance(JOpenVRLibrary.JNA_LIBRARY_NAME); + Native.register(JOpenVRLibrary.class, JOpenVRLibrary.JNA_NATIVE_LIB); + } + } /** - * Get the commit number of the underlying OpenVR API. - * see https://github.com/ValveSoftware/openvr/commit/7fa6470f2972970859f2395f1390f6d87d4b0fc3 + * Get the name of the underlying system library. + * @return the name of the underlying system library. */ - public static final String OPENVR_COMMIT = "7fa6470"; - - public static final String JNA_LIBRARY_NAME = "openvr_api"; - public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(JOpenVRLibrary.JNA_LIBRARY_NAME); - static { - Native.register(JOpenVRLibrary.class, JOpenVRLibrary.JNA_NATIVE_LIB); + public static String getSystemLibraryName(){ + return ""+JNA_LIBRARY_NAME; } - - // OpenVR Constants + + /** + * native declaration : headers\openvr_capi.h:181
    + * enum values + */ + public static interface EVREye { + /** native declaration : headers\openvr_capi.h:179 */ + public static final int EVREye_Eye_Left = 0; + /** native declaration : headers\openvr_capi.h:180 */ + public static final int EVREye_Eye_Right = 1; + }; + /** + * native declaration : headers\openvr_capi.h:188
    + * enum values + */ + public static interface ETextureType { + /** native declaration : headers\openvr_capi.h:183 */ + public static final int ETextureType_TextureType_DirectX = 0; + /** native declaration : headers\openvr_capi.h:184 */ + public static final int ETextureType_TextureType_OpenGL = 1; + /** native declaration : headers\openvr_capi.h:185 */ + public static final int ETextureType_TextureType_Vulkan = 2; + /** native declaration : headers\openvr_capi.h:186 */ + public static final int ETextureType_TextureType_IOSurface = 3; + /** native declaration : headers\openvr_capi.h:187 */ + public static final int ETextureType_TextureType_DirectX12 = 4; + }; + /** + * native declaration : headers\openvr_capi.h:193
    + * enum values + */ + public static interface EColorSpace { + /** native declaration : headers\openvr_capi.h:190 */ + public static final int EColorSpace_ColorSpace_Auto = 0; + /** native declaration : headers\openvr_capi.h:191 */ + public static final int EColorSpace_ColorSpace_Gamma = 1; + /** native declaration : headers\openvr_capi.h:192 */ + public static final int EColorSpace_ColorSpace_Linear = 2; + }; + /** + * native declaration : headers\openvr_capi.h:200
    + * enum values + */ + public static interface ETrackingResult { + /** native declaration : headers\openvr_capi.h:195 */ + public static final int ETrackingResult_TrackingResult_Uninitialized = 1; + /** native declaration : headers\openvr_capi.h:196 */ + public static final int ETrackingResult_TrackingResult_Calibrating_InProgress = 100; + /** native declaration : headers\openvr_capi.h:197 */ + public static final int ETrackingResult_TrackingResult_Calibrating_OutOfRange = 101; + /** native declaration : headers\openvr_capi.h:198 */ + public static final int ETrackingResult_TrackingResult_Running_OK = 200; + /** native declaration : headers\openvr_capi.h:199 */ + public static final int ETrackingResult_TrackingResult_Running_OutOfRange = 201; + }; + /** + * native declaration : headers\openvr_capi.h:208
    + * enum values + */ + public static interface ETrackedDeviceClass { + /** native declaration : headers\openvr_capi.h:202 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_Invalid = 0; + /** native declaration : headers\openvr_capi.h:203 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_HMD = 1; + /** native declaration : headers\openvr_capi.h:204 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_Controller = 2; + /** native declaration : headers\openvr_capi.h:205 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_GenericTracker = 3; + /** native declaration : headers\openvr_capi.h:206 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_TrackingReference = 4; + /** native declaration : headers\openvr_capi.h:207 */ + public static final int ETrackedDeviceClass_TrackedDeviceClass_DisplayRedirect = 5; + }; + /** + * native declaration : headers\openvr_capi.h:213
    + * enum values + */ + public static interface ETrackedControllerRole { + /** native declaration : headers\openvr_capi.h:210 */ + public static final int ETrackedControllerRole_TrackedControllerRole_Invalid = 0; + /** native declaration : headers\openvr_capi.h:211 */ + public static final int ETrackedControllerRole_TrackedControllerRole_LeftHand = 1; + /** native declaration : headers\openvr_capi.h:212 */ + public static final int ETrackedControllerRole_TrackedControllerRole_RightHand = 2; + }; + /** + * native declaration : headers\openvr_capi.h:218
    + * enum values + */ + public static interface ETrackingUniverseOrigin { + /** native declaration : headers\openvr_capi.h:215 */ + public static final int ETrackingUniverseOrigin_TrackingUniverseSeated = 0; + /** native declaration : headers\openvr_capi.h:216 */ + public static final int ETrackingUniverseOrigin_TrackingUniverseStanding = 1; + /** native declaration : headers\openvr_capi.h:217 */ + public static final int ETrackingUniverseOrigin_TrackingUniverseRawAndUncalibrated = 2; + }; + /** + * native declaration : headers\openvr_capi.h:339
    + * enum values + */ + public static interface ETrackedDeviceProperty { + /** native declaration : headers\openvr_capi.h:220 */ + public static final int ETrackedDeviceProperty_Prop_Invalid = 0; + /** native declaration : headers\openvr_capi.h:221 */ + public static final int ETrackedDeviceProperty_Prop_TrackingSystemName_String = 1000; + /** native declaration : headers\openvr_capi.h:222 */ + public static final int ETrackedDeviceProperty_Prop_ModelNumber_String = 1001; + /** native declaration : headers\openvr_capi.h:223 */ + public static final int ETrackedDeviceProperty_Prop_SerialNumber_String = 1002; + /** native declaration : headers\openvr_capi.h:224 */ + public static final int ETrackedDeviceProperty_Prop_RenderModelName_String = 1003; + /** native declaration : headers\openvr_capi.h:225 */ + public static final int ETrackedDeviceProperty_Prop_WillDriftInYaw_Bool = 1004; + /** native declaration : headers\openvr_capi.h:226 */ + public static final int ETrackedDeviceProperty_Prop_ManufacturerName_String = 1005; + /** native declaration : headers\openvr_capi.h:227 */ + public static final int ETrackedDeviceProperty_Prop_TrackingFirmwareVersion_String = 1006; + /** native declaration : headers\openvr_capi.h:228 */ + public static final int ETrackedDeviceProperty_Prop_HardwareRevision_String = 1007; + /** native declaration : headers\openvr_capi.h:229 */ + public static final int ETrackedDeviceProperty_Prop_AllWirelessDongleDescriptions_String = 1008; + /** native declaration : headers\openvr_capi.h:230 */ + public static final int ETrackedDeviceProperty_Prop_ConnectedWirelessDongle_String = 1009; + /** native declaration : headers\openvr_capi.h:231 */ + public static final int ETrackedDeviceProperty_Prop_DeviceIsWireless_Bool = 1010; + /** native declaration : headers\openvr_capi.h:232 */ + public static final int ETrackedDeviceProperty_Prop_DeviceIsCharging_Bool = 1011; + /** native declaration : headers\openvr_capi.h:233 */ + public static final int ETrackedDeviceProperty_Prop_DeviceBatteryPercentage_Float = 1012; + /** native declaration : headers\openvr_capi.h:234 */ + public static final int ETrackedDeviceProperty_Prop_StatusDisplayTransform_Matrix34 = 1013; + /** native declaration : headers\openvr_capi.h:235 */ + public static final int ETrackedDeviceProperty_Prop_Firmware_UpdateAvailable_Bool = 1014; + /** native declaration : headers\openvr_capi.h:236 */ + public static final int ETrackedDeviceProperty_Prop_Firmware_ManualUpdate_Bool = 1015; + /** native declaration : headers\openvr_capi.h:237 */ + public static final int ETrackedDeviceProperty_Prop_Firmware_ManualUpdateURL_String = 1016; + /** native declaration : headers\openvr_capi.h:238 */ + public static final int ETrackedDeviceProperty_Prop_HardwareRevision_Uint64 = 1017; + /** native declaration : headers\openvr_capi.h:239 */ + public static final int ETrackedDeviceProperty_Prop_FirmwareVersion_Uint64 = 1018; + /** native declaration : headers\openvr_capi.h:240 */ + public static final int ETrackedDeviceProperty_Prop_FPGAVersion_Uint64 = 1019; + /** native declaration : headers\openvr_capi.h:241 */ + public static final int ETrackedDeviceProperty_Prop_VRCVersion_Uint64 = 1020; + /** native declaration : headers\openvr_capi.h:242 */ + public static final int ETrackedDeviceProperty_Prop_RadioVersion_Uint64 = 1021; + /** native declaration : headers\openvr_capi.h:243 */ + public static final int ETrackedDeviceProperty_Prop_DongleVersion_Uint64 = 1022; + /** native declaration : headers\openvr_capi.h:244 */ + public static final int ETrackedDeviceProperty_Prop_BlockServerShutdown_Bool = 1023; + /** native declaration : headers\openvr_capi.h:245 */ + public static final int ETrackedDeviceProperty_Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024; + /** native declaration : headers\openvr_capi.h:246 */ + public static final int ETrackedDeviceProperty_Prop_ContainsProximitySensor_Bool = 1025; + /** native declaration : headers\openvr_capi.h:247 */ + public static final int ETrackedDeviceProperty_Prop_DeviceProvidesBatteryStatus_Bool = 1026; + /** native declaration : headers\openvr_capi.h:248 */ + public static final int ETrackedDeviceProperty_Prop_DeviceCanPowerOff_Bool = 1027; + /** native declaration : headers\openvr_capi.h:249 */ + public static final int ETrackedDeviceProperty_Prop_Firmware_ProgrammingTarget_String = 1028; + /** native declaration : headers\openvr_capi.h:250 */ + public static final int ETrackedDeviceProperty_Prop_DeviceClass_Int32 = 1029; + /** native declaration : headers\openvr_capi.h:251 */ + public static final int ETrackedDeviceProperty_Prop_HasCamera_Bool = 1030; + /** native declaration : headers\openvr_capi.h:252 */ + public static final int ETrackedDeviceProperty_Prop_DriverVersion_String = 1031; + /** native declaration : headers\openvr_capi.h:253 */ + public static final int ETrackedDeviceProperty_Prop_Firmware_ForceUpdateRequired_Bool = 1032; + /** native declaration : headers\openvr_capi.h:254 */ + public static final int ETrackedDeviceProperty_Prop_ViveSystemButtonFixRequired_Bool = 1033; + /** native declaration : headers\openvr_capi.h:255 */ + public static final int ETrackedDeviceProperty_Prop_ParentDriver_Uint64 = 1034; + /** native declaration : headers\openvr_capi.h:256 */ + public static final int ETrackedDeviceProperty_Prop_ResourceRoot_String = 1035; + /** native declaration : headers\openvr_capi.h:257 */ + public static final int ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000; + /** native declaration : headers\openvr_capi.h:258 */ + public static final int ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001; + /** native declaration : headers\openvr_capi.h:259 */ + public static final int ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002; + /** native declaration : headers\openvr_capi.h:260 */ + public static final int ETrackedDeviceProperty_Prop_UserIpdMeters_Float = 2003; + /** native declaration : headers\openvr_capi.h:261 */ + public static final int ETrackedDeviceProperty_Prop_CurrentUniverseId_Uint64 = 2004; + /** native declaration : headers\openvr_capi.h:262 */ + public static final int ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64 = 2005; + /** native declaration : headers\openvr_capi.h:263 */ + public static final int ETrackedDeviceProperty_Prop_DisplayFirmwareVersion_Uint64 = 2006; + /** native declaration : headers\openvr_capi.h:264 */ + public static final int ETrackedDeviceProperty_Prop_IsOnDesktop_Bool = 2007; + /** native declaration : headers\openvr_capi.h:265 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCType_Int32 = 2008; + /** native declaration : headers\openvr_capi.h:266 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCOffset_Float = 2009; + /** native declaration : headers\openvr_capi.h:267 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCScale_Float = 2010; + /** native declaration : headers\openvr_capi.h:268 */ + public static final int ETrackedDeviceProperty_Prop_EdidVendorID_Int32 = 2011; + /** native declaration : headers\openvr_capi.h:269 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageLeft_String = 2012; + /** native declaration : headers\openvr_capi.h:270 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageRight_String = 2013; + /** native declaration : headers\openvr_capi.h:271 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCBlackClamp_Float = 2014; + /** native declaration : headers\openvr_capi.h:272 */ + public static final int ETrackedDeviceProperty_Prop_EdidProductID_Int32 = 2015; + /** native declaration : headers\openvr_capi.h:273 */ + public static final int ETrackedDeviceProperty_Prop_CameraToHeadTransform_Matrix34 = 2016; + /** native declaration : headers\openvr_capi.h:274 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCType_Int32 = 2017; + /** native declaration : headers\openvr_capi.h:275 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCOffset_Float = 2018; + /** native declaration : headers\openvr_capi.h:276 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCScale_Float = 2019; + /** native declaration : headers\openvr_capi.h:277 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCPrescale_Float = 2020; + /** native declaration : headers\openvr_capi.h:278 */ + public static final int ETrackedDeviceProperty_Prop_DisplayGCImage_String = 2021; + /** native declaration : headers\openvr_capi.h:279 */ + public static final int ETrackedDeviceProperty_Prop_LensCenterLeftU_Float = 2022; + /** native declaration : headers\openvr_capi.h:280 */ + public static final int ETrackedDeviceProperty_Prop_LensCenterLeftV_Float = 2023; + /** native declaration : headers\openvr_capi.h:281 */ + public static final int ETrackedDeviceProperty_Prop_LensCenterRightU_Float = 2024; + /** native declaration : headers\openvr_capi.h:282 */ + public static final int ETrackedDeviceProperty_Prop_LensCenterRightV_Float = 2025; + /** native declaration : headers\openvr_capi.h:283 */ + public static final int ETrackedDeviceProperty_Prop_UserHeadToEyeDepthMeters_Float = 2026; + /** native declaration : headers\openvr_capi.h:284 */ + public static final int ETrackedDeviceProperty_Prop_CameraFirmwareVersion_Uint64 = 2027; + /** native declaration : headers\openvr_capi.h:285 */ + public static final int ETrackedDeviceProperty_Prop_CameraFirmwareDescription_String = 2028; + /** native declaration : headers\openvr_capi.h:286 */ + public static final int ETrackedDeviceProperty_Prop_DisplayFPGAVersion_Uint64 = 2029; + /** native declaration : headers\openvr_capi.h:287 */ + public static final int ETrackedDeviceProperty_Prop_DisplayBootloaderVersion_Uint64 = 2030; + /** native declaration : headers\openvr_capi.h:288 */ + public static final int ETrackedDeviceProperty_Prop_DisplayHardwareVersion_Uint64 = 2031; + /** native declaration : headers\openvr_capi.h:289 */ + public static final int ETrackedDeviceProperty_Prop_AudioFirmwareVersion_Uint64 = 2032; + /** native declaration : headers\openvr_capi.h:290 */ + public static final int ETrackedDeviceProperty_Prop_CameraCompatibilityMode_Int32 = 2033; + /** native declaration : headers\openvr_capi.h:291 */ + public static final int ETrackedDeviceProperty_Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034; + /** native declaration : headers\openvr_capi.h:292 */ + public static final int ETrackedDeviceProperty_Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035; + /** native declaration : headers\openvr_capi.h:293 */ + public static final int ETrackedDeviceProperty_Prop_DisplaySuppressed_Bool = 2036; + /** native declaration : headers\openvr_capi.h:294 */ + public static final int ETrackedDeviceProperty_Prop_DisplayAllowNightMode_Bool = 2037; + /** native declaration : headers\openvr_capi.h:295 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageWidth_Int32 = 2038; + /** native declaration : headers\openvr_capi.h:296 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageHeight_Int32 = 2039; + /** native declaration : headers\openvr_capi.h:297 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageNumChannels_Int32 = 2040; + /** native declaration : headers\openvr_capi.h:298 */ + public static final int ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary = 2041; + /** native declaration : headers\openvr_capi.h:299 */ + public static final int ETrackedDeviceProperty_Prop_SecondsFromPhotonsToVblank_Float = 2042; + /** native declaration : headers\openvr_capi.h:300 */ + public static final int ETrackedDeviceProperty_Prop_DriverDirectModeSendsVsyncEvents_Bool = 2043; + /** native declaration : headers\openvr_capi.h:301 */ + public static final int ETrackedDeviceProperty_Prop_DisplayDebugMode_Bool = 2044; + /** native declaration : headers\openvr_capi.h:302 */ + public static final int ETrackedDeviceProperty_Prop_GraphicsAdapterLuid_Uint64 = 2045; + /** native declaration : headers\openvr_capi.h:303 */ + public static final int ETrackedDeviceProperty_Prop_DriverProvidedChaperonePath_String = 2048; + /** native declaration : headers\openvr_capi.h:304 */ + public static final int ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000; + /** native declaration : headers\openvr_capi.h:305 */ + public static final int ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001; + /** native declaration : headers\openvr_capi.h:306 */ + public static final int ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002; + /** native declaration : headers\openvr_capi.h:307 */ + public static final int ETrackedDeviceProperty_Prop_Axis1Type_Int32 = 3003; + /** native declaration : headers\openvr_capi.h:308 */ + public static final int ETrackedDeviceProperty_Prop_Axis2Type_Int32 = 3004; + /** native declaration : headers\openvr_capi.h:309 */ + public static final int ETrackedDeviceProperty_Prop_Axis3Type_Int32 = 3005; + /** native declaration : headers\openvr_capi.h:310 */ + public static final int ETrackedDeviceProperty_Prop_Axis4Type_Int32 = 3006; + /** native declaration : headers\openvr_capi.h:311 */ + public static final int ETrackedDeviceProperty_Prop_ControllerRoleHint_Int32 = 3007; + /** native declaration : headers\openvr_capi.h:312 */ + public static final int ETrackedDeviceProperty_Prop_FieldOfViewLeftDegrees_Float = 4000; + /** native declaration : headers\openvr_capi.h:313 */ + public static final int ETrackedDeviceProperty_Prop_FieldOfViewRightDegrees_Float = 4001; + /** native declaration : headers\openvr_capi.h:314 */ + public static final int ETrackedDeviceProperty_Prop_FieldOfViewTopDegrees_Float = 4002; + /** native declaration : headers\openvr_capi.h:315 */ + public static final int ETrackedDeviceProperty_Prop_FieldOfViewBottomDegrees_Float = 4003; + /** native declaration : headers\openvr_capi.h:316 */ + public static final int ETrackedDeviceProperty_Prop_TrackingRangeMinimumMeters_Float = 4004; + /** native declaration : headers\openvr_capi.h:317 */ + public static final int ETrackedDeviceProperty_Prop_TrackingRangeMaximumMeters_Float = 4005; + /** native declaration : headers\openvr_capi.h:318 */ + public static final int ETrackedDeviceProperty_Prop_ModeLabel_String = 4006; + /** native declaration : headers\openvr_capi.h:319 */ + public static final int ETrackedDeviceProperty_Prop_IconPathName_String = 5000; + /** native declaration : headers\openvr_capi.h:320 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceOff_String = 5001; + /** native declaration : headers\openvr_capi.h:321 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearching_String = 5002; + /** native declaration : headers\openvr_capi.h:322 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearchingAlert_String = 5003; + /** native declaration : headers\openvr_capi.h:323 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceReady_String = 5004; + /** native declaration : headers\openvr_capi.h:324 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceReadyAlert_String = 5005; + /** native declaration : headers\openvr_capi.h:325 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceNotReady_String = 5006; + /** native declaration : headers\openvr_capi.h:326 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceStandby_String = 5007; + /** native declaration : headers\openvr_capi.h:327 */ + public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceAlertLow_String = 5008; + /** native declaration : headers\openvr_capi.h:328 */ + public static final int ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_Start = 5100; + /** native declaration : headers\openvr_capi.h:329 */ + public static final int ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_End = 5150; + /** native declaration : headers\openvr_capi.h:330 */ + public static final int ETrackedDeviceProperty_Prop_UserConfigPath_String = 6000; + /** native declaration : headers\openvr_capi.h:331 */ + public static final int ETrackedDeviceProperty_Prop_InstallPath_String = 6001; + /** native declaration : headers\openvr_capi.h:332 */ + public static final int ETrackedDeviceProperty_Prop_HasDisplayComponent_Bool = 6002; + /** native declaration : headers\openvr_capi.h:333 */ + public static final int ETrackedDeviceProperty_Prop_HasControllerComponent_Bool = 6003; + /** native declaration : headers\openvr_capi.h:334 */ + public static final int ETrackedDeviceProperty_Prop_HasCameraComponent_Bool = 6004; + /** native declaration : headers\openvr_capi.h:335 */ + public static final int ETrackedDeviceProperty_Prop_HasDriverDirectModeComponent_Bool = 6005; + /** native declaration : headers\openvr_capi.h:336 */ + public static final int ETrackedDeviceProperty_Prop_HasVirtualDisplayComponent_Bool = 6006; + /** native declaration : headers\openvr_capi.h:337 */ + public static final int ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000; + /** native declaration : headers\openvr_capi.h:338 */ + public static final int ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999; + }; + /** + * native declaration : headers\openvr_capi.h:353
    + * enum values + */ + public static interface ETrackedPropertyError { + /** native declaration : headers\openvr_capi.h:341 */ + public static final int ETrackedPropertyError_TrackedProp_Success = 0; + /** native declaration : headers\openvr_capi.h:342 */ + public static final int ETrackedPropertyError_TrackedProp_WrongDataType = 1; + /** native declaration : headers\openvr_capi.h:343 */ + public static final int ETrackedPropertyError_TrackedProp_WrongDeviceClass = 2; + /** native declaration : headers\openvr_capi.h:344 */ + public static final int ETrackedPropertyError_TrackedProp_BufferTooSmall = 3; + /** native declaration : headers\openvr_capi.h:345 */ + public static final int ETrackedPropertyError_TrackedProp_UnknownProperty = 4; + /** native declaration : headers\openvr_capi.h:346 */ + public static final int ETrackedPropertyError_TrackedProp_InvalidDevice = 5; + /** native declaration : headers\openvr_capi.h:347 */ + public static final int ETrackedPropertyError_TrackedProp_CouldNotContactServer = 6; + /** native declaration : headers\openvr_capi.h:348 */ + public static final int ETrackedPropertyError_TrackedProp_ValueNotProvidedByDevice = 7; + /** native declaration : headers\openvr_capi.h:349 */ + public static final int ETrackedPropertyError_TrackedProp_StringExceedsMaximumLength = 8; + /** native declaration : headers\openvr_capi.h:350 */ + public static final int ETrackedPropertyError_TrackedProp_NotYetAvailable = 9; + /** native declaration : headers\openvr_capi.h:351 */ + public static final int ETrackedPropertyError_TrackedProp_PermissionDenied = 10; + /** native declaration : headers\openvr_capi.h:352 */ + public static final int ETrackedPropertyError_TrackedProp_InvalidOperation = 11; + }; + /** + * native declaration : headers\openvr_capi.h:359
    + * enum values + */ + public static interface EVRSubmitFlags { + /** native declaration : headers\openvr_capi.h:355 */ + public static final int EVRSubmitFlags_Submit_Default = 0; + /** native declaration : headers\openvr_capi.h:356 */ + public static final int EVRSubmitFlags_Submit_LensDistortionAlreadyApplied = 1; + /** native declaration : headers\openvr_capi.h:357 */ + public static final int EVRSubmitFlags_Submit_GlRenderBuffer = 2; + /** native declaration : headers\openvr_capi.h:358 */ + public static final int EVRSubmitFlags_Submit_Reserved = 4; + }; + /** + * native declaration : headers\openvr_capi.h:370
    + * enum values + */ + public static interface EVRState { + /** native declaration : headers\openvr_capi.h:361 */ + public static final int EVRState_VRState_Undefined = -1; + /** native declaration : headers\openvr_capi.h:362 */ + public static final int EVRState_VRState_Off = 0; + /** native declaration : headers\openvr_capi.h:363 */ + public static final int EVRState_VRState_Searching = 1; + /** native declaration : headers\openvr_capi.h:364 */ + public static final int EVRState_VRState_Searching_Alert = 2; + /** native declaration : headers\openvr_capi.h:365 */ + public static final int EVRState_VRState_Ready = 3; + /** native declaration : headers\openvr_capi.h:366 */ + public static final int EVRState_VRState_Ready_Alert = 4; + /** native declaration : headers\openvr_capi.h:367 */ + public static final int EVRState_VRState_NotReady = 5; + /** native declaration : headers\openvr_capi.h:368 */ + public static final int EVRState_VRState_Standby = 6; + /** native declaration : headers\openvr_capi.h:369 */ + public static final int EVRState_VRState_Ready_Alert_Low = 7; + }; + /** + * native declaration : headers\openvr_capi.h:486
    + * enum values + */ + public static interface EVREventType { + /** native declaration : headers\openvr_capi.h:372 */ + public static final int EVREventType_VREvent_None = 0; + /** native declaration : headers\openvr_capi.h:373 */ + public static final int EVREventType_VREvent_TrackedDeviceActivated = 100; + /** native declaration : headers\openvr_capi.h:374 */ + public static final int EVREventType_VREvent_TrackedDeviceDeactivated = 101; + /** native declaration : headers\openvr_capi.h:375 */ + public static final int EVREventType_VREvent_TrackedDeviceUpdated = 102; + /** native declaration : headers\openvr_capi.h:376 */ + public static final int EVREventType_VREvent_TrackedDeviceUserInteractionStarted = 103; + /** native declaration : headers\openvr_capi.h:377 */ + public static final int EVREventType_VREvent_TrackedDeviceUserInteractionEnded = 104; + /** native declaration : headers\openvr_capi.h:378 */ + public static final int EVREventType_VREvent_IpdChanged = 105; + /** native declaration : headers\openvr_capi.h:379 */ + public static final int EVREventType_VREvent_EnterStandbyMode = 106; + /** native declaration : headers\openvr_capi.h:380 */ + public static final int EVREventType_VREvent_LeaveStandbyMode = 107; + /** native declaration : headers\openvr_capi.h:381 */ + public static final int EVREventType_VREvent_TrackedDeviceRoleChanged = 108; + /** native declaration : headers\openvr_capi.h:382 */ + public static final int EVREventType_VREvent_WatchdogWakeUpRequested = 109; + /** native declaration : headers\openvr_capi.h:383 */ + public static final int EVREventType_VREvent_LensDistortionChanged = 110; + /** native declaration : headers\openvr_capi.h:384 */ + public static final int EVREventType_VREvent_PropertyChanged = 111; + /** native declaration : headers\openvr_capi.h:385 */ + public static final int EVREventType_VREvent_WirelessDisconnect = 112; + /** native declaration : headers\openvr_capi.h:386 */ + public static final int EVREventType_VREvent_WirelessReconnect = 113; + /** native declaration : headers\openvr_capi.h:387 */ + public static final int EVREventType_VREvent_ButtonPress = 200; + /** native declaration : headers\openvr_capi.h:388 */ + public static final int EVREventType_VREvent_ButtonUnpress = 201; + /** native declaration : headers\openvr_capi.h:389 */ + public static final int EVREventType_VREvent_ButtonTouch = 202; + /** native declaration : headers\openvr_capi.h:390 */ + public static final int EVREventType_VREvent_ButtonUntouch = 203; + /** native declaration : headers\openvr_capi.h:391 */ + public static final int EVREventType_VREvent_MouseMove = 300; + /** native declaration : headers\openvr_capi.h:392 */ + public static final int EVREventType_VREvent_MouseButtonDown = 301; + /** native declaration : headers\openvr_capi.h:393 */ + public static final int EVREventType_VREvent_MouseButtonUp = 302; + /** native declaration : headers\openvr_capi.h:394 */ + public static final int EVREventType_VREvent_FocusEnter = 303; + /** native declaration : headers\openvr_capi.h:395 */ + public static final int EVREventType_VREvent_FocusLeave = 304; + /** native declaration : headers\openvr_capi.h:396 */ + public static final int EVREventType_VREvent_Scroll = 305; + /** native declaration : headers\openvr_capi.h:397 */ + public static final int EVREventType_VREvent_TouchPadMove = 306; + /** native declaration : headers\openvr_capi.h:398 */ + public static final int EVREventType_VREvent_OverlayFocusChanged = 307; + /** native declaration : headers\openvr_capi.h:399 */ + public static final int EVREventType_VREvent_InputFocusCaptured = 400; + /** native declaration : headers\openvr_capi.h:400 */ + public static final int EVREventType_VREvent_InputFocusReleased = 401; + /** native declaration : headers\openvr_capi.h:401 */ + public static final int EVREventType_VREvent_SceneFocusLost = 402; + /** native declaration : headers\openvr_capi.h:402 */ + public static final int EVREventType_VREvent_SceneFocusGained = 403; + /** native declaration : headers\openvr_capi.h:403 */ + public static final int EVREventType_VREvent_SceneApplicationChanged = 404; + /** native declaration : headers\openvr_capi.h:404 */ + public static final int EVREventType_VREvent_SceneFocusChanged = 405; + /** native declaration : headers\openvr_capi.h:405 */ + public static final int EVREventType_VREvent_InputFocusChanged = 406; + /** native declaration : headers\openvr_capi.h:406 */ + public static final int EVREventType_VREvent_SceneApplicationSecondaryRenderingStarted = 407; + /** native declaration : headers\openvr_capi.h:407 */ + public static final int EVREventType_VREvent_HideRenderModels = 410; + /** native declaration : headers\openvr_capi.h:408 */ + public static final int EVREventType_VREvent_ShowRenderModels = 411; + /** native declaration : headers\openvr_capi.h:409 */ + public static final int EVREventType_VREvent_OverlayShown = 500; + /** native declaration : headers\openvr_capi.h:410 */ + public static final int EVREventType_VREvent_OverlayHidden = 501; + /** native declaration : headers\openvr_capi.h:411 */ + public static final int EVREventType_VREvent_DashboardActivated = 502; + /** native declaration : headers\openvr_capi.h:412 */ + public static final int EVREventType_VREvent_DashboardDeactivated = 503; + /** native declaration : headers\openvr_capi.h:413 */ + public static final int EVREventType_VREvent_DashboardThumbSelected = 504; + /** native declaration : headers\openvr_capi.h:414 */ + public static final int EVREventType_VREvent_DashboardRequested = 505; + /** native declaration : headers\openvr_capi.h:415 */ + public static final int EVREventType_VREvent_ResetDashboard = 506; + /** native declaration : headers\openvr_capi.h:416 */ + public static final int EVREventType_VREvent_RenderToast = 507; + /** native declaration : headers\openvr_capi.h:417 */ + public static final int EVREventType_VREvent_ImageLoaded = 508; + /** native declaration : headers\openvr_capi.h:418 */ + public static final int EVREventType_VREvent_ShowKeyboard = 509; + /** native declaration : headers\openvr_capi.h:419 */ + public static final int EVREventType_VREvent_HideKeyboard = 510; + /** native declaration : headers\openvr_capi.h:420 */ + public static final int EVREventType_VREvent_OverlayGamepadFocusGained = 511; + /** native declaration : headers\openvr_capi.h:421 */ + public static final int EVREventType_VREvent_OverlayGamepadFocusLost = 512; + /** native declaration : headers\openvr_capi.h:422 */ + public static final int EVREventType_VREvent_OverlaySharedTextureChanged = 513; + /** native declaration : headers\openvr_capi.h:423 */ + public static final int EVREventType_VREvent_DashboardGuideButtonDown = 514; + /** native declaration : headers\openvr_capi.h:424 */ + public static final int EVREventType_VREvent_DashboardGuideButtonUp = 515; + /** native declaration : headers\openvr_capi.h:425 */ + public static final int EVREventType_VREvent_ScreenshotTriggered = 516; + /** native declaration : headers\openvr_capi.h:426 */ + public static final int EVREventType_VREvent_ImageFailed = 517; + /** native declaration : headers\openvr_capi.h:427 */ + public static final int EVREventType_VREvent_DashboardOverlayCreated = 518; + /** native declaration : headers\openvr_capi.h:428 */ + public static final int EVREventType_VREvent_RequestScreenshot = 520; + /** native declaration : headers\openvr_capi.h:429 */ + public static final int EVREventType_VREvent_ScreenshotTaken = 521; + /** native declaration : headers\openvr_capi.h:430 */ + public static final int EVREventType_VREvent_ScreenshotFailed = 522; + /** native declaration : headers\openvr_capi.h:431 */ + public static final int EVREventType_VREvent_SubmitScreenshotToDashboard = 523; + /** native declaration : headers\openvr_capi.h:432 */ + public static final int EVREventType_VREvent_ScreenshotProgressToDashboard = 524; + /** native declaration : headers\openvr_capi.h:433 */ + public static final int EVREventType_VREvent_PrimaryDashboardDeviceChanged = 525; + /** native declaration : headers\openvr_capi.h:434 */ + public static final int EVREventType_VREvent_Notification_Shown = 600; + /** native declaration : headers\openvr_capi.h:435 */ + public static final int EVREventType_VREvent_Notification_Hidden = 601; + /** native declaration : headers\openvr_capi.h:436 */ + public static final int EVREventType_VREvent_Notification_BeginInteraction = 602; + /** native declaration : headers\openvr_capi.h:437 */ + public static final int EVREventType_VREvent_Notification_Destroyed = 603; + /** native declaration : headers\openvr_capi.h:438 */ + public static final int EVREventType_VREvent_Quit = 700; + /** native declaration : headers\openvr_capi.h:439 */ + public static final int EVREventType_VREvent_ProcessQuit = 701; + /** native declaration : headers\openvr_capi.h:440 */ + public static final int EVREventType_VREvent_QuitAborted_UserPrompt = 702; + /** native declaration : headers\openvr_capi.h:441 */ + public static final int EVREventType_VREvent_QuitAcknowledged = 703; + /** native declaration : headers\openvr_capi.h:442 */ + public static final int EVREventType_VREvent_DriverRequestedQuit = 704; + /** native declaration : headers\openvr_capi.h:443 */ + public static final int EVREventType_VREvent_ChaperoneDataHasChanged = 800; + /** native declaration : headers\openvr_capi.h:444 */ + public static final int EVREventType_VREvent_ChaperoneUniverseHasChanged = 801; + /** native declaration : headers\openvr_capi.h:445 */ + public static final int EVREventType_VREvent_ChaperoneTempDataHasChanged = 802; + /** native declaration : headers\openvr_capi.h:446 */ + public static final int EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803; + /** native declaration : headers\openvr_capi.h:447 */ + public static final int EVREventType_VREvent_SeatedZeroPoseReset = 804; + /** native declaration : headers\openvr_capi.h:448 */ + public static final int EVREventType_VREvent_AudioSettingsHaveChanged = 820; + /** native declaration : headers\openvr_capi.h:449 */ + public static final int EVREventType_VREvent_BackgroundSettingHasChanged = 850; + /** native declaration : headers\openvr_capi.h:450 */ + public static final int EVREventType_VREvent_CameraSettingsHaveChanged = 851; + /** native declaration : headers\openvr_capi.h:451 */ + public static final int EVREventType_VREvent_ReprojectionSettingHasChanged = 852; + /** native declaration : headers\openvr_capi.h:452 */ + public static final int EVREventType_VREvent_ModelSkinSettingsHaveChanged = 853; + /** native declaration : headers\openvr_capi.h:453 */ + public static final int EVREventType_VREvent_EnvironmentSettingsHaveChanged = 854; + /** native declaration : headers\openvr_capi.h:454 */ + public static final int EVREventType_VREvent_PowerSettingsHaveChanged = 855; + /** native declaration : headers\openvr_capi.h:455 */ + public static final int EVREventType_VREvent_EnableHomeAppSettingsHaveChanged = 856; + /** native declaration : headers\openvr_capi.h:456 */ + public static final int EVREventType_VREvent_StatusUpdate = 900; + /** native declaration : headers\openvr_capi.h:457 */ + public static final int EVREventType_VREvent_MCImageUpdated = 1000; + /** native declaration : headers\openvr_capi.h:458 */ + public static final int EVREventType_VREvent_FirmwareUpdateStarted = 1100; + /** native declaration : headers\openvr_capi.h:459 */ + public static final int EVREventType_VREvent_FirmwareUpdateFinished = 1101; + /** native declaration : headers\openvr_capi.h:460 */ + public static final int EVREventType_VREvent_KeyboardClosed = 1200; + /** native declaration : headers\openvr_capi.h:461 */ + public static final int EVREventType_VREvent_KeyboardCharInput = 1201; + /** native declaration : headers\openvr_capi.h:462 */ + public static final int EVREventType_VREvent_KeyboardDone = 1202; + /** native declaration : headers\openvr_capi.h:463 */ + public static final int EVREventType_VREvent_ApplicationTransitionStarted = 1300; + /** native declaration : headers\openvr_capi.h:464 */ + public static final int EVREventType_VREvent_ApplicationTransitionAborted = 1301; + /** native declaration : headers\openvr_capi.h:465 */ + public static final int EVREventType_VREvent_ApplicationTransitionNewAppStarted = 1302; + /** native declaration : headers\openvr_capi.h:466 */ + public static final int EVREventType_VREvent_ApplicationListUpdated = 1303; + /** native declaration : headers\openvr_capi.h:467 */ + public static final int EVREventType_VREvent_ApplicationMimeTypeLoad = 1304; + /** native declaration : headers\openvr_capi.h:468 */ + public static final int EVREventType_VREvent_ApplicationTransitionNewAppLaunchComplete = 1305; + /** native declaration : headers\openvr_capi.h:469 */ + public static final int EVREventType_VREvent_ProcessConnected = 1306; + /** native declaration : headers\openvr_capi.h:470 */ + public static final int EVREventType_VREvent_ProcessDisconnected = 1307; + /** native declaration : headers\openvr_capi.h:471 */ + public static final int EVREventType_VREvent_Compositor_MirrorWindowShown = 1400; + /** native declaration : headers\openvr_capi.h:472 */ + public static final int EVREventType_VREvent_Compositor_MirrorWindowHidden = 1401; + /** native declaration : headers\openvr_capi.h:473 */ + public static final int EVREventType_VREvent_Compositor_ChaperoneBoundsShown = 1410; + /** native declaration : headers\openvr_capi.h:474 */ + public static final int EVREventType_VREvent_Compositor_ChaperoneBoundsHidden = 1411; + /** native declaration : headers\openvr_capi.h:475 */ + public static final int EVREventType_VREvent_TrackedCamera_StartVideoStream = 1500; + /** native declaration : headers\openvr_capi.h:476 */ + public static final int EVREventType_VREvent_TrackedCamera_StopVideoStream = 1501; + /** native declaration : headers\openvr_capi.h:477 */ + public static final int EVREventType_VREvent_TrackedCamera_PauseVideoStream = 1502; + /** native declaration : headers\openvr_capi.h:478 */ + public static final int EVREventType_VREvent_TrackedCamera_ResumeVideoStream = 1503; + /** native declaration : headers\openvr_capi.h:479 */ + public static final int EVREventType_VREvent_TrackedCamera_EditingSurface = 1550; + /** native declaration : headers\openvr_capi.h:480 */ + public static final int EVREventType_VREvent_PerformanceTest_EnableCapture = 1600; + /** native declaration : headers\openvr_capi.h:481 */ + public static final int EVREventType_VREvent_PerformanceTest_DisableCapture = 1601; + /** native declaration : headers\openvr_capi.h:482 */ + public static final int EVREventType_VREvent_PerformanceTest_FidelityLevel = 1602; + /** native declaration : headers\openvr_capi.h:483 */ + public static final int EVREventType_VREvent_MessageOverlay_Closed = 1650; + /** native declaration : headers\openvr_capi.h:484 */ + public static final int EVREventType_VREvent_VendorSpecific_Reserved_Start = 10000; + /** native declaration : headers\openvr_capi.h:485 */ + public static final int EVREventType_VREvent_VendorSpecific_Reserved_End = 19999; + }; + /** + * native declaration : headers\openvr_capi.h:493
    + * enum values + */ + public static interface EDeviceActivityLevel { + /** native declaration : headers\openvr_capi.h:488 */ + public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Unknown = -1; + /** native declaration : headers\openvr_capi.h:489 */ + public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Idle = 0; + /** native declaration : headers\openvr_capi.h:490 */ + public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction = 1; + /** native declaration : headers\openvr_capi.h:491 */ + public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction_Timeout = 2; + /** native declaration : headers\openvr_capi.h:492 */ + public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Standby = 3; + }; + /** + * native declaration : headers\openvr_capi.h:513
    + * enum values + */ + public static interface EVRButtonId { + /** native declaration : headers\openvr_capi.h:495 */ + public static final int EVRButtonId_k_EButton_System = 0; + /** native declaration : headers\openvr_capi.h:496 */ + public static final int EVRButtonId_k_EButton_ApplicationMenu = 1; + /** native declaration : headers\openvr_capi.h:497 */ + public static final int EVRButtonId_k_EButton_Grip = 2; + /** native declaration : headers\openvr_capi.h:498 */ + public static final int EVRButtonId_k_EButton_DPad_Left = 3; + /** native declaration : headers\openvr_capi.h:499 */ + public static final int EVRButtonId_k_EButton_DPad_Up = 4; + /** native declaration : headers\openvr_capi.h:500 */ + public static final int EVRButtonId_k_EButton_DPad_Right = 5; + /** native declaration : headers\openvr_capi.h:501 */ + public static final int EVRButtonId_k_EButton_DPad_Down = 6; + /** native declaration : headers\openvr_capi.h:502 */ + public static final int EVRButtonId_k_EButton_A = 7; + /** native declaration : headers\openvr_capi.h:503 */ + public static final int EVRButtonId_k_EButton_ProximitySensor = 31; + /** native declaration : headers\openvr_capi.h:504 */ + public static final int EVRButtonId_k_EButton_Axis0 = 32; + /** native declaration : headers\openvr_capi.h:505 */ + public static final int EVRButtonId_k_EButton_Axis1 = 33; + /** native declaration : headers\openvr_capi.h:506 */ + public static final int EVRButtonId_k_EButton_Axis2 = 34; + /** native declaration : headers\openvr_capi.h:507 */ + public static final int EVRButtonId_k_EButton_Axis3 = 35; + /** native declaration : headers\openvr_capi.h:508 */ + public static final int EVRButtonId_k_EButton_Axis4 = 36; + /** native declaration : headers\openvr_capi.h:509 */ + public static final int EVRButtonId_k_EButton_SteamVR_Touchpad = 32; + /** native declaration : headers\openvr_capi.h:510 */ + public static final int EVRButtonId_k_EButton_SteamVR_Trigger = 33; + /** native declaration : headers\openvr_capi.h:511 */ + public static final int EVRButtonId_k_EButton_Dashboard_Back = 2; + /** native declaration : headers\openvr_capi.h:512 */ + public static final int EVRButtonId_k_EButton_Max = 64; + }; + /** + * native declaration : headers\openvr_capi.h:518
    + * enum values + */ + public static interface EVRMouseButton { + /** native declaration : headers\openvr_capi.h:515 */ + public static final int EVRMouseButton_VRMouseButton_Left = 1; + /** native declaration : headers\openvr_capi.h:516 */ + public static final int EVRMouseButton_VRMouseButton_Right = 2; + /** native declaration : headers\openvr_capi.h:517 */ + public static final int EVRMouseButton_VRMouseButton_Middle = 4; + }; + /** + * native declaration : headers\openvr_capi.h:524
    + * enum values + */ + public static interface EHiddenAreaMeshType { + /** native declaration : headers\openvr_capi.h:520 */ + public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Standard = 0; + /** native declaration : headers\openvr_capi.h:521 */ + public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Inverse = 1; + /** native declaration : headers\openvr_capi.h:522 */ + public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_LineLoop = 2; + /** native declaration : headers\openvr_capi.h:523 */ + public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Max = 3; + }; + /** + * native declaration : headers\openvr_capi.h:530
    + * enum values + */ + public static interface EVRControllerAxisType { + /** native declaration : headers\openvr_capi.h:526 */ + public static final int EVRControllerAxisType_k_eControllerAxis_None = 0; + /** native declaration : headers\openvr_capi.h:527 */ + public static final int EVRControllerAxisType_k_eControllerAxis_TrackPad = 1; + /** native declaration : headers\openvr_capi.h:528 */ + public static final int EVRControllerAxisType_k_eControllerAxis_Joystick = 2; + /** native declaration : headers\openvr_capi.h:529 */ + public static final int EVRControllerAxisType_k_eControllerAxis_Trigger = 3; + }; + /** + * native declaration : headers\openvr_capi.h:534
    + * enum values + */ + public static interface EVRControllerEventOutputType { + /** native declaration : headers\openvr_capi.h:532 */ + public static final int EVRControllerEventOutputType_ControllerEventOutput_OSEvents = 0; + /** native declaration : headers\openvr_capi.h:533 */ + public static final int EVRControllerEventOutputType_ControllerEventOutput_VREvents = 1; + }; + /** + * native declaration : headers\openvr_capi.h:542
    + * enum values + */ + public static interface ECollisionBoundsStyle { + /** native declaration : headers\openvr_capi.h:536 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_BEGINNER = 0; + /** native declaration : headers\openvr_capi.h:537 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1; + /** native declaration : headers\openvr_capi.h:538 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_SQUARES = 2; + /** native declaration : headers\openvr_capi.h:539 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_ADVANCED = 3; + /** native declaration : headers\openvr_capi.h:540 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_NONE = 4; + /** native declaration : headers\openvr_capi.h:541 */ + public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_COUNT = 5; + }; + /** + * native declaration : headers\openvr_capi.h:565
    + * enum values + */ + public static interface EVROverlayError { + /** native declaration : headers\openvr_capi.h:544 */ + public static final int EVROverlayError_VROverlayError_None = 0; + /** native declaration : headers\openvr_capi.h:545 */ + public static final int EVROverlayError_VROverlayError_UnknownOverlay = 10; + /** native declaration : headers\openvr_capi.h:546 */ + public static final int EVROverlayError_VROverlayError_InvalidHandle = 11; + /** native declaration : headers\openvr_capi.h:547 */ + public static final int EVROverlayError_VROverlayError_PermissionDenied = 12; + /** native declaration : headers\openvr_capi.h:548 */ + public static final int EVROverlayError_VROverlayError_OverlayLimitExceeded = 13; + /** native declaration : headers\openvr_capi.h:549 */ + public static final int EVROverlayError_VROverlayError_WrongVisibilityType = 14; + /** native declaration : headers\openvr_capi.h:550 */ + public static final int EVROverlayError_VROverlayError_KeyTooLong = 15; + /** native declaration : headers\openvr_capi.h:551 */ + public static final int EVROverlayError_VROverlayError_NameTooLong = 16; + /** native declaration : headers\openvr_capi.h:552 */ + public static final int EVROverlayError_VROverlayError_KeyInUse = 17; + /** native declaration : headers\openvr_capi.h:553 */ + public static final int EVROverlayError_VROverlayError_WrongTransformType = 18; + /** native declaration : headers\openvr_capi.h:554 */ + public static final int EVROverlayError_VROverlayError_InvalidTrackedDevice = 19; + /** native declaration : headers\openvr_capi.h:555 */ + public static final int EVROverlayError_VROverlayError_InvalidParameter = 20; + /** native declaration : headers\openvr_capi.h:556 */ + public static final int EVROverlayError_VROverlayError_ThumbnailCantBeDestroyed = 21; + /** native declaration : headers\openvr_capi.h:557 */ + public static final int EVROverlayError_VROverlayError_ArrayTooSmall = 22; + /** native declaration : headers\openvr_capi.h:558 */ + public static final int EVROverlayError_VROverlayError_RequestFailed = 23; + /** native declaration : headers\openvr_capi.h:559 */ + public static final int EVROverlayError_VROverlayError_InvalidTexture = 24; + /** native declaration : headers\openvr_capi.h:560 */ + public static final int EVROverlayError_VROverlayError_UnableToLoadFile = 25; + /** native declaration : headers\openvr_capi.h:561 */ + public static final int EVROverlayError_VROverlayError_KeyboardAlreadyInUse = 26; + /** native declaration : headers\openvr_capi.h:562 */ + public static final int EVROverlayError_VROverlayError_NoNeighbor = 27; + /** native declaration : headers\openvr_capi.h:563 */ + public static final int EVROverlayError_VROverlayError_TooManyMaskPrimitives = 29; + /** native declaration : headers\openvr_capi.h:564 */ + public static final int EVROverlayError_VROverlayError_BadMaskPrimitive = 30; + }; + /** + * native declaration : headers\openvr_capi.h:576
    + * enum values + */ + public static interface EVRApplicationType { + /** native declaration : headers\openvr_capi.h:567 */ + public static final int EVRApplicationType_VRApplication_Other = 0; + /** native declaration : headers\openvr_capi.h:568 */ + public static final int EVRApplicationType_VRApplication_Scene = 1; + /** native declaration : headers\openvr_capi.h:569 */ + public static final int EVRApplicationType_VRApplication_Overlay = 2; + /** native declaration : headers\openvr_capi.h:570 */ + public static final int EVRApplicationType_VRApplication_Background = 3; + /** native declaration : headers\openvr_capi.h:571 */ + public static final int EVRApplicationType_VRApplication_Utility = 4; + /** native declaration : headers\openvr_capi.h:572 */ + public static final int EVRApplicationType_VRApplication_VRMonitor = 5; + /** native declaration : headers\openvr_capi.h:573 */ + public static final int EVRApplicationType_VRApplication_SteamWatchdog = 6; + /** native declaration : headers\openvr_capi.h:574 */ + public static final int EVRApplicationType_VRApplication_Bootstrapper = 7; + /** native declaration : headers\openvr_capi.h:575 */ + public static final int EVRApplicationType_VRApplication_Max = 8; + }; + /** + * native declaration : headers\openvr_capi.h:581
    + * enum values + */ + public static interface EVRFirmwareError { + /** native declaration : headers\openvr_capi.h:578 */ + public static final int EVRFirmwareError_VRFirmwareError_None = 0; + /** native declaration : headers\openvr_capi.h:579 */ + public static final int EVRFirmwareError_VRFirmwareError_Success = 1; + /** native declaration : headers\openvr_capi.h:580 */ + public static final int EVRFirmwareError_VRFirmwareError_Fail = 2; + }; + /** + * native declaration : headers\openvr_capi.h:588
    + * enum values + */ + public static interface EVRNotificationError { + /** native declaration : headers\openvr_capi.h:583 */ + public static final int EVRNotificationError_VRNotificationError_OK = 0; + /** native declaration : headers\openvr_capi.h:584 */ + public static final int EVRNotificationError_VRNotificationError_InvalidNotificationId = 100; + /** native declaration : headers\openvr_capi.h:585 */ + public static final int EVRNotificationError_VRNotificationError_NotificationQueueFull = 101; + /** native declaration : headers\openvr_capi.h:586 */ + public static final int EVRNotificationError_VRNotificationError_InvalidOverlayHandle = 102; + /** native declaration : headers\openvr_capi.h:587 */ + public static final int EVRNotificationError_VRNotificationError_SystemWithUserValueAlreadyExists = 103; + }; + /** + * native declaration : headers\openvr_capi.h:671
    + * enum values + */ + public static interface EVRInitError { + /** native declaration : headers\openvr_capi.h:590 */ + public static final int EVRInitError_VRInitError_None = 0; + /** native declaration : headers\openvr_capi.h:591 */ + public static final int EVRInitError_VRInitError_Unknown = 1; + /** native declaration : headers\openvr_capi.h:592 */ + public static final int EVRInitError_VRInitError_Init_InstallationNotFound = 100; + /** native declaration : headers\openvr_capi.h:593 */ + public static final int EVRInitError_VRInitError_Init_InstallationCorrupt = 101; + /** native declaration : headers\openvr_capi.h:594 */ + public static final int EVRInitError_VRInitError_Init_VRClientDLLNotFound = 102; + /** native declaration : headers\openvr_capi.h:595 */ + public static final int EVRInitError_VRInitError_Init_FileNotFound = 103; + /** native declaration : headers\openvr_capi.h:596 */ + public static final int EVRInitError_VRInitError_Init_FactoryNotFound = 104; + /** native declaration : headers\openvr_capi.h:597 */ + public static final int EVRInitError_VRInitError_Init_InterfaceNotFound = 105; + /** native declaration : headers\openvr_capi.h:598 */ + public static final int EVRInitError_VRInitError_Init_InvalidInterface = 106; + /** native declaration : headers\openvr_capi.h:599 */ + public static final int EVRInitError_VRInitError_Init_UserConfigDirectoryInvalid = 107; + /** native declaration : headers\openvr_capi.h:600 */ + public static final int EVRInitError_VRInitError_Init_HmdNotFound = 108; + /** native declaration : headers\openvr_capi.h:601 */ + public static final int EVRInitError_VRInitError_Init_NotInitialized = 109; + /** native declaration : headers\openvr_capi.h:602 */ + public static final int EVRInitError_VRInitError_Init_PathRegistryNotFound = 110; + /** native declaration : headers\openvr_capi.h:603 */ + public static final int EVRInitError_VRInitError_Init_NoConfigPath = 111; + /** native declaration : headers\openvr_capi.h:604 */ + public static final int EVRInitError_VRInitError_Init_NoLogPath = 112; + /** native declaration : headers\openvr_capi.h:605 */ + public static final int EVRInitError_VRInitError_Init_PathRegistryNotWritable = 113; + /** native declaration : headers\openvr_capi.h:606 */ + public static final int EVRInitError_VRInitError_Init_AppInfoInitFailed = 114; + /** native declaration : headers\openvr_capi.h:607 */ + public static final int EVRInitError_VRInitError_Init_Retry = 115; + /** native declaration : headers\openvr_capi.h:608 */ + public static final int EVRInitError_VRInitError_Init_InitCanceledByUser = 116; + /** native declaration : headers\openvr_capi.h:609 */ + public static final int EVRInitError_VRInitError_Init_AnotherAppLaunching = 117; + /** native declaration : headers\openvr_capi.h:610 */ + public static final int EVRInitError_VRInitError_Init_SettingsInitFailed = 118; + /** native declaration : headers\openvr_capi.h:611 */ + public static final int EVRInitError_VRInitError_Init_ShuttingDown = 119; + /** native declaration : headers\openvr_capi.h:612 */ + public static final int EVRInitError_VRInitError_Init_TooManyObjects = 120; + /** native declaration : headers\openvr_capi.h:613 */ + public static final int EVRInitError_VRInitError_Init_NoServerForBackgroundApp = 121; + /** native declaration : headers\openvr_capi.h:614 */ + public static final int EVRInitError_VRInitError_Init_NotSupportedWithCompositor = 122; + /** native declaration : headers\openvr_capi.h:615 */ + public static final int EVRInitError_VRInitError_Init_NotAvailableToUtilityApps = 123; + /** native declaration : headers\openvr_capi.h:616 */ + public static final int EVRInitError_VRInitError_Init_Internal = 124; + /** native declaration : headers\openvr_capi.h:617 */ + public static final int EVRInitError_VRInitError_Init_HmdDriverIdIsNone = 125; + /** native declaration : headers\openvr_capi.h:618 */ + public static final int EVRInitError_VRInitError_Init_HmdNotFoundPresenceFailed = 126; + /** native declaration : headers\openvr_capi.h:619 */ + public static final int EVRInitError_VRInitError_Init_VRMonitorNotFound = 127; + /** native declaration : headers\openvr_capi.h:620 */ + public static final int EVRInitError_VRInitError_Init_VRMonitorStartupFailed = 128; + /** native declaration : headers\openvr_capi.h:621 */ + public static final int EVRInitError_VRInitError_Init_LowPowerWatchdogNotSupported = 129; + /** native declaration : headers\openvr_capi.h:622 */ + public static final int EVRInitError_VRInitError_Init_InvalidApplicationType = 130; + /** native declaration : headers\openvr_capi.h:623 */ + public static final int EVRInitError_VRInitError_Init_NotAvailableToWatchdogApps = 131; + /** native declaration : headers\openvr_capi.h:624 */ + public static final int EVRInitError_VRInitError_Init_WatchdogDisabledInSettings = 132; + /** native declaration : headers\openvr_capi.h:625 */ + public static final int EVRInitError_VRInitError_Init_VRDashboardNotFound = 133; + /** native declaration : headers\openvr_capi.h:626 */ + public static final int EVRInitError_VRInitError_Init_VRDashboardStartupFailed = 134; + /** native declaration : headers\openvr_capi.h:627 */ + public static final int EVRInitError_VRInitError_Init_VRHomeNotFound = 135; + /** native declaration : headers\openvr_capi.h:628 */ + public static final int EVRInitError_VRInitError_Init_VRHomeStartupFailed = 136; + /** native declaration : headers\openvr_capi.h:629 */ + public static final int EVRInitError_VRInitError_Driver_Failed = 200; + /** native declaration : headers\openvr_capi.h:630 */ + public static final int EVRInitError_VRInitError_Driver_Unknown = 201; + /** native declaration : headers\openvr_capi.h:631 */ + public static final int EVRInitError_VRInitError_Driver_HmdUnknown = 202; + /** native declaration : headers\openvr_capi.h:632 */ + public static final int EVRInitError_VRInitError_Driver_NotLoaded = 203; + /** native declaration : headers\openvr_capi.h:633 */ + public static final int EVRInitError_VRInitError_Driver_RuntimeOutOfDate = 204; + /** native declaration : headers\openvr_capi.h:634 */ + public static final int EVRInitError_VRInitError_Driver_HmdInUse = 205; + /** native declaration : headers\openvr_capi.h:635 */ + public static final int EVRInitError_VRInitError_Driver_NotCalibrated = 206; + /** native declaration : headers\openvr_capi.h:636 */ + public static final int EVRInitError_VRInitError_Driver_CalibrationInvalid = 207; + /** native declaration : headers\openvr_capi.h:637 */ + public static final int EVRInitError_VRInitError_Driver_HmdDisplayNotFound = 208; + /** native declaration : headers\openvr_capi.h:638 */ + public static final int EVRInitError_VRInitError_Driver_TrackedDeviceInterfaceUnknown = 209; + /** native declaration : headers\openvr_capi.h:639 */ + public static final int EVRInitError_VRInitError_Driver_HmdDriverIdOutOfBounds = 211; + /** native declaration : headers\openvr_capi.h:640 */ + public static final int EVRInitError_VRInitError_Driver_HmdDisplayMirrored = 212; + /** native declaration : headers\openvr_capi.h:641 */ + public static final int EVRInitError_VRInitError_IPC_ServerInitFailed = 300; + /** native declaration : headers\openvr_capi.h:642 */ + public static final int EVRInitError_VRInitError_IPC_ConnectFailed = 301; + /** native declaration : headers\openvr_capi.h:643 */ + public static final int EVRInitError_VRInitError_IPC_SharedStateInitFailed = 302; + /** native declaration : headers\openvr_capi.h:644 */ + public static final int EVRInitError_VRInitError_IPC_CompositorInitFailed = 303; + /** native declaration : headers\openvr_capi.h:645 */ + public static final int EVRInitError_VRInitError_IPC_MutexInitFailed = 304; + /** native declaration : headers\openvr_capi.h:646 */ + public static final int EVRInitError_VRInitError_IPC_Failed = 305; + /** native declaration : headers\openvr_capi.h:647 */ + public static final int EVRInitError_VRInitError_IPC_CompositorConnectFailed = 306; + /** native declaration : headers\openvr_capi.h:648 */ + public static final int EVRInitError_VRInitError_IPC_CompositorInvalidConnectResponse = 307; + /** native declaration : headers\openvr_capi.h:649 */ + public static final int EVRInitError_VRInitError_IPC_ConnectFailedAfterMultipleAttempts = 308; + /** native declaration : headers\openvr_capi.h:650 */ + public static final int EVRInitError_VRInitError_Compositor_Failed = 400; + /** native declaration : headers\openvr_capi.h:651 */ + public static final int EVRInitError_VRInitError_Compositor_D3D11HardwareRequired = 401; + /** native declaration : headers\openvr_capi.h:652 */ + public static final int EVRInitError_VRInitError_Compositor_FirmwareRequiresUpdate = 402; + /** native declaration : headers\openvr_capi.h:653 */ + public static final int EVRInitError_VRInitError_Compositor_OverlayInitFailed = 403; + /** native declaration : headers\openvr_capi.h:654 */ + public static final int EVRInitError_VRInitError_Compositor_ScreenshotsInitFailed = 404; + /** native declaration : headers\openvr_capi.h:655 */ + public static final int EVRInitError_VRInitError_Compositor_UnableToCreateDevice = 405; + /** native declaration : headers\openvr_capi.h:656 */ + public static final int EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000; + /** native declaration : headers\openvr_capi.h:657 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_CantOpenDevice = 1101; + /** native declaration : headers\openvr_capi.h:658 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102; + /** native declaration : headers\openvr_capi.h:659 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_NoStoredConfig = 1103; + /** native declaration : headers\openvr_capi.h:660 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooBig = 1104; + /** native declaration : headers\openvr_capi.h:661 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooSmall = 1105; + /** native declaration : headers\openvr_capi.h:662 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToInitZLib = 1106; + /** native declaration : headers\openvr_capi.h:663 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107; + /** native declaration : headers\openvr_capi.h:664 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108; + /** native declaration : headers\openvr_capi.h:665 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109; + /** native declaration : headers\openvr_capi.h:666 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110; + /** native declaration : headers\openvr_capi.h:667 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111; + /** native declaration : headers\openvr_capi.h:668 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataError = 1112; + /** native declaration : headers\openvr_capi.h:669 */ + public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113; + /** native declaration : headers\openvr_capi.h:670 */ + public static final int EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000; + }; + /** + * native declaration : headers\openvr_capi.h:679
    + * enum values + */ + public static interface EVRScreenshotType { + /** native declaration : headers\openvr_capi.h:673 */ + public static final int EVRScreenshotType_VRScreenshotType_None = 0; + /** native declaration : headers\openvr_capi.h:674 */ + public static final int EVRScreenshotType_VRScreenshotType_Mono = 1; + /** native declaration : headers\openvr_capi.h:675 */ + public static final int EVRScreenshotType_VRScreenshotType_Stereo = 2; + /** native declaration : headers\openvr_capi.h:676 */ + public static final int EVRScreenshotType_VRScreenshotType_Cubemap = 3; + /** native declaration : headers\openvr_capi.h:677 */ + public static final int EVRScreenshotType_VRScreenshotType_MonoPanorama = 4; + /** native declaration : headers\openvr_capi.h:678 */ + public static final int EVRScreenshotType_VRScreenshotType_StereoPanorama = 5; + }; + /** + * native declaration : headers\openvr_capi.h:683
    + * enum values + */ + public static interface EVRScreenshotPropertyFilenames { + /** native declaration : headers\openvr_capi.h:681 */ + public static final int EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_Preview = 0; + /** native declaration : headers\openvr_capi.h:682 */ + public static final int EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_VR = 1; + }; + /** + * native declaration : headers\openvr_capi.h:702
    + * enum values + */ + public static interface EVRTrackedCameraError { + /** native declaration : headers\openvr_capi.h:685 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_None = 0; + /** native declaration : headers\openvr_capi.h:686 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_OperationFailed = 100; + /** native declaration : headers\openvr_capi.h:687 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidHandle = 101; + /** native declaration : headers\openvr_capi.h:688 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameHeaderVersion = 102; + /** native declaration : headers\openvr_capi.h:689 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_OutOfHandles = 103; + /** native declaration : headers\openvr_capi.h:690 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_IPCFailure = 104; + /** native declaration : headers\openvr_capi.h:691 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_NotSupportedForThisDevice = 105; + /** native declaration : headers\openvr_capi.h:692 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_SharedMemoryFailure = 106; + /** native declaration : headers\openvr_capi.h:693 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_FrameBufferingFailure = 107; + /** native declaration : headers\openvr_capi.h:694 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_StreamSetupFailure = 108; + /** native declaration : headers\openvr_capi.h:695 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidGLTextureId = 109; + /** native declaration : headers\openvr_capi.h:696 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidSharedTextureHandle = 110; + /** native declaration : headers\openvr_capi.h:697 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_FailedToGetGLTextureId = 111; + /** native declaration : headers\openvr_capi.h:698 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_SharedTextureFailure = 112; + /** native declaration : headers\openvr_capi.h:699 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_NoFrameAvailable = 113; + /** native declaration : headers\openvr_capi.h:700 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidArgument = 114; + /** native declaration : headers\openvr_capi.h:701 */ + public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameBufferSize = 115; + }; + /** + * native declaration : headers\openvr_capi.h:708
    + * enum values + */ + public static interface EVRTrackedCameraFrameType { + /** native declaration : headers\openvr_capi.h:704 */ + public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Distorted = 0; + /** native declaration : headers\openvr_capi.h:705 */ + public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Undistorted = 1; + /** native declaration : headers\openvr_capi.h:706 */ + public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_MaximumUndistorted = 2; + /** native declaration : headers\openvr_capi.h:707 */ + public static final int EVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3; + }; + /** + * native declaration : headers\openvr_capi.h:731
    + * enum values + */ + public static interface EVRApplicationError { + /** native declaration : headers\openvr_capi.h:710 */ + public static final int EVRApplicationError_VRApplicationError_None = 0; + /** native declaration : headers\openvr_capi.h:711 */ + public static final int EVRApplicationError_VRApplicationError_AppKeyAlreadyExists = 100; + /** native declaration : headers\openvr_capi.h:712 */ + public static final int EVRApplicationError_VRApplicationError_NoManifest = 101; + /** native declaration : headers\openvr_capi.h:713 */ + public static final int EVRApplicationError_VRApplicationError_NoApplication = 102; + /** native declaration : headers\openvr_capi.h:714 */ + public static final int EVRApplicationError_VRApplicationError_InvalidIndex = 103; + /** native declaration : headers\openvr_capi.h:715 */ + public static final int EVRApplicationError_VRApplicationError_UnknownApplication = 104; + /** native declaration : headers\openvr_capi.h:716 */ + public static final int EVRApplicationError_VRApplicationError_IPCFailed = 105; + /** native declaration : headers\openvr_capi.h:717 */ + public static final int EVRApplicationError_VRApplicationError_ApplicationAlreadyRunning = 106; + /** native declaration : headers\openvr_capi.h:718 */ + public static final int EVRApplicationError_VRApplicationError_InvalidManifest = 107; + /** native declaration : headers\openvr_capi.h:719 */ + public static final int EVRApplicationError_VRApplicationError_InvalidApplication = 108; + /** native declaration : headers\openvr_capi.h:720 */ + public static final int EVRApplicationError_VRApplicationError_LaunchFailed = 109; + /** native declaration : headers\openvr_capi.h:721 */ + public static final int EVRApplicationError_VRApplicationError_ApplicationAlreadyStarting = 110; + /** native declaration : headers\openvr_capi.h:722 */ + public static final int EVRApplicationError_VRApplicationError_LaunchInProgress = 111; + /** native declaration : headers\openvr_capi.h:723 */ + public static final int EVRApplicationError_VRApplicationError_OldApplicationQuitting = 112; + /** native declaration : headers\openvr_capi.h:724 */ + public static final int EVRApplicationError_VRApplicationError_TransitionAborted = 113; + /** native declaration : headers\openvr_capi.h:725 */ + public static final int EVRApplicationError_VRApplicationError_IsTemplate = 114; + /** native declaration : headers\openvr_capi.h:726 */ + public static final int EVRApplicationError_VRApplicationError_SteamVRIsExiting = 115; + /** native declaration : headers\openvr_capi.h:727 */ + public static final int EVRApplicationError_VRApplicationError_BufferTooSmall = 200; + /** native declaration : headers\openvr_capi.h:728 */ + public static final int EVRApplicationError_VRApplicationError_PropertyNotSet = 201; + /** native declaration : headers\openvr_capi.h:729 */ + public static final int EVRApplicationError_VRApplicationError_UnknownProperty = 202; + /** native declaration : headers\openvr_capi.h:730 */ + public static final int EVRApplicationError_VRApplicationError_InvalidParameter = 203; + }; + /** + * native declaration : headers\openvr_capi.h:749
    + * enum values + */ + public static interface EVRApplicationProperty { + /** native declaration : headers\openvr_capi.h:733 */ + public static final int EVRApplicationProperty_VRApplicationProperty_Name_String = 0; + /** native declaration : headers\openvr_capi.h:734 */ + public static final int EVRApplicationProperty_VRApplicationProperty_LaunchType_String = 11; + /** native declaration : headers\openvr_capi.h:735 */ + public static final int EVRApplicationProperty_VRApplicationProperty_WorkingDirectory_String = 12; + /** native declaration : headers\openvr_capi.h:736 */ + public static final int EVRApplicationProperty_VRApplicationProperty_BinaryPath_String = 13; + /** native declaration : headers\openvr_capi.h:737 */ + public static final int EVRApplicationProperty_VRApplicationProperty_Arguments_String = 14; + /** native declaration : headers\openvr_capi.h:738 */ + public static final int EVRApplicationProperty_VRApplicationProperty_URL_String = 15; + /** native declaration : headers\openvr_capi.h:739 */ + public static final int EVRApplicationProperty_VRApplicationProperty_Description_String = 50; + /** native declaration : headers\openvr_capi.h:740 */ + public static final int EVRApplicationProperty_VRApplicationProperty_NewsURL_String = 51; + /** native declaration : headers\openvr_capi.h:741 */ + public static final int EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52; + /** native declaration : headers\openvr_capi.h:742 */ + public static final int EVRApplicationProperty_VRApplicationProperty_Source_String = 53; + /** native declaration : headers\openvr_capi.h:743 */ + public static final int EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60; + /** native declaration : headers\openvr_capi.h:744 */ + public static final int EVRApplicationProperty_VRApplicationProperty_IsTemplate_Bool = 61; + /** native declaration : headers\openvr_capi.h:745 */ + public static final int EVRApplicationProperty_VRApplicationProperty_IsInstanced_Bool = 62; + /** native declaration : headers\openvr_capi.h:746 */ + public static final int EVRApplicationProperty_VRApplicationProperty_IsInternal_Bool = 63; + /** native declaration : headers\openvr_capi.h:747 */ + public static final int EVRApplicationProperty_VRApplicationProperty_WantsCompositorPauseInStandby_Bool = 64; + /** native declaration : headers\openvr_capi.h:748 */ + public static final int EVRApplicationProperty_VRApplicationProperty_LastLaunchTime_Uint64 = 70; + }; + /** + * native declaration : headers\openvr_capi.h:755
    + * enum values + */ + public static interface EVRApplicationTransitionState { + /** native declaration : headers\openvr_capi.h:751 */ + public static final int EVRApplicationTransitionState_VRApplicationTransition_None = 0; + /** native declaration : headers\openvr_capi.h:752 */ + public static final int EVRApplicationTransitionState_VRApplicationTransition_OldAppQuitSent = 10; + /** native declaration : headers\openvr_capi.h:753 */ + public static final int EVRApplicationTransitionState_VRApplicationTransition_WaitingForExternalLaunch = 11; + /** native declaration : headers\openvr_capi.h:754 */ + public static final int EVRApplicationTransitionState_VRApplicationTransition_NewAppLaunched = 20; + }; + /** + * native declaration : headers\openvr_capi.h:767
    + * enum values + */ + public static interface ChaperoneCalibrationState { + /** native declaration : headers\openvr_capi.h:757 */ + public static final int ChaperoneCalibrationState_OK = 1; + /** native declaration : headers\openvr_capi.h:758 */ + public static final int ChaperoneCalibrationState_Warning = 100; + /** native declaration : headers\openvr_capi.h:759 */ + public static final int ChaperoneCalibrationState_Warning_BaseStationMayHaveMoved = 101; + /** native declaration : headers\openvr_capi.h:760 */ + public static final int ChaperoneCalibrationState_Warning_BaseStationRemoved = 102; + /** native declaration : headers\openvr_capi.h:761 */ + public static final int ChaperoneCalibrationState_Warning_SeatedBoundsInvalid = 103; + /** native declaration : headers\openvr_capi.h:762 */ + public static final int ChaperoneCalibrationState_Error = 200; + /** native declaration : headers\openvr_capi.h:763 */ + public static final int ChaperoneCalibrationState_Error_BaseStationUninitialized = 201; + /** native declaration : headers\openvr_capi.h:764 */ + public static final int ChaperoneCalibrationState_Error_BaseStationConflict = 202; + /** native declaration : headers\openvr_capi.h:765 */ + public static final int ChaperoneCalibrationState_Error_PlayAreaInvalid = 203; + /** native declaration : headers\openvr_capi.h:766 */ + public static final int ChaperoneCalibrationState_Error_CollisionBoundsInvalid = 204; + }; + /** + * native declaration : headers\openvr_capi.h:771
    + * enum values + */ + public static interface EChaperoneConfigFile { + /** native declaration : headers\openvr_capi.h:769 */ + public static final int EChaperoneConfigFile_Live = 1; + /** native declaration : headers\openvr_capi.h:770 */ + public static final int EChaperoneConfigFile_Temp = 2; + }; + /** + * native declaration : headers\openvr_capi.h:774
    + * enum values + */ + public static interface EChaperoneImportFlags { + /** native declaration : headers\openvr_capi.h:773 */ + public static final int EChaperoneImportFlags_EChaperoneImport_BoundsOnly = 1; + }; + /** + * native declaration : headers\openvr_capi.h:788
    + * enum values + */ + public static interface EVRCompositorError { + /** native declaration : headers\openvr_capi.h:776 */ + public static final int EVRCompositorError_VRCompositorError_None = 0; + /** native declaration : headers\openvr_capi.h:777 */ + public static final int EVRCompositorError_VRCompositorError_RequestFailed = 1; + /** native declaration : headers\openvr_capi.h:778 */ + public static final int EVRCompositorError_VRCompositorError_IncompatibleVersion = 100; + /** native declaration : headers\openvr_capi.h:779 */ + public static final int EVRCompositorError_VRCompositorError_DoNotHaveFocus = 101; + /** native declaration : headers\openvr_capi.h:780 */ + public static final int EVRCompositorError_VRCompositorError_InvalidTexture = 102; + /** native declaration : headers\openvr_capi.h:781 */ + public static final int EVRCompositorError_VRCompositorError_IsNotSceneApplication = 103; + /** native declaration : headers\openvr_capi.h:782 */ + public static final int EVRCompositorError_VRCompositorError_TextureIsOnWrongDevice = 104; + /** native declaration : headers\openvr_capi.h:783 */ + public static final int EVRCompositorError_VRCompositorError_TextureUsesUnsupportedFormat = 105; + /** native declaration : headers\openvr_capi.h:784 */ + public static final int EVRCompositorError_VRCompositorError_SharedTexturesNotSupported = 106; + /** native declaration : headers\openvr_capi.h:785 */ + public static final int EVRCompositorError_VRCompositorError_IndexOutOfRange = 107; + /** native declaration : headers\openvr_capi.h:786 */ + public static final int EVRCompositorError_VRCompositorError_AlreadySubmitted = 108; + /** native declaration : headers\openvr_capi.h:787 */ + public static final int EVRCompositorError_VRCompositorError_InvalidBounds = 109; + }; + /** + * native declaration : headers\openvr_capi.h:792
    + * enum values + */ + public static interface VROverlayInputMethod { + /** native declaration : headers\openvr_capi.h:790 */ + public static final int VROverlayInputMethod_None = 0; + /** native declaration : headers\openvr_capi.h:791 */ + public static final int VROverlayInputMethod_Mouse = 1; + }; + /** + * native declaration : headers\openvr_capi.h:798
    + * enum values + */ + public static interface VROverlayTransformType { + /** native declaration : headers\openvr_capi.h:794 */ + public static final int VROverlayTransformType_VROverlayTransform_Absolute = 0; + /** native declaration : headers\openvr_capi.h:795 */ + public static final int VROverlayTransformType_VROverlayTransform_TrackedDeviceRelative = 1; + /** native declaration : headers\openvr_capi.h:796 */ + public static final int VROverlayTransformType_VROverlayTransform_SystemOverlay = 2; + /** native declaration : headers\openvr_capi.h:797 */ + public static final int VROverlayTransformType_VROverlayTransform_TrackedComponent = 3; + }; + /** + * native declaration : headers\openvr_capi.h:816
    + * enum values + */ + public static interface VROverlayFlags { + /** native declaration : headers\openvr_capi.h:800 */ + public static final int VROverlayFlags_None = 0; + /** native declaration : headers\openvr_capi.h:801 */ + public static final int VROverlayFlags_Curved = 1; + /** native declaration : headers\openvr_capi.h:802 */ + public static final int VROverlayFlags_RGSS4X = 2; + /** native declaration : headers\openvr_capi.h:803 */ + public static final int VROverlayFlags_NoDashboardTab = 3; + /** native declaration : headers\openvr_capi.h:804 */ + public static final int VROverlayFlags_AcceptsGamepadEvents = 4; + /** native declaration : headers\openvr_capi.h:805 */ + public static final int VROverlayFlags_ShowGamepadFocus = 5; + /** native declaration : headers\openvr_capi.h:806 */ + public static final int VROverlayFlags_SendVRScrollEvents = 6; + /** native declaration : headers\openvr_capi.h:807 */ + public static final int VROverlayFlags_SendVRTouchpadEvents = 7; + /** native declaration : headers\openvr_capi.h:808 */ + public static final int VROverlayFlags_ShowTouchPadScrollWheel = 8; + /** native declaration : headers\openvr_capi.h:809 */ + public static final int VROverlayFlags_TransferOwnershipToInternalProcess = 9; + /** native declaration : headers\openvr_capi.h:810 */ + public static final int VROverlayFlags_SideBySide_Parallel = 10; + /** native declaration : headers\openvr_capi.h:811 */ + public static final int VROverlayFlags_SideBySide_Crossed = 11; + /** native declaration : headers\openvr_capi.h:812 */ + public static final int VROverlayFlags_Panorama = 12; + /** native declaration : headers\openvr_capi.h:813 */ + public static final int VROverlayFlags_StereoPanorama = 13; + /** native declaration : headers\openvr_capi.h:814 */ + public static final int VROverlayFlags_SortWithNonSceneOverlays = 14; + /** native declaration : headers\openvr_capi.h:815 */ + public static final int VROverlayFlags_VisibleInDashboard = 15; + }; + /** + * native declaration : headers\openvr_capi.h:825
    + * enum values + */ + public static interface VRMessageOverlayResponse { + /** native declaration : headers\openvr_capi.h:818 */ + public static final int VRMessageOverlayResponse_ButtonPress_0 = 0; + /** native declaration : headers\openvr_capi.h:819 */ + public static final int VRMessageOverlayResponse_ButtonPress_1 = 1; + /** native declaration : headers\openvr_capi.h:820 */ + public static final int VRMessageOverlayResponse_ButtonPress_2 = 2; + /** native declaration : headers\openvr_capi.h:821 */ + public static final int VRMessageOverlayResponse_ButtonPress_3 = 3; + /** native declaration : headers\openvr_capi.h:822 */ + public static final int VRMessageOverlayResponse_CouldntFindSystemOverlay = 4; + /** native declaration : headers\openvr_capi.h:823 */ + public static final int VRMessageOverlayResponse_CouldntFindOrCreateClientOverlay = 5; + /** native declaration : headers\openvr_capi.h:824 */ + public static final int VRMessageOverlayResponse_ApplicationQuit = 6; + }; + /** + * native declaration : headers\openvr_capi.h:830
    + * enum values + */ + public static interface EGamepadTextInputMode { + /** native declaration : headers\openvr_capi.h:827 */ + public static final int EGamepadTextInputMode_k_EGamepadTextInputModeNormal = 0; + /** native declaration : headers\openvr_capi.h:828 */ + public static final int EGamepadTextInputMode_k_EGamepadTextInputModePassword = 1; + /** native declaration : headers\openvr_capi.h:829 */ + public static final int EGamepadTextInputMode_k_EGamepadTextInputModeSubmit = 2; + }; + /** + * native declaration : headers\openvr_capi.h:834
    + * enum values + */ + public static interface EGamepadTextInputLineMode { + /** native declaration : headers\openvr_capi.h:832 */ + public static final int EGamepadTextInputLineMode_k_EGamepadTextInputLineModeSingleLine = 0; + /** native declaration : headers\openvr_capi.h:833 */ + public static final int EGamepadTextInputLineMode_k_EGamepadTextInputLineModeMultipleLines = 1; + }; + /** + * native declaration : headers\openvr_capi.h:841
    + * enum values + */ + public static interface EOverlayDirection { + /** native declaration : headers\openvr_capi.h:836 */ + public static final int EOverlayDirection_OverlayDirection_Up = 0; + /** native declaration : headers\openvr_capi.h:837 */ + public static final int EOverlayDirection_OverlayDirection_Down = 1; + /** native declaration : headers\openvr_capi.h:838 */ + public static final int EOverlayDirection_OverlayDirection_Left = 2; + /** native declaration : headers\openvr_capi.h:839 */ + public static final int EOverlayDirection_OverlayDirection_Right = 3; + /** native declaration : headers\openvr_capi.h:840 */ + public static final int EOverlayDirection_OverlayDirection_Count = 4; + }; + /** + * native declaration : headers\openvr_capi.h:845
    + * enum values + */ + public static interface EVROverlayIntersectionMaskPrimitiveType { + /** native declaration : headers\openvr_capi.h:843 */ + public static final int EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Rectangle = 0; + /** native declaration : headers\openvr_capi.h:844 */ + public static final int EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Circle = 1; + }; + /** + * native declaration : headers\openvr_capi.h:860
    + * enum values + */ + public static interface EVRRenderModelError { + /** native declaration : headers\openvr_capi.h:847 */ + public static final int EVRRenderModelError_VRRenderModelError_None = 0; + /** native declaration : headers\openvr_capi.h:848 */ + public static final int EVRRenderModelError_VRRenderModelError_Loading = 100; + /** native declaration : headers\openvr_capi.h:849 */ + public static final int EVRRenderModelError_VRRenderModelError_NotSupported = 200; + /** native declaration : headers\openvr_capi.h:850 */ + public static final int EVRRenderModelError_VRRenderModelError_InvalidArg = 300; + /** native declaration : headers\openvr_capi.h:851 */ + public static final int EVRRenderModelError_VRRenderModelError_InvalidModel = 301; + /** native declaration : headers\openvr_capi.h:852 */ + public static final int EVRRenderModelError_VRRenderModelError_NoShapes = 302; + /** native declaration : headers\openvr_capi.h:853 */ + public static final int EVRRenderModelError_VRRenderModelError_MultipleShapes = 303; + /** native declaration : headers\openvr_capi.h:854 */ + public static final int EVRRenderModelError_VRRenderModelError_TooManyVertices = 304; + /** native declaration : headers\openvr_capi.h:855 */ + public static final int EVRRenderModelError_VRRenderModelError_MultipleTextures = 305; + /** native declaration : headers\openvr_capi.h:856 */ + public static final int EVRRenderModelError_VRRenderModelError_BufferTooSmall = 306; + /** native declaration : headers\openvr_capi.h:857 */ + public static final int EVRRenderModelError_VRRenderModelError_NotEnoughNormals = 307; + /** native declaration : headers\openvr_capi.h:858 */ + public static final int EVRRenderModelError_VRRenderModelError_NotEnoughTexCoords = 308; + /** native declaration : headers\openvr_capi.h:859 */ + public static final int EVRRenderModelError_VRRenderModelError_InvalidTexture = 400; + }; + /** + * native declaration : headers\openvr_capi.h:867
    + * enum values + */ + public static interface EVRComponentProperty { + /** native declaration : headers\openvr_capi.h:862 */ + public static final int EVRComponentProperty_VRComponentProperty_IsStatic = 1; + /** native declaration : headers\openvr_capi.h:863 */ + public static final int EVRComponentProperty_VRComponentProperty_IsVisible = 2; + /** native declaration : headers\openvr_capi.h:864 */ + public static final int EVRComponentProperty_VRComponentProperty_IsTouched = 4; + /** native declaration : headers\openvr_capi.h:865 */ + public static final int EVRComponentProperty_VRComponentProperty_IsPressed = 8; + /** native declaration : headers\openvr_capi.h:866 */ + public static final int EVRComponentProperty_VRComponentProperty_IsScrolled = 16; + }; + /** + * native declaration : headers\openvr_capi.h:872
    + * enum values + */ + public static interface EVRNotificationType { + /** native declaration : headers\openvr_capi.h:869 */ + public static final int EVRNotificationType_Transient = 0; + /** native declaration : headers\openvr_capi.h:870 */ + public static final int EVRNotificationType_Persistent = 1; + /** native declaration : headers\openvr_capi.h:871 */ + public static final int EVRNotificationType_Transient_SystemWithUserValue = 2; + }; + /** + * native declaration : headers\openvr_capi.h:879
    + * enum values + */ + public static interface EVRNotificationStyle { + /** native declaration : headers\openvr_capi.h:874 */ + public static final int EVRNotificationStyle_None = 0; + /** native declaration : headers\openvr_capi.h:875 */ + public static final int EVRNotificationStyle_Application = 100; + /** native declaration : headers\openvr_capi.h:876 */ + public static final int EVRNotificationStyle_Contact_Disabled = 200; + /** native declaration : headers\openvr_capi.h:877 */ + public static final int EVRNotificationStyle_Contact_Enabled = 201; + /** native declaration : headers\openvr_capi.h:878 */ + public static final int EVRNotificationStyle_Contact_Active = 202; + }; + /** + * native declaration : headers\openvr_capi.h:887
    + * enum values + */ + public static interface EVRSettingsError { + /** native declaration : headers\openvr_capi.h:881 */ + public static final int EVRSettingsError_VRSettingsError_None = 0; + /** native declaration : headers\openvr_capi.h:882 */ + public static final int EVRSettingsError_VRSettingsError_IPCFailed = 1; + /** native declaration : headers\openvr_capi.h:883 */ + public static final int EVRSettingsError_VRSettingsError_WriteFailed = 2; + /** native declaration : headers\openvr_capi.h:884 */ + public static final int EVRSettingsError_VRSettingsError_ReadFailed = 3; + /** native declaration : headers\openvr_capi.h:885 */ + public static final int EVRSettingsError_VRSettingsError_JsonParseFailed = 4; + /** native declaration : headers\openvr_capi.h:886 */ + public static final int EVRSettingsError_VRSettingsError_UnsetSettingHasNoDefault = 5; + }; + /** + * native declaration : headers\openvr_capi.h:895
    + * enum values + */ + public static interface EVRScreenshotError { + /** native declaration : headers\openvr_capi.h:889 */ + public static final int EVRScreenshotError_VRScreenshotError_None = 0; + /** native declaration : headers\openvr_capi.h:890 */ + public static final int EVRScreenshotError_VRScreenshotError_RequestFailed = 1; + /** native declaration : headers\openvr_capi.h:891 */ + public static final int EVRScreenshotError_VRScreenshotError_IncompatibleVersion = 100; + /** native declaration : headers\openvr_capi.h:892 */ + public static final int EVRScreenshotError_VRScreenshotError_NotFound = 101; + /** native declaration : headers\openvr_capi.h:893 */ + public static final int EVRScreenshotError_VRScreenshotError_BufferTooSmall = 102; + /** native declaration : headers\openvr_capi.h:894 */ + public static final int EVRScreenshotError_VRScreenshotError_ScreenshotAlreadyInProgress = 108; + }; + + /** OpenVR Constants */ + public static final long k_nDriverNone = 4294967295L; public static final int k_unMaxDriverDebugResponseSize = 32768; - public static final int k_unTrackedDeviceIndex_Hmd = 0; - public static final int k_unMaxTrackedDeviceCount = 16; - public static final long k_unTrackedDeviceIndexOther = 4294967294L; + public static final int k_unTrackedDeviceIndex_Hmd = 0; + public static final int k_unMaxTrackedDeviceCount = 16; + public static final int k_unTrackedDeviceIndexOther = -2; public static final long k_unTrackedDeviceIndexInvalid = 4294967295L; - public static final long k_ulInvalidPropertyContainer = 0; - public static final int k_unInvalidPropertyTag = 0; - public static final int k_unFloatPropertyTag = 1; - public static final int k_unInt32PropertyTag = 2; - public static final int k_unUint64PropertyTag = 3; - public static final int k_unBoolPropertyTag = 4; - public static final int k_unStringPropertyTag = 5; - public static final int k_unHmdMatrix34PropertyTag = 20; - public static final int k_unHmdMatrix44PropertyTag = 21; - public static final int k_unHmdVector3PropertyTag = 22; + public static final long k_ulInvalidPropertyContainer = 0; + public static final int k_unInvalidPropertyTag = 0; + public static final int k_unFloatPropertyTag = 1; + public static final int k_unInt32PropertyTag = 2; + public static final int k_unUint64PropertyTag = 3; + public static final int k_unBoolPropertyTag = 4; + public static final int k_unStringPropertyTag = 5; + public static final int k_unHmdMatrix34PropertyTag = 20; + public static final int k_unHmdMatrix44PropertyTag = 21; + public static final int k_unHmdVector3PropertyTag = 22; public static final int k_unHmdVector4PropertyTag = 23; public static final int k_unHiddenAreaPropertyTag = 30; public static final int k_unOpenVRInternalReserved_Start = 1000; @@ -56,32 +1626,37 @@ public class JOpenVRLibrary implements Library { public static final int k_unControllerStateAxisCount = 5; public static final long k_ulOverlayHandleInvalid = 0; public static final int k_unScreenshotHandleInvalid = 0; + + public static final int k_unMaxApplicationKeyLength = 128; - public static final String k_pch_MimeType_HomeApp = "vr/home"; + + public static final String k_pch_MimeType_HomeApp = "vr/home"; public static final String k_pch_MimeType_GameTheater = "vr/game_theater"; - public static final String IVRApplications_Version = "FnTable:IVRApplications_006"; + + public static final int k_unVROverlayMaxKeyLength = 128; public static final int k_unVROverlayMaxNameLength = 128; public static final int k_unMaxOverlayCount = 64; public static final int k_unMaxOverlayIntersectionMaskPrimitivesCount = 32; - public static final String IVROverlay_Version = "FnTable:IVROverlay_014"; - public static final String k_pch_Controller_Component_GDC2015 = "gdc2015"; - public static final String k_pch_Controller_Component_Base = "base"; - public static final String k_pch_Controller_Component_Tip = "tip"; + + + public static final String k_pch_Controller_Component_GDC2015 = "gdc2015"; + public static final String k_pch_Controller_Component_Base = "base"; + public static final String k_pch_Controller_Component_Tip = "tip"; public static final String k_pch_Controller_Component_HandGrip = "handgrip"; - public static final String k_pch_Controller_Component_Status = "status"; - public static final String IVRRenderModels_Version = "FnTable:IVRRenderModels_005"; + public static final String k_pch_Controller_Component_Status = "status"; + + public static final int k_unNotificationTextMaxSize = 256; - public static final String IVRNotifications_Version = "FnTable:IVRNotifications_002"; + public static final int k_unMaxSettingsKeyLength = 128; - public static final String IVRSettings_Version = "FnTable:IVRSettings_002"; + public static final String k_pch_SteamVR_Section = "steamvr"; public static final String k_pch_SteamVR_RequireHmd_String = "requireHmd"; public static final String k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver"; public static final String k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd"; public static final String k_pch_SteamVR_DisplayDebug_Bool = "displayDebug"; public static final String k_pch_SteamVR_DebugProcessPipe_String = "debugProcessPipe"; - public static final String k_pch_SteamVR_EnableDistortion_Bool = "enableDistortion"; public static final String k_pch_SteamVR_DisplayDebugX_Int32 = "displayDebugX"; public static final String k_pch_SteamVR_DisplayDebugY_Int32 = "displayDebugY"; public static final String k_pch_SteamVR_SendSystemButtonToAllApps_Bool = "sendSystemButtonToAllApps"; @@ -102,7 +1677,7 @@ public class JOpenVRLibrary implements Library { public static final String k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees"; public static final String k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; public static final String k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; - public static final String k_pch_SteamVR_RenderTargetMultiplier_Float = "renderTargetMultiplier"; + public static final String k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; public static final String k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; public static final String k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; public static final String k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; @@ -115,10 +1690,10 @@ public class JOpenVRLibrary implements Library { public static final String k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; public static final String k_pch_SteamVR_StartOverlayAppsFromDashboard_Bool = "startOverlayAppsFromDashboard"; public static final String k_pch_SteamVR_EnableHomeApp = "enableHomeApp"; - public static final String k_pch_SteamVR_SetInitialDefaultHomeApp = "setInitialDefaultHomeApp"; public static final String k_pch_SteamVR_CycleBackgroundImageTimeSec_Int32 = "CycleBackgroundImageTimeSec"; public static final String k_pch_SteamVR_RetailDemo_Bool = "retailDemo"; public static final String k_pch_SteamVR_IpdOffset_Float = "ipdOffset"; + public static final String k_pch_SteamVR_AllowSupersampleFiltering_Bool = "allowSupersampleFiltering"; public static final String k_pch_Lighthouse_Section = "driver_lighthouse"; public static final String k_pch_Lighthouse_DisableIMU_Bool = "disableimu"; public static final String k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation"; @@ -158,6 +1733,7 @@ public class JOpenVRLibrary implements Library { public static final String k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; public static final String k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; public static final String k_pch_Perf_TestData_Float = "perfTestData"; + public static final String k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling"; public static final String k_pch_CollisionBounds_Section = "collisionBounds"; public static final String k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle"; public static final String k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn"; @@ -191,1651 +1767,126 @@ public class JOpenVRLibrary implements Library { public static final String k_pch_Power_TurnOffControllersTimeout_Float = "turnOffControllersTimeout"; public static final String k_pch_Power_ReturnToWatchdogTimeout_Float = "returnToWatchdogTimeout"; public static final String k_pch_Power_AutoLaunchSteamVROnButtonPress = "autoLaunchSteamVROnButtonPress"; + public static final String k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositorOnStandby"; public static final String k_pch_Dashboard_Section = "dashboard"; public static final String k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard"; public static final String k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode"; public static final String k_pch_modelskin_Section = "modelskins"; public static final String k_pch_Driver_Enable_Bool = "enable"; - public static final String IVRSystem_Version = "FnTable:IVRSystem_015"; - public static final String IVRExtendedDisplay_Version = "FnTable:IVRExtendedDisplay_001"; - public static final String IVRTrackedCamera_Version = "FnTable:IVRTrackedCamera_003"; + + public static final String IVRApplications_Version = "FnTable:IVRApplications_006"; public static final String IVRChaperone_Version = "FnTable:IVRChaperone_003"; public static final String IVRChaperoneSetup_Version = "FnTable:IVRChaperoneSetup_005"; - //public static final String IVRCompositor_Version = "FnTable:IVRCompositor_020"; - public static final String IVRCompositor_Version = "FnTable:IVRCompositor_019"; + public static final String IVRCompositor_Version = "FnTable:IVRCompositor_020"; + public static final String IVRSystem_Version = "FnTable:IVRSystem_016"; + public static final String IVRExtendedDisplay_Version = "FnTable:IVRExtendedDisplay_001"; + public static final String IVRTrackedCamera_Version = "FnTable:IVRTrackedCamera_003"; + public static final String IVROverlay_Version = "FnTable:IVROverlay_016"; + public static final String IVRRenderModels_Version = "FnTable:IVRRenderModels_005"; + public static final String IVRNotifications_Version = "FnTable:IVRNotifications_002"; + public static final String IVRSettings_Version = "FnTable:IVRSettings_002"; public static final String IVRScreenshots_Version = "FnTable:IVRScreenshots_001"; public static final String IVRResources_Version = "FnTable:IVRResources_001"; + public static final String IVRDriverManager_Version = "FnTable:IVRDriverManager_001"; - - - /** - * native declaration : headers\openvr_capi.h:178
    - * enum values - */ - public static interface EVREye { - /** native declaration : headers\openvr_capi.h:176 */ - public static final int EVREye_Eye_Left = 0; - /** native declaration : headers\openvr_capi.h:177 */ - public static final int EVREye_Eye_Right = 1; - }; - /** - * native declaration : headers\openvr_capi.h:185
    - * enum values - */ - public static interface ETextureType { - /** native declaration : headers\openvr_capi.h:180 */ - public static final int ETextureType_TextureType_DirectX = 0; - /** native declaration : headers\openvr_capi.h:181 */ - public static final int ETextureType_TextureType_OpenGL = 1; - /** native declaration : headers\openvr_capi.h:182 */ - public static final int ETextureType_TextureType_Vulkan = 2; - /** native declaration : headers\openvr_capi.h:183 */ - public static final int ETextureType_TextureType_IOSurface = 3; - /** native declaration : headers\openvr_capi.h:184 */ - public static final int ETextureType_TextureType_DirectX12 = 4; - }; - - - - - /** - * native declaration : headers\openvr_capi.h:190
    - * enum values - */ - public static interface EColorSpace { - /** native declaration : headers\openvr_capi.h:187 */ - public static final int EColorSpace_ColorSpace_Auto = 0; - /** native declaration : headers\openvr_capi.h:188 */ - public static final int EColorSpace_ColorSpace_Gamma = 1; - /** native declaration : headers\openvr_capi.h:189 */ - public static final int EColorSpace_ColorSpace_Linear = 2; - }; - - - - /** - * native declaration : headers\openvr_capi.h:197
    - * enum values - */ - public static interface ETrackingResult { - /** native declaration : headers\openvr_capi.h:192 */ - public static final int ETrackingResult_TrackingResult_Uninitialized = 1; - /** native declaration : headers\openvr_capi.h:193 */ - public static final int ETrackingResult_TrackingResult_Calibrating_InProgress = 100; - /** native declaration : headers\openvr_capi.h:194 */ - public static final int ETrackingResult_TrackingResult_Calibrating_OutOfRange = 101; - /** native declaration : headers\openvr_capi.h:195 */ - public static final int ETrackingResult_TrackingResult_Running_OK = 200; - /** native declaration : headers\openvr_capi.h:196 */ - public static final int ETrackingResult_TrackingResult_Running_OutOfRange = 201; - }; - /** - * native declaration : headers\openvr_capi.h:204
    - * enum values - */ - public static interface ETrackedDeviceClass { - /** native declaration : headers\openvr_capi.h:199 */ - public static final int ETrackedDeviceClass_TrackedDeviceClass_Invalid = 0; - /** native declaration : headers\openvr_capi.h:200 */ - public static final int ETrackedDeviceClass_TrackedDeviceClass_HMD = 1; - /** native declaration : headers\openvr_capi.h:201 */ - public static final int ETrackedDeviceClass_TrackedDeviceClass_Controller = 2; - /** native declaration : headers\openvr_capi.h:202 */ - public static final int ETrackedDeviceClass_TrackedDeviceClass_GenericTracker = 3; - /** native declaration : headers\openvr_capi.h:203 */ - public static final int ETrackedDeviceClass_TrackedDeviceClass_TrackingReference = 4; - }; - /** - * native declaration : headers\openvr_capi.h:209
    - * enum values - */ - public static interface ETrackedControllerRole { - /** native declaration : headers\openvr_capi.h:206 */ - public static final int ETrackedControllerRole_TrackedControllerRole_Invalid = 0; - /** native declaration : headers\openvr_capi.h:207 */ - public static final int ETrackedControllerRole_TrackedControllerRole_LeftHand = 1; - /** native declaration : headers\openvr_capi.h:208 */ - public static final int ETrackedControllerRole_TrackedControllerRole_RightHand = 2; - }; - /** - * native declaration : headers\openvr_capi.h:214
    - * enum values - */ - public static interface ETrackingUniverseOrigin { - /** native declaration : headers\openvr_capi.h:211 */ - public static final int ETrackingUniverseOrigin_TrackingUniverseSeated = 0; - /** native declaration : headers\openvr_capi.h:212 */ - public static final int ETrackingUniverseOrigin_TrackingUniverseStanding = 1; - /** native declaration : headers\openvr_capi.h:213 */ - public static final int ETrackingUniverseOrigin_TrackingUniverseRawAndUncalibrated = 2; - }; - /** - * The enumeration of tracked devices properties. - */ - public static interface ETrackedDeviceProperty { - - /** - * An invalid property. - */ - public static final int ETrackedDeviceProperty_Prop_Invalid = 0; - - /** - * The tracking system name property (String). - */ - public static final int ETrackedDeviceProperty_Prop_TrackingSystemName_String = 1000; - - /** - * The tracking system model number property (String). - */ - public static final int ETrackedDeviceProperty_Prop_ModelNumber_String = 1001; - - /** - * The tracking system serial number property (String). - */ - public static final int ETrackedDeviceProperty_Prop_SerialNumber_String = 1002; - - /** - * The tracking system render model name property (String). - */ - public static final int ETrackedDeviceProperty_Prop_RenderModelName_String = 1003; - - /** - * The tracking system will drift in yaw property (bool). - */ - public static final int ETrackedDeviceProperty_Prop_WillDriftInYaw_Bool = 1004; - - /** - * The tracking system manufacturer name property (String). - */ - public static final int ETrackedDeviceProperty_Prop_ManufacturerName_String = 1005; - - /** - * The tracking system tracking firmware version property (String). - */ - public static final int ETrackedDeviceProperty_Prop_TrackingFirmwareVersion_String = 1006; - - /** - * The tracking system hardware revision property (String). - */ - public static final int ETrackedDeviceProperty_Prop_HardwareRevision_String = 1007; - - /** - * The tracking system all wireless dongle descriptions property (String). - */ - public static final int ETrackedDeviceProperty_Prop_AllWirelessDongleDescriptions_String = 1008; - /** native declaration : headers\openvr_capi.h:226 */ - public static final int ETrackedDeviceProperty_Prop_ConnectedWirelessDongle_String = 1009; - /** native declaration : headers\openvr_capi.h:227 */ - public static final int ETrackedDeviceProperty_Prop_DeviceIsWireless_Bool = 1010; - /** native declaration : headers\openvr_capi.h:228 */ - public static final int ETrackedDeviceProperty_Prop_DeviceIsCharging_Bool = 1011; - /** native declaration : headers\openvr_capi.h:229 */ - public static final int ETrackedDeviceProperty_Prop_DeviceBatteryPercentage_Float = 1012; - /** native declaration : headers\openvr_capi.h:230 */ - public static final int ETrackedDeviceProperty_Prop_StatusDisplayTransform_Matrix34 = 1013; - /** native declaration : headers\openvr_capi.h:231 */ - public static final int ETrackedDeviceProperty_Prop_Firmware_UpdateAvailable_Bool = 1014; - /** native declaration : headers\openvr_capi.h:232 */ - public static final int ETrackedDeviceProperty_Prop_Firmware_ManualUpdate_Bool = 1015; - /** native declaration : headers\openvr_capi.h:233 */ - public static final int ETrackedDeviceProperty_Prop_Firmware_ManualUpdateURL_String = 1016; - /** native declaration : headers\openvr_capi.h:234 */ - public static final int ETrackedDeviceProperty_Prop_HardwareRevision_Uint64 = 1017; - /** native declaration : headers\openvr_capi.h:235 */ - public static final int ETrackedDeviceProperty_Prop_FirmwareVersion_Uint64 = 1018; - /** native declaration : headers\openvr_capi.h:236 */ - public static final int ETrackedDeviceProperty_Prop_FPGAVersion_Uint64 = 1019; - /** native declaration : headers\openvr_capi.h:237 */ - public static final int ETrackedDeviceProperty_Prop_VRCVersion_Uint64 = 1020; - /** native declaration : headers\openvr_capi.h:238 */ - public static final int ETrackedDeviceProperty_Prop_RadioVersion_Uint64 = 1021; - /** native declaration : headers\openvr_capi.h:239 */ - public static final int ETrackedDeviceProperty_Prop_DongleVersion_Uint64 = 1022; - /** native declaration : headers\openvr_capi.h:240 */ - public static final int ETrackedDeviceProperty_Prop_BlockServerShutdown_Bool = 1023; - /** native declaration : headers\openvr_capi.h:241 */ - public static final int ETrackedDeviceProperty_Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024; - /** native declaration : headers\openvr_capi.h:242 */ - public static final int ETrackedDeviceProperty_Prop_ContainsProximitySensor_Bool = 1025; - /** native declaration : headers\openvr_capi.h:243 */ - public static final int ETrackedDeviceProperty_Prop_DeviceProvidesBatteryStatus_Bool = 1026; - /** native declaration : headers\openvr_capi.h:244 */ - public static final int ETrackedDeviceProperty_Prop_DeviceCanPowerOff_Bool = 1027; - /** native declaration : headers\openvr_capi.h:245 */ - public static final int ETrackedDeviceProperty_Prop_Firmware_ProgrammingTarget_String = 1028; - /** native declaration : headers\openvr_capi.h:246 */ - public static final int ETrackedDeviceProperty_Prop_DeviceClass_Int32 = 1029; - /** native declaration : headers\openvr_capi.h:247 */ - public static final int ETrackedDeviceProperty_Prop_HasCamera_Bool = 1030; - /** native declaration : headers\openvr_capi.h:248 */ - public static final int ETrackedDeviceProperty_Prop_DriverVersion_String = 1031; - /** native declaration : headers\openvr_capi.h:249 */ - public static final int ETrackedDeviceProperty_Prop_Firmware_ForceUpdateRequired_Bool = 1032; - /** native declaration : headers\openvr_capi.h:250 */ - public static final int ETrackedDeviceProperty_Prop_ViveSystemButtonFixRequired_Bool = 1033; - /** native declaration : headers\openvr_capi.h:251 */ - public static final int ETrackedDeviceProperty_Prop_ParentDriver_Uint64 = 1034; - /** native declaration : headers\openvr_capi.h:252 */ - public static final int ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000; - /** native declaration : headers\openvr_capi.h:253 */ - public static final int ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001; - /** native declaration : headers\openvr_capi.h:254 */ - public static final int ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002; - /** native declaration : headers\openvr_capi.h:255 */ - public static final int ETrackedDeviceProperty_Prop_UserIpdMeters_Float = 2003; - /** native declaration : headers\openvr_capi.h:256 */ - public static final int ETrackedDeviceProperty_Prop_CurrentUniverseId_Uint64 = 2004; - /** native declaration : headers\openvr_capi.h:257 */ - public static final int ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64 = 2005; - /** native declaration : headers\openvr_capi.h:258 */ - public static final int ETrackedDeviceProperty_Prop_DisplayFirmwareVersion_Uint64 = 2006; - /** native declaration : headers\openvr_capi.h:259 */ - public static final int ETrackedDeviceProperty_Prop_IsOnDesktop_Bool = 2007; - /** native declaration : headers\openvr_capi.h:260 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCType_Int32 = 2008; - /** native declaration : headers\openvr_capi.h:261 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCOffset_Float = 2009; - /** native declaration : headers\openvr_capi.h:262 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCScale_Float = 2010; - /** native declaration : headers\openvr_capi.h:263 */ - public static final int ETrackedDeviceProperty_Prop_EdidVendorID_Int32 = 2011; - /** native declaration : headers\openvr_capi.h:264 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageLeft_String = 2012; - /** native declaration : headers\openvr_capi.h:265 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageRight_String = 2013; - /** native declaration : headers\openvr_capi.h:266 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCBlackClamp_Float = 2014; - /** native declaration : headers\openvr_capi.h:267 */ - public static final int ETrackedDeviceProperty_Prop_EdidProductID_Int32 = 2015; - /** native declaration : headers\openvr_capi.h:268 */ - public static final int ETrackedDeviceProperty_Prop_CameraToHeadTransform_Matrix34 = 2016; - /** native declaration : headers\openvr_capi.h:269 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCType_Int32 = 2017; - /** native declaration : headers\openvr_capi.h:270 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCOffset_Float = 2018; - /** native declaration : headers\openvr_capi.h:271 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCScale_Float = 2019; - /** native declaration : headers\openvr_capi.h:272 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCPrescale_Float = 2020; - /** native declaration : headers\openvr_capi.h:273 */ - public static final int ETrackedDeviceProperty_Prop_DisplayGCImage_String = 2021; - /** native declaration : headers\openvr_capi.h:274 */ - public static final int ETrackedDeviceProperty_Prop_LensCenterLeftU_Float = 2022; - /** native declaration : headers\openvr_capi.h:275 */ - public static final int ETrackedDeviceProperty_Prop_LensCenterLeftV_Float = 2023; - /** native declaration : headers\openvr_capi.h:276 */ - public static final int ETrackedDeviceProperty_Prop_LensCenterRightU_Float = 2024; - /** native declaration : headers\openvr_capi.h:277 */ - public static final int ETrackedDeviceProperty_Prop_LensCenterRightV_Float = 2025; - /** native declaration : headers\openvr_capi.h:278 */ - public static final int ETrackedDeviceProperty_Prop_UserHeadToEyeDepthMeters_Float = 2026; - /** native declaration : headers\openvr_capi.h:279 */ - public static final int ETrackedDeviceProperty_Prop_CameraFirmwareVersion_Uint64 = 2027; - /** native declaration : headers\openvr_capi.h:280 */ - public static final int ETrackedDeviceProperty_Prop_CameraFirmwareDescription_String = 2028; - /** native declaration : headers\openvr_capi.h:281 */ - public static final int ETrackedDeviceProperty_Prop_DisplayFPGAVersion_Uint64 = 2029; - /** native declaration : headers\openvr_capi.h:282 */ - public static final int ETrackedDeviceProperty_Prop_DisplayBootloaderVersion_Uint64 = 2030; - /** native declaration : headers\openvr_capi.h:283 */ - public static final int ETrackedDeviceProperty_Prop_DisplayHardwareVersion_Uint64 = 2031; - /** native declaration : headers\openvr_capi.h:284 */ - public static final int ETrackedDeviceProperty_Prop_AudioFirmwareVersion_Uint64 = 2032; - /** native declaration : headers\openvr_capi.h:285 */ - public static final int ETrackedDeviceProperty_Prop_CameraCompatibilityMode_Int32 = 2033; - /** native declaration : headers\openvr_capi.h:286 */ - public static final int ETrackedDeviceProperty_Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034; - /** native declaration : headers\openvr_capi.h:287 */ - public static final int ETrackedDeviceProperty_Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035; - /** native declaration : headers\openvr_capi.h:288 */ - public static final int ETrackedDeviceProperty_Prop_DisplaySuppressed_Bool = 2036; - /** native declaration : headers\openvr_capi.h:289 */ - public static final int ETrackedDeviceProperty_Prop_DisplayAllowNightMode_Bool = 2037; - /** native declaration : headers\openvr_capi.h:290 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageWidth_Int32 = 2038; - /** native declaration : headers\openvr_capi.h:291 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageHeight_Int32 = 2039; - /** native declaration : headers\openvr_capi.h:292 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageNumChannels_Int32 = 2040; - /** native declaration : headers\openvr_capi.h:293 */ - public static final int ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary = 2041; - /** native declaration : headers\openvr_capi.h:294 */ - public static final int ETrackedDeviceProperty_Prop_UsesDriverDirectMode_Bool = 2042; - /** native declaration : headers\openvr_capi.h:295 */ - public static final int ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000; - /** native declaration : headers\openvr_capi.h:296 */ - public static final int ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001; - /** native declaration : headers\openvr_capi.h:297 */ - public static final int ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002; - /** native declaration : headers\openvr_capi.h:298 */ - public static final int ETrackedDeviceProperty_Prop_Axis1Type_Int32 = 3003; - /** native declaration : headers\openvr_capi.h:299 */ - public static final int ETrackedDeviceProperty_Prop_Axis2Type_Int32 = 3004; - /** native declaration : headers\openvr_capi.h:300 */ - public static final int ETrackedDeviceProperty_Prop_Axis3Type_Int32 = 3005; - /** native declaration : headers\openvr_capi.h:301 */ - public static final int ETrackedDeviceProperty_Prop_Axis4Type_Int32 = 3006; - /** native declaration : headers\openvr_capi.h:302 */ - public static final int ETrackedDeviceProperty_Prop_ControllerRoleHint_Int32 = 3007; - /** native declaration : headers\openvr_capi.h:303 */ - public static final int ETrackedDeviceProperty_Prop_FieldOfViewLeftDegrees_Float = 4000; - /** native declaration : headers\openvr_capi.h:304 */ - public static final int ETrackedDeviceProperty_Prop_FieldOfViewRightDegrees_Float = 4001; - /** native declaration : headers\openvr_capi.h:305 */ - public static final int ETrackedDeviceProperty_Prop_FieldOfViewTopDegrees_Float = 4002; - /** native declaration : headers\openvr_capi.h:306 */ - public static final int ETrackedDeviceProperty_Prop_FieldOfViewBottomDegrees_Float = 4003; - /** native declaration : headers\openvr_capi.h:307 */ - public static final int ETrackedDeviceProperty_Prop_TrackingRangeMinimumMeters_Float = 4004; - /** native declaration : headers\openvr_capi.h:308 */ - public static final int ETrackedDeviceProperty_Prop_TrackingRangeMaximumMeters_Float = 4005; - /** native declaration : headers\openvr_capi.h:309 */ - public static final int ETrackedDeviceProperty_Prop_ModeLabel_String = 4006; - /** native declaration : headers\openvr_capi.h:310 */ - public static final int ETrackedDeviceProperty_Prop_IconPathName_String = 5000; - /** native declaration : headers\openvr_capi.h:311 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceOff_String = 5001; - /** native declaration : headers\openvr_capi.h:312 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearching_String = 5002; - /** native declaration : headers\openvr_capi.h:313 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearchingAlert_String = 5003; - /** native declaration : headers\openvr_capi.h:314 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceReady_String = 5004; - /** native declaration : headers\openvr_capi.h:315 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceReadyAlert_String = 5005; - /** native declaration : headers\openvr_capi.h:316 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceNotReady_String = 5006; - /** native declaration : headers\openvr_capi.h:317 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceStandby_String = 5007; - /** native declaration : headers\openvr_capi.h:318 */ - public static final int ETrackedDeviceProperty_Prop_NamedIconPathDeviceAlertLow_String = 5008; - /** native declaration : headers\openvr_capi.h:319 */ - public static final int ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_Start = 5100; - /** native declaration : headers\openvr_capi.h:320 */ - public static final int ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_End = 5150; - /** native declaration : headers\openvr_capi.h:321 */ - public static final int ETrackedDeviceProperty_Prop_UserConfigPath_String = 6000; - /** native declaration : headers\openvr_capi.h:322 */ - public static final int ETrackedDeviceProperty_Prop_InstallPath_String = 6001; - /** native declaration : headers\openvr_capi.h:323 */ - public static final int ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000; - /** native declaration : headers\openvr_capi.h:324 */ - public static final int ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999; - }; /** - * native declaration : headers\openvr_capi.h:339
    - * enum values - */ - public static interface ETrackedPropertyError { - /** native declaration : headers\openvr_capi.h:327 */ - public static final int ETrackedPropertyError_TrackedProp_Success = 0; - /** native declaration : headers\openvr_capi.h:328 */ - public static final int ETrackedPropertyError_TrackedProp_WrongDataType = 1; - /** native declaration : headers\openvr_capi.h:329 */ - public static final int ETrackedPropertyError_TrackedProp_WrongDeviceClass = 2; - /** native declaration : headers\openvr_capi.h:330 */ - public static final int ETrackedPropertyError_TrackedProp_BufferTooSmall = 3; - /** native declaration : headers\openvr_capi.h:331 */ - public static final int ETrackedPropertyError_TrackedProp_UnknownProperty = 4; - /** native declaration : headers\openvr_capi.h:332 */ - public static final int ETrackedPropertyError_TrackedProp_InvalidDevice = 5; - /** native declaration : headers\openvr_capi.h:333 */ - public static final int ETrackedPropertyError_TrackedProp_CouldNotContactServer = 6; - /** native declaration : headers\openvr_capi.h:334 */ - public static final int ETrackedPropertyError_TrackedProp_ValueNotProvidedByDevice = 7; - /** native declaration : headers\openvr_capi.h:335 */ - public static final int ETrackedPropertyError_TrackedProp_StringExceedsMaximumLength = 8; - /** native declaration : headers\openvr_capi.h:336 */ - public static final int ETrackedPropertyError_TrackedProp_NotYetAvailable = 9; - /** native declaration : headers\openvr_capi.h:337 */ - public static final int ETrackedPropertyError_TrackedProp_PermissionDenied = 10; - /** native declaration : headers\openvr_capi.h:338 */ - public static final int ETrackedPropertyError_TrackedProp_InvalidOperation = 11; - }; - /** - * native declaration : headers\openvr_capi.h:345
    - * enum values - */ - public static interface EVRSubmitFlags { - /** native declaration : headers\openvr_capi.h:341 */ - public static final int EVRSubmitFlags_Submit_Default = 0; - /** native declaration : headers\openvr_capi.h:342 */ - public static final int EVRSubmitFlags_Submit_LensDistortionAlreadyApplied = 1; - /** native declaration : headers\openvr_capi.h:343 */ - public static final int EVRSubmitFlags_Submit_GlRenderBuffer = 2; - /** native declaration : headers\openvr_capi.h:344 */ - public static final int EVRSubmitFlags_Submit_Reserved = 4; - }; - /** - * native declaration : headers\openvr_capi.h:356
    - * enum values - */ - public static interface EVRState { - /** native declaration : headers\openvr_capi.h:347 */ - public static final int EVRState_VRState_Undefined = -1; - /** native declaration : headers\openvr_capi.h:348 */ - public static final int EVRState_VRState_Off = 0; - /** native declaration : headers\openvr_capi.h:349 */ - public static final int EVRState_VRState_Searching = 1; - /** native declaration : headers\openvr_capi.h:350 */ - public static final int EVRState_VRState_Searching_Alert = 2; - /** native declaration : headers\openvr_capi.h:351 */ - public static final int EVRState_VRState_Ready = 3; - /** native declaration : headers\openvr_capi.h:352 */ - public static final int EVRState_VRState_Ready_Alert = 4; - /** native declaration : headers\openvr_capi.h:353 */ - public static final int EVRState_VRState_NotReady = 5; - /** native declaration : headers\openvr_capi.h:354 */ - public static final int EVRState_VRState_Standby = 6; - /** native declaration : headers\openvr_capi.h:355 */ - public static final int EVRState_VRState_Ready_Alert_Low = 7; - }; - /** - * native declaration : headers\openvr_capi.h:467
    - * enum values - */ - public static interface EVREventType { - /** native declaration : headers\openvr_capi.h:358 */ - public static final int EVREventType_VREvent_None = 0; - /** native declaration : headers\openvr_capi.h:359 */ - public static final int EVREventType_VREvent_TrackedDeviceActivated = 100; - /** native declaration : headers\openvr_capi.h:360 */ - public static final int EVREventType_VREvent_TrackedDeviceDeactivated = 101; - /** native declaration : headers\openvr_capi.h:361 */ - public static final int EVREventType_VREvent_TrackedDeviceUpdated = 102; - /** native declaration : headers\openvr_capi.h:362 */ - public static final int EVREventType_VREvent_TrackedDeviceUserInteractionStarted = 103; - /** native declaration : headers\openvr_capi.h:363 */ - public static final int EVREventType_VREvent_TrackedDeviceUserInteractionEnded = 104; - /** native declaration : headers\openvr_capi.h:364 */ - public static final int EVREventType_VREvent_IpdChanged = 105; - /** native declaration : headers\openvr_capi.h:365 */ - public static final int EVREventType_VREvent_EnterStandbyMode = 106; - /** native declaration : headers\openvr_capi.h:366 */ - public static final int EVREventType_VREvent_LeaveStandbyMode = 107; - /** native declaration : headers\openvr_capi.h:367 */ - public static final int EVREventType_VREvent_TrackedDeviceRoleChanged = 108; - /** native declaration : headers\openvr_capi.h:368 */ - public static final int EVREventType_VREvent_WatchdogWakeUpRequested = 109; - /** native declaration : headers\openvr_capi.h:369 */ - public static final int EVREventType_VREvent_LensDistortionChanged = 110; - /** native declaration : headers\openvr_capi.h:370 */ - public static final int EVREventType_VREvent_PropertyChanged = 111; - /** native declaration : headers\openvr_capi.h:371 */ - public static final int EVREventType_VREvent_ButtonPress = 200; - /** native declaration : headers\openvr_capi.h:372 */ - public static final int EVREventType_VREvent_ButtonUnpress = 201; - /** native declaration : headers\openvr_capi.h:373 */ - public static final int EVREventType_VREvent_ButtonTouch = 202; - /** native declaration : headers\openvr_capi.h:374 */ - public static final int EVREventType_VREvent_ButtonUntouch = 203; - /** native declaration : headers\openvr_capi.h:375 */ - public static final int EVREventType_VREvent_MouseMove = 300; - /** native declaration : headers\openvr_capi.h:376 */ - public static final int EVREventType_VREvent_MouseButtonDown = 301; - /** native declaration : headers\openvr_capi.h:377 */ - public static final int EVREventType_VREvent_MouseButtonUp = 302; - /** native declaration : headers\openvr_capi.h:378 */ - public static final int EVREventType_VREvent_FocusEnter = 303; - /** native declaration : headers\openvr_capi.h:379 */ - public static final int EVREventType_VREvent_FocusLeave = 304; - /** native declaration : headers\openvr_capi.h:380 */ - public static final int EVREventType_VREvent_Scroll = 305; - /** native declaration : headers\openvr_capi.h:381 */ - public static final int EVREventType_VREvent_TouchPadMove = 306; - /** native declaration : headers\openvr_capi.h:382 */ - public static final int EVREventType_VREvent_OverlayFocusChanged = 307; - /** native declaration : headers\openvr_capi.h:383 */ - public static final int EVREventType_VREvent_InputFocusCaptured = 400; - /** native declaration : headers\openvr_capi.h:384 */ - public static final int EVREventType_VREvent_InputFocusReleased = 401; - /** native declaration : headers\openvr_capi.h:385 */ - public static final int EVREventType_VREvent_SceneFocusLost = 402; - /** native declaration : headers\openvr_capi.h:386 */ - public static final int EVREventType_VREvent_SceneFocusGained = 403; - /** native declaration : headers\openvr_capi.h:387 */ - public static final int EVREventType_VREvent_SceneApplicationChanged = 404; - /** native declaration : headers\openvr_capi.h:388 */ - public static final int EVREventType_VREvent_SceneFocusChanged = 405; - /** native declaration : headers\openvr_capi.h:389 */ - public static final int EVREventType_VREvent_InputFocusChanged = 406; - /** native declaration : headers\openvr_capi.h:390 */ - public static final int EVREventType_VREvent_SceneApplicationSecondaryRenderingStarted = 407; - /** native declaration : headers\openvr_capi.h:391 */ - public static final int EVREventType_VREvent_HideRenderModels = 410; - /** native declaration : headers\openvr_capi.h:392 */ - public static final int EVREventType_VREvent_ShowRenderModels = 411; - /** native declaration : headers\openvr_capi.h:393 */ - public static final int EVREventType_VREvent_OverlayShown = 500; - /** native declaration : headers\openvr_capi.h:394 */ - public static final int EVREventType_VREvent_OverlayHidden = 501; - /** native declaration : headers\openvr_capi.h:395 */ - public static final int EVREventType_VREvent_DashboardActivated = 502; - /** native declaration : headers\openvr_capi.h:396 */ - public static final int EVREventType_VREvent_DashboardDeactivated = 503; - /** native declaration : headers\openvr_capi.h:397 */ - public static final int EVREventType_VREvent_DashboardThumbSelected = 504; - /** native declaration : headers\openvr_capi.h:398 */ - public static final int EVREventType_VREvent_DashboardRequested = 505; - /** native declaration : headers\openvr_capi.h:399 */ - public static final int EVREventType_VREvent_ResetDashboard = 506; - /** native declaration : headers\openvr_capi.h:400 */ - public static final int EVREventType_VREvent_RenderToast = 507; - /** native declaration : headers\openvr_capi.h:401 */ - public static final int EVREventType_VREvent_ImageLoaded = 508; - /** native declaration : headers\openvr_capi.h:402 */ - public static final int EVREventType_VREvent_ShowKeyboard = 509; - /** native declaration : headers\openvr_capi.h:403 */ - public static final int EVREventType_VREvent_HideKeyboard = 510; - /** native declaration : headers\openvr_capi.h:404 */ - public static final int EVREventType_VREvent_OverlayGamepadFocusGained = 511; - /** native declaration : headers\openvr_capi.h:405 */ - public static final int EVREventType_VREvent_OverlayGamepadFocusLost = 512; - /** native declaration : headers\openvr_capi.h:406 */ - public static final int EVREventType_VREvent_OverlaySharedTextureChanged = 513; - /** native declaration : headers\openvr_capi.h:407 */ - public static final int EVREventType_VREvent_DashboardGuideButtonDown = 514; - /** native declaration : headers\openvr_capi.h:408 */ - public static final int EVREventType_VREvent_DashboardGuideButtonUp = 515; - /** native declaration : headers\openvr_capi.h:409 */ - public static final int EVREventType_VREvent_ScreenshotTriggered = 516; - /** native declaration : headers\openvr_capi.h:410 */ - public static final int EVREventType_VREvent_ImageFailed = 517; - /** native declaration : headers\openvr_capi.h:411 */ - public static final int EVREventType_VREvent_DashboardOverlayCreated = 518; - /** native declaration : headers\openvr_capi.h:412 */ - public static final int EVREventType_VREvent_RequestScreenshot = 520; - /** native declaration : headers\openvr_capi.h:413 */ - public static final int EVREventType_VREvent_ScreenshotTaken = 521; - /** native declaration : headers\openvr_capi.h:414 */ - public static final int EVREventType_VREvent_ScreenshotFailed = 522; - /** native declaration : headers\openvr_capi.h:415 */ - public static final int EVREventType_VREvent_SubmitScreenshotToDashboard = 523; - /** native declaration : headers\openvr_capi.h:416 */ - public static final int EVREventType_VREvent_ScreenshotProgressToDashboard = 524; - /** native declaration : headers\openvr_capi.h:417 */ - public static final int EVREventType_VREvent_PrimaryDashboardDeviceChanged = 525; - /** native declaration : headers\openvr_capi.h:418 */ - public static final int EVREventType_VREvent_Notification_Shown = 600; - /** native declaration : headers\openvr_capi.h:419 */ - public static final int EVREventType_VREvent_Notification_Hidden = 601; - /** native declaration : headers\openvr_capi.h:420 */ - public static final int EVREventType_VREvent_Notification_BeginInteraction = 602; - /** native declaration : headers\openvr_capi.h:421 */ - public static final int EVREventType_VREvent_Notification_Destroyed = 603; - /** native declaration : headers\openvr_capi.h:422 */ - public static final int EVREventType_VREvent_Quit = 700; - /** native declaration : headers\openvr_capi.h:423 */ - public static final int EVREventType_VREvent_ProcessQuit = 701; - /** native declaration : headers\openvr_capi.h:424 */ - public static final int EVREventType_VREvent_QuitAborted_UserPrompt = 702; - /** native declaration : headers\openvr_capi.h:425 */ - public static final int EVREventType_VREvent_QuitAcknowledged = 703; - /** native declaration : headers\openvr_capi.h:426 */ - public static final int EVREventType_VREvent_DriverRequestedQuit = 704; - /** native declaration : headers\openvr_capi.h:427 */ - public static final int EVREventType_VREvent_ChaperoneDataHasChanged = 800; - /** native declaration : headers\openvr_capi.h:428 */ - public static final int EVREventType_VREvent_ChaperoneUniverseHasChanged = 801; - /** native declaration : headers\openvr_capi.h:429 */ - public static final int EVREventType_VREvent_ChaperoneTempDataHasChanged = 802; - /** native declaration : headers\openvr_capi.h:430 */ - public static final int EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803; - /** native declaration : headers\openvr_capi.h:431 */ - public static final int EVREventType_VREvent_SeatedZeroPoseReset = 804; - /** native declaration : headers\openvr_capi.h:432 */ - public static final int EVREventType_VREvent_AudioSettingsHaveChanged = 820; - /** native declaration : headers\openvr_capi.h:433 */ - public static final int EVREventType_VREvent_BackgroundSettingHasChanged = 850; - /** native declaration : headers\openvr_capi.h:434 */ - public static final int EVREventType_VREvent_CameraSettingsHaveChanged = 851; - /** native declaration : headers\openvr_capi.h:435 */ - public static final int EVREventType_VREvent_ReprojectionSettingHasChanged = 852; - /** native declaration : headers\openvr_capi.h:436 */ - public static final int EVREventType_VREvent_ModelSkinSettingsHaveChanged = 853; - /** native declaration : headers\openvr_capi.h:437 */ - public static final int EVREventType_VREvent_EnvironmentSettingsHaveChanged = 854; - /** native declaration : headers\openvr_capi.h:438 */ - public static final int EVREventType_VREvent_PowerSettingsHaveChanged = 855; - /** native declaration : headers\openvr_capi.h:439 */ - public static final int EVREventType_VREvent_StatusUpdate = 900; - /** native declaration : headers\openvr_capi.h:440 */ - public static final int EVREventType_VREvent_MCImageUpdated = 1000; - /** native declaration : headers\openvr_capi.h:441 */ - public static final int EVREventType_VREvent_FirmwareUpdateStarted = 1100; - /** native declaration : headers\openvr_capi.h:442 */ - public static final int EVREventType_VREvent_FirmwareUpdateFinished = 1101; - /** native declaration : headers\openvr_capi.h:443 */ - public static final int EVREventType_VREvent_KeyboardClosed = 1200; - /** native declaration : headers\openvr_capi.h:444 */ - public static final int EVREventType_VREvent_KeyboardCharInput = 1201; - /** native declaration : headers\openvr_capi.h:445 */ - public static final int EVREventType_VREvent_KeyboardDone = 1202; - /** native declaration : headers\openvr_capi.h:446 */ - public static final int EVREventType_VREvent_ApplicationTransitionStarted = 1300; - /** native declaration : headers\openvr_capi.h:447 */ - public static final int EVREventType_VREvent_ApplicationTransitionAborted = 1301; - /** native declaration : headers\openvr_capi.h:448 */ - public static final int EVREventType_VREvent_ApplicationTransitionNewAppStarted = 1302; - /** native declaration : headers\openvr_capi.h:449 */ - public static final int EVREventType_VREvent_ApplicationListUpdated = 1303; - /** native declaration : headers\openvr_capi.h:450 */ - public static final int EVREventType_VREvent_ApplicationMimeTypeLoad = 1304; - /** native declaration : headers\openvr_capi.h:451 */ - public static final int EVREventType_VREvent_ApplicationTransitionNewAppLaunchComplete = 1305; - /** native declaration : headers\openvr_capi.h:452 */ - public static final int EVREventType_VREvent_Compositor_MirrorWindowShown = 1400; - /** native declaration : headers\openvr_capi.h:453 */ - public static final int EVREventType_VREvent_Compositor_MirrorWindowHidden = 1401; - /** native declaration : headers\openvr_capi.h:454 */ - public static final int EVREventType_VREvent_Compositor_ChaperoneBoundsShown = 1410; - /** native declaration : headers\openvr_capi.h:455 */ - public static final int EVREventType_VREvent_Compositor_ChaperoneBoundsHidden = 1411; - /** native declaration : headers\openvr_capi.h:456 */ - public static final int EVREventType_VREvent_TrackedCamera_StartVideoStream = 1500; - /** native declaration : headers\openvr_capi.h:457 */ - public static final int EVREventType_VREvent_TrackedCamera_StopVideoStream = 1501; - /** native declaration : headers\openvr_capi.h:458 */ - public static final int EVREventType_VREvent_TrackedCamera_PauseVideoStream = 1502; - /** native declaration : headers\openvr_capi.h:459 */ - public static final int EVREventType_VREvent_TrackedCamera_ResumeVideoStream = 1503; - /** native declaration : headers\openvr_capi.h:460 */ - public static final int EVREventType_VREvent_TrackedCamera_EditingSurface = 1550; - /** native declaration : headers\openvr_capi.h:461 */ - public static final int EVREventType_VREvent_PerformanceTest_EnableCapture = 1600; - /** native declaration : headers\openvr_capi.h:462 */ - public static final int EVREventType_VREvent_PerformanceTest_DisableCapture = 1601; - /** native declaration : headers\openvr_capi.h:463 */ - public static final int EVREventType_VREvent_PerformanceTest_FidelityLevel = 1602; - /** native declaration : headers\openvr_capi.h:464 */ - public static final int EVREventType_VREvent_MessageOverlay_Closed = 1650; - /** native declaration : headers\openvr_capi.h:465 */ - public static final int EVREventType_VREvent_VendorSpecific_Reserved_Start = 10000; - /** native declaration : headers\openvr_capi.h:466 */ - public static final int EVREventType_VREvent_VendorSpecific_Reserved_End = 19999; - }; - /** - * native declaration : headers\openvr_capi.h:474
    - * enum values - */ - public static interface EDeviceActivityLevel { - /** native declaration : headers\openvr_capi.h:469 */ - public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Unknown = -1; - /** native declaration : headers\openvr_capi.h:470 */ - public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Idle = 0; - /** native declaration : headers\openvr_capi.h:471 */ - public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction = 1; - /** native declaration : headers\openvr_capi.h:472 */ - public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction_Timeout = 2; - /** native declaration : headers\openvr_capi.h:473 */ - public static final int EDeviceActivityLevel_k_EDeviceActivityLevel_Standby = 3; - }; - /** - * native declaration : headers\openvr_capi.h:494
    - * enum values - */ - public static interface EVRButtonId { - /** native declaration : headers\openvr_capi.h:476 */ - public static final int EVRButtonId_k_EButton_System = 0; - /** native declaration : headers\openvr_capi.h:477 */ - public static final int EVRButtonId_k_EButton_ApplicationMenu = 1; - /** native declaration : headers\openvr_capi.h:478 */ - public static final int EVRButtonId_k_EButton_Grip = 2; - /** native declaration : headers\openvr_capi.h:479 */ - public static final int EVRButtonId_k_EButton_DPad_Left = 3; - /** native declaration : headers\openvr_capi.h:480 */ - public static final int EVRButtonId_k_EButton_DPad_Up = 4; - /** native declaration : headers\openvr_capi.h:481 */ - public static final int EVRButtonId_k_EButton_DPad_Right = 5; - /** native declaration : headers\openvr_capi.h:482 */ - public static final int EVRButtonId_k_EButton_DPad_Down = 6; - /** native declaration : headers\openvr_capi.h:483 */ - public static final int EVRButtonId_k_EButton_A = 7; - /** native declaration : headers\openvr_capi.h:484 */ - public static final int EVRButtonId_k_EButton_ProximitySensor = 31; - /** native declaration : headers\openvr_capi.h:485 */ - public static final int EVRButtonId_k_EButton_Axis0 = 32; - /** native declaration : headers\openvr_capi.h:486 */ - public static final int EVRButtonId_k_EButton_Axis1 = 33; - /** native declaration : headers\openvr_capi.h:487 */ - public static final int EVRButtonId_k_EButton_Axis2 = 34; - /** native declaration : headers\openvr_capi.h:488 */ - public static final int EVRButtonId_k_EButton_Axis3 = 35; - /** native declaration : headers\openvr_capi.h:489 */ - public static final int EVRButtonId_k_EButton_Axis4 = 36; - /** native declaration : headers\openvr_capi.h:490 */ - public static final int EVRButtonId_k_EButton_SteamVR_Touchpad = 32; - /** native declaration : headers\openvr_capi.h:491 */ - public static final int EVRButtonId_k_EButton_SteamVR_Trigger = 33; - /** native declaration : headers\openvr_capi.h:492 */ - public static final int EVRButtonId_k_EButton_Dashboard_Back = 2; - /** native declaration : headers\openvr_capi.h:493 */ - public static final int EVRButtonId_k_EButton_Max = 64; - }; - /** - * native declaration : headers\openvr_capi.h:499
    - * enum values - */ - public static interface EVRMouseButton { - /** native declaration : headers\openvr_capi.h:496 */ - public static final int EVRMouseButton_VRMouseButton_Left = 1; - /** native declaration : headers\openvr_capi.h:497 */ - public static final int EVRMouseButton_VRMouseButton_Right = 2; - /** native declaration : headers\openvr_capi.h:498 */ - public static final int EVRMouseButton_VRMouseButton_Middle = 4; - }; + * Global entry points
    + * Original signature : intptr_t VR_InitInternal(EVRInitError*, EVRApplicationType)
    + * native declaration : headers\openvr_capi.h:1923
    + * @deprecated use the safer methods {@link #VR_InitInternal(java.nio.IntBuffer, int)} and {@link #VR_InitInternal(com.sun.jna.ptr.IntByReference, int)} instead + */ + @Deprecated + public static native IntByReference VR_InitInternal(IntByReference peError, int eType); /** - * native declaration : headers\openvr_capi.h:505
    - * enum values - */ - public static interface EHiddenAreaMeshType { - /** native declaration : headers\openvr_capi.h:501 */ - public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Standard = 0; - /** native declaration : headers\openvr_capi.h:502 */ - public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Inverse = 1; - /** native declaration : headers\openvr_capi.h:503 */ - public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_LineLoop = 2; - /** native declaration : headers\openvr_capi.h:504 */ - public static final int EHiddenAreaMeshType_k_eHiddenAreaMesh_Max = 3; - }; + * Global entry points
    + * Original signature : intptr_t VR_InitInternal(EVRInitError*, EVRApplicationType)
    + * native declaration : headers\openvr_capi.h:1923 + */ + public static native IntByReference VR_InitInternal(IntBuffer peError, int eType); /** - * native declaration : headers\openvr_capi.h:511
    - * enum values - */ - public static interface EVRControllerAxisType { - /** native declaration : headers\openvr_capi.h:507 */ - public static final int EVRControllerAxisType_k_eControllerAxis_None = 0; - /** native declaration : headers\openvr_capi.h:508 */ - public static final int EVRControllerAxisType_k_eControllerAxis_TrackPad = 1; - /** native declaration : headers\openvr_capi.h:509 */ - public static final int EVRControllerAxisType_k_eControllerAxis_Joystick = 2; - /** native declaration : headers\openvr_capi.h:510 */ - public static final int EVRControllerAxisType_k_eControllerAxis_Trigger = 3; - }; + * Original signature : void VR_ShutdownInternal()
    + * native declaration : headers\openvr_capi.h:1925 + */ + public static native void VR_ShutdownInternal(); /** - * native declaration : headers\openvr_capi.h:515
    - * enum values - */ - public static interface EVRControllerEventOutputType { - /** native declaration : headers\openvr_capi.h:513 */ - public static final int EVRControllerEventOutputType_ControllerEventOutput_OSEvents = 0; - /** native declaration : headers\openvr_capi.h:514 */ - public static final int EVRControllerEventOutputType_ControllerEventOutput_VREvents = 1; - }; + * Original signature : bool VR_IsHmdPresent()
    + * native declaration : headers\openvr_capi.h:1927 + */ + public static native byte VR_IsHmdPresent(); /** - * native declaration : headers\openvr_capi.h:523
    - * enum values - */ - public static interface ECollisionBoundsStyle { - /** native declaration : headers\openvr_capi.h:517 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_BEGINNER = 0; - /** native declaration : headers\openvr_capi.h:518 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1; - /** native declaration : headers\openvr_capi.h:519 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_SQUARES = 2; - /** native declaration : headers\openvr_capi.h:520 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_ADVANCED = 3; - /** native declaration : headers\openvr_capi.h:521 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_NONE = 4; - /** native declaration : headers\openvr_capi.h:522 */ - public static final int ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_COUNT = 5; - }; + * Original signature : intptr_t VR_GetGenericInterface(const char*, EVRInitError*)
    + * native declaration : headers\openvr_capi.h:1929
    + * @deprecated use the safer methods {@link #VR_GetGenericInterface(java.lang.String, java.nio.IntBuffer)} and {@link #VR_GetGenericInterface(com.sun.jna.Pointer, com.sun.jna.ptr.IntByReference)} instead + */ + @Deprecated + public static native IntByReference VR_GetGenericInterface(Pointer pchInterfaceVersion, IntByReference peError); /** - * native declaration : headers\openvr_capi.h:546
    - * enum values - */ - public static interface EVROverlayError { - /** native declaration : headers\openvr_capi.h:525 */ - public static final int EVROverlayError_VROverlayError_None = 0; - /** native declaration : headers\openvr_capi.h:526 */ - public static final int EVROverlayError_VROverlayError_UnknownOverlay = 10; - /** native declaration : headers\openvr_capi.h:527 */ - public static final int EVROverlayError_VROverlayError_InvalidHandle = 11; - /** native declaration : headers\openvr_capi.h:528 */ - public static final int EVROverlayError_VROverlayError_PermissionDenied = 12; - /** native declaration : headers\openvr_capi.h:529 */ - public static final int EVROverlayError_VROverlayError_OverlayLimitExceeded = 13; - /** native declaration : headers\openvr_capi.h:530 */ - public static final int EVROverlayError_VROverlayError_WrongVisibilityType = 14; - /** native declaration : headers\openvr_capi.h:531 */ - public static final int EVROverlayError_VROverlayError_KeyTooLong = 15; - /** native declaration : headers\openvr_capi.h:532 */ - public static final int EVROverlayError_VROverlayError_NameTooLong = 16; - /** native declaration : headers\openvr_capi.h:533 */ - public static final int EVROverlayError_VROverlayError_KeyInUse = 17; - /** native declaration : headers\openvr_capi.h:534 */ - public static final int EVROverlayError_VROverlayError_WrongTransformType = 18; - /** native declaration : headers\openvr_capi.h:535 */ - public static final int EVROverlayError_VROverlayError_InvalidTrackedDevice = 19; - /** native declaration : headers\openvr_capi.h:536 */ - public static final int EVROverlayError_VROverlayError_InvalidParameter = 20; - /** native declaration : headers\openvr_capi.h:537 */ - public static final int EVROverlayError_VROverlayError_ThumbnailCantBeDestroyed = 21; - /** native declaration : headers\openvr_capi.h:538 */ - public static final int EVROverlayError_VROverlayError_ArrayTooSmall = 22; - /** native declaration : headers\openvr_capi.h:539 */ - public static final int EVROverlayError_VROverlayError_RequestFailed = 23; - /** native declaration : headers\openvr_capi.h:540 */ - public static final int EVROverlayError_VROverlayError_InvalidTexture = 24; - /** native declaration : headers\openvr_capi.h:541 */ - public static final int EVROverlayError_VROverlayError_UnableToLoadFile = 25; - /** native declaration : headers\openvr_capi.h:542 */ - public static final int EVROverlayError_VROverlayError_KeyboardAlreadyInUse = 26; - /** native declaration : headers\openvr_capi.h:543 */ - public static final int EVROverlayError_VROverlayError_NoNeighbor = 27; - /** native declaration : headers\openvr_capi.h:544 */ - public static final int EVROverlayError_VROverlayError_TooManyMaskPrimitives = 29; - /** native declaration : headers\openvr_capi.h:545 */ - public static final int EVROverlayError_VROverlayError_BadMaskPrimitive = 30; - }; + * Original signature : intptr_t VR_GetGenericInterface(const char*, EVRInitError*)
    + * native declaration : headers\openvr_capi.h:1929 + */ + public static native IntByReference VR_GetGenericInterface(String pchInterfaceVersion, IntByReference peError); /** - * native declaration : headers\openvr_capi.h:556
    - * enum values - */ - public static interface EVRApplicationType { - /** native declaration : headers\openvr_capi.h:548 */ - public static final int EVRApplicationType_VRApplication_Other = 0; - /** native declaration : headers\openvr_capi.h:549 */ - public static final int EVRApplicationType_VRApplication_Scene = 1; - /** native declaration : headers\openvr_capi.h:550 */ - public static final int EVRApplicationType_VRApplication_Overlay = 2; - /** native declaration : headers\openvr_capi.h:551 */ - public static final int EVRApplicationType_VRApplication_Background = 3; - /** native declaration : headers\openvr_capi.h:552 */ - public static final int EVRApplicationType_VRApplication_Utility = 4; - /** native declaration : headers\openvr_capi.h:553 */ - public static final int EVRApplicationType_VRApplication_VRMonitor = 5; - /** native declaration : headers\openvr_capi.h:554 */ - public static final int EVRApplicationType_VRApplication_SteamWatchdog = 6; - /** native declaration : headers\openvr_capi.h:555 */ - public static final int EVRApplicationType_VRApplication_Max = 7; - }; + * Original signature : bool VR_IsRuntimeInstalled()
    + * native declaration : headers\openvr_capi.h:1931 + */ + public static native byte VR_IsRuntimeInstalled(); /** - * native declaration : headers\openvr_capi.h:561
    - * enum values - */ - public static interface EVRFirmwareError { - /** native declaration : headers\openvr_capi.h:558 */ - public static final int EVRFirmwareError_VRFirmwareError_None = 0; - /** native declaration : headers\openvr_capi.h:559 */ - public static final int EVRFirmwareError_VRFirmwareError_Success = 1; - /** native declaration : headers\openvr_capi.h:560 */ - public static final int EVRFirmwareError_VRFirmwareError_Fail = 2; - }; + * Original signature : char* VR_GetVRInitErrorAsSymbol(EVRInitError)
    + * native declaration : headers\openvr_capi.h:1933 + */ + public static native Pointer VR_GetVRInitErrorAsSymbol(int error); /** - * native declaration : headers\openvr_capi.h:568
    - * enum values - */ - public static interface EVRNotificationError { - /** native declaration : headers\openvr_capi.h:563 */ - public static final int EVRNotificationError_VRNotificationError_OK = 0; - /** native declaration : headers\openvr_capi.h:564 */ - public static final int EVRNotificationError_VRNotificationError_InvalidNotificationId = 100; - /** native declaration : headers\openvr_capi.h:565 */ - public static final int EVRNotificationError_VRNotificationError_NotificationQueueFull = 101; - /** native declaration : headers\openvr_capi.h:566 */ - public static final int EVRNotificationError_VRNotificationError_InvalidOverlayHandle = 102; - /** native declaration : headers\openvr_capi.h:567 */ - public static final int EVRNotificationError_VRNotificationError_SystemWithUserValueAlreadyExists = 103; + * Original signature : char* VR_GetVRInitErrorAsEnglishDescription(EVRInitError)
    + * native declaration : headers\openvr_capi.h:1935 + */ + public static native Pointer VR_GetVRInitErrorAsEnglishDescription(int error); + public static class VkQueue_T extends PointerType { + public VkQueue_T(Pointer address) { + super(address); + } + public VkQueue_T() { + super(); + } }; - - /** - * native declaration : headers\openvr_capi.h:648
    - * enum values - */ - public static interface EVRInitError { - /** native declaration : headers\openvr_capi.h:570 */ - public static final int EVRInitError_VRInitError_None = 0; - /** native declaration : headers\openvr_capi.h:571 */ - public static final int EVRInitError_VRInitError_Unknown = 1; - /** native declaration : headers\openvr_capi.h:572 */ - public static final int EVRInitError_VRInitError_Init_InstallationNotFound = 100; - /** native declaration : headers\openvr_capi.h:573 */ - public static final int EVRInitError_VRInitError_Init_InstallationCorrupt = 101; - /** native declaration : headers\openvr_capi.h:574 */ - public static final int EVRInitError_VRInitError_Init_VRClientDLLNotFound = 102; - /** native declaration : headers\openvr_capi.h:575 */ - public static final int EVRInitError_VRInitError_Init_FileNotFound = 103; - /** native declaration : headers\openvr_capi.h:576 */ - public static final int EVRInitError_VRInitError_Init_FactoryNotFound = 104; - /** native declaration : headers\openvr_capi.h:577 */ - public static final int EVRInitError_VRInitError_Init_InterfaceNotFound = 105; - /** native declaration : headers\openvr_capi.h:578 */ - public static final int EVRInitError_VRInitError_Init_InvalidInterface = 106; - /** native declaration : headers\openvr_capi.h:579 */ - public static final int EVRInitError_VRInitError_Init_UserConfigDirectoryInvalid = 107; - /** native declaration : headers\openvr_capi.h:580 */ - public static final int EVRInitError_VRInitError_Init_HmdNotFound = 108; - /** native declaration : headers\openvr_capi.h:581 */ - public static final int EVRInitError_VRInitError_Init_NotInitialized = 109; - /** native declaration : headers\openvr_capi.h:582 */ - public static final int EVRInitError_VRInitError_Init_PathRegistryNotFound = 110; - /** native declaration : headers\openvr_capi.h:583 */ - public static final int EVRInitError_VRInitError_Init_NoConfigPath = 111; - /** native declaration : headers\openvr_capi.h:584 */ - public static final int EVRInitError_VRInitError_Init_NoLogPath = 112; - /** native declaration : headers\openvr_capi.h:585 */ - public static final int EVRInitError_VRInitError_Init_PathRegistryNotWritable = 113; - /** native declaration : headers\openvr_capi.h:586 */ - public static final int EVRInitError_VRInitError_Init_AppInfoInitFailed = 114; - /** native declaration : headers\openvr_capi.h:587 */ - public static final int EVRInitError_VRInitError_Init_Retry = 115; - /** native declaration : headers\openvr_capi.h:588 */ - public static final int EVRInitError_VRInitError_Init_InitCanceledByUser = 116; - /** native declaration : headers\openvr_capi.h:589 */ - public static final int EVRInitError_VRInitError_Init_AnotherAppLaunching = 117; - /** native declaration : headers\openvr_capi.h:590 */ - public static final int EVRInitError_VRInitError_Init_SettingsInitFailed = 118; - /** native declaration : headers\openvr_capi.h:591 */ - public static final int EVRInitError_VRInitError_Init_ShuttingDown = 119; - /** native declaration : headers\openvr_capi.h:592 */ - public static final int EVRInitError_VRInitError_Init_TooManyObjects = 120; - /** native declaration : headers\openvr_capi.h:593 */ - public static final int EVRInitError_VRInitError_Init_NoServerForBackgroundApp = 121; - /** native declaration : headers\openvr_capi.h:594 */ - public static final int EVRInitError_VRInitError_Init_NotSupportedWithCompositor = 122; - /** native declaration : headers\openvr_capi.h:595 */ - public static final int EVRInitError_VRInitError_Init_NotAvailableToUtilityApps = 123; - /** native declaration : headers\openvr_capi.h:596 */ - public static final int EVRInitError_VRInitError_Init_Internal = 124; - /** native declaration : headers\openvr_capi.h:597 */ - public static final int EVRInitError_VRInitError_Init_HmdDriverIdIsNone = 125; - /** native declaration : headers\openvr_capi.h:598 */ - public static final int EVRInitError_VRInitError_Init_HmdNotFoundPresenceFailed = 126; - /** native declaration : headers\openvr_capi.h:599 */ - public static final int EVRInitError_VRInitError_Init_VRMonitorNotFound = 127; - /** native declaration : headers\openvr_capi.h:600 */ - public static final int EVRInitError_VRInitError_Init_VRMonitorStartupFailed = 128; - /** native declaration : headers\openvr_capi.h:601 */ - public static final int EVRInitError_VRInitError_Init_LowPowerWatchdogNotSupported = 129; - /** native declaration : headers\openvr_capi.h:602 */ - public static final int EVRInitError_VRInitError_Init_InvalidApplicationType = 130; - /** native declaration : headers\openvr_capi.h:603 */ - public static final int EVRInitError_VRInitError_Init_NotAvailableToWatchdogApps = 131; - /** native declaration : headers\openvr_capi.h:604 */ - public static final int EVRInitError_VRInitError_Init_WatchdogDisabledInSettings = 132; - /** native declaration : headers\openvr_capi.h:605 */ - public static final int EVRInitError_VRInitError_Init_VRDashboardNotFound = 133; - /** native declaration : headers\openvr_capi.h:606 */ - public static final int EVRInitError_VRInitError_Init_VRDashboardStartupFailed = 134; - /** native declaration : headers\openvr_capi.h:607 */ - public static final int EVRInitError_VRInitError_Driver_Failed = 200; - /** native declaration : headers\openvr_capi.h:608 */ - public static final int EVRInitError_VRInitError_Driver_Unknown = 201; - /** native declaration : headers\openvr_capi.h:609 */ - public static final int EVRInitError_VRInitError_Driver_HmdUnknown = 202; - /** native declaration : headers\openvr_capi.h:610 */ - public static final int EVRInitError_VRInitError_Driver_NotLoaded = 203; - /** native declaration : headers\openvr_capi.h:611 */ - public static final int EVRInitError_VRInitError_Driver_RuntimeOutOfDate = 204; - /** native declaration : headers\openvr_capi.h:612 */ - public static final int EVRInitError_VRInitError_Driver_HmdInUse = 205; - /** native declaration : headers\openvr_capi.h:613 */ - public static final int EVRInitError_VRInitError_Driver_NotCalibrated = 206; - /** native declaration : headers\openvr_capi.h:614 */ - public static final int EVRInitError_VRInitError_Driver_CalibrationInvalid = 207; - /** native declaration : headers\openvr_capi.h:615 */ - public static final int EVRInitError_VRInitError_Driver_HmdDisplayNotFound = 208; - /** native declaration : headers\openvr_capi.h:616 */ - public static final int EVRInitError_VRInitError_Driver_TrackedDeviceInterfaceUnknown = 209; - /** native declaration : headers\openvr_capi.h:617 */ - public static final int EVRInitError_VRInitError_Driver_HmdDriverIdOutOfBounds = 211; - /** native declaration : headers\openvr_capi.h:618 */ - public static final int EVRInitError_VRInitError_Driver_HmdDisplayMirrored = 212; - /** native declaration : headers\openvr_capi.h:619 */ - public static final int EVRInitError_VRInitError_IPC_ServerInitFailed = 300; - /** native declaration : headers\openvr_capi.h:620 */ - public static final int EVRInitError_VRInitError_IPC_ConnectFailed = 301; - /** native declaration : headers\openvr_capi.h:621 */ - public static final int EVRInitError_VRInitError_IPC_SharedStateInitFailed = 302; - /** native declaration : headers\openvr_capi.h:622 */ - public static final int EVRInitError_VRInitError_IPC_CompositorInitFailed = 303; - /** native declaration : headers\openvr_capi.h:623 */ - public static final int EVRInitError_VRInitError_IPC_MutexInitFailed = 304; - /** native declaration : headers\openvr_capi.h:624 */ - public static final int EVRInitError_VRInitError_IPC_Failed = 305; - /** native declaration : headers\openvr_capi.h:625 */ - public static final int EVRInitError_VRInitError_IPC_CompositorConnectFailed = 306; - /** native declaration : headers\openvr_capi.h:626 */ - public static final int EVRInitError_VRInitError_IPC_CompositorInvalidConnectResponse = 307; - /** native declaration : headers\openvr_capi.h:627 */ - public static final int EVRInitError_VRInitError_IPC_ConnectFailedAfterMultipleAttempts = 308; - /** native declaration : headers\openvr_capi.h:628 */ - public static final int EVRInitError_VRInitError_Compositor_Failed = 400; - /** native declaration : headers\openvr_capi.h:629 */ - public static final int EVRInitError_VRInitError_Compositor_D3D11HardwareRequired = 401; - /** native declaration : headers\openvr_capi.h:630 */ - public static final int EVRInitError_VRInitError_Compositor_FirmwareRequiresUpdate = 402; - /** native declaration : headers\openvr_capi.h:631 */ - public static final int EVRInitError_VRInitError_Compositor_OverlayInitFailed = 403; - /** native declaration : headers\openvr_capi.h:632 */ - public static final int EVRInitError_VRInitError_Compositor_ScreenshotsInitFailed = 404; - /** native declaration : headers\openvr_capi.h:633 */ - public static final int EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000; - /** native declaration : headers\openvr_capi.h:634 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_CantOpenDevice = 1101; - /** native declaration : headers\openvr_capi.h:635 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102; - /** native declaration : headers\openvr_capi.h:636 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_NoStoredConfig = 1103; - /** native declaration : headers\openvr_capi.h:637 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooBig = 1104; - /** native declaration : headers\openvr_capi.h:638 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooSmall = 1105; - /** native declaration : headers\openvr_capi.h:639 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToInitZLib = 1106; - /** native declaration : headers\openvr_capi.h:640 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107; - /** native declaration : headers\openvr_capi.h:641 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108; - /** native declaration : headers\openvr_capi.h:642 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109; - /** native declaration : headers\openvr_capi.h:643 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110; - /** native declaration : headers\openvr_capi.h:644 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111; - /** native declaration : headers\openvr_capi.h:645 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataError = 1112; - /** native declaration : headers\openvr_capi.h:646 */ - public static final int EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113; - /** native declaration : headers\openvr_capi.h:647 */ - public static final int EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000; + public static class VkPhysicalDevice_T extends PointerType { + public VkPhysicalDevice_T(Pointer address) { + super(address); + } + public VkPhysicalDevice_T() { + super(); + } }; - - - - /** - * native declaration : headers\openvr_capi.h:656
    - * enum values - */ - public static interface EVRScreenshotType { - /** native declaration : headers\openvr_capi.h:650 */ - public static final int EVRScreenshotType_VRScreenshotType_None = 0; - /** native declaration : headers\openvr_capi.h:651 */ - public static final int EVRScreenshotType_VRScreenshotType_Mono = 1; - /** native declaration : headers\openvr_capi.h:652 */ - public static final int EVRScreenshotType_VRScreenshotType_Stereo = 2; - /** native declaration : headers\openvr_capi.h:653 */ - public static final int EVRScreenshotType_VRScreenshotType_Cubemap = 3; - /** native declaration : headers\openvr_capi.h:654 */ - public static final int EVRScreenshotType_VRScreenshotType_MonoPanorama = 4; - /** native declaration : headers\openvr_capi.h:655 */ - public static final int EVRScreenshotType_VRScreenshotType_StereoPanorama = 5; - }; - /** - * native declaration : headers\openvr_capi.h:660
    - * enum values - */ - public static interface EVRScreenshotPropertyFilenames { - /** native declaration : headers\openvr_capi.h:658 */ - public static final int EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_Preview = 0; - /** native declaration : headers\openvr_capi.h:659 */ - public static final int EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_VR = 1; - }; - /** - * native declaration : headers\openvr_capi.h:679
    - * enum values - */ - public static interface EVRTrackedCameraError { - /** native declaration : headers\openvr_capi.h:662 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_None = 0; - /** native declaration : headers\openvr_capi.h:663 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_OperationFailed = 100; - /** native declaration : headers\openvr_capi.h:664 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidHandle = 101; - /** native declaration : headers\openvr_capi.h:665 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameHeaderVersion = 102; - /** native declaration : headers\openvr_capi.h:666 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_OutOfHandles = 103; - /** native declaration : headers\openvr_capi.h:667 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_IPCFailure = 104; - /** native declaration : headers\openvr_capi.h:668 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_NotSupportedForThisDevice = 105; - /** native declaration : headers\openvr_capi.h:669 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_SharedMemoryFailure = 106; - /** native declaration : headers\openvr_capi.h:670 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_FrameBufferingFailure = 107; - /** native declaration : headers\openvr_capi.h:671 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_StreamSetupFailure = 108; - /** native declaration : headers\openvr_capi.h:672 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidGLTextureId = 109; - /** native declaration : headers\openvr_capi.h:673 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidSharedTextureHandle = 110; - /** native declaration : headers\openvr_capi.h:674 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_FailedToGetGLTextureId = 111; - /** native declaration : headers\openvr_capi.h:675 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_SharedTextureFailure = 112; - /** native declaration : headers\openvr_capi.h:676 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_NoFrameAvailable = 113; - /** native declaration : headers\openvr_capi.h:677 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidArgument = 114; - /** native declaration : headers\openvr_capi.h:678 */ - public static final int EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameBufferSize = 115; - }; - /** - * native declaration : headers\openvr_capi.h:685
    - * enum values - */ - public static interface EVRTrackedCameraFrameType { - /** native declaration : headers\openvr_capi.h:681 */ - public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Distorted = 0; - /** native declaration : headers\openvr_capi.h:682 */ - public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Undistorted = 1; - /** native declaration : headers\openvr_capi.h:683 */ - public static final int EVRTrackedCameraFrameType_VRTrackedCameraFrameType_MaximumUndistorted = 2; - /** native declaration : headers\openvr_capi.h:684 */ - public static final int EVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3; - }; - /** - * native declaration : headers\openvr_capi.h:707
    - * enum values - */ - public static interface EVRApplicationError { - /** native declaration : headers\openvr_capi.h:687 */ - public static final int EVRApplicationError_VRApplicationError_None = 0; - /** native declaration : headers\openvr_capi.h:688 */ - public static final int EVRApplicationError_VRApplicationError_AppKeyAlreadyExists = 100; - /** native declaration : headers\openvr_capi.h:689 */ - public static final int EVRApplicationError_VRApplicationError_NoManifest = 101; - /** native declaration : headers\openvr_capi.h:690 */ - public static final int EVRApplicationError_VRApplicationError_NoApplication = 102; - /** native declaration : headers\openvr_capi.h:691 */ - public static final int EVRApplicationError_VRApplicationError_InvalidIndex = 103; - /** native declaration : headers\openvr_capi.h:692 */ - public static final int EVRApplicationError_VRApplicationError_UnknownApplication = 104; - /** native declaration : headers\openvr_capi.h:693 */ - public static final int EVRApplicationError_VRApplicationError_IPCFailed = 105; - /** native declaration : headers\openvr_capi.h:694 */ - public static final int EVRApplicationError_VRApplicationError_ApplicationAlreadyRunning = 106; - /** native declaration : headers\openvr_capi.h:695 */ - public static final int EVRApplicationError_VRApplicationError_InvalidManifest = 107; - /** native declaration : headers\openvr_capi.h:696 */ - public static final int EVRApplicationError_VRApplicationError_InvalidApplication = 108; - /** native declaration : headers\openvr_capi.h:697 */ - public static final int EVRApplicationError_VRApplicationError_LaunchFailed = 109; - /** native declaration : headers\openvr_capi.h:698 */ - public static final int EVRApplicationError_VRApplicationError_ApplicationAlreadyStarting = 110; - /** native declaration : headers\openvr_capi.h:699 */ - public static final int EVRApplicationError_VRApplicationError_LaunchInProgress = 111; - /** native declaration : headers\openvr_capi.h:700 */ - public static final int EVRApplicationError_VRApplicationError_OldApplicationQuitting = 112; - /** native declaration : headers\openvr_capi.h:701 */ - public static final int EVRApplicationError_VRApplicationError_TransitionAborted = 113; - /** native declaration : headers\openvr_capi.h:702 */ - public static final int EVRApplicationError_VRApplicationError_IsTemplate = 114; - /** native declaration : headers\openvr_capi.h:703 */ - public static final int EVRApplicationError_VRApplicationError_BufferTooSmall = 200; - /** native declaration : headers\openvr_capi.h:704 */ - public static final int EVRApplicationError_VRApplicationError_PropertyNotSet = 201; - /** native declaration : headers\openvr_capi.h:705 */ - public static final int EVRApplicationError_VRApplicationError_UnknownProperty = 202; - /** native declaration : headers\openvr_capi.h:706 */ - public static final int EVRApplicationError_VRApplicationError_InvalidParameter = 203; - }; - /** - * native declaration : headers\openvr_capi.h:724
    - * enum values - */ - public static interface EVRApplicationProperty { - /** native declaration : headers\openvr_capi.h:709 */ - public static final int EVRApplicationProperty_VRApplicationProperty_Name_String = 0; - /** native declaration : headers\openvr_capi.h:710 */ - public static final int EVRApplicationProperty_VRApplicationProperty_LaunchType_String = 11; - /** native declaration : headers\openvr_capi.h:711 */ - public static final int EVRApplicationProperty_VRApplicationProperty_WorkingDirectory_String = 12; - /** native declaration : headers\openvr_capi.h:712 */ - public static final int EVRApplicationProperty_VRApplicationProperty_BinaryPath_String = 13; - /** native declaration : headers\openvr_capi.h:713 */ - public static final int EVRApplicationProperty_VRApplicationProperty_Arguments_String = 14; - /** native declaration : headers\openvr_capi.h:714 */ - public static final int EVRApplicationProperty_VRApplicationProperty_URL_String = 15; - /** native declaration : headers\openvr_capi.h:715 */ - public static final int EVRApplicationProperty_VRApplicationProperty_Description_String = 50; - /** native declaration : headers\openvr_capi.h:716 */ - public static final int EVRApplicationProperty_VRApplicationProperty_NewsURL_String = 51; - /** native declaration : headers\openvr_capi.h:717 */ - public static final int EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52; - /** native declaration : headers\openvr_capi.h:718 */ - public static final int EVRApplicationProperty_VRApplicationProperty_Source_String = 53; - /** native declaration : headers\openvr_capi.h:719 */ - public static final int EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60; - /** native declaration : headers\openvr_capi.h:720 */ - public static final int EVRApplicationProperty_VRApplicationProperty_IsTemplate_Bool = 61; - /** native declaration : headers\openvr_capi.h:721 */ - public static final int EVRApplicationProperty_VRApplicationProperty_IsInstanced_Bool = 62; - /** native declaration : headers\openvr_capi.h:722 */ - public static final int EVRApplicationProperty_VRApplicationProperty_IsInternal_Bool = 63; - /** native declaration : headers\openvr_capi.h:723 */ - public static final int EVRApplicationProperty_VRApplicationProperty_LastLaunchTime_Uint64 = 70; - }; - /** - * native declaration : headers\openvr_capi.h:730
    - * enum values - */ - public static interface EVRApplicationTransitionState { - /** native declaration : headers\openvr_capi.h:726 */ - public static final int EVRApplicationTransitionState_VRApplicationTransition_None = 0; - /** native declaration : headers\openvr_capi.h:727 */ - public static final int EVRApplicationTransitionState_VRApplicationTransition_OldAppQuitSent = 10; - /** native declaration : headers\openvr_capi.h:728 */ - public static final int EVRApplicationTransitionState_VRApplicationTransition_WaitingForExternalLaunch = 11; - /** native declaration : headers\openvr_capi.h:729 */ - public static final int EVRApplicationTransitionState_VRApplicationTransition_NewAppLaunched = 20; - }; - /** - * native declaration : headers\openvr_capi.h:742
    - * enum values - */ - public static interface ChaperoneCalibrationState { - /** native declaration : headers\openvr_capi.h:732 */ - public static final int ChaperoneCalibrationState_OK = 1; - /** native declaration : headers\openvr_capi.h:733 */ - public static final int ChaperoneCalibrationState_Warning = 100; - /** native declaration : headers\openvr_capi.h:734 */ - public static final int ChaperoneCalibrationState_Warning_BaseStationMayHaveMoved = 101; - /** native declaration : headers\openvr_capi.h:735 */ - public static final int ChaperoneCalibrationState_Warning_BaseStationRemoved = 102; - /** native declaration : headers\openvr_capi.h:736 */ - public static final int ChaperoneCalibrationState_Warning_SeatedBoundsInvalid = 103; - /** native declaration : headers\openvr_capi.h:737 */ - public static final int ChaperoneCalibrationState_Error = 200; - /** native declaration : headers\openvr_capi.h:738 */ - public static final int ChaperoneCalibrationState_Error_BaseStationUninitialized = 201; - /** native declaration : headers\openvr_capi.h:739 */ - public static final int ChaperoneCalibrationState_Error_BaseStationConflict = 202; - /** native declaration : headers\openvr_capi.h:740 */ - public static final int ChaperoneCalibrationState_Error_PlayAreaInvalid = 203; - /** native declaration : headers\openvr_capi.h:741 */ - public static final int ChaperoneCalibrationState_Error_CollisionBoundsInvalid = 204; - }; - /** - * native declaration : headers\openvr_capi.h:746
    - * enum values - */ - public static interface EChaperoneConfigFile { - /** native declaration : headers\openvr_capi.h:744 */ - public static final int EChaperoneConfigFile_Live = 1; - /** native declaration : headers\openvr_capi.h:745 */ - public static final int EChaperoneConfigFile_Temp = 2; - }; - /** - * native declaration : headers\openvr_capi.h:749
    - * enum values - */ - public static interface EChaperoneImportFlags { - /** native declaration : headers\openvr_capi.h:748 */ - public static final int EChaperoneImportFlags_EChaperoneImport_BoundsOnly = 1; - }; - /** - * native declaration : headers\openvr_capi.h:762
    - * enum values - */ - public static interface EVRCompositorError { - /** native declaration : headers\openvr_capi.h:751 */ - public static final int EVRCompositorError_VRCompositorError_None = 0; - /** native declaration : headers\openvr_capi.h:752 */ - public static final int EVRCompositorError_VRCompositorError_RequestFailed = 1; - /** native declaration : headers\openvr_capi.h:753 */ - public static final int EVRCompositorError_VRCompositorError_IncompatibleVersion = 100; - /** native declaration : headers\openvr_capi.h:754 */ - public static final int EVRCompositorError_VRCompositorError_DoNotHaveFocus = 101; - /** native declaration : headers\openvr_capi.h:755 */ - public static final int EVRCompositorError_VRCompositorError_InvalidTexture = 102; - /** native declaration : headers\openvr_capi.h:756 */ - public static final int EVRCompositorError_VRCompositorError_IsNotSceneApplication = 103; - /** native declaration : headers\openvr_capi.h:757 */ - public static final int EVRCompositorError_VRCompositorError_TextureIsOnWrongDevice = 104; - /** native declaration : headers\openvr_capi.h:758 */ - public static final int EVRCompositorError_VRCompositorError_TextureUsesUnsupportedFormat = 105; - /** native declaration : headers\openvr_capi.h:759 */ - public static final int EVRCompositorError_VRCompositorError_SharedTexturesNotSupported = 106; - /** native declaration : headers\openvr_capi.h:760 */ - public static final int EVRCompositorError_VRCompositorError_IndexOutOfRange = 107; - /** native declaration : headers\openvr_capi.h:761 */ - public static final int EVRCompositorError_VRCompositorError_AlreadySubmitted = 108; + public static class VkInstance_T extends PointerType { + public VkInstance_T(Pointer address) { + super(address); + } + public VkInstance_T() { + super(); + } + }; + public static class ID3D12CommandQueue extends PointerType { + public ID3D12CommandQueue(Pointer address) { + super(address); + } + public ID3D12CommandQueue() { + super(); + } + }; + public static class ID3D12Resource extends PointerType { + public ID3D12Resource(Pointer address) { + super(address); + } + public ID3D12Resource() { + super(); + } + }; + public static class VkDevice_T extends PointerType { + public VkDevice_T(Pointer address) { + super(address); + } + public VkDevice_T() { + super(); + } }; - - - - /** - * native declaration : headers\openvr_capi.h:766
    - * enum values - */ - public static interface VROverlayInputMethod { - /** native declaration : headers\openvr_capi.h:764 */ - public static final int VROverlayInputMethod_None = 0; - /** native declaration : headers\openvr_capi.h:765 */ - public static final int VROverlayInputMethod_Mouse = 1; - }; - /** - * native declaration : headers\openvr_capi.h:772
    - * enum values - */ - public static interface VROverlayTransformType { - /** native declaration : headers\openvr_capi.h:768 */ - public static final int VROverlayTransformType_VROverlayTransform_Absolute = 0; - /** native declaration : headers\openvr_capi.h:769 */ - public static final int VROverlayTransformType_VROverlayTransform_TrackedDeviceRelative = 1; - /** native declaration : headers\openvr_capi.h:770 */ - public static final int VROverlayTransformType_VROverlayTransform_SystemOverlay = 2; - /** native declaration : headers\openvr_capi.h:771 */ - public static final int VROverlayTransformType_VROverlayTransform_TrackedComponent = 3; - }; - /** - * native declaration : headers\openvr_capi.h:790
    - * enum values - */ - public static interface VROverlayFlags { - /** native declaration : headers\openvr_capi.h:774 */ - public static final int VROverlayFlags_None = 0; - /** native declaration : headers\openvr_capi.h:775 */ - public static final int VROverlayFlags_Curved = 1; - /** native declaration : headers\openvr_capi.h:776 */ - public static final int VROverlayFlags_RGSS4X = 2; - /** native declaration : headers\openvr_capi.h:777 */ - public static final int VROverlayFlags_NoDashboardTab = 3; - /** native declaration : headers\openvr_capi.h:778 */ - public static final int VROverlayFlags_AcceptsGamepadEvents = 4; - /** native declaration : headers\openvr_capi.h:779 */ - public static final int VROverlayFlags_ShowGamepadFocus = 5; - /** native declaration : headers\openvr_capi.h:780 */ - public static final int VROverlayFlags_SendVRScrollEvents = 6; - /** native declaration : headers\openvr_capi.h:781 */ - public static final int VROverlayFlags_SendVRTouchpadEvents = 7; - /** native declaration : headers\openvr_capi.h:782 */ - public static final int VROverlayFlags_ShowTouchPadScrollWheel = 8; - /** native declaration : headers\openvr_capi.h:783 */ - public static final int VROverlayFlags_TransferOwnershipToInternalProcess = 9; - /** native declaration : headers\openvr_capi.h:784 */ - public static final int VROverlayFlags_SideBySide_Parallel = 10; - /** native declaration : headers\openvr_capi.h:785 */ - public static final int VROverlayFlags_SideBySide_Crossed = 11; - /** native declaration : headers\openvr_capi.h:786 */ - public static final int VROverlayFlags_Panorama = 12; - /** native declaration : headers\openvr_capi.h:787 */ - public static final int VROverlayFlags_StereoPanorama = 13; - /** native declaration : headers\openvr_capi.h:788 */ - public static final int VROverlayFlags_SortWithNonSceneOverlays = 14; - /** native declaration : headers\openvr_capi.h:789 */ - public static final int VROverlayFlags_VisibleInDashboard = 15; - }; - /** - * native declaration : headers\openvr_capi.h:799
    - * enum values - */ - public static interface VRMessageOverlayResponse { - /** native declaration : headers\openvr_capi.h:792 */ - public static final int VRMessageOverlayResponse_ButtonPress_0 = 0; - /** native declaration : headers\openvr_capi.h:793 */ - public static final int VRMessageOverlayResponse_ButtonPress_1 = 1; - /** native declaration : headers\openvr_capi.h:794 */ - public static final int VRMessageOverlayResponse_ButtonPress_2 = 2; - /** native declaration : headers\openvr_capi.h:795 */ - public static final int VRMessageOverlayResponse_ButtonPress_3 = 3; - /** native declaration : headers\openvr_capi.h:796 */ - public static final int VRMessageOverlayResponse_CouldntFindSystemOverlay = 4; - /** native declaration : headers\openvr_capi.h:797 */ - public static final int VRMessageOverlayResponse_CouldntFindOrCreateClientOverlay = 5; - /** native declaration : headers\openvr_capi.h:798 */ - public static final int VRMessageOverlayResponse_ApplicationQuit = 6; - }; - /** - * native declaration : headers\openvr_capi.h:804
    - * enum values - */ - public static interface EGamepadTextInputMode { - /** native declaration : headers\openvr_capi.h:801 */ - public static final int EGamepadTextInputMode_k_EGamepadTextInputModeNormal = 0; - /** native declaration : headers\openvr_capi.h:802 */ - public static final int EGamepadTextInputMode_k_EGamepadTextInputModePassword = 1; - /** native declaration : headers\openvr_capi.h:803 */ - public static final int EGamepadTextInputMode_k_EGamepadTextInputModeSubmit = 2; - }; - /** - * native declaration : headers\openvr_capi.h:808
    - * enum values - */ - public static interface EGamepadTextInputLineMode { - /** native declaration : headers\openvr_capi.h:806 */ - public static final int EGamepadTextInputLineMode_k_EGamepadTextInputLineModeSingleLine = 0; - /** native declaration : headers\openvr_capi.h:807 */ - public static final int EGamepadTextInputLineMode_k_EGamepadTextInputLineModeMultipleLines = 1; - }; - /** - * native declaration : headers\openvr_capi.h:815
    - * enum values - */ - public static interface EOverlayDirection { - /** native declaration : headers\openvr_capi.h:810 */ - public static final int EOverlayDirection_OverlayDirection_Up = 0; - /** native declaration : headers\openvr_capi.h:811 */ - public static final int EOverlayDirection_OverlayDirection_Down = 1; - /** native declaration : headers\openvr_capi.h:812 */ - public static final int EOverlayDirection_OverlayDirection_Left = 2; - /** native declaration : headers\openvr_capi.h:813 */ - public static final int EOverlayDirection_OverlayDirection_Right = 3; - /** native declaration : headers\openvr_capi.h:814 */ - public static final int EOverlayDirection_OverlayDirection_Count = 4; - }; - /** - * native declaration : headers\openvr_capi.h:819
    - * enum values - */ - public static interface EVROverlayIntersectionMaskPrimitiveType { - /** native declaration : headers\openvr_capi.h:817 */ - public static final int EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Rectangle = 0; - /** native declaration : headers\openvr_capi.h:818 */ - public static final int EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Circle = 1; - }; - /** - * native declaration : headers\openvr_capi.h:834
    - * enum values - */ - public static interface EVRRenderModelError { - /** native declaration : headers\openvr_capi.h:821 */ - public static final int EVRRenderModelError_VRRenderModelError_None = 0; - /** native declaration : headers\openvr_capi.h:822 */ - public static final int EVRRenderModelError_VRRenderModelError_Loading = 100; - /** native declaration : headers\openvr_capi.h:823 */ - public static final int EVRRenderModelError_VRRenderModelError_NotSupported = 200; - /** native declaration : headers\openvr_capi.h:824 */ - public static final int EVRRenderModelError_VRRenderModelError_InvalidArg = 300; - /** native declaration : headers\openvr_capi.h:825 */ - public static final int EVRRenderModelError_VRRenderModelError_InvalidModel = 301; - /** native declaration : headers\openvr_capi.h:826 */ - public static final int EVRRenderModelError_VRRenderModelError_NoShapes = 302; - /** native declaration : headers\openvr_capi.h:827 */ - public static final int EVRRenderModelError_VRRenderModelError_MultipleShapes = 303; - /** native declaration : headers\openvr_capi.h:828 */ - public static final int EVRRenderModelError_VRRenderModelError_TooManyVertices = 304; - /** native declaration : headers\openvr_capi.h:829 */ - public static final int EVRRenderModelError_VRRenderModelError_MultipleTextures = 305; - /** native declaration : headers\openvr_capi.h:830 */ - public static final int EVRRenderModelError_VRRenderModelError_BufferTooSmall = 306; - /** native declaration : headers\openvr_capi.h:831 */ - public static final int EVRRenderModelError_VRRenderModelError_NotEnoughNormals = 307; - /** native declaration : headers\openvr_capi.h:832 */ - public static final int EVRRenderModelError_VRRenderModelError_NotEnoughTexCoords = 308; - /** native declaration : headers\openvr_capi.h:833 */ - public static final int EVRRenderModelError_VRRenderModelError_InvalidTexture = 400; - }; - /** - * native declaration : headers\openvr_capi.h:841
    - * enum values - */ - public static interface EVRComponentProperty { - /** native declaration : headers\openvr_capi.h:836 */ - public static final int EVRComponentProperty_VRComponentProperty_IsStatic = 1; - /** native declaration : headers\openvr_capi.h:837 */ - public static final int EVRComponentProperty_VRComponentProperty_IsVisible = 2; - /** native declaration : headers\openvr_capi.h:838 */ - public static final int EVRComponentProperty_VRComponentProperty_IsTouched = 4; - /** native declaration : headers\openvr_capi.h:839 */ - public static final int EVRComponentProperty_VRComponentProperty_IsPressed = 8; - /** native declaration : headers\openvr_capi.h:840 */ - public static final int EVRComponentProperty_VRComponentProperty_IsScrolled = 16; - }; - /** - * native declaration : headers\openvr_capi.h:846
    - * enum values - */ - public static interface EVRNotificationType { - /** native declaration : headers\openvr_capi.h:843 */ - public static final int EVRNotificationType_Transient = 0; - /** native declaration : headers\openvr_capi.h:844 */ - public static final int EVRNotificationType_Persistent = 1; - /** native declaration : headers\openvr_capi.h:845 */ - public static final int EVRNotificationType_Transient_SystemWithUserValue = 2; - }; - /** - * native declaration : headers\openvr_capi.h:853
    - * enum values - */ - public static interface EVRNotificationStyle { - /** native declaration : headers\openvr_capi.h:848 */ - public static final int EVRNotificationStyle_None = 0; - /** native declaration : headers\openvr_capi.h:849 */ - public static final int EVRNotificationStyle_Application = 100; - /** native declaration : headers\openvr_capi.h:850 */ - public static final int EVRNotificationStyle_Contact_Disabled = 200; - /** native declaration : headers\openvr_capi.h:851 */ - public static final int EVRNotificationStyle_Contact_Enabled = 201; - /** native declaration : headers\openvr_capi.h:852 */ - public static final int EVRNotificationStyle_Contact_Active = 202; - }; - /** - * native declaration : headers\openvr_capi.h:861
    - * enum values - */ - public static interface EVRSettingsError { - /** native declaration : headers\openvr_capi.h:855 */ - public static final int EVRSettingsError_VRSettingsError_None = 0; - /** native declaration : headers\openvr_capi.h:856 */ - public static final int EVRSettingsError_VRSettingsError_IPCFailed = 1; - /** native declaration : headers\openvr_capi.h:857 */ - public static final int EVRSettingsError_VRSettingsError_WriteFailed = 2; - /** native declaration : headers\openvr_capi.h:858 */ - public static final int EVRSettingsError_VRSettingsError_ReadFailed = 3; - /** native declaration : headers\openvr_capi.h:859 */ - public static final int EVRSettingsError_VRSettingsError_JsonParseFailed = 4; - /** native declaration : headers\openvr_capi.h:860 */ - public static final int EVRSettingsError_VRSettingsError_UnsetSettingHasNoDefault = 5; - }; - /** - * native declaration : headers\openvr_capi.h:869
    - * enum values - */ - public static interface EVRScreenshotError { - /** native declaration : headers\openvr_capi.h:863 */ - public static final int EVRScreenshotError_VRScreenshotError_None = 0; - /** native declaration : headers\openvr_capi.h:864 */ - public static final int EVRScreenshotError_VRScreenshotError_RequestFailed = 1; - /** native declaration : headers\openvr_capi.h:865 */ - public static final int EVRScreenshotError_VRScreenshotError_IncompatibleVersion = 100; - /** native declaration : headers\openvr_capi.h:866 */ - public static final int EVRScreenshotError_VRScreenshotError_NotFound = 101; - /** native declaration : headers\openvr_capi.h:867 */ - public static final int EVRScreenshotError_VRScreenshotError_BufferTooSmall = 102; - /** native declaration : headers\openvr_capi.h:868 */ - public static final int EVRScreenshotError_VRScreenshotError_ScreenshotAlreadyInProgress = 108; - }; - - /** - * Global entry points
    - * Original signature : intptr_t VR_InitInternal(EVRInitError*, EVRApplicationType)
    - * native declaration : headers\openvr_capi.h:1876
    - */ - public static native IntByReference VR_InitInternal(IntByReference peError, int eType); - /** - * Global entry points
    - * Original signature : intptr_t VR_InitInternal(EVRInitError*, EVRApplicationType)
    - * native declaration : headers\openvr_capi.h:1876 - */ - public static native IntByReference VR_InitInternal(IntBuffer peError, int eType); - /** - * Original signature : void VR_ShutdownInternal()
    - * native declaration : headers\openvr_capi.h:1878 - */ - public static native void VR_ShutdownInternal(); - /** - * Original signature : bool VR_IsHmdPresent()
    - * native declaration : headers\openvr_capi.h:1880 - */ - public static native byte VR_IsHmdPresent(); - /** - * Original signature : intptr_t VR_GetGenericInterface(const char*, EVRInitError*)
    - * native declaration : headers\openvr_capi.h:1882
    - * @deprecated use the safer methods {@link #VR_GetGenericInterface(java.lang.String, java.nio.IntBuffer)} and {@link #VR_GetGenericInterface(com.sun.jna.Pointer, com.sun.jna.ptr.IntByReference)} instead - */ - @Deprecated - public static native IntByReference VR_GetGenericInterface(Pointer pchInterfaceVersion, IntByReference peError); - /** - * Original signature : intptr_t VR_GetGenericInterface(const char*, EVRInitError*)
    - * native declaration : headers\openvr_capi.h:1882 - */ - public static native IntByReference VR_GetGenericInterface(String pchInterfaceVersion, IntByReference peError); - /** - * Original signature : bool VR_IsRuntimeInstalled()
    - * native declaration : headers\openvr_capi.h:1884 - */ - public static native byte VR_IsRuntimeInstalled(); - /** - * Original signature : char* VR_GetVRInitErrorAsSymbol(EVRInitError)
    - * native declaration : headers\openvr_capi.h:1886 - */ - public static native Pointer VR_GetVRInitErrorAsSymbol(int error); - /** - * Original signature : char* VR_GetVRInitErrorAsEnglishDescription(EVRInitError)
    - * native declaration : headers\openvr_capi.h:1888 - */ - public static native Pointer VR_GetVRInitErrorAsEnglishDescription(int error); - public static class VkQueue_T extends PointerType { - public VkQueue_T(Pointer address) { - super(address); - } - public VkQueue_T() { - super(); - } - }; - public static class VkPhysicalDevice_T extends PointerType { - public VkPhysicalDevice_T(Pointer address) { - super(address); - } - public VkPhysicalDevice_T() { - super(); - } - }; - public static class VkInstance_T extends PointerType { - public VkInstance_T(Pointer address) { - super(address); - } - public VkInstance_T() { - super(); - } - }; - public static class ID3D12CommandQueue extends PointerType { - public ID3D12CommandQueue(Pointer address) { - super(address); - } - public ID3D12CommandQueue() { - super(); - } - }; - public static class ID3D12Resource extends PointerType { - public ID3D12Resource(Pointer address) { - super(address); - } - public ID3D12Resource() { - super(); - } - }; - public static class VkDevice_T extends PointerType { - public VkDevice_T(Pointer address) { - super(address); - } - public VkDevice_T() { - super(); - } - }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/NotificationBitmap_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/NotificationBitmap_t.java index d8dcbf67d..1a932f1ec 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/NotificationBitmap_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/NotificationBitmap_t.java @@ -4,44 +4,44 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1236
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class NotificationBitmap_t extends Structure { + * native declaration : headers\openvr_capi.h:1263
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class NotificationBitmap_t extends Structure { /** - * void *
    - * C type : void* - */ - public Pointer m_pImageData; - public int m_nWidth; - public int m_nHeight; - public int m_nBytesPerPixel; - public NotificationBitmap_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_pImageData", "m_nWidth", "m_nHeight", "m_nBytesPerPixel"); - } + * void *
    + * C type : void* + */ + public Pointer m_pImageData; + public int m_nWidth; + public int m_nHeight; + public int m_nBytesPerPixel; + public NotificationBitmap_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_pImageData", "m_nWidth", "m_nHeight", "m_nBytesPerPixel"); + } /** - * @param m_pImageData void *
    - * C type : void* - */ - public NotificationBitmap_t(Pointer m_pImageData, int m_nWidth, int m_nHeight, int m_nBytesPerPixel) { - super(); - this.m_pImageData = m_pImageData; - this.m_nWidth = m_nWidth; - this.m_nHeight = m_nHeight; - this.m_nBytesPerPixel = m_nBytesPerPixel; - } - public NotificationBitmap_t(Pointer peer) { - super(peer); - } - public static class ByReference extends NotificationBitmap_t implements Structure.ByReference { - - }; - public static class ByValue extends NotificationBitmap_t implements Structure.ByValue { - - }; + * @param m_pImageData void *
    + * C type : void* + */ + public NotificationBitmap_t(Pointer m_pImageData, int m_nWidth, int m_nHeight, int m_nBytesPerPixel) { + super(); + this.m_pImageData = m_pImageData; + this.m_nWidth = m_nWidth; + this.m_nHeight = m_nHeight; + this.m_nBytesPerPixel = m_nBytesPerPixel; + } + public NotificationBitmap_t(Pointer peer) { + super(peer); + } + public static class ByReference extends NotificationBitmap_t implements Structure.ByReference { + + }; + public static class ByValue extends NotificationBitmap_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/OpenVRUtil.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/OpenVRUtil.java index fd7731f1c..78b96e962 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/OpenVRUtil.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/OpenVRUtil.java @@ -1,6 +1,6 @@ package com.jme3.system.jopenvr; -import com.jme3.input.vr.OpenVRInput; +import com.jme3.input.vr.openvr.OpenVRInput; import com.jme3.system.jopenvr.JOpenVRLibrary.EColorSpace; import com.jme3.system.jopenvr.JOpenVRLibrary.ETextureType; import com.jme3.system.jopenvr.JOpenVRLibrary.ETrackedDeviceProperty; @@ -13,8 +13,7 @@ import com.sun.jna.ptr.IntByReference; /** * A utility class that provide helper methods for OpenVR system. - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org - * + * @author Julien Seinturier - 2017 - http://www.seinturier.fr */ public class OpenVRUtil { @@ -677,9 +676,6 @@ public class OpenVRUtil { case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary: str = ""; break; - case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_UsesDriverDirectMode_Bool: - str = ""; - break; case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_AttachedDeviceId_String: str = ""; break; diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ComponentState_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ComponentState_t.java index ca123da43..4bd2b75bc 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ComponentState_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ComponentState_t.java @@ -4,42 +4,42 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1205
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class RenderModel_ComponentState_t extends Structure { - /** C type : HmdMatrix34_t */ - public HmdMatrix34_t mTrackingToComponentRenderModel; - /** C type : HmdMatrix34_t */ - public HmdMatrix34_t mTrackingToComponentLocal; - /** C type : VRComponentProperties */ - public int uProperties; - public RenderModel_ComponentState_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("mTrackingToComponentRenderModel", "mTrackingToComponentLocal", "uProperties"); - } + * native declaration : headers\openvr_capi.h:1232
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class RenderModel_ComponentState_t extends Structure { + /** C type : HmdMatrix34_t */ + public HmdMatrix34_t mTrackingToComponentRenderModel; + /** C type : HmdMatrix34_t */ + public HmdMatrix34_t mTrackingToComponentLocal; + /** C type : VRComponentProperties */ + public int uProperties; + public RenderModel_ComponentState_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("mTrackingToComponentRenderModel", "mTrackingToComponentLocal", "uProperties"); + } /** - * @param mTrackingToComponentRenderModel C type : HmdMatrix34_t
    - * @param mTrackingToComponentLocal C type : HmdMatrix34_t
    - * @param uProperties C type : VRComponentProperties - */ - public RenderModel_ComponentState_t(HmdMatrix34_t mTrackingToComponentRenderModel, HmdMatrix34_t mTrackingToComponentLocal, int uProperties) { - super(); - this.mTrackingToComponentRenderModel = mTrackingToComponentRenderModel; - this.mTrackingToComponentLocal = mTrackingToComponentLocal; - this.uProperties = uProperties; - } - public RenderModel_ComponentState_t(Pointer peer) { - super(peer); - } - public static class ByReference extends RenderModel_ComponentState_t implements Structure.ByReference { - - }; - public static class ByValue extends RenderModel_ComponentState_t implements Structure.ByValue { - - }; + * @param mTrackingToComponentRenderModel C type : HmdMatrix34_t
    + * @param mTrackingToComponentLocal C type : HmdMatrix34_t
    + * @param uProperties C type : VRComponentProperties + */ + public RenderModel_ComponentState_t(HmdMatrix34_t mTrackingToComponentRenderModel, HmdMatrix34_t mTrackingToComponentLocal, int uProperties) { + super(); + this.mTrackingToComponentRenderModel = mTrackingToComponentRenderModel; + this.mTrackingToComponentLocal = mTrackingToComponentLocal; + this.uProperties = uProperties; + } + public RenderModel_ComponentState_t(Pointer peer) { + super(peer); + } + public static class ByReference extends RenderModel_ComponentState_t implements Structure.ByReference { + + }; + public static class ByValue extends RenderModel_ComponentState_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ControllerMode_State_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ControllerMode_State_t.java index 768e3c17d..84a2c0b55 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ControllerMode_State_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ControllerMode_State_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1229
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class RenderModel_ControllerMode_State_t extends Structure { - public byte bScrollWheelVisible; - public RenderModel_ControllerMode_State_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("bScrollWheelVisible"); - } - public RenderModel_ControllerMode_State_t(byte bScrollWheelVisible) { - super(); - this.bScrollWheelVisible = bScrollWheelVisible; - } - public RenderModel_ControllerMode_State_t(Pointer peer) { - super(peer); - } - public static class ByReference extends RenderModel_ControllerMode_State_t implements Structure.ByReference { - - }; - public static class ByValue extends RenderModel_ControllerMode_State_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1256
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class RenderModel_ControllerMode_State_t extends Structure { + public byte bScrollWheelVisible; + public RenderModel_ControllerMode_State_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("bScrollWheelVisible"); + } + public RenderModel_ControllerMode_State_t(byte bScrollWheelVisible) { + super(); + this.bScrollWheelVisible = bScrollWheelVisible; + } + public RenderModel_ControllerMode_State_t(Pointer peer) { + super(peer); + } + public static class ByReference extends RenderModel_ControllerMode_State_t implements Structure.ByReference { + + }; + public static class ByValue extends RenderModel_ControllerMode_State_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_TextureMap_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_TextureMap_t.java index 243b29983..06a5d714b 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_TextureMap_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_TextureMap_t.java @@ -4,42 +4,42 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1217
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class RenderModel_TextureMap_t extends Structure { - public short unWidth; - public short unHeight; + * native declaration : headers\openvr_capi.h:1244
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class RenderModel_TextureMap_t extends Structure { + public short unWidth; + public short unHeight; /** - * const uint8_t *
    - * C type : uint8_t* - */ - public Pointer rubTextureMapData; - public RenderModel_TextureMap_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("unWidth", "unHeight", "rubTextureMapData"); - } + * const uint8_t *
    + * C type : uint8_t* + */ + public Pointer rubTextureMapData; + public RenderModel_TextureMap_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("unWidth", "unHeight", "rubTextureMapData"); + } /** - * @param rubTextureMapData const uint8_t *
    - * C type : uint8_t* - */ - public RenderModel_TextureMap_t(short unWidth, short unHeight, Pointer rubTextureMapData) { - super(); - this.unWidth = unWidth; - this.unHeight = unHeight; - this.rubTextureMapData = rubTextureMapData; - } - public RenderModel_TextureMap_t(Pointer peer) { - super(peer); - } - public static class ByReference extends RenderModel_TextureMap_t implements Structure.ByReference { - - }; - public static class ByValue extends RenderModel_TextureMap_t implements Structure.ByValue { - - }; + * @param rubTextureMapData const uint8_t *
    + * C type : uint8_t* + */ + public RenderModel_TextureMap_t(short unWidth, short unHeight, Pointer rubTextureMapData) { + super(); + this.unWidth = unWidth; + this.unHeight = unHeight; + this.rubTextureMapData = rubTextureMapData; + } + public RenderModel_TextureMap_t(Pointer peer) { + super(peer); + } + public static class ByReference extends RenderModel_TextureMap_t implements Structure.ByReference { + + }; + public static class ByValue extends RenderModel_TextureMap_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_Vertex_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_Vertex_t.java index d4087fbed..5cd761b24 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_Vertex_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_Vertex_t.java @@ -4,48 +4,48 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1211
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class RenderModel_Vertex_t extends Structure { - /** C type : HmdVector3_t */ - public HmdVector3_t vPosition; - /** C type : HmdVector3_t */ - public HmdVector3_t vNormal; + * native declaration : headers\openvr_capi.h:1238
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class RenderModel_Vertex_t extends Structure { + /** C type : HmdVector3_t */ + public HmdVector3_t vPosition; + /** C type : HmdVector3_t */ + public HmdVector3_t vNormal; /** - * float[2]
    - * C type : float[2] - */ - public float[] rfTextureCoord = new float[2]; - public RenderModel_Vertex_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("vPosition", "vNormal", "rfTextureCoord"); - } + * float[2]
    + * C type : float[2] + */ + public float[] rfTextureCoord = new float[2]; + public RenderModel_Vertex_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("vPosition", "vNormal", "rfTextureCoord"); + } /** - * @param vPosition C type : HmdVector3_t
    - * @param vNormal C type : HmdVector3_t
    - * @param rfTextureCoord float[2]
    - * C type : float[2] - */ - public RenderModel_Vertex_t(HmdVector3_t vPosition, HmdVector3_t vNormal, float rfTextureCoord[]) { - super(); - this.vPosition = vPosition; - this.vNormal = vNormal; - if ((rfTextureCoord.length != this.rfTextureCoord.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.rfTextureCoord = rfTextureCoord; - } - public RenderModel_Vertex_t(Pointer peer) { - super(peer); - } - public static class ByReference extends RenderModel_Vertex_t implements Structure.ByReference { - - }; - public static class ByValue extends RenderModel_Vertex_t implements Structure.ByValue { - - }; + * @param vPosition C type : HmdVector3_t
    + * @param vNormal C type : HmdVector3_t
    + * @param rfTextureCoord float[2]
    + * C type : float[2] + */ + public RenderModel_Vertex_t(HmdVector3_t vPosition, HmdVector3_t vNormal, float rfTextureCoord[]) { + super(); + this.vPosition = vPosition; + this.vNormal = vNormal; + if ((rfTextureCoord.length != this.rfTextureCoord.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.rfTextureCoord = rfTextureCoord; + } + public RenderModel_Vertex_t(Pointer peer) { + super(peer); + } + public static class ByReference extends RenderModel_Vertex_t implements Structure.ByReference { + + }; + public static class ByValue extends RenderModel_Vertex_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_t.java index 4687a593a..9c1f5db2d 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_t.java @@ -5,54 +5,54 @@ import com.sun.jna.ptr.ShortByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1226
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class RenderModel_t extends Structure { + * native declaration : headers\openvr_capi.h:1253
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class RenderModel_t extends Structure { /** - * const struct vr::RenderModel_Vertex_t *
    - * C type : RenderModel_Vertex_t* - */ - public com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData; - public int unVertexCount; + * const struct vr::RenderModel_Vertex_t *
    + * C type : RenderModel_Vertex_t* + */ + public com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData; + public int unVertexCount; /** - * const uint16_t *
    - * C type : uint16_t* - */ - public ShortByReference rIndexData; - public int unTriangleCount; - /** C type : TextureID_t */ - public int diffuseTextureId; - public RenderModel_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("rVertexData", "unVertexCount", "rIndexData", "unTriangleCount", "diffuseTextureId"); - } + * const uint16_t *
    + * C type : uint16_t* + */ + public ShortByReference rIndexData; + public int unTriangleCount; + /** C type : TextureID_t */ + public int diffuseTextureId; + public RenderModel_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("rVertexData", "unVertexCount", "rIndexData", "unTriangleCount", "diffuseTextureId"); + } /** - * @param rVertexData const struct vr::RenderModel_Vertex_t *
    - * C type : RenderModel_Vertex_t*
    - * @param rIndexData const uint16_t *
    - * C type : uint16_t*
    - * @param diffuseTextureId C type : TextureID_t - */ - public RenderModel_t(com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData, int unVertexCount, ShortByReference rIndexData, int unTriangleCount, int diffuseTextureId) { - super(); - this.rVertexData = rVertexData; - this.unVertexCount = unVertexCount; - this.rIndexData = rIndexData; - this.unTriangleCount = unTriangleCount; - this.diffuseTextureId = diffuseTextureId; - } - public RenderModel_t(Pointer peer) { - super(peer); - } - public static class ByReference extends RenderModel_t implements Structure.ByReference { - - }; - public static class ByValue extends RenderModel_t implements Structure.ByValue { - - }; + * @param rVertexData const struct vr::RenderModel_Vertex_t *
    + * C type : RenderModel_Vertex_t*
    + * @param rIndexData const uint16_t *
    + * C type : uint16_t*
    + * @param diffuseTextureId C type : TextureID_t + */ + public RenderModel_t(com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData, int unVertexCount, ShortByReference rIndexData, int unTriangleCount, int diffuseTextureId) { + super(); + this.rVertexData = rVertexData; + this.unVertexCount = unVertexCount; + this.rIndexData = rIndexData; + this.unTriangleCount = unTriangleCount; + this.diffuseTextureId = diffuseTextureId; + } + public RenderModel_t(Pointer peer) { + super(peer); + } + public static class ByReference extends RenderModel_t implements Structure.ByReference { + + }; + public static class ByValue extends RenderModel_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Texture_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Texture_t.java index fc12dea2c..a9f326f09 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/Texture_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/Texture_t.java @@ -4,54 +4,54 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:964
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class Texture_t extends Structure { + * native declaration : headers\openvr_capi.h:991
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class Texture_t extends Structure { /** - * void *
    - * C type : void* - */ - public int handle; + * void *
    + * C type : void* + */ + public int handle; /** - * @see ETextureType
    - * C type : ETextureType - */ - public int eType; + * @see ETextureType
    + * C type : ETextureType + */ + public int eType; /** - * @see EColorSpace
    - * C type : EColorSpace - */ - public int eColorSpace; - public Texture_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("handle", "eType", "eColorSpace"); - } + * @see EColorSpace
    + * C type : EColorSpace + */ + public int eColorSpace; + public Texture_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("handle", "eType", "eColorSpace"); + } /** - * @param handle void *
    - * C type : void*
    - * @param eType @see ETextureType
    - * C type : ETextureType
    - * @param eColorSpace @see EColorSpace
    - * C type : EColorSpace - */ - public Texture_t(int handle, int eType, int eColorSpace) { - super(); - this.handle = handle; - this.eType = eType; - this.eColorSpace = eColorSpace; - } - public Texture_t(Pointer peer) { - super(peer); - } - public static class ByReference extends Texture_t implements Structure.ByReference { - - }; - public static class ByValue extends Texture_t implements Structure.ByValue { - - }; + * @param handle void *
    + * C type : void*
    + * @param eType @see ETextureType
    + * C type : ETextureType
    + * @param eColorSpace @see EColorSpace
    + * C type : EColorSpace + */ + public Texture_t(int handle, int eType, int eColorSpace) { + super(); + this.handle = handle; + this.eType = eType; + this.eColorSpace = eColorSpace; + } + public Texture_t(Pointer peer) { + super(peer); + } + public static class ByReference extends Texture_t implements Structure.ByReference { + + }; + public static class ByValue extends Texture_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/TrackedDevicePose_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/TrackedDevicePose_t.java index 7d7823b95..9ccdab58a 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/TrackedDevicePose_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/TrackedDevicePose_t.java @@ -4,54 +4,54 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:974
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class TrackedDevicePose_t extends Structure { - /** C type : HmdMatrix34_t */ - public HmdMatrix34_t mDeviceToAbsoluteTracking; - /** C type : HmdVector3_t */ - public HmdVector3_t vVelocity; - /** C type : HmdVector3_t */ - public HmdVector3_t vAngularVelocity; + * native declaration : headers\openvr_capi.h:1001
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class TrackedDevicePose_t extends Structure { + /** C type : HmdMatrix34_t */ + public HmdMatrix34_t mDeviceToAbsoluteTracking; + /** C type : HmdVector3_t */ + public HmdVector3_t vVelocity; + /** C type : HmdVector3_t */ + public HmdVector3_t vAngularVelocity; /** - * @see ETrackingResult
    - * C type : ETrackingResult - */ - public int eTrackingResult; - public byte bPoseIsValid; - public byte bDeviceIsConnected; - public TrackedDevicePose_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("mDeviceToAbsoluteTracking", "vVelocity", "vAngularVelocity", "eTrackingResult", "bPoseIsValid", "bDeviceIsConnected"); - } + * @see ETrackingResult
    + * C type : ETrackingResult + */ + public int eTrackingResult; + public byte bPoseIsValid; + public byte bDeviceIsConnected; + public TrackedDevicePose_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("mDeviceToAbsoluteTracking", "vVelocity", "vAngularVelocity", "eTrackingResult", "bPoseIsValid", "bDeviceIsConnected"); + } /** - * @param mDeviceToAbsoluteTracking C type : HmdMatrix34_t
    - * @param vVelocity C type : HmdVector3_t
    - * @param vAngularVelocity C type : HmdVector3_t
    - * @param eTrackingResult @see ETrackingResult
    - * C type : ETrackingResult - */ - public TrackedDevicePose_t(HmdMatrix34_t mDeviceToAbsoluteTracking, HmdVector3_t vVelocity, HmdVector3_t vAngularVelocity, int eTrackingResult, byte bPoseIsValid, byte bDeviceIsConnected) { - super(); - this.mDeviceToAbsoluteTracking = mDeviceToAbsoluteTracking; - this.vVelocity = vVelocity; - this.vAngularVelocity = vAngularVelocity; - this.eTrackingResult = eTrackingResult; - this.bPoseIsValid = bPoseIsValid; - this.bDeviceIsConnected = bDeviceIsConnected; - } - public TrackedDevicePose_t(Pointer peer) { - super(peer); - } - public static class ByReference extends TrackedDevicePose_t implements Structure.ByReference { - - }; - public static class ByValue extends TrackedDevicePose_t implements Structure.ByValue { - - }; + * @param mDeviceToAbsoluteTracking C type : HmdMatrix34_t
    + * @param vVelocity C type : HmdVector3_t
    + * @param vAngularVelocity C type : HmdVector3_t
    + * @param eTrackingResult @see ETrackingResult
    + * C type : ETrackingResult + */ + public TrackedDevicePose_t(HmdMatrix34_t mDeviceToAbsoluteTracking, HmdVector3_t vVelocity, HmdVector3_t vAngularVelocity, int eTrackingResult, byte bPoseIsValid, byte bDeviceIsConnected) { + super(); + this.mDeviceToAbsoluteTracking = mDeviceToAbsoluteTracking; + this.vVelocity = vVelocity; + this.vAngularVelocity = vAngularVelocity; + this.eTrackingResult = eTrackingResult; + this.bPoseIsValid = bPoseIsValid; + this.bDeviceIsConnected = bDeviceIsConnected; + } + public TrackedDevicePose_t(Pointer peer) { + super(peer); + } + public static class ByReference extends TrackedDevicePose_t implements Structure.ByReference { + + }; + public static class ByValue extends TrackedDevicePose_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerAxis_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerAxis_t.java index 4a5d4d652..b6fea53ae 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerAxis_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerAxis_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1094
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VRControllerAxis_t extends Structure { - public float x; - public float y; - public VRControllerAxis_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("x", "y"); - } - public VRControllerAxis_t(float x, float y) { - super(); - this.x = x; - this.y = y; - } - public VRControllerAxis_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VRControllerAxis_t implements Structure.ByReference { - - }; - public static class ByValue extends VRControllerAxis_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1121
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VRControllerAxis_t extends Structure { + public float x; + public float y; + public VRControllerAxis_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("x", "y"); + } + public VRControllerAxis_t(float x, float y) { + super(); + this.x = x; + this.y = y; + } + public VRControllerAxis_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VRControllerAxis_t implements Structure.ByReference { + + }; + public static class ByValue extends VRControllerAxis_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerState_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerState_t.java index 04643f804..b1415c56b 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerState_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerState_t.java @@ -4,46 +4,46 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1101
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VRControllerState_t extends Structure { - public int unPacketNum; - public long ulButtonPressed; - public long ulButtonTouched; + * native declaration : headers\openvr_capi.h:1128
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VRControllerState_t extends Structure { + public int unPacketNum; + public long ulButtonPressed; + public long ulButtonTouched; /** - * struct vr::VRControllerAxis_t[5]
    - * C type : VRControllerAxis_t[5] - */ - public VRControllerAxis_t[] rAxis = new VRControllerAxis_t[5]; - public VRControllerState_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("unPacketNum", "ulButtonPressed", "ulButtonTouched", "rAxis"); - } + * struct vr::VRControllerAxis_t[5]
    + * C type : VRControllerAxis_t[5] + */ + public VRControllerAxis_t[] rAxis = new VRControllerAxis_t[5]; + public VRControllerState_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("unPacketNum", "ulButtonPressed", "ulButtonTouched", "rAxis"); + } /** - * @param rAxis struct vr::VRControllerAxis_t[5]
    - * C type : VRControllerAxis_t[5] - */ - public VRControllerState_t(int unPacketNum, long ulButtonPressed, long ulButtonTouched, VRControllerAxis_t rAxis[]) { - super(); - this.unPacketNum = unPacketNum; - this.ulButtonPressed = ulButtonPressed; - this.ulButtonTouched = ulButtonTouched; - if ((rAxis.length != this.rAxis.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.rAxis = rAxis; - } - public VRControllerState_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VRControllerState_t implements Structure.ByReference { - - }; - public static class ByValue extends VRControllerState_t implements Structure.ByValue { - - }; + * @param rAxis struct vr::VRControllerAxis_t[5]
    + * C type : VRControllerAxis_t[5] + */ + public VRControllerState_t(int unPacketNum, long ulButtonPressed, long ulButtonTouched, VRControllerAxis_t rAxis[]) { + super(); + this.unPacketNum = unPacketNum; + this.ulButtonPressed = ulButtonPressed; + this.ulButtonTouched = ulButtonTouched; + if ((rAxis.length != this.rAxis.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.rAxis = rAxis; + } + public VRControllerState_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VRControllerState_t implements Structure.ByReference { + + }; + public static class ByValue extends VRControllerState_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ApplicationLaunch_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ApplicationLaunch_t.java index 44b822885..1a6076561 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ApplicationLaunch_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ApplicationLaunch_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1072
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_ApplicationLaunch_t extends Structure { - public int pid; - public int unArgsHandle; - public VREvent_ApplicationLaunch_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("pid", "unArgsHandle"); - } - public VREvent_ApplicationLaunch_t(int pid, int unArgsHandle) { - super(); - this.pid = pid; - this.unArgsHandle = unArgsHandle; - } - public VREvent_ApplicationLaunch_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_ApplicationLaunch_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_ApplicationLaunch_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1099
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_ApplicationLaunch_t extends Structure { + public int pid; + public int unArgsHandle; + public VREvent_ApplicationLaunch_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("pid", "unArgsHandle"); + } + public VREvent_ApplicationLaunch_t(int pid, int unArgsHandle) { + super(); + this.pid = pid; + this.unArgsHandle = unArgsHandle; + } + public VREvent_ApplicationLaunch_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_ApplicationLaunch_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_ApplicationLaunch_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Chaperone_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Chaperone_t.java index e9c62bf42..a9f49cfde 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Chaperone_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Chaperone_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1051
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Chaperone_t extends Structure { - public long m_nPreviousUniverse; - public long m_nCurrentUniverse; - public VREvent_Chaperone_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nPreviousUniverse", "m_nCurrentUniverse"); - } - public VREvent_Chaperone_t(long m_nPreviousUniverse, long m_nCurrentUniverse) { - super(); - this.m_nPreviousUniverse = m_nPreviousUniverse; - this.m_nCurrentUniverse = m_nCurrentUniverse; - } - public VREvent_Chaperone_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Chaperone_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Chaperone_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1078
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Chaperone_t extends Structure { + public long m_nPreviousUniverse; + public long m_nCurrentUniverse; + public VREvent_Chaperone_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nPreviousUniverse", "m_nCurrentUniverse"); + } + public VREvent_Chaperone_t(long m_nPreviousUniverse, long m_nCurrentUniverse) { + super(); + this.m_nPreviousUniverse = m_nPreviousUniverse; + this.m_nCurrentUniverse = m_nCurrentUniverse; + } + public VREvent_Chaperone_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Chaperone_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Chaperone_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Controller_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Controller_t.java index 22f2c6e11..289bc79cc 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Controller_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Controller_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1006
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Controller_t extends Structure { - public int button; - public VREvent_Controller_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("button"); - } - public VREvent_Controller_t(int button) { - super(); - this.button = button; - } - public VREvent_Controller_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Controller_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Controller_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1033
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Controller_t extends Structure { + public int button; + public VREvent_Controller_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("button"); + } + public VREvent_Controller_t(int button) { + super(); + this.button = button; + } + public VREvent_Controller_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Controller_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Controller_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Data_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Data_t.java index 40b0a3db6..be4f2229a 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Data_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Data_t.java @@ -2,134 +2,134 @@ package com.jme3.system.jopenvr; import com.sun.jna.Pointer; import com.sun.jna.Union; /** - * native declaration : headers\openvr_capi.h:1278
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Data_t extends Union { - /** C type : VREvent_Reserved_t */ - public VREvent_Reserved_t reserved; - /** C type : VREvent_Controller_t */ - public VREvent_Controller_t controller; - /** C type : VREvent_Mouse_t */ - public VREvent_Mouse_t mouse; - /** C type : VREvent_Scroll_t */ - public VREvent_Scroll_t scroll; - /** C type : VREvent_Process_t */ - public VREvent_Process_t process; - /** C type : VREvent_Notification_t */ - public VREvent_Notification_t notification; - /** C type : VREvent_Overlay_t */ - public VREvent_Overlay_t overlay; - /** C type : VREvent_Status_t */ - public VREvent_Status_t status; - /** C type : VREvent_Keyboard_t */ - public VREvent_Keyboard_t keyboard; - /** C type : VREvent_Ipd_t */ - public VREvent_Ipd_t ipd; - /** C type : VREvent_Chaperone_t */ - public VREvent_Chaperone_t chaperone; - /** C type : VREvent_PerformanceTest_t */ - public VREvent_PerformanceTest_t performanceTest; - /** C type : VREvent_TouchPadMove_t */ - public VREvent_TouchPadMove_t touchPadMove; - /** C type : VREvent_SeatedZeroPoseReset_t */ - public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; - public VREvent_Data_t() { - super(); - } - /** @param reserved C type : VREvent_Reserved_t */ - public VREvent_Data_t(VREvent_Reserved_t reserved) { - super(); - this.reserved = reserved; - setType(VREvent_Reserved_t.class); - } - /** @param controller C type : VREvent_Controller_t */ - public VREvent_Data_t(VREvent_Controller_t controller) { - super(); - this.controller = controller; - setType(VREvent_Controller_t.class); - } - /** @param mouse C type : VREvent_Mouse_t */ - public VREvent_Data_t(VREvent_Mouse_t mouse) { - super(); - this.mouse = mouse; - setType(VREvent_Mouse_t.class); - } - /** @param scroll C type : VREvent_Scroll_t */ - public VREvent_Data_t(VREvent_Scroll_t scroll) { - super(); - this.scroll = scroll; - setType(VREvent_Scroll_t.class); - } - /** @param process C type : VREvent_Process_t */ - public VREvent_Data_t(VREvent_Process_t process) { - super(); - this.process = process; - setType(VREvent_Process_t.class); - } - /** @param notification C type : VREvent_Notification_t */ - public VREvent_Data_t(VREvent_Notification_t notification) { - super(); - this.notification = notification; - setType(VREvent_Notification_t.class); - } - /** @param overlay C type : VREvent_Overlay_t */ - public VREvent_Data_t(VREvent_Overlay_t overlay) { - super(); - this.overlay = overlay; - setType(VREvent_Overlay_t.class); - } - /** @param status C type : VREvent_Status_t */ - public VREvent_Data_t(VREvent_Status_t status) { - super(); - this.status = status; - setType(VREvent_Status_t.class); - } - /** @param keyboard C type : VREvent_Keyboard_t */ - public VREvent_Data_t(VREvent_Keyboard_t keyboard) { - super(); - this.keyboard = keyboard; - setType(VREvent_Keyboard_t.class); - } - /** @param ipd C type : VREvent_Ipd_t */ - public VREvent_Data_t(VREvent_Ipd_t ipd) { - super(); - this.ipd = ipd; - setType(VREvent_Ipd_t.class); - } - /** @param chaperone C type : VREvent_Chaperone_t */ - public VREvent_Data_t(VREvent_Chaperone_t chaperone) { - super(); - this.chaperone = chaperone; - setType(VREvent_Chaperone_t.class); - } - /** @param performanceTest C type : VREvent_PerformanceTest_t */ - public VREvent_Data_t(VREvent_PerformanceTest_t performanceTest) { - super(); - this.performanceTest = performanceTest; - setType(VREvent_PerformanceTest_t.class); - } - /** @param touchPadMove C type : VREvent_TouchPadMove_t */ - public VREvent_Data_t(VREvent_TouchPadMove_t touchPadMove) { - super(); - this.touchPadMove = touchPadMove; - setType(VREvent_TouchPadMove_t.class); - } - /** @param seatedZeroPoseReset C type : VREvent_SeatedZeroPoseReset_t */ - public VREvent_Data_t(VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset) { - super(); - this.seatedZeroPoseReset = seatedZeroPoseReset; - setType(VREvent_SeatedZeroPoseReset_t.class); - } - public VREvent_Data_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Data_t implements com.sun.jna.Structure.ByReference { - - }; - public static class ByValue extends VREvent_Data_t implements com.sun.jna.Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1307
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Data_t extends Union { + /** C type : VREvent_Reserved_t */ + public VREvent_Reserved_t reserved; + /** C type : VREvent_Controller_t */ + public VREvent_Controller_t controller; + /** C type : VREvent_Mouse_t */ + public VREvent_Mouse_t mouse; + /** C type : VREvent_Scroll_t */ + public VREvent_Scroll_t scroll; + /** C type : VREvent_Process_t */ + public VREvent_Process_t process; + /** C type : VREvent_Notification_t */ + public VREvent_Notification_t notification; + /** C type : VREvent_Overlay_t */ + public VREvent_Overlay_t overlay; + /** C type : VREvent_Status_t */ + public VREvent_Status_t status; + /** C type : VREvent_Keyboard_t */ + public VREvent_Keyboard_t keyboard; + /** C type : VREvent_Ipd_t */ + public VREvent_Ipd_t ipd; + /** C type : VREvent_Chaperone_t */ + public VREvent_Chaperone_t chaperone; + /** C type : VREvent_PerformanceTest_t */ + public VREvent_PerformanceTest_t performanceTest; + /** C type : VREvent_TouchPadMove_t */ + public VREvent_TouchPadMove_t touchPadMove; + /** C type : VREvent_SeatedZeroPoseReset_t */ + public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; + public VREvent_Data_t() { + super(); + } + /** @param reserved C type : VREvent_Reserved_t */ + public VREvent_Data_t(VREvent_Reserved_t reserved) { + super(); + this.reserved = reserved; + setType(VREvent_Reserved_t.class); + } + /** @param controller C type : VREvent_Controller_t */ + public VREvent_Data_t(VREvent_Controller_t controller) { + super(); + this.controller = controller; + setType(VREvent_Controller_t.class); + } + /** @param mouse C type : VREvent_Mouse_t */ + public VREvent_Data_t(VREvent_Mouse_t mouse) { + super(); + this.mouse = mouse; + setType(VREvent_Mouse_t.class); + } + /** @param scroll C type : VREvent_Scroll_t */ + public VREvent_Data_t(VREvent_Scroll_t scroll) { + super(); + this.scroll = scroll; + setType(VREvent_Scroll_t.class); + } + /** @param process C type : VREvent_Process_t */ + public VREvent_Data_t(VREvent_Process_t process) { + super(); + this.process = process; + setType(VREvent_Process_t.class); + } + /** @param notification C type : VREvent_Notification_t */ + public VREvent_Data_t(VREvent_Notification_t notification) { + super(); + this.notification = notification; + setType(VREvent_Notification_t.class); + } + /** @param overlay C type : VREvent_Overlay_t */ + public VREvent_Data_t(VREvent_Overlay_t overlay) { + super(); + this.overlay = overlay; + setType(VREvent_Overlay_t.class); + } + /** @param status C type : VREvent_Status_t */ + public VREvent_Data_t(VREvent_Status_t status) { + super(); + this.status = status; + setType(VREvent_Status_t.class); + } + /** @param keyboard C type : VREvent_Keyboard_t */ + public VREvent_Data_t(VREvent_Keyboard_t keyboard) { + super(); + this.keyboard = keyboard; + setType(VREvent_Keyboard_t.class); + } + /** @param ipd C type : VREvent_Ipd_t */ + public VREvent_Data_t(VREvent_Ipd_t ipd) { + super(); + this.ipd = ipd; + setType(VREvent_Ipd_t.class); + } + /** @param chaperone C type : VREvent_Chaperone_t */ + public VREvent_Data_t(VREvent_Chaperone_t chaperone) { + super(); + this.chaperone = chaperone; + setType(VREvent_Chaperone_t.class); + } + /** @param performanceTest C type : VREvent_PerformanceTest_t */ + public VREvent_Data_t(VREvent_PerformanceTest_t performanceTest) { + super(); + this.performanceTest = performanceTest; + setType(VREvent_PerformanceTest_t.class); + } + /** @param touchPadMove C type : VREvent_TouchPadMove_t */ + public VREvent_Data_t(VREvent_TouchPadMove_t touchPadMove) { + super(); + this.touchPadMove = touchPadMove; + setType(VREvent_TouchPadMove_t.class); + } + /** @param seatedZeroPoseReset C type : VREvent_SeatedZeroPoseReset_t */ + public VREvent_Data_t(VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset) { + super(); + this.seatedZeroPoseReset = seatedZeroPoseReset; + setType(VREvent_SeatedZeroPoseReset_t.class); + } + public VREvent_Data_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Data_t implements com.sun.jna.Structure.ByReference { + + }; + public static class ByValue extends VREvent_Data_t implements com.sun.jna.Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_EditingCameraSurface_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_EditingCameraSurface_t.java index ee33f365d..562fb69ee 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_EditingCameraSurface_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_EditingCameraSurface_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1076
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_EditingCameraSurface_t extends Structure { - public long overlayHandle; - public int nVisualMode; - public VREvent_EditingCameraSurface_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("overlayHandle", "nVisualMode"); - } - public VREvent_EditingCameraSurface_t(long overlayHandle, int nVisualMode) { - super(); - this.overlayHandle = overlayHandle; - this.nVisualMode = nVisualMode; - } - public VREvent_EditingCameraSurface_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_EditingCameraSurface_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_EditingCameraSurface_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1103
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_EditingCameraSurface_t extends Structure { + public long overlayHandle; + public int nVisualMode; + public VREvent_EditingCameraSurface_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("overlayHandle", "nVisualMode"); + } + public VREvent_EditingCameraSurface_t(long overlayHandle, int nVisualMode) { + super(); + this.overlayHandle = overlayHandle; + this.nVisualMode = nVisualMode; + } + public VREvent_EditingCameraSurface_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_EditingCameraSurface_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_EditingCameraSurface_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Ipd_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Ipd_t.java index 509b2cfd1..f1c56ba3f 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Ipd_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Ipd_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1047
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Ipd_t extends Structure { - public float ipdMeters; - public VREvent_Ipd_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("ipdMeters"); - } - public VREvent_Ipd_t(float ipdMeters) { - super(); - this.ipdMeters = ipdMeters; - } - public VREvent_Ipd_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Ipd_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Ipd_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1074
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Ipd_t extends Structure { + public float ipdMeters; + public VREvent_Ipd_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("ipdMeters"); + } + public VREvent_Ipd_t(float ipdMeters) { + super(); + this.ipdMeters = ipdMeters; + } + public VREvent_Ipd_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Ipd_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Ipd_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Keyboard_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Keyboard_t.java index e3a5d1261..3847d634c 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Keyboard_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Keyboard_t.java @@ -4,42 +4,42 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1044
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Keyboard_t extends Structure { + * native declaration : headers\openvr_capi.h:1071
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Keyboard_t extends Structure { /** - * char[8]
    - * C type : char*[8] - */ - public Pointer[] cNewInput = new Pointer[8]; - public long uUserValue; - public VREvent_Keyboard_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("cNewInput", "uUserValue"); - } + * char[8]
    + * C type : char*[8] + */ + public Pointer[] cNewInput = new Pointer[8]; + public long uUserValue; + public VREvent_Keyboard_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("cNewInput", "uUserValue"); + } /** - * @param cNewInput char[8]
    - * C type : char*[8] - */ - public VREvent_Keyboard_t(Pointer cNewInput[], long uUserValue) { - super(); - if ((cNewInput.length != this.cNewInput.length)) - throw new IllegalArgumentException("Wrong array size !"); - this.cNewInput = cNewInput; - this.uUserValue = uUserValue; - } - public VREvent_Keyboard_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Keyboard_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Keyboard_t implements Structure.ByValue { - - }; + * @param cNewInput char[8]
    + * C type : char*[8] + */ + public VREvent_Keyboard_t(Pointer cNewInput[], long uUserValue) { + super(); + if ((cNewInput.length != this.cNewInput.length)) + throw new IllegalArgumentException("Wrong array size !"); + this.cNewInput = cNewInput; + this.uUserValue = uUserValue; + } + public VREvent_Keyboard_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Keyboard_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Keyboard_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_MessageOverlay_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_MessageOverlay_t.java index bf0e25b28..d10f3cb98 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_MessageOverlay_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_MessageOverlay_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1079
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_MessageOverlay_t extends Structure { - public int unVRMessageOverlayResponse; - public VREvent_MessageOverlay_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("unVRMessageOverlayResponse"); - } - public VREvent_MessageOverlay_t(int unVRMessageOverlayResponse) { - super(); - this.unVRMessageOverlayResponse = unVRMessageOverlayResponse; - } - public VREvent_MessageOverlay_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_MessageOverlay_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_MessageOverlay_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1106
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_MessageOverlay_t extends Structure { + public int unVRMessageOverlayResponse; + public VREvent_MessageOverlay_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("unVRMessageOverlayResponse"); + } + public VREvent_MessageOverlay_t(int unVRMessageOverlayResponse) { + super(); + this.unVRMessageOverlayResponse = unVRMessageOverlayResponse; + } + public VREvent_MessageOverlay_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_MessageOverlay_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_MessageOverlay_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Mouse_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Mouse_t.java index 832534db6..bd2886747 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Mouse_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Mouse_t.java @@ -4,34 +4,34 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1011
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Mouse_t extends Structure { - public float x; - public float y; - public int button; - public VREvent_Mouse_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("x", "y", "button"); - } - public VREvent_Mouse_t(float x, float y, int button) { - super(); - this.x = x; - this.y = y; - this.button = button; - } - public VREvent_Mouse_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Mouse_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Mouse_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1038
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Mouse_t extends Structure { + public float x; + public float y; + public int button; + public VREvent_Mouse_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("x", "y", "button"); + } + public VREvent_Mouse_t(float x, float y, int button) { + super(); + this.x = x; + this.y = y; + this.button = button; + } + public VREvent_Mouse_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Mouse_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Mouse_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Notification_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Notification_t.java index ed7bbe420..9f4942e26 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Notification_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Notification_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1028
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Notification_t extends Structure { - public long ulUserValue; - public int notificationId; - public VREvent_Notification_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("ulUserValue", "notificationId"); - } - public VREvent_Notification_t(long ulUserValue, int notificationId) { - super(); - this.ulUserValue = ulUserValue; - this.notificationId = notificationId; - } - public VREvent_Notification_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Notification_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Notification_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1055
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Notification_t extends Structure { + public long ulUserValue; + public int notificationId; + public VREvent_Notification_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("ulUserValue", "notificationId"); + } + public VREvent_Notification_t(long ulUserValue, int notificationId) { + super(); + this.ulUserValue = ulUserValue; + this.notificationId = notificationId; + } + public VREvent_Notification_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Notification_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Notification_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Overlay_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Overlay_t.java index f693d2a42..5ee036082 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Overlay_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Overlay_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1036
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Overlay_t extends Structure { - public long overlayHandle; - public VREvent_Overlay_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("overlayHandle"); - } - public VREvent_Overlay_t(long overlayHandle) { - super(); - this.overlayHandle = overlayHandle; - } - public VREvent_Overlay_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Overlay_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Overlay_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1063
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Overlay_t extends Structure { + public long overlayHandle; + public VREvent_Overlay_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("overlayHandle"); + } + public VREvent_Overlay_t(long overlayHandle) { + super(); + this.overlayHandle = overlayHandle; + } + public VREvent_Overlay_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Overlay_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Overlay_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_PerformanceTest_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_PerformanceTest_t.java index 9d0baeb59..dcb49de81 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_PerformanceTest_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_PerformanceTest_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1058
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_PerformanceTest_t extends Structure { - public int m_nFidelityLevel; - public VREvent_PerformanceTest_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nFidelityLevel"); - } - public VREvent_PerformanceTest_t(int m_nFidelityLevel) { - super(); - this.m_nFidelityLevel = m_nFidelityLevel; - } - public VREvent_PerformanceTest_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_PerformanceTest_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_PerformanceTest_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1085
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_PerformanceTest_t extends Structure { + public int m_nFidelityLevel; + public VREvent_PerformanceTest_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nFidelityLevel"); + } + public VREvent_PerformanceTest_t(int m_nFidelityLevel) { + super(); + this.m_nFidelityLevel = m_nFidelityLevel; + } + public VREvent_PerformanceTest_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_PerformanceTest_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_PerformanceTest_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Process_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Process_t.java index 5374287c2..e0f957426 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Process_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Process_t.java @@ -4,34 +4,34 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1033
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Process_t extends Structure { - public int pid; - public int oldPid; - public byte bForced; - public VREvent_Process_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("pid", "oldPid", "bForced"); - } - public VREvent_Process_t(int pid, int oldPid, byte bForced) { - super(); - this.pid = pid; - this.oldPid = oldPid; - this.bForced = bForced; - } - public VREvent_Process_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Process_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Process_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1060
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Process_t extends Structure { + public int pid; + public int oldPid; + public byte bForced; + public VREvent_Process_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("pid", "oldPid", "bForced"); + } + public VREvent_Process_t(int pid, int oldPid, byte bForced) { + super(); + this.pid = pid; + this.oldPid = oldPid; + this.bForced = bForced; + } + public VREvent_Process_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Process_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Process_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Property_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Property_t.java index 7b9dcb8e6..0b9664778 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Property_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Property_t.java @@ -4,42 +4,42 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1085
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Property_t extends Structure { - /** C type : PropertyContainerHandle_t */ - public long container; + * native declaration : headers\openvr_capi.h:1112
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Property_t extends Structure { + /** C type : PropertyContainerHandle_t */ + public long container; /** - * @see ETrackedDeviceProperty
    - * C type : ETrackedDeviceProperty - */ - public int prop; - public VREvent_Property_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("container", "prop"); - } + * @see ETrackedDeviceProperty
    + * C type : ETrackedDeviceProperty + */ + public int prop; + public VREvent_Property_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("container", "prop"); + } /** - * @param container C type : PropertyContainerHandle_t
    - * @param prop @see ETrackedDeviceProperty
    - * C type : ETrackedDeviceProperty - */ - public VREvent_Property_t(long container, int prop) { - super(); - this.container = container; - this.prop = prop; - } - public VREvent_Property_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Property_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Property_t implements Structure.ByValue { - - }; + * @param container C type : PropertyContainerHandle_t
    + * @param prop @see ETrackedDeviceProperty
    + * C type : ETrackedDeviceProperty + */ + public VREvent_Property_t(long container, int prop) { + super(); + this.container = container; + this.prop = prop; + } + public VREvent_Property_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Property_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Property_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Reserved_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Reserved_t.java index 638428c62..18e63c3ee 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Reserved_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Reserved_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1055
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Reserved_t extends Structure { - public long reserved0; - public long reserved1; - public VREvent_Reserved_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("reserved0", "reserved1"); - } - public VREvent_Reserved_t(long reserved0, long reserved1) { - super(); - this.reserved0 = reserved0; - this.reserved1 = reserved1; - } - public VREvent_Reserved_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Reserved_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Reserved_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1082
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Reserved_t extends Structure { + public long reserved0; + public long reserved1; + public VREvent_Reserved_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("reserved0", "reserved1"); + } + public VREvent_Reserved_t(long reserved0, long reserved1) { + super(); + this.reserved0 = reserved0; + this.reserved1 = reserved1; + } + public VREvent_Reserved_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Reserved_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Reserved_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ScreenshotProgress_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ScreenshotProgress_t.java index c1cb365e1..3f822c283 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ScreenshotProgress_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ScreenshotProgress_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1068
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_ScreenshotProgress_t extends Structure { - public float progress; - public VREvent_ScreenshotProgress_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("progress"); - } - public VREvent_ScreenshotProgress_t(float progress) { - super(); - this.progress = progress; - } - public VREvent_ScreenshotProgress_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_ScreenshotProgress_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_ScreenshotProgress_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1095
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_ScreenshotProgress_t extends Structure { + public float progress; + public VREvent_ScreenshotProgress_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("progress"); + } + public VREvent_ScreenshotProgress_t(float progress) { + super(); + this.progress = progress; + } + public VREvent_ScreenshotProgress_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_ScreenshotProgress_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_ScreenshotProgress_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Screenshot_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Screenshot_t.java index 2860f082b..5a5f5ea91 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Screenshot_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Screenshot_t.java @@ -4,32 +4,32 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1065
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Screenshot_t extends Structure { - public int handle; - public int type; - public VREvent_Screenshot_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("handle", "type"); - } - public VREvent_Screenshot_t(int handle, int type) { - super(); - this.handle = handle; - this.type = type; - } - public VREvent_Screenshot_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Screenshot_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Screenshot_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1092
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Screenshot_t extends Structure { + public int handle; + public int type; + public VREvent_Screenshot_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("handle", "type"); + } + public VREvent_Screenshot_t(int handle, int type) { + super(); + this.handle = handle; + this.type = type; + } + public VREvent_Screenshot_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Screenshot_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Screenshot_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Scroll_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Scroll_t.java index 7cf75de8d..7c4090b1f 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Scroll_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Scroll_t.java @@ -4,34 +4,34 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1016
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Scroll_t extends Structure { - public float xdelta; - public float ydelta; - public int repeatCount; - public VREvent_Scroll_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("xdelta", "ydelta", "repeatCount"); - } - public VREvent_Scroll_t(float xdelta, float ydelta, int repeatCount) { - super(); - this.xdelta = xdelta; - this.ydelta = ydelta; - this.repeatCount = repeatCount; - } - public VREvent_Scroll_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Scroll_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Scroll_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1043
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Scroll_t extends Structure { + public float xdelta; + public float ydelta; + public int repeatCount; + public VREvent_Scroll_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("xdelta", "ydelta", "repeatCount"); + } + public VREvent_Scroll_t(float xdelta, float ydelta, int repeatCount) { + super(); + this.xdelta = xdelta; + this.ydelta = ydelta; + this.repeatCount = repeatCount; + } + public VREvent_Scroll_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Scroll_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Scroll_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_SeatedZeroPoseReset_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_SeatedZeroPoseReset_t.java index 4c1227b9d..d051ec5e4 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_SeatedZeroPoseReset_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_SeatedZeroPoseReset_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1061
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_SeatedZeroPoseReset_t extends Structure { - public byte bResetBySystemMenu; - public VREvent_SeatedZeroPoseReset_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("bResetBySystemMenu"); - } - public VREvent_SeatedZeroPoseReset_t(byte bResetBySystemMenu) { - super(); - this.bResetBySystemMenu = bResetBySystemMenu; - } - public VREvent_SeatedZeroPoseReset_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_SeatedZeroPoseReset_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_SeatedZeroPoseReset_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1088
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_SeatedZeroPoseReset_t extends Structure { + public byte bResetBySystemMenu; + public VREvent_SeatedZeroPoseReset_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("bResetBySystemMenu"); + } + public VREvent_SeatedZeroPoseReset_t(byte bResetBySystemMenu) { + super(); + this.bResetBySystemMenu = bResetBySystemMenu; + } + public VREvent_SeatedZeroPoseReset_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_SeatedZeroPoseReset_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_SeatedZeroPoseReset_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Status_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Status_t.java index 1249d47a0..f69fcd9bf 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Status_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Status_t.java @@ -4,30 +4,30 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1039
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_Status_t extends Structure { - public int statusState; - public VREvent_Status_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("statusState"); - } - public VREvent_Status_t(int statusState) { - super(); - this.statusState = statusState; - } - public VREvent_Status_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_Status_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_Status_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1066
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_Status_t extends Structure { + public int statusState; + public VREvent_Status_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("statusState"); + } + public VREvent_Status_t(int statusState) { + super(); + this.statusState = statusState; + } + public VREvent_Status_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_Status_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_Status_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_TouchPadMove_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_TouchPadMove_t.java index f46b0a499..dd963ae70 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_TouchPadMove_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_TouchPadMove_t.java @@ -4,40 +4,40 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1024
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_TouchPadMove_t extends Structure { - public byte bFingerDown; - public float flSecondsFingerDown; - public float fValueXFirst; - public float fValueYFirst; - public float fValueXRaw; - public float fValueYRaw; - public VREvent_TouchPadMove_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("bFingerDown", "flSecondsFingerDown", "fValueXFirst", "fValueYFirst", "fValueXRaw", "fValueYRaw"); - } - public VREvent_TouchPadMove_t(byte bFingerDown, float flSecondsFingerDown, float fValueXFirst, float fValueYFirst, float fValueXRaw, float fValueYRaw) { - super(); - this.bFingerDown = bFingerDown; - this.flSecondsFingerDown = flSecondsFingerDown; - this.fValueXFirst = fValueXFirst; - this.fValueYFirst = fValueYFirst; - this.fValueXRaw = fValueXRaw; - this.fValueYRaw = fValueYRaw; - } - public VREvent_TouchPadMove_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_TouchPadMove_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_TouchPadMove_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1051
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_TouchPadMove_t extends Structure { + public byte bFingerDown; + public float flSecondsFingerDown; + public float fValueXFirst; + public float fValueYFirst; + public float fValueXRaw; + public float fValueYRaw; + public VREvent_TouchPadMove_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("bFingerDown", "flSecondsFingerDown", "fValueXFirst", "fValueYFirst", "fValueXRaw", "fValueYRaw"); + } + public VREvent_TouchPadMove_t(byte bFingerDown, float flSecondsFingerDown, float fValueXFirst, float fValueYFirst, float fValueXRaw, float fValueYRaw) { + super(); + this.bFingerDown = bFingerDown; + this.flSecondsFingerDown = flSecondsFingerDown; + this.fValueXFirst = fValueXFirst; + this.fValueYFirst = fValueYFirst; + this.fValueXRaw = fValueXRaw; + this.fValueYRaw = fValueYRaw; + } + public VREvent_TouchPadMove_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_TouchPadMove_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_TouchPadMove_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_t.java index 716a4d69d..24be43e22 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_t.java @@ -4,45 +4,45 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * An event posted by the server to all running applications
    - * native declaration : headers\openvr_capi.h:1286
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VREvent_t extends Structure { - /** EVREventType enum */ - public int eventType; - /** C type : TrackedDeviceIndex_t */ - public int trackedDeviceIndex; - public float eventAgeSeconds; - /** C type : VREvent_Data_t */ - public VREvent_Data_t data; - public VREvent_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("eventType", "trackedDeviceIndex", "eventAgeSeconds", "data"); - } + * An event posted by the server to all running applications
    + * native declaration : headers\openvr_capi.h:1315
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VREvent_t extends Structure { + /** EVREventType enum */ + public int eventType; + /** C type : TrackedDeviceIndex_t */ + public int trackedDeviceIndex; + public float eventAgeSeconds; + /** C type : VREvent_Data_t */ + public VREvent_Data_t data; + public VREvent_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("eventType", "trackedDeviceIndex", "eventAgeSeconds", "data"); + } /** - * @param eventType EVREventType enum
    - * @param trackedDeviceIndex C type : TrackedDeviceIndex_t
    - * @param data C type : VREvent_Data_t - */ - public VREvent_t(int eventType, int trackedDeviceIndex, float eventAgeSeconds, VREvent_Data_t data) { - super(); - this.eventType = eventType; - this.trackedDeviceIndex = trackedDeviceIndex; - this.eventAgeSeconds = eventAgeSeconds; - this.data = data; - } - public VREvent_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VREvent_t implements Structure.ByReference { - - }; - public static class ByValue extends VREvent_t implements Structure.ByValue { - - }; + * @param eventType EVREventType enum
    + * @param trackedDeviceIndex C type : TrackedDeviceIndex_t
    + * @param data C type : VREvent_Data_t + */ + public VREvent_t(int eventType, int trackedDeviceIndex, float eventAgeSeconds, VREvent_Data_t data) { + super(); + this.eventType = eventType; + this.trackedDeviceIndex = trackedDeviceIndex; + this.eventAgeSeconds = eventAgeSeconds; + this.data = data; + } + public VREvent_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VREvent_t implements Structure.ByReference { + + }; + public static class ByValue extends VREvent_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_Data_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_Data_t.java index 964dcf280..4ac797b97 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_Data_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_Data_t.java @@ -2,38 +2,38 @@ package com.jme3.system.jopenvr; import com.sun.jna.Pointer; import com.sun.jna.Union; /** - * native declaration : headers\openvr_capi.h:1290
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VROverlayIntersectionMaskPrimitive_Data_t extends Union { - /** C type : IntersectionMaskRectangle_t */ - public IntersectionMaskRectangle_t m_Rectangle; - /** C type : IntersectionMaskCircle_t */ - public IntersectionMaskCircle_t m_Circle; - public VROverlayIntersectionMaskPrimitive_Data_t() { - super(); - } - /** @param m_Rectangle C type : IntersectionMaskRectangle_t */ - public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskRectangle_t m_Rectangle) { - super(); - this.m_Rectangle = m_Rectangle; - setType(IntersectionMaskRectangle_t.class); - } - /** @param m_Circle C type : IntersectionMaskCircle_t */ - public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskCircle_t m_Circle) { - super(); - this.m_Circle = m_Circle; - setType(IntersectionMaskCircle_t.class); - } - public VROverlayIntersectionMaskPrimitive_Data_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByReference { - - }; - public static class ByValue extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1319
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VROverlayIntersectionMaskPrimitive_Data_t extends Union { + /** C type : IntersectionMaskRectangle_t */ + public IntersectionMaskRectangle_t m_Rectangle; + /** C type : IntersectionMaskCircle_t */ + public IntersectionMaskCircle_t m_Circle; + public VROverlayIntersectionMaskPrimitive_Data_t() { + super(); + } + /** @param m_Rectangle C type : IntersectionMaskRectangle_t */ + public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskRectangle_t m_Rectangle) { + super(); + this.m_Rectangle = m_Rectangle; + setType(IntersectionMaskRectangle_t.class); + } + /** @param m_Circle C type : IntersectionMaskCircle_t */ + public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskCircle_t m_Circle) { + super(); + this.m_Circle = m_Circle; + setType(IntersectionMaskCircle_t.class); + } + public VROverlayIntersectionMaskPrimitive_Data_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByReference { + + }; + public static class ByValue extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_t.java index 46ac5b9f9..962fbe340 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_t.java @@ -4,42 +4,42 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1294
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VROverlayIntersectionMaskPrimitive_t extends Structure { + * native declaration : headers\openvr_capi.h:1323
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VROverlayIntersectionMaskPrimitive_t extends Structure { /** - * @see EVROverlayIntersectionMaskPrimitiveType
    - * C type : EVROverlayIntersectionMaskPrimitiveType - */ - public int m_nPrimitiveType; - /** C type : VROverlayIntersectionMaskPrimitive_Data_t */ - public VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; - public VROverlayIntersectionMaskPrimitive_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nPrimitiveType", "m_Primitive"); - } + * @see EVROverlayIntersectionMaskPrimitiveType
    + * C type : EVROverlayIntersectionMaskPrimitiveType + */ + public int m_nPrimitiveType; + /** C type : VROverlayIntersectionMaskPrimitive_Data_t */ + public VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; + public VROverlayIntersectionMaskPrimitive_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nPrimitiveType", "m_Primitive"); + } /** - * @param m_nPrimitiveType @see EVROverlayIntersectionMaskPrimitiveType
    - * C type : EVROverlayIntersectionMaskPrimitiveType
    - * @param m_Primitive C type : VROverlayIntersectionMaskPrimitive_Data_t - */ - public VROverlayIntersectionMaskPrimitive_t(int m_nPrimitiveType, VROverlayIntersectionMaskPrimitive_Data_t m_Primitive) { - super(); - this.m_nPrimitiveType = m_nPrimitiveType; - this.m_Primitive = m_Primitive; - } - public VROverlayIntersectionMaskPrimitive_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByReference { - - }; - public static class ByValue extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByValue { - - }; + * @param m_nPrimitiveType @see EVROverlayIntersectionMaskPrimitiveType
    + * C type : EVROverlayIntersectionMaskPrimitiveType
    + * @param m_Primitive C type : VROverlayIntersectionMaskPrimitive_Data_t + */ + public VROverlayIntersectionMaskPrimitive_t(int m_nPrimitiveType, VROverlayIntersectionMaskPrimitive_Data_t m_Primitive) { + super(); + this.m_nPrimitiveType = m_nPrimitiveType; + this.m_Primitive = m_Primitive; + } + public VROverlayIntersectionMaskPrimitive_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByReference { + + }; + public static class ByValue extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionParams_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionParams_t.java index 80d8df4e2..ce72360f7 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionParams_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionParams_t.java @@ -4,46 +4,46 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1183
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VROverlayIntersectionParams_t extends Structure { - /** C type : HmdVector3_t */ - public HmdVector3_t vSource; - /** C type : HmdVector3_t */ - public HmdVector3_t vDirection; + * native declaration : headers\openvr_capi.h:1210
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VROverlayIntersectionParams_t extends Structure { + /** C type : HmdVector3_t */ + public HmdVector3_t vSource; + /** C type : HmdVector3_t */ + public HmdVector3_t vDirection; /** - * @see ETrackingUniverseOrigin
    - * C type : ETrackingUniverseOrigin - */ - public int eOrigin; - public VROverlayIntersectionParams_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("vSource", "vDirection", "eOrigin"); - } + * @see ETrackingUniverseOrigin
    + * C type : ETrackingUniverseOrigin + */ + public int eOrigin; + public VROverlayIntersectionParams_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("vSource", "vDirection", "eOrigin"); + } /** - * @param vSource C type : HmdVector3_t
    - * @param vDirection C type : HmdVector3_t
    - * @param eOrigin @see ETrackingUniverseOrigin
    - * C type : ETrackingUniverseOrigin - */ - public VROverlayIntersectionParams_t(HmdVector3_t vSource, HmdVector3_t vDirection, int eOrigin) { - super(); - this.vSource = vSource; - this.vDirection = vDirection; - this.eOrigin = eOrigin; - } - public VROverlayIntersectionParams_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VROverlayIntersectionParams_t implements Structure.ByReference { - - }; - public static class ByValue extends VROverlayIntersectionParams_t implements Structure.ByValue { - - }; + * @param vSource C type : HmdVector3_t
    + * @param vDirection C type : HmdVector3_t
    + * @param eOrigin @see ETrackingUniverseOrigin
    + * C type : ETrackingUniverseOrigin + */ + public VROverlayIntersectionParams_t(HmdVector3_t vSource, HmdVector3_t vDirection, int eOrigin) { + super(); + this.vSource = vSource; + this.vDirection = vDirection; + this.eOrigin = eOrigin; + } + public VROverlayIntersectionParams_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VROverlayIntersectionParams_t implements Structure.ByReference { + + }; + public static class ByValue extends VROverlayIntersectionParams_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionResults_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionResults_t.java index 6ea1fd749..be0df7165 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionResults_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionResults_t.java @@ -4,44 +4,44 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1189
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VROverlayIntersectionResults_t extends Structure { - /** C type : HmdVector3_t */ - public HmdVector3_t vPoint; - /** C type : HmdVector3_t */ - public HmdVector3_t vNormal; - /** C type : HmdVector2_t */ - public HmdVector2_t vUVs; - public float fDistance; - public VROverlayIntersectionResults_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("vPoint", "vNormal", "vUVs", "fDistance"); - } + * native declaration : headers\openvr_capi.h:1216
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VROverlayIntersectionResults_t extends Structure { + /** C type : HmdVector3_t */ + public HmdVector3_t vPoint; + /** C type : HmdVector3_t */ + public HmdVector3_t vNormal; + /** C type : HmdVector2_t */ + public HmdVector2_t vUVs; + public float fDistance; + public VROverlayIntersectionResults_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("vPoint", "vNormal", "vUVs", "fDistance"); + } /** - * @param vPoint C type : HmdVector3_t
    - * @param vNormal C type : HmdVector3_t
    - * @param vUVs C type : HmdVector2_t - */ - public VROverlayIntersectionResults_t(HmdVector3_t vPoint, HmdVector3_t vNormal, HmdVector2_t vUVs, float fDistance) { - super(); - this.vPoint = vPoint; - this.vNormal = vNormal; - this.vUVs = vUVs; - this.fDistance = fDistance; - } - public VROverlayIntersectionResults_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VROverlayIntersectionResults_t implements Structure.ByReference { - - }; - public static class ByValue extends VROverlayIntersectionResults_t implements Structure.ByValue { - - }; + * @param vPoint C type : HmdVector3_t
    + * @param vNormal C type : HmdVector3_t
    + * @param vUVs C type : HmdVector2_t + */ + public VROverlayIntersectionResults_t(HmdVector3_t vPoint, HmdVector3_t vNormal, HmdVector2_t vUVs, float fDistance) { + super(); + this.vPoint = vPoint; + this.vNormal = vNormal; + this.vUVs = vUVs; + this.fDistance = fDistance; + } + public VROverlayIntersectionResults_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VROverlayIntersectionResults_t implements Structure.ByReference { + + }; + public static class ByValue extends VROverlayIntersectionResults_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRTextureBounds_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRTextureBounds_t.java index 0d03b1448..9bb56e46d 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRTextureBounds_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRTextureBounds_t.java @@ -4,36 +4,36 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:980
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VRTextureBounds_t extends Structure { - public float uMin; - public float vMin; - public float uMax; - public float vMax; - public VRTextureBounds_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("uMin", "vMin", "uMax", "vMax"); - } - public VRTextureBounds_t(float uMin, float vMin, float uMax, float vMax) { - super(); - this.uMin = uMin; - this.vMin = vMin; - this.uMax = uMax; - this.vMax = vMax; - } - public VRTextureBounds_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VRTextureBounds_t implements Structure.ByReference { - - }; - public static class ByValue extends VRTextureBounds_t implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1007
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VRTextureBounds_t extends Structure { + public float uMin; + public float vMin; + public float uMax; + public float vMax; + public VRTextureBounds_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("uMin", "vMin", "uMax", "vMax"); + } + public VRTextureBounds_t(float uMin, float vMin, float uMax, float vMax) { + super(); + this.uMin = uMin; + this.vMin = vMin; + this.uMax = uMax; + this.vMax = vMax; + } + public VRTextureBounds_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VRTextureBounds_t implements Structure.ByReference { + + }; + public static class ByValue extends VRTextureBounds_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRVulkanTextureData_t.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRVulkanTextureData_t.java index 413797414..08ef57c49 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRVulkanTextureData_t.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VRVulkanTextureData_t.java @@ -8,51 +8,51 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:996
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VRVulkanTextureData_t extends Structure { - public long m_nImage; + * native declaration : headers\openvr_capi.h:1023
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VRVulkanTextureData_t extends Structure { + public long m_nImage; /** - * struct VkDevice_T *
    - * C type : VkDevice_T* - */ - public VkDevice_T m_pDevice; + * struct VkDevice_T *
    + * C type : VkDevice_T* + */ + public VkDevice_T m_pDevice; /** - * struct VkPhysicalDevice_T *
    - * C type : VkPhysicalDevice_T* - */ - public VkPhysicalDevice_T m_pPhysicalDevice; + * struct VkPhysicalDevice_T *
    + * C type : VkPhysicalDevice_T* + */ + public VkPhysicalDevice_T m_pPhysicalDevice; /** - * struct VkInstance_T *
    - * C type : VkInstance_T* - */ - public VkInstance_T m_pInstance; + * struct VkInstance_T *
    + * C type : VkInstance_T* + */ + public VkInstance_T m_pInstance; /** - * struct VkQueue_T *
    - * C type : VkQueue_T* - */ - public VkQueue_T m_pQueue; - public int m_nQueueFamilyIndex; - public int m_nWidth; - public int m_nHeight; - public int m_nFormat; - public int m_nSampleCount; - public VRVulkanTextureData_t() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("m_nImage", "m_pDevice", "m_pPhysicalDevice", "m_pInstance", "m_pQueue", "m_nQueueFamilyIndex", "m_nWidth", "m_nHeight", "m_nFormat", "m_nSampleCount"); - } - public VRVulkanTextureData_t(Pointer peer) { - super(peer); - } - public static class ByReference extends VRVulkanTextureData_t implements Structure.ByReference { - - }; - public static class ByValue extends VRVulkanTextureData_t implements Structure.ByValue { - - }; + * struct VkQueue_T *
    + * C type : VkQueue_T* + */ + public VkQueue_T m_pQueue; + public int m_nQueueFamilyIndex; + public int m_nWidth; + public int m_nHeight; + public int m_nFormat; + public int m_nSampleCount; + public VRVulkanTextureData_t() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("m_nImage", "m_pDevice", "m_pPhysicalDevice", "m_pInstance", "m_pQueue", "m_nQueueFamilyIndex", "m_nWidth", "m_nHeight", "m_nFormat", "m_nSampleCount"); + } + public VRVulkanTextureData_t(Pointer peer) { + super(peer); + } + public static class ByReference extends VRVulkanTextureData_t implements Structure.ByReference { + + }; + public static class ByValue extends VRVulkanTextureData_t implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRApplications_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRApplications_FnTable.java index c1f456c73..8102beac3 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRApplications_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRApplications_FnTable.java @@ -6,211 +6,211 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1483
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRApplications_FnTable extends Structure { - /** C type : AddApplicationManifest_callback* */ - public VR_IVRApplications_FnTable.AddApplicationManifest_callback AddApplicationManifest; - /** C type : RemoveApplicationManifest_callback* */ - public VR_IVRApplications_FnTable.RemoveApplicationManifest_callback RemoveApplicationManifest; - /** C type : IsApplicationInstalled_callback* */ - public VR_IVRApplications_FnTable.IsApplicationInstalled_callback IsApplicationInstalled; - /** C type : GetApplicationCount_callback* */ - public VR_IVRApplications_FnTable.GetApplicationCount_callback GetApplicationCount; - /** C type : GetApplicationKeyByIndex_callback* */ - public VR_IVRApplications_FnTable.GetApplicationKeyByIndex_callback GetApplicationKeyByIndex; - /** C type : GetApplicationKeyByProcessId_callback* */ - public VR_IVRApplications_FnTable.GetApplicationKeyByProcessId_callback GetApplicationKeyByProcessId; - /** C type : LaunchApplication_callback* */ - public VR_IVRApplications_FnTable.LaunchApplication_callback LaunchApplication; - /** C type : LaunchTemplateApplication_callback* */ - public VR_IVRApplications_FnTable.LaunchTemplateApplication_callback LaunchTemplateApplication; - /** C type : LaunchApplicationFromMimeType_callback* */ - public VR_IVRApplications_FnTable.LaunchApplicationFromMimeType_callback LaunchApplicationFromMimeType; - /** C type : LaunchDashboardOverlay_callback* */ - public VR_IVRApplications_FnTable.LaunchDashboardOverlay_callback LaunchDashboardOverlay; - /** C type : CancelApplicationLaunch_callback* */ - public VR_IVRApplications_FnTable.CancelApplicationLaunch_callback CancelApplicationLaunch; - /** C type : IdentifyApplication_callback* */ - public VR_IVRApplications_FnTable.IdentifyApplication_callback IdentifyApplication; - /** C type : GetApplicationProcessId_callback* */ - public VR_IVRApplications_FnTable.GetApplicationProcessId_callback GetApplicationProcessId; - /** C type : GetApplicationsErrorNameFromEnum_callback* */ - public VR_IVRApplications_FnTable.GetApplicationsErrorNameFromEnum_callback GetApplicationsErrorNameFromEnum; - /** C type : GetApplicationPropertyString_callback* */ - public VR_IVRApplications_FnTable.GetApplicationPropertyString_callback GetApplicationPropertyString; - /** C type : GetApplicationPropertyBool_callback* */ - public VR_IVRApplications_FnTable.GetApplicationPropertyBool_callback GetApplicationPropertyBool; - /** C type : GetApplicationPropertyUint64_callback* */ - public VR_IVRApplications_FnTable.GetApplicationPropertyUint64_callback GetApplicationPropertyUint64; - /** C type : SetApplicationAutoLaunch_callback* */ - public VR_IVRApplications_FnTable.SetApplicationAutoLaunch_callback SetApplicationAutoLaunch; - /** C type : GetApplicationAutoLaunch_callback* */ - public VR_IVRApplications_FnTable.GetApplicationAutoLaunch_callback GetApplicationAutoLaunch; - /** C type : SetDefaultApplicationForMimeType_callback* */ - public VR_IVRApplications_FnTable.SetDefaultApplicationForMimeType_callback SetDefaultApplicationForMimeType; - /** C type : GetDefaultApplicationForMimeType_callback* */ - public VR_IVRApplications_FnTable.GetDefaultApplicationForMimeType_callback GetDefaultApplicationForMimeType; - /** C type : GetApplicationSupportedMimeTypes_callback* */ - public VR_IVRApplications_FnTable.GetApplicationSupportedMimeTypes_callback GetApplicationSupportedMimeTypes; - /** C type : GetApplicationsThatSupportMimeType_callback* */ - public VR_IVRApplications_FnTable.GetApplicationsThatSupportMimeType_callback GetApplicationsThatSupportMimeType; - /** C type : GetApplicationLaunchArguments_callback* */ - public VR_IVRApplications_FnTable.GetApplicationLaunchArguments_callback GetApplicationLaunchArguments; - /** C type : GetStartingApplication_callback* */ - public VR_IVRApplications_FnTable.GetStartingApplication_callback GetStartingApplication; - /** C type : GetTransitionState_callback* */ - public VR_IVRApplications_FnTable.GetTransitionState_callback GetTransitionState; - /** C type : PerformApplicationPrelaunchCheck_callback* */ - public VR_IVRApplications_FnTable.PerformApplicationPrelaunchCheck_callback PerformApplicationPrelaunchCheck; - /** C type : GetApplicationsTransitionStateNameFromEnum_callback* */ - public VR_IVRApplications_FnTable.GetApplicationsTransitionStateNameFromEnum_callback GetApplicationsTransitionStateNameFromEnum; - /** C type : IsQuitUserPromptRequested_callback* */ - public VR_IVRApplications_FnTable.IsQuitUserPromptRequested_callback IsQuitUserPromptRequested; - /** C type : LaunchInternalProcess_callback* */ - public VR_IVRApplications_FnTable.LaunchInternalProcess_callback LaunchInternalProcess; - /** C type : GetCurrentSceneProcessId_callback* */ - public VR_IVRApplications_FnTable.GetCurrentSceneProcessId_callback GetCurrentSceneProcessId; - /** native declaration : headers\openvr_capi.h:1452 */ - public interface AddApplicationManifest_callback extends Callback { - int apply(Pointer pchApplicationManifestFullPath, byte bTemporary); - }; - /** native declaration : headers\openvr_capi.h:1453 */ - public interface RemoveApplicationManifest_callback extends Callback { - int apply(Pointer pchApplicationManifestFullPath); - }; - /** native declaration : headers\openvr_capi.h:1454 */ - public interface IsApplicationInstalled_callback extends Callback { - byte apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1455 */ - public interface GetApplicationCount_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1456 */ - public interface GetApplicationKeyByIndex_callback extends Callback { - int apply(int unApplicationIndex, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); - }; - /** native declaration : headers\openvr_capi.h:1457 */ - public interface GetApplicationKeyByProcessId_callback extends Callback { - int apply(int unProcessId, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); - }; - /** native declaration : headers\openvr_capi.h:1458 */ - public interface LaunchApplication_callback extends Callback { - int apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1459 */ - public interface LaunchTemplateApplication_callback extends Callback { - int apply(Pointer pchTemplateAppKey, Pointer pchNewAppKey, AppOverrideKeys_t pKeys, int unKeys); - }; - /** native declaration : headers\openvr_capi.h:1460 */ - public interface LaunchApplicationFromMimeType_callback extends Callback { - int apply(Pointer pchMimeType, Pointer pchArgs); - }; - /** native declaration : headers\openvr_capi.h:1461 */ - public interface LaunchDashboardOverlay_callback extends Callback { - int apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1462 */ - public interface CancelApplicationLaunch_callback extends Callback { - byte apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1463 */ - public interface IdentifyApplication_callback extends Callback { - int apply(int unProcessId, Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1464 */ - public interface GetApplicationProcessId_callback extends Callback { - int apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1465 */ - public interface GetApplicationsErrorNameFromEnum_callback extends Callback { - Pointer apply(int error); - }; - /** native declaration : headers\openvr_capi.h:1466 */ - public interface GetApplicationPropertyString_callback extends Callback { - int apply(Pointer pchAppKey, int eProperty, Pointer pchPropertyValueBuffer, int unPropertyValueBufferLen, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1467 */ - public interface GetApplicationPropertyBool_callback extends Callback { - byte apply(Pointer pchAppKey, int eProperty, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1468 */ - public interface GetApplicationPropertyUint64_callback extends Callback { - long apply(Pointer pchAppKey, int eProperty, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1469 */ - public interface SetApplicationAutoLaunch_callback extends Callback { - int apply(Pointer pchAppKey, byte bAutoLaunch); - }; - /** native declaration : headers\openvr_capi.h:1470 */ - public interface GetApplicationAutoLaunch_callback extends Callback { - byte apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1471 */ - public interface SetDefaultApplicationForMimeType_callback extends Callback { - int apply(Pointer pchAppKey, Pointer pchMimeType); - }; - /** native declaration : headers\openvr_capi.h:1472 */ - public interface GetDefaultApplicationForMimeType_callback extends Callback { - byte apply(Pointer pchMimeType, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); - }; - /** native declaration : headers\openvr_capi.h:1473 */ - public interface GetApplicationSupportedMimeTypes_callback extends Callback { - byte apply(Pointer pchAppKey, Pointer pchMimeTypesBuffer, int unMimeTypesBuffer); - }; - /** native declaration : headers\openvr_capi.h:1474 */ - public interface GetApplicationsThatSupportMimeType_callback extends Callback { - int apply(Pointer pchMimeType, Pointer pchAppKeysThatSupportBuffer, int unAppKeysThatSupportBuffer); - }; - /** native declaration : headers\openvr_capi.h:1475 */ - public interface GetApplicationLaunchArguments_callback extends Callback { - int apply(int unHandle, Pointer pchArgs, int unArgs); - }; - /** native declaration : headers\openvr_capi.h:1476 */ - public interface GetStartingApplication_callback extends Callback { - int apply(Pointer pchAppKeyBuffer, int unAppKeyBufferLen); - }; - /** native declaration : headers\openvr_capi.h:1477 */ - public interface GetTransitionState_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1478 */ - public interface PerformApplicationPrelaunchCheck_callback extends Callback { - int apply(Pointer pchAppKey); - }; - /** native declaration : headers\openvr_capi.h:1479 */ - public interface GetApplicationsTransitionStateNameFromEnum_callback extends Callback { - Pointer apply(int state); - }; - /** native declaration : headers\openvr_capi.h:1480 */ - public interface IsQuitUserPromptRequested_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1481 */ - public interface LaunchInternalProcess_callback extends Callback { - int apply(Pointer pchBinaryPath, Pointer pchArguments, Pointer pchWorkingDirectory); - }; - /** native declaration : headers\openvr_capi.h:1482 */ - public interface GetCurrentSceneProcessId_callback extends Callback { - int apply(); - }; - public VR_IVRApplications_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("AddApplicationManifest", "RemoveApplicationManifest", "IsApplicationInstalled", "GetApplicationCount", "GetApplicationKeyByIndex", "GetApplicationKeyByProcessId", "LaunchApplication", "LaunchTemplateApplication", "LaunchApplicationFromMimeType", "LaunchDashboardOverlay", "CancelApplicationLaunch", "IdentifyApplication", "GetApplicationProcessId", "GetApplicationsErrorNameFromEnum", "GetApplicationPropertyString", "GetApplicationPropertyBool", "GetApplicationPropertyUint64", "SetApplicationAutoLaunch", "GetApplicationAutoLaunch", "SetDefaultApplicationForMimeType", "GetDefaultApplicationForMimeType", "GetApplicationSupportedMimeTypes", "GetApplicationsThatSupportMimeType", "GetApplicationLaunchArguments", "GetStartingApplication", "GetTransitionState", "PerformApplicationPrelaunchCheck", "GetApplicationsTransitionStateNameFromEnum", "IsQuitUserPromptRequested", "LaunchInternalProcess", "GetCurrentSceneProcessId"); - } - public VR_IVRApplications_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRApplications_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRApplications_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1514
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRApplications_FnTable extends Structure { + /** C type : AddApplicationManifest_callback* */ + public VR_IVRApplications_FnTable.AddApplicationManifest_callback AddApplicationManifest; + /** C type : RemoveApplicationManifest_callback* */ + public VR_IVRApplications_FnTable.RemoveApplicationManifest_callback RemoveApplicationManifest; + /** C type : IsApplicationInstalled_callback* */ + public VR_IVRApplications_FnTable.IsApplicationInstalled_callback IsApplicationInstalled; + /** C type : GetApplicationCount_callback* */ + public VR_IVRApplications_FnTable.GetApplicationCount_callback GetApplicationCount; + /** C type : GetApplicationKeyByIndex_callback* */ + public VR_IVRApplications_FnTable.GetApplicationKeyByIndex_callback GetApplicationKeyByIndex; + /** C type : GetApplicationKeyByProcessId_callback* */ + public VR_IVRApplications_FnTable.GetApplicationKeyByProcessId_callback GetApplicationKeyByProcessId; + /** C type : LaunchApplication_callback* */ + public VR_IVRApplications_FnTable.LaunchApplication_callback LaunchApplication; + /** C type : LaunchTemplateApplication_callback* */ + public VR_IVRApplications_FnTable.LaunchTemplateApplication_callback LaunchTemplateApplication; + /** C type : LaunchApplicationFromMimeType_callback* */ + public VR_IVRApplications_FnTable.LaunchApplicationFromMimeType_callback LaunchApplicationFromMimeType; + /** C type : LaunchDashboardOverlay_callback* */ + public VR_IVRApplications_FnTable.LaunchDashboardOverlay_callback LaunchDashboardOverlay; + /** C type : CancelApplicationLaunch_callback* */ + public VR_IVRApplications_FnTable.CancelApplicationLaunch_callback CancelApplicationLaunch; + /** C type : IdentifyApplication_callback* */ + public VR_IVRApplications_FnTable.IdentifyApplication_callback IdentifyApplication; + /** C type : GetApplicationProcessId_callback* */ + public VR_IVRApplications_FnTable.GetApplicationProcessId_callback GetApplicationProcessId; + /** C type : GetApplicationsErrorNameFromEnum_callback* */ + public VR_IVRApplications_FnTable.GetApplicationsErrorNameFromEnum_callback GetApplicationsErrorNameFromEnum; + /** C type : GetApplicationPropertyString_callback* */ + public VR_IVRApplications_FnTable.GetApplicationPropertyString_callback GetApplicationPropertyString; + /** C type : GetApplicationPropertyBool_callback* */ + public VR_IVRApplications_FnTable.GetApplicationPropertyBool_callback GetApplicationPropertyBool; + /** C type : GetApplicationPropertyUint64_callback* */ + public VR_IVRApplications_FnTable.GetApplicationPropertyUint64_callback GetApplicationPropertyUint64; + /** C type : SetApplicationAutoLaunch_callback* */ + public VR_IVRApplications_FnTable.SetApplicationAutoLaunch_callback SetApplicationAutoLaunch; + /** C type : GetApplicationAutoLaunch_callback* */ + public VR_IVRApplications_FnTable.GetApplicationAutoLaunch_callback GetApplicationAutoLaunch; + /** C type : SetDefaultApplicationForMimeType_callback* */ + public VR_IVRApplications_FnTable.SetDefaultApplicationForMimeType_callback SetDefaultApplicationForMimeType; + /** C type : GetDefaultApplicationForMimeType_callback* */ + public VR_IVRApplications_FnTable.GetDefaultApplicationForMimeType_callback GetDefaultApplicationForMimeType; + /** C type : GetApplicationSupportedMimeTypes_callback* */ + public VR_IVRApplications_FnTable.GetApplicationSupportedMimeTypes_callback GetApplicationSupportedMimeTypes; + /** C type : GetApplicationsThatSupportMimeType_callback* */ + public VR_IVRApplications_FnTable.GetApplicationsThatSupportMimeType_callback GetApplicationsThatSupportMimeType; + /** C type : GetApplicationLaunchArguments_callback* */ + public VR_IVRApplications_FnTable.GetApplicationLaunchArguments_callback GetApplicationLaunchArguments; + /** C type : GetStartingApplication_callback* */ + public VR_IVRApplications_FnTable.GetStartingApplication_callback GetStartingApplication; + /** C type : GetTransitionState_callback* */ + public VR_IVRApplications_FnTable.GetTransitionState_callback GetTransitionState; + /** C type : PerformApplicationPrelaunchCheck_callback* */ + public VR_IVRApplications_FnTable.PerformApplicationPrelaunchCheck_callback PerformApplicationPrelaunchCheck; + /** C type : GetApplicationsTransitionStateNameFromEnum_callback* */ + public VR_IVRApplications_FnTable.GetApplicationsTransitionStateNameFromEnum_callback GetApplicationsTransitionStateNameFromEnum; + /** C type : IsQuitUserPromptRequested_callback* */ + public VR_IVRApplications_FnTable.IsQuitUserPromptRequested_callback IsQuitUserPromptRequested; + /** C type : LaunchInternalProcess_callback* */ + public VR_IVRApplications_FnTable.LaunchInternalProcess_callback LaunchInternalProcess; + /** C type : GetCurrentSceneProcessId_callback* */ + public VR_IVRApplications_FnTable.GetCurrentSceneProcessId_callback GetCurrentSceneProcessId; + /** native declaration : headers\openvr_capi.h:1483 */ + public interface AddApplicationManifest_callback extends Callback { + int apply(Pointer pchApplicationManifestFullPath, byte bTemporary); + }; + /** native declaration : headers\openvr_capi.h:1484 */ + public interface RemoveApplicationManifest_callback extends Callback { + int apply(Pointer pchApplicationManifestFullPath); + }; + /** native declaration : headers\openvr_capi.h:1485 */ + public interface IsApplicationInstalled_callback extends Callback { + byte apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1486 */ + public interface GetApplicationCount_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1487 */ + public interface GetApplicationKeyByIndex_callback extends Callback { + int apply(int unApplicationIndex, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); + }; + /** native declaration : headers\openvr_capi.h:1488 */ + public interface GetApplicationKeyByProcessId_callback extends Callback { + int apply(int unProcessId, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); + }; + /** native declaration : headers\openvr_capi.h:1489 */ + public interface LaunchApplication_callback extends Callback { + int apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1490 */ + public interface LaunchTemplateApplication_callback extends Callback { + int apply(Pointer pchTemplateAppKey, Pointer pchNewAppKey, AppOverrideKeys_t pKeys, int unKeys); + }; + /** native declaration : headers\openvr_capi.h:1491 */ + public interface LaunchApplicationFromMimeType_callback extends Callback { + int apply(Pointer pchMimeType, Pointer pchArgs); + }; + /** native declaration : headers\openvr_capi.h:1492 */ + public interface LaunchDashboardOverlay_callback extends Callback { + int apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1493 */ + public interface CancelApplicationLaunch_callback extends Callback { + byte apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1494 */ + public interface IdentifyApplication_callback extends Callback { + int apply(int unProcessId, Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1495 */ + public interface GetApplicationProcessId_callback extends Callback { + int apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1496 */ + public interface GetApplicationsErrorNameFromEnum_callback extends Callback { + Pointer apply(int error); + }; + /** native declaration : headers\openvr_capi.h:1497 */ + public interface GetApplicationPropertyString_callback extends Callback { + int apply(Pointer pchAppKey, int eProperty, Pointer pchPropertyValueBuffer, int unPropertyValueBufferLen, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1498 */ + public interface GetApplicationPropertyBool_callback extends Callback { + byte apply(Pointer pchAppKey, int eProperty, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1499 */ + public interface GetApplicationPropertyUint64_callback extends Callback { + long apply(Pointer pchAppKey, int eProperty, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1500 */ + public interface SetApplicationAutoLaunch_callback extends Callback { + int apply(Pointer pchAppKey, byte bAutoLaunch); + }; + /** native declaration : headers\openvr_capi.h:1501 */ + public interface GetApplicationAutoLaunch_callback extends Callback { + byte apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1502 */ + public interface SetDefaultApplicationForMimeType_callback extends Callback { + int apply(Pointer pchAppKey, Pointer pchMimeType); + }; + /** native declaration : headers\openvr_capi.h:1503 */ + public interface GetDefaultApplicationForMimeType_callback extends Callback { + byte apply(Pointer pchMimeType, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); + }; + /** native declaration : headers\openvr_capi.h:1504 */ + public interface GetApplicationSupportedMimeTypes_callback extends Callback { + byte apply(Pointer pchAppKey, Pointer pchMimeTypesBuffer, int unMimeTypesBuffer); + }; + /** native declaration : headers\openvr_capi.h:1505 */ + public interface GetApplicationsThatSupportMimeType_callback extends Callback { + int apply(Pointer pchMimeType, Pointer pchAppKeysThatSupportBuffer, int unAppKeysThatSupportBuffer); + }; + /** native declaration : headers\openvr_capi.h:1506 */ + public interface GetApplicationLaunchArguments_callback extends Callback { + int apply(int unHandle, Pointer pchArgs, int unArgs); + }; + /** native declaration : headers\openvr_capi.h:1507 */ + public interface GetStartingApplication_callback extends Callback { + int apply(Pointer pchAppKeyBuffer, int unAppKeyBufferLen); + }; + /** native declaration : headers\openvr_capi.h:1508 */ + public interface GetTransitionState_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1509 */ + public interface PerformApplicationPrelaunchCheck_callback extends Callback { + int apply(Pointer pchAppKey); + }; + /** native declaration : headers\openvr_capi.h:1510 */ + public interface GetApplicationsTransitionStateNameFromEnum_callback extends Callback { + Pointer apply(int state); + }; + /** native declaration : headers\openvr_capi.h:1511 */ + public interface IsQuitUserPromptRequested_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1512 */ + public interface LaunchInternalProcess_callback extends Callback { + int apply(Pointer pchBinaryPath, Pointer pchArguments, Pointer pchWorkingDirectory); + }; + /** native declaration : headers\openvr_capi.h:1513 */ + public interface GetCurrentSceneProcessId_callback extends Callback { + int apply(); + }; + public VR_IVRApplications_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("AddApplicationManifest", "RemoveApplicationManifest", "IsApplicationInstalled", "GetApplicationCount", "GetApplicationKeyByIndex", "GetApplicationKeyByProcessId", "LaunchApplication", "LaunchTemplateApplication", "LaunchApplicationFromMimeType", "LaunchDashboardOverlay", "CancelApplicationLaunch", "IdentifyApplication", "GetApplicationProcessId", "GetApplicationsErrorNameFromEnum", "GetApplicationPropertyString", "GetApplicationPropertyBool", "GetApplicationPropertyUint64", "SetApplicationAutoLaunch", "GetApplicationAutoLaunch", "SetDefaultApplicationForMimeType", "GetDefaultApplicationForMimeType", "GetApplicationSupportedMimeTypes", "GetApplicationsThatSupportMimeType", "GetApplicationLaunchArguments", "GetStartingApplication", "GetTransitionState", "PerformApplicationPrelaunchCheck", "GetApplicationsTransitionStateNameFromEnum", "IsQuitUserPromptRequested", "LaunchInternalProcess", "GetCurrentSceneProcessId"); + } + public VR_IVRApplications_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRApplications_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRApplications_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperoneSetup_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperoneSetup_FnTable.java index cfbba6893..32708848f 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperoneSetup_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperoneSetup_FnTable.java @@ -7,145 +7,145 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1543
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRChaperoneSetup_FnTable extends Structure { - /** C type : CommitWorkingCopy_callback* */ - public VR_IVRChaperoneSetup_FnTable.CommitWorkingCopy_callback CommitWorkingCopy; - /** C type : RevertWorkingCopy_callback* */ - public VR_IVRChaperoneSetup_FnTable.RevertWorkingCopy_callback RevertWorkingCopy; - /** C type : GetWorkingPlayAreaSize_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaSize_callback GetWorkingPlayAreaSize; - /** C type : GetWorkingPlayAreaRect_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaRect_callback GetWorkingPlayAreaRect; - /** C type : GetWorkingCollisionBoundsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetWorkingCollisionBoundsInfo_callback GetWorkingCollisionBoundsInfo; - /** C type : GetLiveCollisionBoundsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsInfo_callback GetLiveCollisionBoundsInfo; - /** C type : GetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose_callback GetWorkingSeatedZeroPoseToRawTrackingPose; - /** C type : GetWorkingStandingZeroPoseToRawTrackingPose_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetWorkingStandingZeroPoseToRawTrackingPose_callback GetWorkingStandingZeroPoseToRawTrackingPose; - /** C type : SetWorkingPlayAreaSize_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingPlayAreaSize_callback SetWorkingPlayAreaSize; - /** C type : SetWorkingCollisionBoundsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsInfo_callback SetWorkingCollisionBoundsInfo; - /** C type : SetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose_callback SetWorkingSeatedZeroPoseToRawTrackingPose; - /** C type : SetWorkingStandingZeroPoseToRawTrackingPose_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingStandingZeroPoseToRawTrackingPose_callback SetWorkingStandingZeroPoseToRawTrackingPose; - /** C type : ReloadFromDisk_callback* */ - public VR_IVRChaperoneSetup_FnTable.ReloadFromDisk_callback ReloadFromDisk; - /** C type : GetLiveSeatedZeroPoseToRawTrackingPose_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetLiveSeatedZeroPoseToRawTrackingPose_callback GetLiveSeatedZeroPoseToRawTrackingPose; - /** C type : SetWorkingCollisionBoundsTagsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsTagsInfo_callback SetWorkingCollisionBoundsTagsInfo; - /** C type : GetLiveCollisionBoundsTagsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsTagsInfo_callback GetLiveCollisionBoundsTagsInfo; - /** C type : SetWorkingPhysicalBoundsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.SetWorkingPhysicalBoundsInfo_callback SetWorkingPhysicalBoundsInfo; - /** C type : GetLivePhysicalBoundsInfo_callback* */ - public VR_IVRChaperoneSetup_FnTable.GetLivePhysicalBoundsInfo_callback GetLivePhysicalBoundsInfo; - /** C type : ExportLiveToBuffer_callback* */ - public VR_IVRChaperoneSetup_FnTable.ExportLiveToBuffer_callback ExportLiveToBuffer; - /** C type : ImportFromBufferToWorking_callback* */ - public VR_IVRChaperoneSetup_FnTable.ImportFromBufferToWorking_callback ImportFromBufferToWorking; - /** native declaration : headers\openvr_capi.h:1523 */ - public interface CommitWorkingCopy_callback extends Callback { - byte apply(int configFile); - }; - /** native declaration : headers\openvr_capi.h:1524 */ - public interface RevertWorkingCopy_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1525 */ - public interface GetWorkingPlayAreaSize_callback extends Callback { - byte apply(FloatByReference pSizeX, FloatByReference pSizeZ); - }; - /** native declaration : headers\openvr_capi.h:1526 */ - public interface GetWorkingPlayAreaRect_callback extends Callback { - byte apply(HmdQuad_t rect); - }; - /** native declaration : headers\openvr_capi.h:1527 */ - public interface GetWorkingCollisionBoundsInfo_callback extends Callback { - byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); - }; - /** native declaration : headers\openvr_capi.h:1528 */ - public interface GetLiveCollisionBoundsInfo_callback extends Callback { - byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); - }; - /** native declaration : headers\openvr_capi.h:1529 */ - public interface GetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { - byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); - }; - /** native declaration : headers\openvr_capi.h:1530 */ - public interface GetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { - byte apply(HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose); - }; - /** native declaration : headers\openvr_capi.h:1531 */ - public interface SetWorkingPlayAreaSize_callback extends Callback { - void apply(float sizeX, float sizeZ); - }; - /** native declaration : headers\openvr_capi.h:1532 */ - public interface SetWorkingCollisionBoundsInfo_callback extends Callback { - void apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); - }; - /** native declaration : headers\openvr_capi.h:1533 */ - public interface SetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { - void apply(HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose); - }; - /** native declaration : headers\openvr_capi.h:1534 */ - public interface SetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { - void apply(HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose); - }; - /** native declaration : headers\openvr_capi.h:1535 */ - public interface ReloadFromDisk_callback extends Callback { - void apply(int configFile); - }; - /** native declaration : headers\openvr_capi.h:1536 */ - public interface GetLiveSeatedZeroPoseToRawTrackingPose_callback extends Callback { - byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); - }; - /** native declaration : headers\openvr_capi.h:1537 */ - public interface SetWorkingCollisionBoundsTagsInfo_callback extends Callback { - void apply(Pointer pTagsBuffer, int unTagCount); - }; - /** native declaration : headers\openvr_capi.h:1538 */ - public interface GetLiveCollisionBoundsTagsInfo_callback extends Callback { - byte apply(Pointer pTagsBuffer, IntByReference punTagCount); - }; - /** native declaration : headers\openvr_capi.h:1539 */ - public interface SetWorkingPhysicalBoundsInfo_callback extends Callback { - byte apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); - }; - /** native declaration : headers\openvr_capi.h:1540 */ - public interface GetLivePhysicalBoundsInfo_callback extends Callback { - byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); - }; - /** native declaration : headers\openvr_capi.h:1541 */ - public interface ExportLiveToBuffer_callback extends Callback { - byte apply(Pointer pBuffer, IntByReference pnBufferLength); - }; - /** native declaration : headers\openvr_capi.h:1542 */ - public interface ImportFromBufferToWorking_callback extends Callback { - byte apply(Pointer pBuffer, int nImportFlags); - }; - public VR_IVRChaperoneSetup_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("CommitWorkingCopy", "RevertWorkingCopy", "GetWorkingPlayAreaSize", "GetWorkingPlayAreaRect", "GetWorkingCollisionBoundsInfo", "GetLiveCollisionBoundsInfo", "GetWorkingSeatedZeroPoseToRawTrackingPose", "GetWorkingStandingZeroPoseToRawTrackingPose", "SetWorkingPlayAreaSize", "SetWorkingCollisionBoundsInfo", "SetWorkingSeatedZeroPoseToRawTrackingPose", "SetWorkingStandingZeroPoseToRawTrackingPose", "ReloadFromDisk", "GetLiveSeatedZeroPoseToRawTrackingPose", "SetWorkingCollisionBoundsTagsInfo", "GetLiveCollisionBoundsTagsInfo", "SetWorkingPhysicalBoundsInfo", "GetLivePhysicalBoundsInfo", "ExportLiveToBuffer", "ImportFromBufferToWorking"); - } - public VR_IVRChaperoneSetup_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRChaperoneSetup_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRChaperoneSetup_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1574
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRChaperoneSetup_FnTable extends Structure { + /** C type : CommitWorkingCopy_callback* */ + public VR_IVRChaperoneSetup_FnTable.CommitWorkingCopy_callback CommitWorkingCopy; + /** C type : RevertWorkingCopy_callback* */ + public VR_IVRChaperoneSetup_FnTable.RevertWorkingCopy_callback RevertWorkingCopy; + /** C type : GetWorkingPlayAreaSize_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaSize_callback GetWorkingPlayAreaSize; + /** C type : GetWorkingPlayAreaRect_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaRect_callback GetWorkingPlayAreaRect; + /** C type : GetWorkingCollisionBoundsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetWorkingCollisionBoundsInfo_callback GetWorkingCollisionBoundsInfo; + /** C type : GetLiveCollisionBoundsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsInfo_callback GetLiveCollisionBoundsInfo; + /** C type : GetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose_callback GetWorkingSeatedZeroPoseToRawTrackingPose; + /** C type : GetWorkingStandingZeroPoseToRawTrackingPose_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetWorkingStandingZeroPoseToRawTrackingPose_callback GetWorkingStandingZeroPoseToRawTrackingPose; + /** C type : SetWorkingPlayAreaSize_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingPlayAreaSize_callback SetWorkingPlayAreaSize; + /** C type : SetWorkingCollisionBoundsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsInfo_callback SetWorkingCollisionBoundsInfo; + /** C type : SetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose_callback SetWorkingSeatedZeroPoseToRawTrackingPose; + /** C type : SetWorkingStandingZeroPoseToRawTrackingPose_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingStandingZeroPoseToRawTrackingPose_callback SetWorkingStandingZeroPoseToRawTrackingPose; + /** C type : ReloadFromDisk_callback* */ + public VR_IVRChaperoneSetup_FnTable.ReloadFromDisk_callback ReloadFromDisk; + /** C type : GetLiveSeatedZeroPoseToRawTrackingPose_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetLiveSeatedZeroPoseToRawTrackingPose_callback GetLiveSeatedZeroPoseToRawTrackingPose; + /** C type : SetWorkingCollisionBoundsTagsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsTagsInfo_callback SetWorkingCollisionBoundsTagsInfo; + /** C type : GetLiveCollisionBoundsTagsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsTagsInfo_callback GetLiveCollisionBoundsTagsInfo; + /** C type : SetWorkingPhysicalBoundsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.SetWorkingPhysicalBoundsInfo_callback SetWorkingPhysicalBoundsInfo; + /** C type : GetLivePhysicalBoundsInfo_callback* */ + public VR_IVRChaperoneSetup_FnTable.GetLivePhysicalBoundsInfo_callback GetLivePhysicalBoundsInfo; + /** C type : ExportLiveToBuffer_callback* */ + public VR_IVRChaperoneSetup_FnTable.ExportLiveToBuffer_callback ExportLiveToBuffer; + /** C type : ImportFromBufferToWorking_callback* */ + public VR_IVRChaperoneSetup_FnTable.ImportFromBufferToWorking_callback ImportFromBufferToWorking; + /** native declaration : headers\openvr_capi.h:1554 */ + public interface CommitWorkingCopy_callback extends Callback { + byte apply(int configFile); + }; + /** native declaration : headers\openvr_capi.h:1555 */ + public interface RevertWorkingCopy_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1556 */ + public interface GetWorkingPlayAreaSize_callback extends Callback { + byte apply(FloatByReference pSizeX, FloatByReference pSizeZ); + }; + /** native declaration : headers\openvr_capi.h:1557 */ + public interface GetWorkingPlayAreaRect_callback extends Callback { + byte apply(HmdQuad_t rect); + }; + /** native declaration : headers\openvr_capi.h:1558 */ + public interface GetWorkingCollisionBoundsInfo_callback extends Callback { + byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); + }; + /** native declaration : headers\openvr_capi.h:1559 */ + public interface GetLiveCollisionBoundsInfo_callback extends Callback { + byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); + }; + /** native declaration : headers\openvr_capi.h:1560 */ + public interface GetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { + byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); + }; + /** native declaration : headers\openvr_capi.h:1561 */ + public interface GetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { + byte apply(HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose); + }; + /** native declaration : headers\openvr_capi.h:1562 */ + public interface SetWorkingPlayAreaSize_callback extends Callback { + void apply(float sizeX, float sizeZ); + }; + /** native declaration : headers\openvr_capi.h:1563 */ + public interface SetWorkingCollisionBoundsInfo_callback extends Callback { + void apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); + }; + /** native declaration : headers\openvr_capi.h:1564 */ + public interface SetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { + void apply(HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose); + }; + /** native declaration : headers\openvr_capi.h:1565 */ + public interface SetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { + void apply(HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose); + }; + /** native declaration : headers\openvr_capi.h:1566 */ + public interface ReloadFromDisk_callback extends Callback { + void apply(int configFile); + }; + /** native declaration : headers\openvr_capi.h:1567 */ + public interface GetLiveSeatedZeroPoseToRawTrackingPose_callback extends Callback { + byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); + }; + /** native declaration : headers\openvr_capi.h:1568 */ + public interface SetWorkingCollisionBoundsTagsInfo_callback extends Callback { + void apply(Pointer pTagsBuffer, int unTagCount); + }; + /** native declaration : headers\openvr_capi.h:1569 */ + public interface GetLiveCollisionBoundsTagsInfo_callback extends Callback { + byte apply(Pointer pTagsBuffer, IntByReference punTagCount); + }; + /** native declaration : headers\openvr_capi.h:1570 */ + public interface SetWorkingPhysicalBoundsInfo_callback extends Callback { + byte apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); + }; + /** native declaration : headers\openvr_capi.h:1571 */ + public interface GetLivePhysicalBoundsInfo_callback extends Callback { + byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); + }; + /** native declaration : headers\openvr_capi.h:1572 */ + public interface ExportLiveToBuffer_callback extends Callback { + byte apply(Pointer pBuffer, IntByReference pnBufferLength); + }; + /** native declaration : headers\openvr_capi.h:1573 */ + public interface ImportFromBufferToWorking_callback extends Callback { + byte apply(Pointer pBuffer, int nImportFlags); + }; + public VR_IVRChaperoneSetup_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("CommitWorkingCopy", "RevertWorkingCopy", "GetWorkingPlayAreaSize", "GetWorkingPlayAreaRect", "GetWorkingCollisionBoundsInfo", "GetLiveCollisionBoundsInfo", "GetWorkingSeatedZeroPoseToRawTrackingPose", "GetWorkingStandingZeroPoseToRawTrackingPose", "SetWorkingPlayAreaSize", "SetWorkingCollisionBoundsInfo", "SetWorkingSeatedZeroPoseToRawTrackingPose", "SetWorkingStandingZeroPoseToRawTrackingPose", "ReloadFromDisk", "GetLiveSeatedZeroPoseToRawTrackingPose", "SetWorkingCollisionBoundsTagsInfo", "GetLiveCollisionBoundsTagsInfo", "SetWorkingPhysicalBoundsInfo", "GetLivePhysicalBoundsInfo", "ExportLiveToBuffer", "ImportFromBufferToWorking"); + } + public VR_IVRChaperoneSetup_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRChaperoneSetup_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRChaperoneSetup_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperone_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperone_FnTable.java index 0d827d2cf..4d3457526 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperone_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperone_FnTable.java @@ -6,94 +6,94 @@ import com.sun.jna.ptr.FloatByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1501
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRChaperone_FnTable extends Structure { - /** C type : GetCalibrationState_callback* */ - public VR_IVRChaperone_FnTable.GetCalibrationState_callback GetCalibrationState; - /** C type : GetPlayAreaSize_callback* */ - public VR_IVRChaperone_FnTable.GetPlayAreaSize_callback GetPlayAreaSize; - /** C type : GetPlayAreaRect_callback* */ - public VR_IVRChaperone_FnTable.GetPlayAreaRect_callback GetPlayAreaRect; - /** C type : ReloadInfo_callback* */ - public VR_IVRChaperone_FnTable.ReloadInfo_callback ReloadInfo; - /** C type : SetSceneColor_callback* */ - public VR_IVRChaperone_FnTable.SetSceneColor_callback SetSceneColor; - /** C type : GetBoundsColor_callback* */ - public VR_IVRChaperone_FnTable.GetBoundsColor_callback GetBoundsColor; - /** C type : AreBoundsVisible_callback* */ - public VR_IVRChaperone_FnTable.AreBoundsVisible_callback AreBoundsVisible; - /** C type : ForceBoundsVisible_callback* */ - public VR_IVRChaperone_FnTable.ForceBoundsVisible_callback ForceBoundsVisible; - /** native declaration : headers\openvr_capi.h:1493 */ - public interface GetCalibrationState_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1494 */ - public interface GetPlayAreaSize_callback extends Callback { - byte apply(FloatByReference pSizeX, FloatByReference pSizeZ); - }; - /** native declaration : headers\openvr_capi.h:1495 */ - public interface GetPlayAreaRect_callback extends Callback { - byte apply(HmdQuad_t rect); - }; - /** native declaration : headers\openvr_capi.h:1496 */ - public interface ReloadInfo_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1497 */ - public interface SetSceneColor_callback extends Callback { - void apply(HmdColor_t.ByValue color); - }; - /** native declaration : headers\openvr_capi.h:1498 */ - public interface GetBoundsColor_callback extends Callback { - void apply(HmdColor_t pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, HmdColor_t pOutputCameraColor); - }; - /** native declaration : headers\openvr_capi.h:1499 */ - public interface AreBoundsVisible_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1500 */ - public interface ForceBoundsVisible_callback extends Callback { - void apply(byte bForce); - }; - public VR_IVRChaperone_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("GetCalibrationState", "GetPlayAreaSize", "GetPlayAreaRect", "ReloadInfo", "SetSceneColor", "GetBoundsColor", "AreBoundsVisible", "ForceBoundsVisible"); - } + * native declaration : headers\openvr_capi.h:1532
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRChaperone_FnTable extends Structure { + /** C type : GetCalibrationState_callback* */ + public VR_IVRChaperone_FnTable.GetCalibrationState_callback GetCalibrationState; + /** C type : GetPlayAreaSize_callback* */ + public VR_IVRChaperone_FnTable.GetPlayAreaSize_callback GetPlayAreaSize; + /** C type : GetPlayAreaRect_callback* */ + public VR_IVRChaperone_FnTable.GetPlayAreaRect_callback GetPlayAreaRect; + /** C type : ReloadInfo_callback* */ + public VR_IVRChaperone_FnTable.ReloadInfo_callback ReloadInfo; + /** C type : SetSceneColor_callback* */ + public VR_IVRChaperone_FnTable.SetSceneColor_callback SetSceneColor; + /** C type : GetBoundsColor_callback* */ + public VR_IVRChaperone_FnTable.GetBoundsColor_callback GetBoundsColor; + /** C type : AreBoundsVisible_callback* */ + public VR_IVRChaperone_FnTable.AreBoundsVisible_callback AreBoundsVisible; + /** C type : ForceBoundsVisible_callback* */ + public VR_IVRChaperone_FnTable.ForceBoundsVisible_callback ForceBoundsVisible; + /** native declaration : headers\openvr_capi.h:1524 */ + public interface GetCalibrationState_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1525 */ + public interface GetPlayAreaSize_callback extends Callback { + byte apply(FloatByReference pSizeX, FloatByReference pSizeZ); + }; + /** native declaration : headers\openvr_capi.h:1526 */ + public interface GetPlayAreaRect_callback extends Callback { + byte apply(HmdQuad_t rect); + }; + /** native declaration : headers\openvr_capi.h:1527 */ + public interface ReloadInfo_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1528 */ + public interface SetSceneColor_callback extends Callback { + void apply(HmdColor_t.ByValue color); + }; + /** native declaration : headers\openvr_capi.h:1529 */ + public interface GetBoundsColor_callback extends Callback { + void apply(HmdColor_t pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, HmdColor_t pOutputCameraColor); + }; + /** native declaration : headers\openvr_capi.h:1530 */ + public interface AreBoundsVisible_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1531 */ + public interface ForceBoundsVisible_callback extends Callback { + void apply(byte bForce); + }; + public VR_IVRChaperone_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("GetCalibrationState", "GetPlayAreaSize", "GetPlayAreaRect", "ReloadInfo", "SetSceneColor", "GetBoundsColor", "AreBoundsVisible", "ForceBoundsVisible"); + } /** - * @param GetCalibrationState C type : GetCalibrationState_callback*
    - * @param GetPlayAreaSize C type : GetPlayAreaSize_callback*
    - * @param GetPlayAreaRect C type : GetPlayAreaRect_callback*
    - * @param ReloadInfo C type : ReloadInfo_callback*
    - * @param SetSceneColor C type : SetSceneColor_callback*
    - * @param GetBoundsColor C type : GetBoundsColor_callback*
    - * @param AreBoundsVisible C type : AreBoundsVisible_callback*
    - * @param ForceBoundsVisible C type : ForceBoundsVisible_callback* - */ - public VR_IVRChaperone_FnTable(VR_IVRChaperone_FnTable.GetCalibrationState_callback GetCalibrationState, VR_IVRChaperone_FnTable.GetPlayAreaSize_callback GetPlayAreaSize, VR_IVRChaperone_FnTable.GetPlayAreaRect_callback GetPlayAreaRect, VR_IVRChaperone_FnTable.ReloadInfo_callback ReloadInfo, VR_IVRChaperone_FnTable.SetSceneColor_callback SetSceneColor, VR_IVRChaperone_FnTable.GetBoundsColor_callback GetBoundsColor, VR_IVRChaperone_FnTable.AreBoundsVisible_callback AreBoundsVisible, VR_IVRChaperone_FnTable.ForceBoundsVisible_callback ForceBoundsVisible) { - super(); - this.GetCalibrationState = GetCalibrationState; - this.GetPlayAreaSize = GetPlayAreaSize; - this.GetPlayAreaRect = GetPlayAreaRect; - this.ReloadInfo = ReloadInfo; - this.SetSceneColor = SetSceneColor; - this.GetBoundsColor = GetBoundsColor; - this.AreBoundsVisible = AreBoundsVisible; - this.ForceBoundsVisible = ForceBoundsVisible; - } - public VR_IVRChaperone_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRChaperone_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRChaperone_FnTable implements Structure.ByValue { - - }; + * @param GetCalibrationState C type : GetCalibrationState_callback*
    + * @param GetPlayAreaSize C type : GetPlayAreaSize_callback*
    + * @param GetPlayAreaRect C type : GetPlayAreaRect_callback*
    + * @param ReloadInfo C type : ReloadInfo_callback*
    + * @param SetSceneColor C type : SetSceneColor_callback*
    + * @param GetBoundsColor C type : GetBoundsColor_callback*
    + * @param AreBoundsVisible C type : AreBoundsVisible_callback*
    + * @param ForceBoundsVisible C type : ForceBoundsVisible_callback* + */ + public VR_IVRChaperone_FnTable(VR_IVRChaperone_FnTable.GetCalibrationState_callback GetCalibrationState, VR_IVRChaperone_FnTable.GetPlayAreaSize_callback GetPlayAreaSize, VR_IVRChaperone_FnTable.GetPlayAreaRect_callback GetPlayAreaRect, VR_IVRChaperone_FnTable.ReloadInfo_callback ReloadInfo, VR_IVRChaperone_FnTable.SetSceneColor_callback SetSceneColor, VR_IVRChaperone_FnTable.GetBoundsColor_callback GetBoundsColor, VR_IVRChaperone_FnTable.AreBoundsVisible_callback AreBoundsVisible, VR_IVRChaperone_FnTable.ForceBoundsVisible_callback ForceBoundsVisible) { + super(); + this.GetCalibrationState = GetCalibrationState; + this.GetPlayAreaSize = GetPlayAreaSize; + this.GetPlayAreaRect = GetPlayAreaRect; + this.ReloadInfo = ReloadInfo; + this.SetSceneColor = SetSceneColor; + this.GetBoundsColor = GetBoundsColor; + this.AreBoundsVisible = AreBoundsVisible; + this.ForceBoundsVisible = ForceBoundsVisible; + } + public VR_IVRChaperone_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRChaperone_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRChaperone_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRCompositor_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRCompositor_FnTable.java index 0d1b143f6..d9f34b618 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRCompositor_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRCompositor_FnTable.java @@ -8,271 +8,271 @@ import com.sun.jna.ptr.PointerByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1627
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRCompositor_FnTable extends Structure { - /** C type : SetTrackingSpace_callback* */ - public VR_IVRCompositor_FnTable.SetTrackingSpace_callback SetTrackingSpace; - /** C type : GetTrackingSpace_callback* */ - public VR_IVRCompositor_FnTable.GetTrackingSpace_callback GetTrackingSpace; - /** C type : WaitGetPoses_callback* */ - public VR_IVRCompositor_FnTable.WaitGetPoses_callback WaitGetPoses; - /** C type : GetLastPoses_callback* */ - public VR_IVRCompositor_FnTable.GetLastPoses_callback GetLastPoses; - /** C type : GetLastPoseForTrackedDeviceIndex_callback* */ - public VR_IVRCompositor_FnTable.GetLastPoseForTrackedDeviceIndex_callback GetLastPoseForTrackedDeviceIndex; - /** C type : Submit_callback* */ - public VR_IVRCompositor_FnTable.Submit_callback Submit; - /** C type : ClearLastSubmittedFrame_callback* */ - public VR_IVRCompositor_FnTable.ClearLastSubmittedFrame_callback ClearLastSubmittedFrame; - /** C type : PostPresentHandoff_callback* */ - public VR_IVRCompositor_FnTable.PostPresentHandoff_callback PostPresentHandoff; - /** C type : GetFrameTiming_callback* */ - public VR_IVRCompositor_FnTable.GetFrameTiming_callback GetFrameTiming; - /** C type : GetFrameTimings_callback* */ - public VR_IVRCompositor_FnTable.GetFrameTimings_callback GetFrameTimings; - /** C type : GetFrameTimeRemaining_callback* */ - public VR_IVRCompositor_FnTable.GetFrameTimeRemaining_callback GetFrameTimeRemaining; - /** C type : GetCumulativeStats_callback* */ - public VR_IVRCompositor_FnTable.GetCumulativeStats_callback GetCumulativeStats; - /** C type : FadeToColor_callback* */ - public VR_IVRCompositor_FnTable.FadeToColor_callback FadeToColor; - /** C type : GetCurrentFadeColor_callback* */ - public VR_IVRCompositor_FnTable.GetCurrentFadeColor_callback GetCurrentFadeColor; - /** C type : FadeGrid_callback* */ - public VR_IVRCompositor_FnTable.FadeGrid_callback FadeGrid; - /** C type : GetCurrentGridAlpha_callback* */ - public VR_IVRCompositor_FnTable.GetCurrentGridAlpha_callback GetCurrentGridAlpha; - /** C type : SetSkyboxOverride_callback* */ - public VR_IVRCompositor_FnTable.SetSkyboxOverride_callback SetSkyboxOverride; - /** C type : ClearSkyboxOverride_callback* */ - public VR_IVRCompositor_FnTable.ClearSkyboxOverride_callback ClearSkyboxOverride; - /** C type : CompositorBringToFront_callback* */ - public VR_IVRCompositor_FnTable.CompositorBringToFront_callback CompositorBringToFront; - /** C type : CompositorGoToBack_callback* */ - public VR_IVRCompositor_FnTable.CompositorGoToBack_callback CompositorGoToBack; - /** C type : CompositorQuit_callback* */ - public VR_IVRCompositor_FnTable.CompositorQuit_callback CompositorQuit; - /** C type : IsFullscreen_callback* */ - public VR_IVRCompositor_FnTable.IsFullscreen_callback IsFullscreen; - /** C type : GetCurrentSceneFocusProcess_callback* */ - public VR_IVRCompositor_FnTable.GetCurrentSceneFocusProcess_callback GetCurrentSceneFocusProcess; - /** C type : GetLastFrameRenderer_callback* */ - public VR_IVRCompositor_FnTable.GetLastFrameRenderer_callback GetLastFrameRenderer; - /** C type : CanRenderScene_callback* */ - public VR_IVRCompositor_FnTable.CanRenderScene_callback CanRenderScene; - /** C type : ShowMirrorWindow_callback* */ - public VR_IVRCompositor_FnTable.ShowMirrorWindow_callback ShowMirrorWindow; - /** C type : HideMirrorWindow_callback* */ - public VR_IVRCompositor_FnTable.HideMirrorWindow_callback HideMirrorWindow; - /** C type : IsMirrorWindowVisible_callback* */ - public VR_IVRCompositor_FnTable.IsMirrorWindowVisible_callback IsMirrorWindowVisible; - /** C type : CompositorDumpImages_callback* */ - public VR_IVRCompositor_FnTable.CompositorDumpImages_callback CompositorDumpImages; - /** C type : ShouldAppRenderWithLowResources_callback* */ - public VR_IVRCompositor_FnTable.ShouldAppRenderWithLowResources_callback ShouldAppRenderWithLowResources; - /** C type : ForceInterleavedReprojectionOn_callback* */ - public VR_IVRCompositor_FnTable.ForceInterleavedReprojectionOn_callback ForceInterleavedReprojectionOn; - /** C type : ForceReconnectProcess_callback* */ - public VR_IVRCompositor_FnTable.ForceReconnectProcess_callback ForceReconnectProcess; - /** C type : SuspendRendering_callback* */ - public VR_IVRCompositor_FnTable.SuspendRendering_callback SuspendRendering; - /** C type : GetMirrorTextureD3D11_callback* */ - public VR_IVRCompositor_FnTable.GetMirrorTextureD3D11_callback GetMirrorTextureD3D11; - /** C type : ReleaseMirrorTextureD3D11_callback* */ - public VR_IVRCompositor_FnTable.ReleaseMirrorTextureD3D11_callback ReleaseMirrorTextureD3D11; - /** C type : GetMirrorTextureGL_callback* */ - public VR_IVRCompositor_FnTable.GetMirrorTextureGL_callback GetMirrorTextureGL; - /** C type : ReleaseSharedGLTexture_callback* */ - public VR_IVRCompositor_FnTable.ReleaseSharedGLTexture_callback ReleaseSharedGLTexture; - /** C type : LockGLSharedTextureForAccess_callback* */ - public VR_IVRCompositor_FnTable.LockGLSharedTextureForAccess_callback LockGLSharedTextureForAccess; - /** C type : UnlockGLSharedTextureForAccess_callback* */ - public VR_IVRCompositor_FnTable.UnlockGLSharedTextureForAccess_callback UnlockGLSharedTextureForAccess; - /** C type : GetVulkanInstanceExtensionsRequired_callback* */ - public VR_IVRCompositor_FnTable.GetVulkanInstanceExtensionsRequired_callback GetVulkanInstanceExtensionsRequired; - /** C type : GetVulkanDeviceExtensionsRequired_callback* */ - public VR_IVRCompositor_FnTable.GetVulkanDeviceExtensionsRequired_callback GetVulkanDeviceExtensionsRequired; - /** native declaration : headers\openvr_capi.h:1586 */ - public interface SetTrackingSpace_callback extends Callback { - void apply(int eOrigin); - }; - /** native declaration : headers\openvr_capi.h:1587 */ - public interface GetTrackingSpace_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1588 */ - public interface WaitGetPoses_callback extends Callback { - int apply(TrackedDevicePose_t pRenderPoseArray, int unRenderPoseArrayCount, TrackedDevicePose_t pGamePoseArray, int unGamePoseArrayCount); - }; - /** native declaration : headers\openvr_capi.h:1589 */ - public interface GetLastPoses_callback extends Callback { - int apply(TrackedDevicePose_t pRenderPoseArray, int unRenderPoseArrayCount, TrackedDevicePose_t pGamePoseArray, int unGamePoseArrayCount); - }; - /** native declaration : headers\openvr_capi.h:1590 */ - public interface GetLastPoseForTrackedDeviceIndex_callback extends Callback { - int apply(int unDeviceIndex, TrackedDevicePose_t pOutputPose, TrackedDevicePose_t pOutputGamePose); - }; - /** native declaration : headers\openvr_capi.h:1591 */ - public interface Submit_callback extends Callback { - int apply(int eEye, Texture_t pTexture, VRTextureBounds_t pBounds, int nSubmitFlags); - }; - /** native declaration : headers\openvr_capi.h:1592 */ - public interface ClearLastSubmittedFrame_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1593 */ - public interface PostPresentHandoff_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1594 */ - public interface GetFrameTiming_callback extends Callback { - byte apply(Compositor_FrameTiming pTiming, int unFramesAgo); - }; - /** native declaration : headers\openvr_capi.h:1595 */ - public interface GetFrameTimings_callback extends Callback { - int apply(Compositor_FrameTiming pTiming, int nFrames); - }; - /** native declaration : headers\openvr_capi.h:1596 */ - public interface GetFrameTimeRemaining_callback extends Callback { - float apply(); - }; - /** native declaration : headers\openvr_capi.h:1597 */ - public interface GetCumulativeStats_callback extends Callback { - void apply(Compositor_CumulativeStats pStats, int nStatsSizeInBytes); - }; - /** native declaration : headers\openvr_capi.h:1598 */ - public interface FadeToColor_callback extends Callback { - void apply(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, byte bBackground); - }; - /** native declaration : headers\openvr_capi.h:1599 */ - public interface GetCurrentFadeColor_callback extends Callback { - com.jme3.system.jopenvr.HmdColor_t.ByValue apply(byte bBackground); - }; - /** native declaration : headers\openvr_capi.h:1600 */ - public interface FadeGrid_callback extends Callback { - void apply(float fSeconds, byte bFadeIn); - }; - /** native declaration : headers\openvr_capi.h:1601 */ - public interface GetCurrentGridAlpha_callback extends Callback { - float apply(); - }; - /** native declaration : headers\openvr_capi.h:1602 */ - public interface SetSkyboxOverride_callback extends Callback { - int apply(Texture_t pTextures, int unTextureCount); - }; - /** native declaration : headers\openvr_capi.h:1603 */ - public interface ClearSkyboxOverride_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1604 */ - public interface CompositorBringToFront_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1605 */ - public interface CompositorGoToBack_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1606 */ - public interface CompositorQuit_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1607 */ - public interface IsFullscreen_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1608 */ - public interface GetCurrentSceneFocusProcess_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1609 */ - public interface GetLastFrameRenderer_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1610 */ - public interface CanRenderScene_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1611 */ - public interface ShowMirrorWindow_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1612 */ - public interface HideMirrorWindow_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1613 */ - public interface IsMirrorWindowVisible_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1614 */ - public interface CompositorDumpImages_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1615 */ - public interface ShouldAppRenderWithLowResources_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1616 */ - public interface ForceInterleavedReprojectionOn_callback extends Callback { - void apply(byte bOverride); - }; - /** native declaration : headers\openvr_capi.h:1617 */ - public interface ForceReconnectProcess_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1618 */ - public interface SuspendRendering_callback extends Callback { - void apply(byte bSuspend); - }; - /** native declaration : headers\openvr_capi.h:1619 */ - public interface GetMirrorTextureD3D11_callback extends Callback { - int apply(int eEye, Pointer pD3D11DeviceOrResource, PointerByReference ppD3D11ShaderResourceView); - }; - /** native declaration : headers\openvr_capi.h:1620 */ - public interface ReleaseMirrorTextureD3D11_callback extends Callback { - void apply(Pointer pD3D11ShaderResourceView); - }; - /** native declaration : headers\openvr_capi.h:1621 */ - public interface GetMirrorTextureGL_callback extends Callback { - int apply(int eEye, IntByReference pglTextureId, PointerByReference pglSharedTextureHandle); - }; - /** native declaration : headers\openvr_capi.h:1622 */ - public interface ReleaseSharedGLTexture_callback extends Callback { - byte apply(int glTextureId, Pointer glSharedTextureHandle); - }; - /** native declaration : headers\openvr_capi.h:1623 */ - public interface LockGLSharedTextureForAccess_callback extends Callback { - void apply(Pointer glSharedTextureHandle); - }; - /** native declaration : headers\openvr_capi.h:1624 */ - public interface UnlockGLSharedTextureForAccess_callback extends Callback { - void apply(Pointer glSharedTextureHandle); - }; - /** native declaration : headers\openvr_capi.h:1625 */ - public interface GetVulkanInstanceExtensionsRequired_callback extends Callback { - int apply(Pointer pchValue, int unBufferSize); - }; - /** native declaration : headers\openvr_capi.h:1626 */ - public interface GetVulkanDeviceExtensionsRequired_callback extends Callback { - int apply(VkPhysicalDevice_T pPhysicalDevice, Pointer pchValue, int unBufferSize); - }; - public VR_IVRCompositor_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("SetTrackingSpace", "GetTrackingSpace", "WaitGetPoses", "GetLastPoses", "GetLastPoseForTrackedDeviceIndex", "Submit", "ClearLastSubmittedFrame", "PostPresentHandoff", "GetFrameTiming", "GetFrameTimings", "GetFrameTimeRemaining", "GetCumulativeStats", "FadeToColor", "GetCurrentFadeColor", "FadeGrid", "GetCurrentGridAlpha", "SetSkyboxOverride", "ClearSkyboxOverride", "CompositorBringToFront", "CompositorGoToBack", "CompositorQuit", "IsFullscreen", "GetCurrentSceneFocusProcess", "GetLastFrameRenderer", "CanRenderScene", "ShowMirrorWindow", "HideMirrorWindow", "IsMirrorWindowVisible", "CompositorDumpImages", "ShouldAppRenderWithLowResources", "ForceInterleavedReprojectionOn", "ForceReconnectProcess", "SuspendRendering", "GetMirrorTextureD3D11", "ReleaseMirrorTextureD3D11", "GetMirrorTextureGL", "ReleaseSharedGLTexture", "LockGLSharedTextureForAccess", "UnlockGLSharedTextureForAccess", "GetVulkanInstanceExtensionsRequired", "GetVulkanDeviceExtensionsRequired"); - } - public VR_IVRCompositor_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRCompositor_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRCompositor_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1658
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRCompositor_FnTable extends Structure { + /** C type : SetTrackingSpace_callback* */ + public VR_IVRCompositor_FnTable.SetTrackingSpace_callback SetTrackingSpace; + /** C type : GetTrackingSpace_callback* */ + public VR_IVRCompositor_FnTable.GetTrackingSpace_callback GetTrackingSpace; + /** C type : WaitGetPoses_callback* */ + public VR_IVRCompositor_FnTable.WaitGetPoses_callback WaitGetPoses; + /** C type : GetLastPoses_callback* */ + public VR_IVRCompositor_FnTable.GetLastPoses_callback GetLastPoses; + /** C type : GetLastPoseForTrackedDeviceIndex_callback* */ + public VR_IVRCompositor_FnTable.GetLastPoseForTrackedDeviceIndex_callback GetLastPoseForTrackedDeviceIndex; + /** C type : Submit_callback* */ + public VR_IVRCompositor_FnTable.Submit_callback Submit; + /** C type : ClearLastSubmittedFrame_callback* */ + public VR_IVRCompositor_FnTable.ClearLastSubmittedFrame_callback ClearLastSubmittedFrame; + /** C type : PostPresentHandoff_callback* */ + public VR_IVRCompositor_FnTable.PostPresentHandoff_callback PostPresentHandoff; + /** C type : GetFrameTiming_callback* */ + public VR_IVRCompositor_FnTable.GetFrameTiming_callback GetFrameTiming; + /** C type : GetFrameTimings_callback* */ + public VR_IVRCompositor_FnTable.GetFrameTimings_callback GetFrameTimings; + /** C type : GetFrameTimeRemaining_callback* */ + public VR_IVRCompositor_FnTable.GetFrameTimeRemaining_callback GetFrameTimeRemaining; + /** C type : GetCumulativeStats_callback* */ + public VR_IVRCompositor_FnTable.GetCumulativeStats_callback GetCumulativeStats; + /** C type : FadeToColor_callback* */ + public VR_IVRCompositor_FnTable.FadeToColor_callback FadeToColor; + /** C type : GetCurrentFadeColor_callback* */ + public VR_IVRCompositor_FnTable.GetCurrentFadeColor_callback GetCurrentFadeColor; + /** C type : FadeGrid_callback* */ + public VR_IVRCompositor_FnTable.FadeGrid_callback FadeGrid; + /** C type : GetCurrentGridAlpha_callback* */ + public VR_IVRCompositor_FnTable.GetCurrentGridAlpha_callback GetCurrentGridAlpha; + /** C type : SetSkyboxOverride_callback* */ + public VR_IVRCompositor_FnTable.SetSkyboxOverride_callback SetSkyboxOverride; + /** C type : ClearSkyboxOverride_callback* */ + public VR_IVRCompositor_FnTable.ClearSkyboxOverride_callback ClearSkyboxOverride; + /** C type : CompositorBringToFront_callback* */ + public VR_IVRCompositor_FnTable.CompositorBringToFront_callback CompositorBringToFront; + /** C type : CompositorGoToBack_callback* */ + public VR_IVRCompositor_FnTable.CompositorGoToBack_callback CompositorGoToBack; + /** C type : CompositorQuit_callback* */ + public VR_IVRCompositor_FnTable.CompositorQuit_callback CompositorQuit; + /** C type : IsFullscreen_callback* */ + public VR_IVRCompositor_FnTable.IsFullscreen_callback IsFullscreen; + /** C type : GetCurrentSceneFocusProcess_callback* */ + public VR_IVRCompositor_FnTable.GetCurrentSceneFocusProcess_callback GetCurrentSceneFocusProcess; + /** C type : GetLastFrameRenderer_callback* */ + public VR_IVRCompositor_FnTable.GetLastFrameRenderer_callback GetLastFrameRenderer; + /** C type : CanRenderScene_callback* */ + public VR_IVRCompositor_FnTable.CanRenderScene_callback CanRenderScene; + /** C type : ShowMirrorWindow_callback* */ + public VR_IVRCompositor_FnTable.ShowMirrorWindow_callback ShowMirrorWindow; + /** C type : HideMirrorWindow_callback* */ + public VR_IVRCompositor_FnTable.HideMirrorWindow_callback HideMirrorWindow; + /** C type : IsMirrorWindowVisible_callback* */ + public VR_IVRCompositor_FnTable.IsMirrorWindowVisible_callback IsMirrorWindowVisible; + /** C type : CompositorDumpImages_callback* */ + public VR_IVRCompositor_FnTable.CompositorDumpImages_callback CompositorDumpImages; + /** C type : ShouldAppRenderWithLowResources_callback* */ + public VR_IVRCompositor_FnTable.ShouldAppRenderWithLowResources_callback ShouldAppRenderWithLowResources; + /** C type : ForceInterleavedReprojectionOn_callback* */ + public VR_IVRCompositor_FnTable.ForceInterleavedReprojectionOn_callback ForceInterleavedReprojectionOn; + /** C type : ForceReconnectProcess_callback* */ + public VR_IVRCompositor_FnTable.ForceReconnectProcess_callback ForceReconnectProcess; + /** C type : SuspendRendering_callback* */ + public VR_IVRCompositor_FnTable.SuspendRendering_callback SuspendRendering; + /** C type : GetMirrorTextureD3D11_callback* */ + public VR_IVRCompositor_FnTable.GetMirrorTextureD3D11_callback GetMirrorTextureD3D11; + /** C type : ReleaseMirrorTextureD3D11_callback* */ + public VR_IVRCompositor_FnTable.ReleaseMirrorTextureD3D11_callback ReleaseMirrorTextureD3D11; + /** C type : GetMirrorTextureGL_callback* */ + public VR_IVRCompositor_FnTable.GetMirrorTextureGL_callback GetMirrorTextureGL; + /** C type : ReleaseSharedGLTexture_callback* */ + public VR_IVRCompositor_FnTable.ReleaseSharedGLTexture_callback ReleaseSharedGLTexture; + /** C type : LockGLSharedTextureForAccess_callback* */ + public VR_IVRCompositor_FnTable.LockGLSharedTextureForAccess_callback LockGLSharedTextureForAccess; + /** C type : UnlockGLSharedTextureForAccess_callback* */ + public VR_IVRCompositor_FnTable.UnlockGLSharedTextureForAccess_callback UnlockGLSharedTextureForAccess; + /** C type : GetVulkanInstanceExtensionsRequired_callback* */ + public VR_IVRCompositor_FnTable.GetVulkanInstanceExtensionsRequired_callback GetVulkanInstanceExtensionsRequired; + /** C type : GetVulkanDeviceExtensionsRequired_callback* */ + public VR_IVRCompositor_FnTable.GetVulkanDeviceExtensionsRequired_callback GetVulkanDeviceExtensionsRequired; + /** native declaration : headers\openvr_capi.h:1617 */ + public interface SetTrackingSpace_callback extends Callback { + void apply(int eOrigin); + }; + /** native declaration : headers\openvr_capi.h:1618 */ + public interface GetTrackingSpace_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1619 */ + public interface WaitGetPoses_callback extends Callback { + int apply(TrackedDevicePose_t pRenderPoseArray, int unRenderPoseArrayCount, TrackedDevicePose_t pGamePoseArray, int unGamePoseArrayCount); + }; + /** native declaration : headers\openvr_capi.h:1620 */ + public interface GetLastPoses_callback extends Callback { + int apply(TrackedDevicePose_t pRenderPoseArray, int unRenderPoseArrayCount, TrackedDevicePose_t pGamePoseArray, int unGamePoseArrayCount); + }; + /** native declaration : headers\openvr_capi.h:1621 */ + public interface GetLastPoseForTrackedDeviceIndex_callback extends Callback { + int apply(int unDeviceIndex, TrackedDevicePose_t pOutputPose, TrackedDevicePose_t pOutputGamePose); + }; + /** native declaration : headers\openvr_capi.h:1622 */ + public interface Submit_callback extends Callback { + int apply(int eEye, Texture_t pTexture, VRTextureBounds_t pBounds, int nSubmitFlags); + }; + /** native declaration : headers\openvr_capi.h:1623 */ + public interface ClearLastSubmittedFrame_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1624 */ + public interface PostPresentHandoff_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1625 */ + public interface GetFrameTiming_callback extends Callback { + byte apply(Compositor_FrameTiming pTiming, int unFramesAgo); + }; + /** native declaration : headers\openvr_capi.h:1626 */ + public interface GetFrameTimings_callback extends Callback { + int apply(Compositor_FrameTiming pTiming, int nFrames); + }; + /** native declaration : headers\openvr_capi.h:1627 */ + public interface GetFrameTimeRemaining_callback extends Callback { + float apply(); + }; + /** native declaration : headers\openvr_capi.h:1628 */ + public interface GetCumulativeStats_callback extends Callback { + void apply(Compositor_CumulativeStats pStats, int nStatsSizeInBytes); + }; + /** native declaration : headers\openvr_capi.h:1629 */ + public interface FadeToColor_callback extends Callback { + void apply(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, byte bBackground); + }; + /** native declaration : headers\openvr_capi.h:1630 */ + public interface GetCurrentFadeColor_callback extends Callback { + com.jme3.system.jopenvr.HmdColor_t.ByValue apply(byte bBackground); + }; + /** native declaration : headers\openvr_capi.h:1631 */ + public interface FadeGrid_callback extends Callback { + void apply(float fSeconds, byte bFadeIn); + }; + /** native declaration : headers\openvr_capi.h:1632 */ + public interface GetCurrentGridAlpha_callback extends Callback { + float apply(); + }; + /** native declaration : headers\openvr_capi.h:1633 */ + public interface SetSkyboxOverride_callback extends Callback { + int apply(Texture_t pTextures, int unTextureCount); + }; + /** native declaration : headers\openvr_capi.h:1634 */ + public interface ClearSkyboxOverride_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1635 */ + public interface CompositorBringToFront_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1636 */ + public interface CompositorGoToBack_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1637 */ + public interface CompositorQuit_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1638 */ + public interface IsFullscreen_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1639 */ + public interface GetCurrentSceneFocusProcess_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1640 */ + public interface GetLastFrameRenderer_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1641 */ + public interface CanRenderScene_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1642 */ + public interface ShowMirrorWindow_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1643 */ + public interface HideMirrorWindow_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1644 */ + public interface IsMirrorWindowVisible_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1645 */ + public interface CompositorDumpImages_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1646 */ + public interface ShouldAppRenderWithLowResources_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1647 */ + public interface ForceInterleavedReprojectionOn_callback extends Callback { + void apply(byte bOverride); + }; + /** native declaration : headers\openvr_capi.h:1648 */ + public interface ForceReconnectProcess_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1649 */ + public interface SuspendRendering_callback extends Callback { + void apply(byte bSuspend); + }; + /** native declaration : headers\openvr_capi.h:1650 */ + public interface GetMirrorTextureD3D11_callback extends Callback { + int apply(int eEye, Pointer pD3D11DeviceOrResource, PointerByReference ppD3D11ShaderResourceView); + }; + /** native declaration : headers\openvr_capi.h:1651 */ + public interface ReleaseMirrorTextureD3D11_callback extends Callback { + void apply(Pointer pD3D11ShaderResourceView); + }; + /** native declaration : headers\openvr_capi.h:1652 */ + public interface GetMirrorTextureGL_callback extends Callback { + int apply(int eEye, IntByReference pglTextureId, PointerByReference pglSharedTextureHandle); + }; + /** native declaration : headers\openvr_capi.h:1653 */ + public interface ReleaseSharedGLTexture_callback extends Callback { + byte apply(int glTextureId, Pointer glSharedTextureHandle); + }; + /** native declaration : headers\openvr_capi.h:1654 */ + public interface LockGLSharedTextureForAccess_callback extends Callback { + void apply(Pointer glSharedTextureHandle); + }; + /** native declaration : headers\openvr_capi.h:1655 */ + public interface UnlockGLSharedTextureForAccess_callback extends Callback { + void apply(Pointer glSharedTextureHandle); + }; + /** native declaration : headers\openvr_capi.h:1656 */ + public interface GetVulkanInstanceExtensionsRequired_callback extends Callback { + int apply(Pointer pchValue, int unBufferSize); + }; + /** native declaration : headers\openvr_capi.h:1657 */ + public interface GetVulkanDeviceExtensionsRequired_callback extends Callback { + int apply(VkPhysicalDevice_T pPhysicalDevice, Pointer pchValue, int unBufferSize); + }; + public VR_IVRCompositor_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("SetTrackingSpace", "GetTrackingSpace", "WaitGetPoses", "GetLastPoses", "GetLastPoseForTrackedDeviceIndex", "Submit", "ClearLastSubmittedFrame", "PostPresentHandoff", "GetFrameTiming", "GetFrameTimings", "GetFrameTimeRemaining", "GetCumulativeStats", "FadeToColor", "GetCurrentFadeColor", "FadeGrid", "GetCurrentGridAlpha", "SetSkyboxOverride", "ClearSkyboxOverride", "CompositorBringToFront", "CompositorGoToBack", "CompositorQuit", "IsFullscreen", "GetCurrentSceneFocusProcess", "GetLastFrameRenderer", "CanRenderScene", "ShowMirrorWindow", "HideMirrorWindow", "IsMirrorWindowVisible", "CompositorDumpImages", "ShouldAppRenderWithLowResources", "ForceInterleavedReprojectionOn", "ForceReconnectProcess", "SuspendRendering", "GetMirrorTextureD3D11", "ReleaseMirrorTextureD3D11", "GetMirrorTextureGL", "ReleaseSharedGLTexture", "LockGLSharedTextureForAccess", "UnlockGLSharedTextureForAccess", "GetVulkanInstanceExtensionsRequired", "GetVulkanDeviceExtensionsRequired"); + } + public VR_IVRCompositor_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRCompositor_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRCompositor_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRDriverManager_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRDriverManager_FnTable.java new file mode 100644 index 000000000..4bd918859 --- /dev/null +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRDriverManager_FnTable.java @@ -0,0 +1,50 @@ +package com.jme3.system.jopenvr; +import com.sun.jna.Callback; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; +import java.util.Arrays; +import java.util.List; +/** + * native declaration : headers\openvr_capi.h:1918
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRDriverManager_FnTable extends Structure { + /** C type : GetDriverCount_callback* */ + public VR_IVRDriverManager_FnTable.GetDriverCount_callback GetDriverCount; + /** C type : GetDriverName_callback* */ + public VR_IVRDriverManager_FnTable.GetDriverName_callback GetDriverName; + /** native declaration : headers\openvr_capi.h:1916 */ + public interface GetDriverCount_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1917 */ + public interface GetDriverName_callback extends Callback { + int apply(int nDriver, Pointer pchValue, int unBufferSize); + }; + public VR_IVRDriverManager_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("GetDriverCount", "GetDriverName"); + } + /** + * @param GetDriverCount C type : GetDriverCount_callback*
    + * @param GetDriverName C type : GetDriverName_callback* + */ + public VR_IVRDriverManager_FnTable(VR_IVRDriverManager_FnTable.GetDriverCount_callback GetDriverCount, VR_IVRDriverManager_FnTable.GetDriverName_callback GetDriverName) { + super(); + this.GetDriverCount = GetDriverCount; + this.GetDriverName = GetDriverName; + } + public VR_IVRDriverManager_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRDriverManager_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRDriverManager_FnTable implements Structure.ByValue { + + }; +} diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRExtendedDisplay_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRExtendedDisplay_FnTable.java index 027c6dc81..ded79eec3 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRExtendedDisplay_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRExtendedDisplay_FnTable.java @@ -6,54 +6,54 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1393
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRExtendedDisplay_FnTable extends Structure { - /** C type : GetWindowBounds_callback* */ - public VR_IVRExtendedDisplay_FnTable.GetWindowBounds_callback GetWindowBounds; - /** C type : GetEyeOutputViewport_callback* */ - public VR_IVRExtendedDisplay_FnTable.GetEyeOutputViewport_callback GetEyeOutputViewport; - /** C type : GetDXGIOutputInfo_callback* */ - public VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo; - /** native declaration : headers\openvr_capi.h:1390 */ - public interface GetWindowBounds_callback extends Callback { - void apply(IntByReference pnX, IntByReference pnY, IntByReference pnWidth, IntByReference pnHeight); - }; - /** native declaration : headers\openvr_capi.h:1391 */ - public interface GetEyeOutputViewport_callback extends Callback { - void apply(int eEye, IntByReference pnX, IntByReference pnY, IntByReference pnWidth, IntByReference pnHeight); - }; - /** native declaration : headers\openvr_capi.h:1392 */ - public interface GetDXGIOutputInfo_callback extends Callback { - void apply(IntByReference pnAdapterIndex, IntByReference pnAdapterOutputIndex); - }; - public VR_IVRExtendedDisplay_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("GetWindowBounds", "GetEyeOutputViewport", "GetDXGIOutputInfo"); - } + * native declaration : headers\openvr_capi.h:1424
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRExtendedDisplay_FnTable extends Structure { + /** C type : GetWindowBounds_callback* */ + public VR_IVRExtendedDisplay_FnTable.GetWindowBounds_callback GetWindowBounds; + /** C type : GetEyeOutputViewport_callback* */ + public VR_IVRExtendedDisplay_FnTable.GetEyeOutputViewport_callback GetEyeOutputViewport; + /** C type : GetDXGIOutputInfo_callback* */ + public VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo; + /** native declaration : headers\openvr_capi.h:1421 */ + public interface GetWindowBounds_callback extends Callback { + void apply(IntByReference pnX, IntByReference pnY, IntByReference pnWidth, IntByReference pnHeight); + }; + /** native declaration : headers\openvr_capi.h:1422 */ + public interface GetEyeOutputViewport_callback extends Callback { + void apply(int eEye, IntByReference pnX, IntByReference pnY, IntByReference pnWidth, IntByReference pnHeight); + }; + /** native declaration : headers\openvr_capi.h:1423 */ + public interface GetDXGIOutputInfo_callback extends Callback { + void apply(IntByReference pnAdapterIndex, IntByReference pnAdapterOutputIndex); + }; + public VR_IVRExtendedDisplay_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("GetWindowBounds", "GetEyeOutputViewport", "GetDXGIOutputInfo"); + } /** - * @param GetWindowBounds C type : GetWindowBounds_callback*
    - * @param GetEyeOutputViewport C type : GetEyeOutputViewport_callback*
    - * @param GetDXGIOutputInfo C type : GetDXGIOutputInfo_callback* - */ - public VR_IVRExtendedDisplay_FnTable(VR_IVRExtendedDisplay_FnTable.GetWindowBounds_callback GetWindowBounds, VR_IVRExtendedDisplay_FnTable.GetEyeOutputViewport_callback GetEyeOutputViewport, VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo) { - super(); - this.GetWindowBounds = GetWindowBounds; - this.GetEyeOutputViewport = GetEyeOutputViewport; - this.GetDXGIOutputInfo = GetDXGIOutputInfo; - } - public VR_IVRExtendedDisplay_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRExtendedDisplay_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRExtendedDisplay_FnTable implements Structure.ByValue { - - }; + * @param GetWindowBounds C type : GetWindowBounds_callback*
    + * @param GetEyeOutputViewport C type : GetEyeOutputViewport_callback*
    + * @param GetDXGIOutputInfo C type : GetDXGIOutputInfo_callback* + */ + public VR_IVRExtendedDisplay_FnTable(VR_IVRExtendedDisplay_FnTable.GetWindowBounds_callback GetWindowBounds, VR_IVRExtendedDisplay_FnTable.GetEyeOutputViewport_callback GetEyeOutputViewport, VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo) { + super(); + this.GetWindowBounds = GetWindowBounds; + this.GetEyeOutputViewport = GetEyeOutputViewport; + this.GetDXGIOutputInfo = GetDXGIOutputInfo; + } + public VR_IVRExtendedDisplay_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRExtendedDisplay_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRExtendedDisplay_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRNotifications_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRNotifications_FnTable.java index d04b40327..f7e701982 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRNotifications_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRNotifications_FnTable.java @@ -6,46 +6,46 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1823
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRNotifications_FnTable extends Structure { - /** C type : CreateNotification_callback* */ - public VR_IVRNotifications_FnTable.CreateNotification_callback CreateNotification; - /** C type : RemoveNotification_callback* */ - public VR_IVRNotifications_FnTable.RemoveNotification_callback RemoveNotification; - /** native declaration : headers\openvr_capi.h:1821 */ - public interface CreateNotification_callback extends Callback { - int apply(long ulOverlayHandle, long ulUserValue, int type, Pointer pchText, int style, NotificationBitmap_t pImage, IntByReference pNotificationId); - }; - /** native declaration : headers\openvr_capi.h:1822 */ - public interface RemoveNotification_callback extends Callback { - int apply(int notificationId); - }; - public VR_IVRNotifications_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("CreateNotification", "RemoveNotification"); - } + * native declaration : headers\openvr_capi.h:1864
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRNotifications_FnTable extends Structure { + /** C type : CreateNotification_callback* */ + public VR_IVRNotifications_FnTable.CreateNotification_callback CreateNotification; + /** C type : RemoveNotification_callback* */ + public VR_IVRNotifications_FnTable.RemoveNotification_callback RemoveNotification; + /** native declaration : headers\openvr_capi.h:1862 */ + public interface CreateNotification_callback extends Callback { + int apply(long ulOverlayHandle, long ulUserValue, int type, Pointer pchText, int style, NotificationBitmap_t pImage, IntByReference pNotificationId); + }; + /** native declaration : headers\openvr_capi.h:1863 */ + public interface RemoveNotification_callback extends Callback { + int apply(int notificationId); + }; + public VR_IVRNotifications_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("CreateNotification", "RemoveNotification"); + } /** - * @param CreateNotification C type : CreateNotification_callback*
    - * @param RemoveNotification C type : RemoveNotification_callback* - */ - public VR_IVRNotifications_FnTable(VR_IVRNotifications_FnTable.CreateNotification_callback CreateNotification, VR_IVRNotifications_FnTable.RemoveNotification_callback RemoveNotification) { - super(); - this.CreateNotification = CreateNotification; - this.RemoveNotification = RemoveNotification; - } - public VR_IVRNotifications_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRNotifications_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRNotifications_FnTable implements Structure.ByValue { - - }; + * @param CreateNotification C type : CreateNotification_callback*
    + * @param RemoveNotification C type : RemoveNotification_callback* + */ + public VR_IVRNotifications_FnTable(VR_IVRNotifications_FnTable.CreateNotification_callback CreateNotification, VR_IVRNotifications_FnTable.RemoveNotification_callback RemoveNotification) { + super(); + this.CreateNotification = CreateNotification; + this.RemoveNotification = RemoveNotification; + } + public VR_IVRNotifications_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRNotifications_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRNotifications_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVROverlay_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVROverlay_FnTable.java index f7fe2d13d..6ad29adca 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVROverlay_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVROverlay_FnTable.java @@ -9,475 +9,505 @@ import com.sun.jna.ptr.PointerByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1779
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVROverlay_FnTable extends Structure { - /** C type : FindOverlay_callback* */ - public VR_IVROverlay_FnTable.FindOverlay_callback FindOverlay; - /** C type : CreateOverlay_callback* */ - public VR_IVROverlay_FnTable.CreateOverlay_callback CreateOverlay; - /** C type : DestroyOverlay_callback* */ - public VR_IVROverlay_FnTable.DestroyOverlay_callback DestroyOverlay; - /** C type : SetHighQualityOverlay_callback* */ - public VR_IVROverlay_FnTable.SetHighQualityOverlay_callback SetHighQualityOverlay; - /** C type : GetHighQualityOverlay_callback* */ - public VR_IVROverlay_FnTable.GetHighQualityOverlay_callback GetHighQualityOverlay; - /** C type : GetOverlayKey_callback* */ - public VR_IVROverlay_FnTable.GetOverlayKey_callback GetOverlayKey; - /** C type : GetOverlayName_callback* */ - public VR_IVROverlay_FnTable.GetOverlayName_callback GetOverlayName; - /** C type : GetOverlayImageData_callback* */ - public VR_IVROverlay_FnTable.GetOverlayImageData_callback GetOverlayImageData; - /** C type : GetOverlayErrorNameFromEnum_callback* */ - public VR_IVROverlay_FnTable.GetOverlayErrorNameFromEnum_callback GetOverlayErrorNameFromEnum; - /** C type : SetOverlayRenderingPid_callback* */ - public VR_IVROverlay_FnTable.SetOverlayRenderingPid_callback SetOverlayRenderingPid; - /** C type : GetOverlayRenderingPid_callback* */ - public VR_IVROverlay_FnTable.GetOverlayRenderingPid_callback GetOverlayRenderingPid; - /** C type : SetOverlayFlag_callback* */ - public VR_IVROverlay_FnTable.SetOverlayFlag_callback SetOverlayFlag; - /** C type : GetOverlayFlag_callback* */ - public VR_IVROverlay_FnTable.GetOverlayFlag_callback GetOverlayFlag; - /** C type : SetOverlayColor_callback* */ - public VR_IVROverlay_FnTable.SetOverlayColor_callback SetOverlayColor; - /** C type : GetOverlayColor_callback* */ - public VR_IVROverlay_FnTable.GetOverlayColor_callback GetOverlayColor; - /** C type : SetOverlayAlpha_callback* */ - public VR_IVROverlay_FnTable.SetOverlayAlpha_callback SetOverlayAlpha; - /** C type : GetOverlayAlpha_callback* */ - public VR_IVROverlay_FnTable.GetOverlayAlpha_callback GetOverlayAlpha; - /** C type : SetOverlayTexelAspect_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTexelAspect_callback SetOverlayTexelAspect; - /** C type : GetOverlayTexelAspect_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTexelAspect_callback GetOverlayTexelAspect; - /** C type : SetOverlaySortOrder_callback* */ - public VR_IVROverlay_FnTable.SetOverlaySortOrder_callback SetOverlaySortOrder; - /** C type : GetOverlaySortOrder_callback* */ - public VR_IVROverlay_FnTable.GetOverlaySortOrder_callback GetOverlaySortOrder; - /** C type : SetOverlayWidthInMeters_callback* */ - public VR_IVROverlay_FnTable.SetOverlayWidthInMeters_callback SetOverlayWidthInMeters; - /** C type : GetOverlayWidthInMeters_callback* */ - public VR_IVROverlay_FnTable.GetOverlayWidthInMeters_callback GetOverlayWidthInMeters; - /** C type : SetOverlayAutoCurveDistanceRangeInMeters_callback* */ - public VR_IVROverlay_FnTable.SetOverlayAutoCurveDistanceRangeInMeters_callback SetOverlayAutoCurveDistanceRangeInMeters; - /** C type : GetOverlayAutoCurveDistanceRangeInMeters_callback* */ - public VR_IVROverlay_FnTable.GetOverlayAutoCurveDistanceRangeInMeters_callback GetOverlayAutoCurveDistanceRangeInMeters; - /** C type : SetOverlayTextureColorSpace_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTextureColorSpace_callback SetOverlayTextureColorSpace; - /** C type : GetOverlayTextureColorSpace_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTextureColorSpace_callback GetOverlayTextureColorSpace; - /** C type : SetOverlayTextureBounds_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTextureBounds_callback SetOverlayTextureBounds; - /** C type : GetOverlayTextureBounds_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTextureBounds_callback GetOverlayTextureBounds; - /** C type : GetOverlayTransformType_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTransformType_callback GetOverlayTransformType; - /** C type : SetOverlayTransformAbsolute_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTransformAbsolute_callback SetOverlayTransformAbsolute; - /** C type : GetOverlayTransformAbsolute_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTransformAbsolute_callback GetOverlayTransformAbsolute; - /** C type : SetOverlayTransformTrackedDeviceRelative_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTransformTrackedDeviceRelative_callback SetOverlayTransformTrackedDeviceRelative; - /** C type : GetOverlayTransformTrackedDeviceRelative_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTransformTrackedDeviceRelative_callback GetOverlayTransformTrackedDeviceRelative; - /** C type : SetOverlayTransformTrackedDeviceComponent_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTransformTrackedDeviceComponent_callback SetOverlayTransformTrackedDeviceComponent; - /** C type : GetOverlayTransformTrackedDeviceComponent_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTransformTrackedDeviceComponent_callback GetOverlayTransformTrackedDeviceComponent; - /** C type : ShowOverlay_callback* */ - public VR_IVROverlay_FnTable.ShowOverlay_callback ShowOverlay; - /** C type : HideOverlay_callback* */ - public VR_IVROverlay_FnTable.HideOverlay_callback HideOverlay; - /** C type : IsOverlayVisible_callback* */ - public VR_IVROverlay_FnTable.IsOverlayVisible_callback IsOverlayVisible; - /** C type : GetTransformForOverlayCoordinates_callback* */ - public VR_IVROverlay_FnTable.GetTransformForOverlayCoordinates_callback GetTransformForOverlayCoordinates; - /** C type : PollNextOverlayEvent_callback* */ - public VR_IVROverlay_FnTable.PollNextOverlayEvent_callback PollNextOverlayEvent; - /** C type : GetOverlayInputMethod_callback* */ - public VR_IVROverlay_FnTable.GetOverlayInputMethod_callback GetOverlayInputMethod; - /** C type : SetOverlayInputMethod_callback* */ - public VR_IVROverlay_FnTable.SetOverlayInputMethod_callback SetOverlayInputMethod; - /** C type : GetOverlayMouseScale_callback* */ - public VR_IVROverlay_FnTable.GetOverlayMouseScale_callback GetOverlayMouseScale; - /** C type : SetOverlayMouseScale_callback* */ - public VR_IVROverlay_FnTable.SetOverlayMouseScale_callback SetOverlayMouseScale; - /** C type : ComputeOverlayIntersection_callback* */ - public VR_IVROverlay_FnTable.ComputeOverlayIntersection_callback ComputeOverlayIntersection; - /** C type : HandleControllerOverlayInteractionAsMouse_callback* */ - public VR_IVROverlay_FnTable.HandleControllerOverlayInteractionAsMouse_callback HandleControllerOverlayInteractionAsMouse; - /** C type : IsHoverTargetOverlay_callback* */ - public VR_IVROverlay_FnTable.IsHoverTargetOverlay_callback IsHoverTargetOverlay; - /** C type : GetGamepadFocusOverlay_callback* */ - public VR_IVROverlay_FnTable.GetGamepadFocusOverlay_callback GetGamepadFocusOverlay; - /** C type : SetGamepadFocusOverlay_callback* */ - public VR_IVROverlay_FnTable.SetGamepadFocusOverlay_callback SetGamepadFocusOverlay; - /** C type : SetOverlayNeighbor_callback* */ - public VR_IVROverlay_FnTable.SetOverlayNeighbor_callback SetOverlayNeighbor; - /** C type : MoveGamepadFocusToNeighbor_callback* */ - public VR_IVROverlay_FnTable.MoveGamepadFocusToNeighbor_callback MoveGamepadFocusToNeighbor; - /** C type : SetOverlayTexture_callback* */ - public VR_IVROverlay_FnTable.SetOverlayTexture_callback SetOverlayTexture; - /** C type : ClearOverlayTexture_callback* */ - public VR_IVROverlay_FnTable.ClearOverlayTexture_callback ClearOverlayTexture; - /** C type : SetOverlayRaw_callback* */ - public VR_IVROverlay_FnTable.SetOverlayRaw_callback SetOverlayRaw; - /** C type : SetOverlayFromFile_callback* */ - public VR_IVROverlay_FnTable.SetOverlayFromFile_callback SetOverlayFromFile; - /** C type : GetOverlayTexture_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTexture_callback GetOverlayTexture; - /** C type : ReleaseNativeOverlayHandle_callback* */ - public VR_IVROverlay_FnTable.ReleaseNativeOverlayHandle_callback ReleaseNativeOverlayHandle; - /** C type : GetOverlayTextureSize_callback* */ - public VR_IVROverlay_FnTable.GetOverlayTextureSize_callback GetOverlayTextureSize; - /** C type : CreateDashboardOverlay_callback* */ - public VR_IVROverlay_FnTable.CreateDashboardOverlay_callback CreateDashboardOverlay; - /** C type : IsDashboardVisible_callback* */ - public VR_IVROverlay_FnTable.IsDashboardVisible_callback IsDashboardVisible; - /** C type : IsActiveDashboardOverlay_callback* */ - public VR_IVROverlay_FnTable.IsActiveDashboardOverlay_callback IsActiveDashboardOverlay; - /** C type : SetDashboardOverlaySceneProcess_callback* */ - public VR_IVROverlay_FnTable.SetDashboardOverlaySceneProcess_callback SetDashboardOverlaySceneProcess; - /** C type : GetDashboardOverlaySceneProcess_callback* */ - public VR_IVROverlay_FnTable.GetDashboardOverlaySceneProcess_callback GetDashboardOverlaySceneProcess; - /** C type : ShowDashboard_callback* */ - public VR_IVROverlay_FnTable.ShowDashboard_callback ShowDashboard; - /** C type : GetPrimaryDashboardDevice_callback* */ - public VR_IVROverlay_FnTable.GetPrimaryDashboardDevice_callback GetPrimaryDashboardDevice; - /** C type : ShowKeyboard_callback* */ - public VR_IVROverlay_FnTable.ShowKeyboard_callback ShowKeyboard; - /** C type : ShowKeyboardForOverlay_callback* */ - public VR_IVROverlay_FnTable.ShowKeyboardForOverlay_callback ShowKeyboardForOverlay; - /** C type : GetKeyboardText_callback* */ - public VR_IVROverlay_FnTable.GetKeyboardText_callback GetKeyboardText; - /** C type : HideKeyboard_callback* */ - public VR_IVROverlay_FnTable.HideKeyboard_callback HideKeyboard; - /** C type : SetKeyboardTransformAbsolute_callback* */ - public VR_IVROverlay_FnTable.SetKeyboardTransformAbsolute_callback SetKeyboardTransformAbsolute; - /** C type : SetKeyboardPositionForOverlay_callback* */ - public VR_IVROverlay_FnTable.SetKeyboardPositionForOverlay_callback SetKeyboardPositionForOverlay; - /** C type : SetOverlayIntersectionMask_callback* */ - public VR_IVROverlay_FnTable.SetOverlayIntersectionMask_callback SetOverlayIntersectionMask; - /** C type : GetOverlayFlags_callback* */ - public VR_IVROverlay_FnTable.GetOverlayFlags_callback GetOverlayFlags; - /** C type : ShowMessageOverlay_callback* */ - public VR_IVROverlay_FnTable.ShowMessageOverlay_callback ShowMessageOverlay; - /** native declaration : headers\openvr_capi.h:1704 */ - public interface FindOverlay_callback extends Callback { - int apply(Pointer pchOverlayKey, LongByReference pOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1705 */ - public interface CreateOverlay_callback extends Callback { - int apply(Pointer pchOverlayKey, Pointer pchOverlayFriendlyName, LongByReference pOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1706 */ - public interface DestroyOverlay_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1707 */ - public interface SetHighQualityOverlay_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1708 */ - public interface GetHighQualityOverlay_callback extends Callback { - long apply(); - }; - /** native declaration : headers\openvr_capi.h:1709 */ - public interface GetOverlayKey_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pchValue, int unBufferSize, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1710 */ - public interface GetOverlayName_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pchValue, int unBufferSize, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1711 */ - public interface GetOverlayImageData_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pvBuffer, int unBufferSize, IntByReference punWidth, IntByReference punHeight); - }; - /** native declaration : headers\openvr_capi.h:1712 */ - public interface GetOverlayErrorNameFromEnum_callback extends Callback { - Pointer apply(int error); - }; - /** native declaration : headers\openvr_capi.h:1713 */ - public interface SetOverlayRenderingPid_callback extends Callback { - int apply(long ulOverlayHandle, int unPID); - }; - /** native declaration : headers\openvr_capi.h:1714 */ - public interface GetOverlayRenderingPid_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1715 */ - public interface SetOverlayFlag_callback extends Callback { - int apply(long ulOverlayHandle, int eOverlayFlag, byte bEnabled); - }; - /** native declaration : headers\openvr_capi.h:1716 */ - public interface GetOverlayFlag_callback extends Callback { - int apply(long ulOverlayHandle, int eOverlayFlag, Pointer pbEnabled); - }; - /** native declaration : headers\openvr_capi.h:1717 */ - public interface SetOverlayColor_callback extends Callback { - int apply(long ulOverlayHandle, float fRed, float fGreen, float fBlue); - }; - /** native declaration : headers\openvr_capi.h:1718 */ - public interface GetOverlayColor_callback extends Callback { - int apply(long ulOverlayHandle, FloatByReference pfRed, FloatByReference pfGreen, FloatByReference pfBlue); - }; - /** native declaration : headers\openvr_capi.h:1719 */ - public interface SetOverlayAlpha_callback extends Callback { - int apply(long ulOverlayHandle, float fAlpha); - }; - /** native declaration : headers\openvr_capi.h:1720 */ - public interface GetOverlayAlpha_callback extends Callback { - int apply(long ulOverlayHandle, FloatByReference pfAlpha); - }; - /** native declaration : headers\openvr_capi.h:1721 */ - public interface SetOverlayTexelAspect_callback extends Callback { - int apply(long ulOverlayHandle, float fTexelAspect); - }; - /** native declaration : headers\openvr_capi.h:1722 */ - public interface GetOverlayTexelAspect_callback extends Callback { - int apply(long ulOverlayHandle, FloatByReference pfTexelAspect); - }; - /** native declaration : headers\openvr_capi.h:1723 */ - public interface SetOverlaySortOrder_callback extends Callback { - int apply(long ulOverlayHandle, int unSortOrder); - }; - /** native declaration : headers\openvr_capi.h:1724 */ - public interface GetOverlaySortOrder_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference punSortOrder); - }; - /** native declaration : headers\openvr_capi.h:1725 */ - public interface SetOverlayWidthInMeters_callback extends Callback { - int apply(long ulOverlayHandle, float fWidthInMeters); - }; - /** native declaration : headers\openvr_capi.h:1726 */ - public interface GetOverlayWidthInMeters_callback extends Callback { - int apply(long ulOverlayHandle, FloatByReference pfWidthInMeters); - }; - /** native declaration : headers\openvr_capi.h:1727 */ - public interface SetOverlayAutoCurveDistanceRangeInMeters_callback extends Callback { - int apply(long ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters); - }; - /** native declaration : headers\openvr_capi.h:1728 */ - public interface GetOverlayAutoCurveDistanceRangeInMeters_callback extends Callback { - int apply(long ulOverlayHandle, FloatByReference pfMinDistanceInMeters, FloatByReference pfMaxDistanceInMeters); - }; - /** native declaration : headers\openvr_capi.h:1729 */ - public interface SetOverlayTextureColorSpace_callback extends Callback { - int apply(long ulOverlayHandle, int eTextureColorSpace); - }; - /** native declaration : headers\openvr_capi.h:1730 */ - public interface GetOverlayTextureColorSpace_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference peTextureColorSpace); - }; - /** native declaration : headers\openvr_capi.h:1731 */ - public interface SetOverlayTextureBounds_callback extends Callback { - int apply(long ulOverlayHandle, VRTextureBounds_t pOverlayTextureBounds); - }; - /** native declaration : headers\openvr_capi.h:1732 */ - public interface GetOverlayTextureBounds_callback extends Callback { - int apply(long ulOverlayHandle, VRTextureBounds_t pOverlayTextureBounds); - }; - /** native declaration : headers\openvr_capi.h:1733 */ - public interface GetOverlayTransformType_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference peTransformType); - }; - /** native declaration : headers\openvr_capi.h:1734 */ - public interface SetOverlayTransformAbsolute_callback extends Callback { - int apply(long ulOverlayHandle, int eTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToOverlayTransform); - }; - /** native declaration : headers\openvr_capi.h:1735 */ - public interface GetOverlayTransformAbsolute_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference peTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToOverlayTransform); - }; - /** native declaration : headers\openvr_capi.h:1736 */ - public interface SetOverlayTransformTrackedDeviceRelative_callback extends Callback { - int apply(long ulOverlayHandle, int unTrackedDevice, HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); - }; - /** native declaration : headers\openvr_capi.h:1737 */ - public interface GetOverlayTransformTrackedDeviceRelative_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference punTrackedDevice, HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); - }; - /** native declaration : headers\openvr_capi.h:1738 */ - public interface SetOverlayTransformTrackedDeviceComponent_callback extends Callback { - int apply(long ulOverlayHandle, int unDeviceIndex, Pointer pchComponentName); - }; - /** native declaration : headers\openvr_capi.h:1739 */ - public interface GetOverlayTransformTrackedDeviceComponent_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference punDeviceIndex, Pointer pchComponentName, int unComponentNameSize); - }; - /** native declaration : headers\openvr_capi.h:1740 */ - public interface ShowOverlay_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1741 */ - public interface HideOverlay_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1742 */ - public interface IsOverlayVisible_callback extends Callback { - byte apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1743 */ - public interface GetTransformForOverlayCoordinates_callback extends Callback { - int apply(long ulOverlayHandle, int eTrackingOrigin, HmdVector2_t.ByValue coordinatesInOverlay, HmdMatrix34_t pmatTransform); - }; - /** native declaration : headers\openvr_capi.h:1744 */ - public interface PollNextOverlayEvent_callback extends Callback { - byte apply(long ulOverlayHandle, VREvent_t pEvent, int uncbVREvent); - }; - /** native declaration : headers\openvr_capi.h:1745 */ - public interface GetOverlayInputMethod_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference peInputMethod); - }; - /** native declaration : headers\openvr_capi.h:1746 */ - public interface SetOverlayInputMethod_callback extends Callback { - int apply(long ulOverlayHandle, int eInputMethod); - }; - /** native declaration : headers\openvr_capi.h:1747 */ - public interface GetOverlayMouseScale_callback extends Callback { - int apply(long ulOverlayHandle, HmdVector2_t pvecMouseScale); - }; - /** native declaration : headers\openvr_capi.h:1748 */ - public interface SetOverlayMouseScale_callback extends Callback { - int apply(long ulOverlayHandle, HmdVector2_t pvecMouseScale); - }; - /** native declaration : headers\openvr_capi.h:1749 */ - public interface ComputeOverlayIntersection_callback extends Callback { - byte apply(long ulOverlayHandle, VROverlayIntersectionParams_t pParams, VROverlayIntersectionResults_t pResults); - }; - /** native declaration : headers\openvr_capi.h:1750 */ - public interface HandleControllerOverlayInteractionAsMouse_callback extends Callback { - byte apply(long ulOverlayHandle, int unControllerDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1751 */ - public interface IsHoverTargetOverlay_callback extends Callback { - byte apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1752 */ - public interface GetGamepadFocusOverlay_callback extends Callback { - long apply(); - }; - /** native declaration : headers\openvr_capi.h:1753 */ - public interface SetGamepadFocusOverlay_callback extends Callback { - int apply(long ulNewFocusOverlay); - }; - /** native declaration : headers\openvr_capi.h:1754 */ - public interface SetOverlayNeighbor_callback extends Callback { - int apply(int eDirection, long ulFrom, long ulTo); - }; - /** native declaration : headers\openvr_capi.h:1755 */ - public interface MoveGamepadFocusToNeighbor_callback extends Callback { - int apply(int eDirection, long ulFrom); - }; - /** native declaration : headers\openvr_capi.h:1756 */ - public interface SetOverlayTexture_callback extends Callback { - int apply(long ulOverlayHandle, Texture_t pTexture); - }; - /** native declaration : headers\openvr_capi.h:1757 */ - public interface ClearOverlayTexture_callback extends Callback { - int apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1758 */ - public interface SetOverlayRaw_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pvBuffer, int unWidth, int unHeight, int unDepth); - }; - /** native declaration : headers\openvr_capi.h:1759 */ - public interface SetOverlayFromFile_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pchFilePath); - }; - /** native declaration : headers\openvr_capi.h:1760 */ - public interface GetOverlayTexture_callback extends Callback { - int apply(long ulOverlayHandle, PointerByReference pNativeTextureHandle, Pointer pNativeTextureRef, IntByReference pWidth, IntByReference pHeight, IntByReference pNativeFormat, IntByReference pAPIType, IntByReference pColorSpace, VRTextureBounds_t pTextureBounds); - }; - /** native declaration : headers\openvr_capi.h:1761 */ - public interface ReleaseNativeOverlayHandle_callback extends Callback { - int apply(long ulOverlayHandle, Pointer pNativeTextureHandle); - }; - /** native declaration : headers\openvr_capi.h:1762 */ - public interface GetOverlayTextureSize_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference pWidth, IntByReference pHeight); - }; - /** native declaration : headers\openvr_capi.h:1763 */ - public interface CreateDashboardOverlay_callback extends Callback { - int apply(Pointer pchOverlayKey, Pointer pchOverlayFriendlyName, LongByReference pMainHandle, LongByReference pThumbnailHandle); - }; - /** native declaration : headers\openvr_capi.h:1764 */ - public interface IsDashboardVisible_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1765 */ - public interface IsActiveDashboardOverlay_callback extends Callback { - byte apply(long ulOverlayHandle); - }; - /** native declaration : headers\openvr_capi.h:1766 */ - public interface SetDashboardOverlaySceneProcess_callback extends Callback { - int apply(long ulOverlayHandle, int unProcessId); - }; - /** native declaration : headers\openvr_capi.h:1767 */ - public interface GetDashboardOverlaySceneProcess_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference punProcessId); - }; - /** native declaration : headers\openvr_capi.h:1768 */ - public interface ShowDashboard_callback extends Callback { - void apply(Pointer pchOverlayToShow); - }; - /** native declaration : headers\openvr_capi.h:1769 */ - public interface GetPrimaryDashboardDevice_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1770 */ - public interface ShowKeyboard_callback extends Callback { - int apply(int eInputMode, int eLineInputMode, Pointer pchDescription, int unCharMax, Pointer pchExistingText, byte bUseMinimalMode, long uUserValue); - }; - /** native declaration : headers\openvr_capi.h:1771 */ - public interface ShowKeyboardForOverlay_callback extends Callback { - int apply(long ulOverlayHandle, int eInputMode, int eLineInputMode, Pointer pchDescription, int unCharMax, Pointer pchExistingText, byte bUseMinimalMode, long uUserValue); - }; - /** native declaration : headers\openvr_capi.h:1772 */ - public interface GetKeyboardText_callback extends Callback { - int apply(Pointer pchText, int cchText); - }; - /** native declaration : headers\openvr_capi.h:1773 */ - public interface HideKeyboard_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1774 */ - public interface SetKeyboardTransformAbsolute_callback extends Callback { - void apply(int eTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToKeyboardTransform); - }; - /** native declaration : headers\openvr_capi.h:1775 */ - public interface SetKeyboardPositionForOverlay_callback extends Callback { - void apply(long ulOverlayHandle, com.jme3.system.jopenvr.HmdRect2_t.ByValue avoidRect); - }; - /** native declaration : headers\openvr_capi.h:1776 */ - public interface SetOverlayIntersectionMask_callback extends Callback { - int apply(long ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t pMaskPrimitives, int unNumMaskPrimitives, int unPrimitiveSize); - }; - /** native declaration : headers\openvr_capi.h:1777 */ - public interface GetOverlayFlags_callback extends Callback { - int apply(long ulOverlayHandle, IntByReference pFlags); - }; - /** native declaration : headers\openvr_capi.h:1778 */ - public interface ShowMessageOverlay_callback extends Callback { - int apply(Pointer pchText, Pointer pchCaption, Pointer pchButton0Text, Pointer pchButton1Text, Pointer pchButton2Text, Pointer pchButton3Text); - }; - public VR_IVROverlay_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("FindOverlay", "CreateOverlay", "DestroyOverlay", "SetHighQualityOverlay", "GetHighQualityOverlay", "GetOverlayKey", "GetOverlayName", "GetOverlayImageData", "GetOverlayErrorNameFromEnum", "SetOverlayRenderingPid", "GetOverlayRenderingPid", "SetOverlayFlag", "GetOverlayFlag", "SetOverlayColor", "GetOverlayColor", "SetOverlayAlpha", "GetOverlayAlpha", "SetOverlayTexelAspect", "GetOverlayTexelAspect", "SetOverlaySortOrder", "GetOverlaySortOrder", "SetOverlayWidthInMeters", "GetOverlayWidthInMeters", "SetOverlayAutoCurveDistanceRangeInMeters", "GetOverlayAutoCurveDistanceRangeInMeters", "SetOverlayTextureColorSpace", "GetOverlayTextureColorSpace", "SetOverlayTextureBounds", "GetOverlayTextureBounds", "GetOverlayTransformType", "SetOverlayTransformAbsolute", "GetOverlayTransformAbsolute", "SetOverlayTransformTrackedDeviceRelative", "GetOverlayTransformTrackedDeviceRelative", "SetOverlayTransformTrackedDeviceComponent", "GetOverlayTransformTrackedDeviceComponent", "ShowOverlay", "HideOverlay", "IsOverlayVisible", "GetTransformForOverlayCoordinates", "PollNextOverlayEvent", "GetOverlayInputMethod", "SetOverlayInputMethod", "GetOverlayMouseScale", "SetOverlayMouseScale", "ComputeOverlayIntersection", "HandleControllerOverlayInteractionAsMouse", "IsHoverTargetOverlay", "GetGamepadFocusOverlay", "SetGamepadFocusOverlay", "SetOverlayNeighbor", "MoveGamepadFocusToNeighbor", "SetOverlayTexture", "ClearOverlayTexture", "SetOverlayRaw", "SetOverlayFromFile", "GetOverlayTexture", "ReleaseNativeOverlayHandle", "GetOverlayTextureSize", "CreateDashboardOverlay", "IsDashboardVisible", "IsActiveDashboardOverlay", "SetDashboardOverlaySceneProcess", "GetDashboardOverlaySceneProcess", "ShowDashboard", "GetPrimaryDashboardDevice", "ShowKeyboard", "ShowKeyboardForOverlay", "GetKeyboardText", "HideKeyboard", "SetKeyboardTransformAbsolute", "SetKeyboardPositionForOverlay", "SetOverlayIntersectionMask", "GetOverlayFlags", "ShowMessageOverlay"); - } - public VR_IVROverlay_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVROverlay_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVROverlay_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1820
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVROverlay_FnTable extends Structure { + /** C type : FindOverlay_callback* */ + public VR_IVROverlay_FnTable.FindOverlay_callback FindOverlay; + /** C type : CreateOverlay_callback* */ + public VR_IVROverlay_FnTable.CreateOverlay_callback CreateOverlay; + /** C type : DestroyOverlay_callback* */ + public VR_IVROverlay_FnTable.DestroyOverlay_callback DestroyOverlay; + /** C type : SetHighQualityOverlay_callback* */ + public VR_IVROverlay_FnTable.SetHighQualityOverlay_callback SetHighQualityOverlay; + /** C type : GetHighQualityOverlay_callback* */ + public VR_IVROverlay_FnTable.GetHighQualityOverlay_callback GetHighQualityOverlay; + /** C type : GetOverlayKey_callback* */ + public VR_IVROverlay_FnTable.GetOverlayKey_callback GetOverlayKey; + /** C type : GetOverlayName_callback* */ + public VR_IVROverlay_FnTable.GetOverlayName_callback GetOverlayName; + /** C type : SetOverlayName_callback* */ + public VR_IVROverlay_FnTable.SetOverlayName_callback SetOverlayName; + /** C type : GetOverlayImageData_callback* */ + public VR_IVROverlay_FnTable.GetOverlayImageData_callback GetOverlayImageData; + /** C type : GetOverlayErrorNameFromEnum_callback* */ + public VR_IVROverlay_FnTable.GetOverlayErrorNameFromEnum_callback GetOverlayErrorNameFromEnum; + /** C type : SetOverlayRenderingPid_callback* */ + public VR_IVROverlay_FnTable.SetOverlayRenderingPid_callback SetOverlayRenderingPid; + /** C type : GetOverlayRenderingPid_callback* */ + public VR_IVROverlay_FnTable.GetOverlayRenderingPid_callback GetOverlayRenderingPid; + /** C type : SetOverlayFlag_callback* */ + public VR_IVROverlay_FnTable.SetOverlayFlag_callback SetOverlayFlag; + /** C type : GetOverlayFlag_callback* */ + public VR_IVROverlay_FnTable.GetOverlayFlag_callback GetOverlayFlag; + /** C type : SetOverlayColor_callback* */ + public VR_IVROverlay_FnTable.SetOverlayColor_callback SetOverlayColor; + /** C type : GetOverlayColor_callback* */ + public VR_IVROverlay_FnTable.GetOverlayColor_callback GetOverlayColor; + /** C type : SetOverlayAlpha_callback* */ + public VR_IVROverlay_FnTable.SetOverlayAlpha_callback SetOverlayAlpha; + /** C type : GetOverlayAlpha_callback* */ + public VR_IVROverlay_FnTable.GetOverlayAlpha_callback GetOverlayAlpha; + /** C type : SetOverlayTexelAspect_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTexelAspect_callback SetOverlayTexelAspect; + /** C type : GetOverlayTexelAspect_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTexelAspect_callback GetOverlayTexelAspect; + /** C type : SetOverlaySortOrder_callback* */ + public VR_IVROverlay_FnTable.SetOverlaySortOrder_callback SetOverlaySortOrder; + /** C type : GetOverlaySortOrder_callback* */ + public VR_IVROverlay_FnTable.GetOverlaySortOrder_callback GetOverlaySortOrder; + /** C type : SetOverlayWidthInMeters_callback* */ + public VR_IVROverlay_FnTable.SetOverlayWidthInMeters_callback SetOverlayWidthInMeters; + /** C type : GetOverlayWidthInMeters_callback* */ + public VR_IVROverlay_FnTable.GetOverlayWidthInMeters_callback GetOverlayWidthInMeters; + /** C type : SetOverlayAutoCurveDistanceRangeInMeters_callback* */ + public VR_IVROverlay_FnTable.SetOverlayAutoCurveDistanceRangeInMeters_callback SetOverlayAutoCurveDistanceRangeInMeters; + /** C type : GetOverlayAutoCurveDistanceRangeInMeters_callback* */ + public VR_IVROverlay_FnTable.GetOverlayAutoCurveDistanceRangeInMeters_callback GetOverlayAutoCurveDistanceRangeInMeters; + /** C type : SetOverlayTextureColorSpace_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTextureColorSpace_callback SetOverlayTextureColorSpace; + /** C type : GetOverlayTextureColorSpace_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTextureColorSpace_callback GetOverlayTextureColorSpace; + /** C type : SetOverlayTextureBounds_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTextureBounds_callback SetOverlayTextureBounds; + /** C type : GetOverlayTextureBounds_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTextureBounds_callback GetOverlayTextureBounds; + /** C type : GetOverlayRenderModel_callback* */ + public VR_IVROverlay_FnTable.GetOverlayRenderModel_callback GetOverlayRenderModel; + /** C type : SetOverlayRenderModel_callback* */ + public VR_IVROverlay_FnTable.SetOverlayRenderModel_callback SetOverlayRenderModel; + /** C type : GetOverlayTransformType_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTransformType_callback GetOverlayTransformType; + /** C type : SetOverlayTransformAbsolute_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTransformAbsolute_callback SetOverlayTransformAbsolute; + /** C type : GetOverlayTransformAbsolute_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTransformAbsolute_callback GetOverlayTransformAbsolute; + /** C type : SetOverlayTransformTrackedDeviceRelative_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTransformTrackedDeviceRelative_callback SetOverlayTransformTrackedDeviceRelative; + /** C type : GetOverlayTransformTrackedDeviceRelative_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTransformTrackedDeviceRelative_callback GetOverlayTransformTrackedDeviceRelative; + /** C type : SetOverlayTransformTrackedDeviceComponent_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTransformTrackedDeviceComponent_callback SetOverlayTransformTrackedDeviceComponent; + /** C type : GetOverlayTransformTrackedDeviceComponent_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTransformTrackedDeviceComponent_callback GetOverlayTransformTrackedDeviceComponent; + /** C type : GetOverlayTransformOverlayRelative_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTransformOverlayRelative_callback GetOverlayTransformOverlayRelative; + /** C type : SetOverlayTransformOverlayRelative_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTransformOverlayRelative_callback SetOverlayTransformOverlayRelative; + /** C type : ShowOverlay_callback* */ + public VR_IVROverlay_FnTable.ShowOverlay_callback ShowOverlay; + /** C type : HideOverlay_callback* */ + public VR_IVROverlay_FnTable.HideOverlay_callback HideOverlay; + /** C type : IsOverlayVisible_callback* */ + public VR_IVROverlay_FnTable.IsOverlayVisible_callback IsOverlayVisible; + /** C type : GetTransformForOverlayCoordinates_callback* */ + public VR_IVROverlay_FnTable.GetTransformForOverlayCoordinates_callback GetTransformForOverlayCoordinates; + /** C type : PollNextOverlayEvent_callback* */ + public VR_IVROverlay_FnTable.PollNextOverlayEvent_callback PollNextOverlayEvent; + /** C type : GetOverlayInputMethod_callback* */ + public VR_IVROverlay_FnTable.GetOverlayInputMethod_callback GetOverlayInputMethod; + /** C type : SetOverlayInputMethod_callback* */ + public VR_IVROverlay_FnTable.SetOverlayInputMethod_callback SetOverlayInputMethod; + /** C type : GetOverlayMouseScale_callback* */ + public VR_IVROverlay_FnTable.GetOverlayMouseScale_callback GetOverlayMouseScale; + /** C type : SetOverlayMouseScale_callback* */ + public VR_IVROverlay_FnTable.SetOverlayMouseScale_callback SetOverlayMouseScale; + /** C type : ComputeOverlayIntersection_callback* */ + public VR_IVROverlay_FnTable.ComputeOverlayIntersection_callback ComputeOverlayIntersection; + /** C type : HandleControllerOverlayInteractionAsMouse_callback* */ + public VR_IVROverlay_FnTable.HandleControllerOverlayInteractionAsMouse_callback HandleControllerOverlayInteractionAsMouse; + /** C type : IsHoverTargetOverlay_callback* */ + public VR_IVROverlay_FnTable.IsHoverTargetOverlay_callback IsHoverTargetOverlay; + /** C type : GetGamepadFocusOverlay_callback* */ + public VR_IVROverlay_FnTable.GetGamepadFocusOverlay_callback GetGamepadFocusOverlay; + /** C type : SetGamepadFocusOverlay_callback* */ + public VR_IVROverlay_FnTable.SetGamepadFocusOverlay_callback SetGamepadFocusOverlay; + /** C type : SetOverlayNeighbor_callback* */ + public VR_IVROverlay_FnTable.SetOverlayNeighbor_callback SetOverlayNeighbor; + /** C type : MoveGamepadFocusToNeighbor_callback* */ + public VR_IVROverlay_FnTable.MoveGamepadFocusToNeighbor_callback MoveGamepadFocusToNeighbor; + /** C type : SetOverlayTexture_callback* */ + public VR_IVROverlay_FnTable.SetOverlayTexture_callback SetOverlayTexture; + /** C type : ClearOverlayTexture_callback* */ + public VR_IVROverlay_FnTable.ClearOverlayTexture_callback ClearOverlayTexture; + /** C type : SetOverlayRaw_callback* */ + public VR_IVROverlay_FnTable.SetOverlayRaw_callback SetOverlayRaw; + /** C type : SetOverlayFromFile_callback* */ + public VR_IVROverlay_FnTable.SetOverlayFromFile_callback SetOverlayFromFile; + /** C type : GetOverlayTexture_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTexture_callback GetOverlayTexture; + /** C type : ReleaseNativeOverlayHandle_callback* */ + public VR_IVROverlay_FnTable.ReleaseNativeOverlayHandle_callback ReleaseNativeOverlayHandle; + /** C type : GetOverlayTextureSize_callback* */ + public VR_IVROverlay_FnTable.GetOverlayTextureSize_callback GetOverlayTextureSize; + /** C type : CreateDashboardOverlay_callback* */ + public VR_IVROverlay_FnTable.CreateDashboardOverlay_callback CreateDashboardOverlay; + /** C type : IsDashboardVisible_callback* */ + public VR_IVROverlay_FnTable.IsDashboardVisible_callback IsDashboardVisible; + /** C type : IsActiveDashboardOverlay_callback* */ + public VR_IVROverlay_FnTable.IsActiveDashboardOverlay_callback IsActiveDashboardOverlay; + /** C type : SetDashboardOverlaySceneProcess_callback* */ + public VR_IVROverlay_FnTable.SetDashboardOverlaySceneProcess_callback SetDashboardOverlaySceneProcess; + /** C type : GetDashboardOverlaySceneProcess_callback* */ + public VR_IVROverlay_FnTable.GetDashboardOverlaySceneProcess_callback GetDashboardOverlaySceneProcess; + /** C type : ShowDashboard_callback* */ + public VR_IVROverlay_FnTable.ShowDashboard_callback ShowDashboard; + /** C type : GetPrimaryDashboardDevice_callback* */ + public VR_IVROverlay_FnTable.GetPrimaryDashboardDevice_callback GetPrimaryDashboardDevice; + /** C type : ShowKeyboard_callback* */ + public VR_IVROverlay_FnTable.ShowKeyboard_callback ShowKeyboard; + /** C type : ShowKeyboardForOverlay_callback* */ + public VR_IVROverlay_FnTable.ShowKeyboardForOverlay_callback ShowKeyboardForOverlay; + /** C type : GetKeyboardText_callback* */ + public VR_IVROverlay_FnTable.GetKeyboardText_callback GetKeyboardText; + /** C type : HideKeyboard_callback* */ + public VR_IVROverlay_FnTable.HideKeyboard_callback HideKeyboard; + /** C type : SetKeyboardTransformAbsolute_callback* */ + public VR_IVROverlay_FnTable.SetKeyboardTransformAbsolute_callback SetKeyboardTransformAbsolute; + /** C type : SetKeyboardPositionForOverlay_callback* */ + public VR_IVROverlay_FnTable.SetKeyboardPositionForOverlay_callback SetKeyboardPositionForOverlay; + /** C type : SetOverlayIntersectionMask_callback* */ + public VR_IVROverlay_FnTable.SetOverlayIntersectionMask_callback SetOverlayIntersectionMask; + /** C type : GetOverlayFlags_callback* */ + public VR_IVROverlay_FnTable.GetOverlayFlags_callback GetOverlayFlags; + /** C type : ShowMessageOverlay_callback* */ + public VR_IVROverlay_FnTable.ShowMessageOverlay_callback ShowMessageOverlay; + /** native declaration : headers\openvr_capi.h:1740 */ + public interface FindOverlay_callback extends Callback { + int apply(Pointer pchOverlayKey, LongByReference pOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1741 */ + public interface CreateOverlay_callback extends Callback { + int apply(Pointer pchOverlayKey, Pointer pchOverlayName, LongByReference pOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1742 */ + public interface DestroyOverlay_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1743 */ + public interface SetHighQualityOverlay_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1744 */ + public interface GetHighQualityOverlay_callback extends Callback { + long apply(); + }; + /** native declaration : headers\openvr_capi.h:1745 */ + public interface GetOverlayKey_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchValue, int unBufferSize, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1746 */ + public interface GetOverlayName_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchValue, int unBufferSize, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1747 */ + public interface SetOverlayName_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchName); + }; + /** native declaration : headers\openvr_capi.h:1748 */ + public interface GetOverlayImageData_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pvBuffer, int unBufferSize, IntByReference punWidth, IntByReference punHeight); + }; + /** native declaration : headers\openvr_capi.h:1749 */ + public interface GetOverlayErrorNameFromEnum_callback extends Callback { + Pointer apply(int error); + }; + /** native declaration : headers\openvr_capi.h:1750 */ + public interface SetOverlayRenderingPid_callback extends Callback { + int apply(long ulOverlayHandle, int unPID); + }; + /** native declaration : headers\openvr_capi.h:1751 */ + public interface GetOverlayRenderingPid_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1752 */ + public interface SetOverlayFlag_callback extends Callback { + int apply(long ulOverlayHandle, int eOverlayFlag, byte bEnabled); + }; + /** native declaration : headers\openvr_capi.h:1753 */ + public interface GetOverlayFlag_callback extends Callback { + int apply(long ulOverlayHandle, int eOverlayFlag, Pointer pbEnabled); + }; + /** native declaration : headers\openvr_capi.h:1754 */ + public interface SetOverlayColor_callback extends Callback { + int apply(long ulOverlayHandle, float fRed, float fGreen, float fBlue); + }; + /** native declaration : headers\openvr_capi.h:1755 */ + public interface GetOverlayColor_callback extends Callback { + int apply(long ulOverlayHandle, FloatByReference pfRed, FloatByReference pfGreen, FloatByReference pfBlue); + }; + /** native declaration : headers\openvr_capi.h:1756 */ + public interface SetOverlayAlpha_callback extends Callback { + int apply(long ulOverlayHandle, float fAlpha); + }; + /** native declaration : headers\openvr_capi.h:1757 */ + public interface GetOverlayAlpha_callback extends Callback { + int apply(long ulOverlayHandle, FloatByReference pfAlpha); + }; + /** native declaration : headers\openvr_capi.h:1758 */ + public interface SetOverlayTexelAspect_callback extends Callback { + int apply(long ulOverlayHandle, float fTexelAspect); + }; + /** native declaration : headers\openvr_capi.h:1759 */ + public interface GetOverlayTexelAspect_callback extends Callback { + int apply(long ulOverlayHandle, FloatByReference pfTexelAspect); + }; + /** native declaration : headers\openvr_capi.h:1760 */ + public interface SetOverlaySortOrder_callback extends Callback { + int apply(long ulOverlayHandle, int unSortOrder); + }; + /** native declaration : headers\openvr_capi.h:1761 */ + public interface GetOverlaySortOrder_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference punSortOrder); + }; + /** native declaration : headers\openvr_capi.h:1762 */ + public interface SetOverlayWidthInMeters_callback extends Callback { + int apply(long ulOverlayHandle, float fWidthInMeters); + }; + /** native declaration : headers\openvr_capi.h:1763 */ + public interface GetOverlayWidthInMeters_callback extends Callback { + int apply(long ulOverlayHandle, FloatByReference pfWidthInMeters); + }; + /** native declaration : headers\openvr_capi.h:1764 */ + public interface SetOverlayAutoCurveDistanceRangeInMeters_callback extends Callback { + int apply(long ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters); + }; + /** native declaration : headers\openvr_capi.h:1765 */ + public interface GetOverlayAutoCurveDistanceRangeInMeters_callback extends Callback { + int apply(long ulOverlayHandle, FloatByReference pfMinDistanceInMeters, FloatByReference pfMaxDistanceInMeters); + }; + /** native declaration : headers\openvr_capi.h:1766 */ + public interface SetOverlayTextureColorSpace_callback extends Callback { + int apply(long ulOverlayHandle, int eTextureColorSpace); + }; + /** native declaration : headers\openvr_capi.h:1767 */ + public interface GetOverlayTextureColorSpace_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference peTextureColorSpace); + }; + /** native declaration : headers\openvr_capi.h:1768 */ + public interface SetOverlayTextureBounds_callback extends Callback { + int apply(long ulOverlayHandle, VRTextureBounds_t pOverlayTextureBounds); + }; + /** native declaration : headers\openvr_capi.h:1769 */ + public interface GetOverlayTextureBounds_callback extends Callback { + int apply(long ulOverlayHandle, VRTextureBounds_t pOverlayTextureBounds); + }; + /** native declaration : headers\openvr_capi.h:1770 */ + public interface GetOverlayRenderModel_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchValue, int unBufferSize, HmdColor_t pColor, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1771 */ + public interface SetOverlayRenderModel_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchRenderModel, HmdColor_t pColor); + }; + /** native declaration : headers\openvr_capi.h:1772 */ + public interface GetOverlayTransformType_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference peTransformType); + }; + /** native declaration : headers\openvr_capi.h:1773 */ + public interface SetOverlayTransformAbsolute_callback extends Callback { + int apply(long ulOverlayHandle, int eTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1774 */ + public interface GetOverlayTransformAbsolute_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference peTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1775 */ + public interface SetOverlayTransformTrackedDeviceRelative_callback extends Callback { + int apply(long ulOverlayHandle, int unTrackedDevice, HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1776 */ + public interface GetOverlayTransformTrackedDeviceRelative_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference punTrackedDevice, HmdMatrix34_t pmatTrackedDeviceToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1777 */ + public interface SetOverlayTransformTrackedDeviceComponent_callback extends Callback { + int apply(long ulOverlayHandle, int unDeviceIndex, Pointer pchComponentName); + }; + /** native declaration : headers\openvr_capi.h:1778 */ + public interface GetOverlayTransformTrackedDeviceComponent_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference punDeviceIndex, Pointer pchComponentName, int unComponentNameSize); + }; + /** native declaration : headers\openvr_capi.h:1779 */ + public interface GetOverlayTransformOverlayRelative_callback extends Callback { + int apply(long ulOverlayHandle, LongByReference ulOverlayHandleParent, HmdMatrix34_t pmatParentOverlayToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1780 */ + public interface SetOverlayTransformOverlayRelative_callback extends Callback { + int apply(long ulOverlayHandle, long ulOverlayHandleParent, HmdMatrix34_t pmatParentOverlayToOverlayTransform); + }; + /** native declaration : headers\openvr_capi.h:1781 */ + public interface ShowOverlay_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1782 */ + public interface HideOverlay_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1783 */ + public interface IsOverlayVisible_callback extends Callback { + byte apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1784 */ + public interface GetTransformForOverlayCoordinates_callback extends Callback { + int apply(long ulOverlayHandle, int eTrackingOrigin, HmdVector2_t.ByValue coordinatesInOverlay, HmdMatrix34_t pmatTransform); + }; + /** native declaration : headers\openvr_capi.h:1785 */ + public interface PollNextOverlayEvent_callback extends Callback { + byte apply(long ulOverlayHandle, VREvent_t pEvent, int uncbVREvent); + }; + /** native declaration : headers\openvr_capi.h:1786 */ + public interface GetOverlayInputMethod_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference peInputMethod); + }; + /** native declaration : headers\openvr_capi.h:1787 */ + public interface SetOverlayInputMethod_callback extends Callback { + int apply(long ulOverlayHandle, int eInputMethod); + }; + /** native declaration : headers\openvr_capi.h:1788 */ + public interface GetOverlayMouseScale_callback extends Callback { + int apply(long ulOverlayHandle, HmdVector2_t pvecMouseScale); + }; + /** native declaration : headers\openvr_capi.h:1789 */ + public interface SetOverlayMouseScale_callback extends Callback { + int apply(long ulOverlayHandle, HmdVector2_t pvecMouseScale); + }; + /** native declaration : headers\openvr_capi.h:1790 */ + public interface ComputeOverlayIntersection_callback extends Callback { + byte apply(long ulOverlayHandle, VROverlayIntersectionParams_t pParams, VROverlayIntersectionResults_t pResults); + }; + /** native declaration : headers\openvr_capi.h:1791 */ + public interface HandleControllerOverlayInteractionAsMouse_callback extends Callback { + byte apply(long ulOverlayHandle, int unControllerDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1792 */ + public interface IsHoverTargetOverlay_callback extends Callback { + byte apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1793 */ + public interface GetGamepadFocusOverlay_callback extends Callback { + long apply(); + }; + /** native declaration : headers\openvr_capi.h:1794 */ + public interface SetGamepadFocusOverlay_callback extends Callback { + int apply(long ulNewFocusOverlay); + }; + /** native declaration : headers\openvr_capi.h:1795 */ + public interface SetOverlayNeighbor_callback extends Callback { + int apply(int eDirection, long ulFrom, long ulTo); + }; + /** native declaration : headers\openvr_capi.h:1796 */ + public interface MoveGamepadFocusToNeighbor_callback extends Callback { + int apply(int eDirection, long ulFrom); + }; + /** native declaration : headers\openvr_capi.h:1797 */ + public interface SetOverlayTexture_callback extends Callback { + int apply(long ulOverlayHandle, Texture_t pTexture); + }; + /** native declaration : headers\openvr_capi.h:1798 */ + public interface ClearOverlayTexture_callback extends Callback { + int apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1799 */ + public interface SetOverlayRaw_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pvBuffer, int unWidth, int unHeight, int unDepth); + }; + /** native declaration : headers\openvr_capi.h:1800 */ + public interface SetOverlayFromFile_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pchFilePath); + }; + /** native declaration : headers\openvr_capi.h:1801 */ + public interface GetOverlayTexture_callback extends Callback { + int apply(long ulOverlayHandle, PointerByReference pNativeTextureHandle, Pointer pNativeTextureRef, IntByReference pWidth, IntByReference pHeight, IntByReference pNativeFormat, IntByReference pAPIType, IntByReference pColorSpace, VRTextureBounds_t pTextureBounds); + }; + /** native declaration : headers\openvr_capi.h:1802 */ + public interface ReleaseNativeOverlayHandle_callback extends Callback { + int apply(long ulOverlayHandle, Pointer pNativeTextureHandle); + }; + /** native declaration : headers\openvr_capi.h:1803 */ + public interface GetOverlayTextureSize_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference pWidth, IntByReference pHeight); + }; + /** native declaration : headers\openvr_capi.h:1804 */ + public interface CreateDashboardOverlay_callback extends Callback { + int apply(Pointer pchOverlayKey, Pointer pchOverlayFriendlyName, LongByReference pMainHandle, LongByReference pThumbnailHandle); + }; + /** native declaration : headers\openvr_capi.h:1805 */ + public interface IsDashboardVisible_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1806 */ + public interface IsActiveDashboardOverlay_callback extends Callback { + byte apply(long ulOverlayHandle); + }; + /** native declaration : headers\openvr_capi.h:1807 */ + public interface SetDashboardOverlaySceneProcess_callback extends Callback { + int apply(long ulOverlayHandle, int unProcessId); + }; + /** native declaration : headers\openvr_capi.h:1808 */ + public interface GetDashboardOverlaySceneProcess_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference punProcessId); + }; + /** native declaration : headers\openvr_capi.h:1809 */ + public interface ShowDashboard_callback extends Callback { + void apply(Pointer pchOverlayToShow); + }; + /** native declaration : headers\openvr_capi.h:1810 */ + public interface GetPrimaryDashboardDevice_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1811 */ + public interface ShowKeyboard_callback extends Callback { + int apply(int eInputMode, int eLineInputMode, Pointer pchDescription, int unCharMax, Pointer pchExistingText, byte bUseMinimalMode, long uUserValue); + }; + /** native declaration : headers\openvr_capi.h:1812 */ + public interface ShowKeyboardForOverlay_callback extends Callback { + int apply(long ulOverlayHandle, int eInputMode, int eLineInputMode, Pointer pchDescription, int unCharMax, Pointer pchExistingText, byte bUseMinimalMode, long uUserValue); + }; + /** native declaration : headers\openvr_capi.h:1813 */ + public interface GetKeyboardText_callback extends Callback { + int apply(Pointer pchText, int cchText); + }; + /** native declaration : headers\openvr_capi.h:1814 */ + public interface HideKeyboard_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1815 */ + public interface SetKeyboardTransformAbsolute_callback extends Callback { + void apply(int eTrackingOrigin, HmdMatrix34_t pmatTrackingOriginToKeyboardTransform); + }; + /** native declaration : headers\openvr_capi.h:1816 */ + public interface SetKeyboardPositionForOverlay_callback extends Callback { + void apply(long ulOverlayHandle, com.jme3.system.jopenvr.HmdRect2_t.ByValue avoidRect); + }; + /** native declaration : headers\openvr_capi.h:1817 */ + public interface SetOverlayIntersectionMask_callback extends Callback { + int apply(long ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t pMaskPrimitives, int unNumMaskPrimitives, int unPrimitiveSize); + }; + /** native declaration : headers\openvr_capi.h:1818 */ + public interface GetOverlayFlags_callback extends Callback { + int apply(long ulOverlayHandle, IntByReference pFlags); + }; + /** native declaration : headers\openvr_capi.h:1819 */ + public interface ShowMessageOverlay_callback extends Callback { + int apply(Pointer pchText, Pointer pchCaption, Pointer pchButton0Text, Pointer pchButton1Text, Pointer pchButton2Text, Pointer pchButton3Text); + }; + public VR_IVROverlay_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("FindOverlay", "CreateOverlay", "DestroyOverlay", "SetHighQualityOverlay", "GetHighQualityOverlay", "GetOverlayKey", "GetOverlayName", "SetOverlayName", "GetOverlayImageData", "GetOverlayErrorNameFromEnum", "SetOverlayRenderingPid", "GetOverlayRenderingPid", "SetOverlayFlag", "GetOverlayFlag", "SetOverlayColor", "GetOverlayColor", "SetOverlayAlpha", "GetOverlayAlpha", "SetOverlayTexelAspect", "GetOverlayTexelAspect", "SetOverlaySortOrder", "GetOverlaySortOrder", "SetOverlayWidthInMeters", "GetOverlayWidthInMeters", "SetOverlayAutoCurveDistanceRangeInMeters", "GetOverlayAutoCurveDistanceRangeInMeters", "SetOverlayTextureColorSpace", "GetOverlayTextureColorSpace", "SetOverlayTextureBounds", "GetOverlayTextureBounds", "GetOverlayRenderModel", "SetOverlayRenderModel", "GetOverlayTransformType", "SetOverlayTransformAbsolute", "GetOverlayTransformAbsolute", "SetOverlayTransformTrackedDeviceRelative", "GetOverlayTransformTrackedDeviceRelative", "SetOverlayTransformTrackedDeviceComponent", "GetOverlayTransformTrackedDeviceComponent", "GetOverlayTransformOverlayRelative", "SetOverlayTransformOverlayRelative", "ShowOverlay", "HideOverlay", "IsOverlayVisible", "GetTransformForOverlayCoordinates", "PollNextOverlayEvent", "GetOverlayInputMethod", "SetOverlayInputMethod", "GetOverlayMouseScale", "SetOverlayMouseScale", "ComputeOverlayIntersection", "HandleControllerOverlayInteractionAsMouse", "IsHoverTargetOverlay", "GetGamepadFocusOverlay", "SetGamepadFocusOverlay", "SetOverlayNeighbor", "MoveGamepadFocusToNeighbor", "SetOverlayTexture", "ClearOverlayTexture", "SetOverlayRaw", "SetOverlayFromFile", "GetOverlayTexture", "ReleaseNativeOverlayHandle", "GetOverlayTextureSize", "CreateDashboardOverlay", "IsDashboardVisible", "IsActiveDashboardOverlay", "SetDashboardOverlaySceneProcess", "GetDashboardOverlaySceneProcess", "ShowDashboard", "GetPrimaryDashboardDevice", "ShowKeyboard", "ShowKeyboardForOverlay", "GetKeyboardText", "HideKeyboard", "SetKeyboardTransformAbsolute", "SetKeyboardPositionForOverlay", "SetOverlayIntersectionMask", "GetOverlayFlags", "ShowMessageOverlay"); + } + public VR_IVROverlay_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVROverlay_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVROverlay_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRRenderModels_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRRenderModels_FnTable.java index 808fc0d55..548b2c1ed 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRRenderModels_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRRenderModels_FnTable.java @@ -7,133 +7,133 @@ import com.sun.jna.ptr.PointerByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1817
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRRenderModels_FnTable extends Structure { - /** C type : LoadRenderModel_Async_callback* */ - public VR_IVRRenderModels_FnTable.LoadRenderModel_Async_callback LoadRenderModel_Async; - /** C type : FreeRenderModel_callback* */ - public VR_IVRRenderModels_FnTable.FreeRenderModel_callback FreeRenderModel; - /** C type : LoadTexture_Async_callback* */ - public VR_IVRRenderModels_FnTable.LoadTexture_Async_callback LoadTexture_Async; - /** C type : FreeTexture_callback* */ - public VR_IVRRenderModels_FnTable.FreeTexture_callback FreeTexture; - /** C type : LoadTextureD3D11_Async_callback* */ - public VR_IVRRenderModels_FnTable.LoadTextureD3D11_Async_callback LoadTextureD3D11_Async; - /** C type : LoadIntoTextureD3D11_Async_callback* */ - public VR_IVRRenderModels_FnTable.LoadIntoTextureD3D11_Async_callback LoadIntoTextureD3D11_Async; - /** C type : FreeTextureD3D11_callback* */ - public VR_IVRRenderModels_FnTable.FreeTextureD3D11_callback FreeTextureD3D11; - /** C type : GetRenderModelName_callback* */ - public VR_IVRRenderModels_FnTable.GetRenderModelName_callback GetRenderModelName; - /** C type : GetRenderModelCount_callback* */ - public VR_IVRRenderModels_FnTable.GetRenderModelCount_callback GetRenderModelCount; - /** C type : GetComponentCount_callback* */ - public VR_IVRRenderModels_FnTable.GetComponentCount_callback GetComponentCount; - /** C type : GetComponentName_callback* */ - public VR_IVRRenderModels_FnTable.GetComponentName_callback GetComponentName; - /** C type : GetComponentButtonMask_callback* */ - public VR_IVRRenderModels_FnTable.GetComponentButtonMask_callback GetComponentButtonMask; - /** C type : GetComponentRenderModelName_callback* */ - public VR_IVRRenderModels_FnTable.GetComponentRenderModelName_callback GetComponentRenderModelName; - /** C type : GetComponentState_callback* */ - public VR_IVRRenderModels_FnTable.GetComponentState_callback GetComponentState; - /** C type : RenderModelHasComponent_callback* */ - public VR_IVRRenderModels_FnTable.RenderModelHasComponent_callback RenderModelHasComponent; - /** C type : GetRenderModelThumbnailURL_callback* */ - public VR_IVRRenderModels_FnTable.GetRenderModelThumbnailURL_callback GetRenderModelThumbnailURL; - /** C type : GetRenderModelOriginalPath_callback* */ - public VR_IVRRenderModels_FnTable.GetRenderModelOriginalPath_callback GetRenderModelOriginalPath; - /** C type : GetRenderModelErrorNameFromEnum_callback* */ - public VR_IVRRenderModels_FnTable.GetRenderModelErrorNameFromEnum_callback GetRenderModelErrorNameFromEnum; - /** native declaration : headers\openvr_capi.h:1799 */ - public interface LoadRenderModel_Async_callback extends Callback { - int apply(Pointer pchRenderModelName, PointerByReference ppRenderModel); - }; - /** native declaration : headers\openvr_capi.h:1800 */ - public interface FreeRenderModel_callback extends Callback { - void apply(RenderModel_t pRenderModel); - }; - /** native declaration : headers\openvr_capi.h:1801 */ - public interface LoadTexture_Async_callback extends Callback { - int apply(int textureId, PointerByReference ppTexture); - }; - /** native declaration : headers\openvr_capi.h:1802 */ - public interface FreeTexture_callback extends Callback { - void apply(RenderModel_TextureMap_t pTexture); - }; - /** native declaration : headers\openvr_capi.h:1803 */ - public interface LoadTextureD3D11_Async_callback extends Callback { - int apply(int textureId, Pointer pD3D11Device, PointerByReference ppD3D11Texture2D); - }; - /** native declaration : headers\openvr_capi.h:1804 */ - public interface LoadIntoTextureD3D11_Async_callback extends Callback { - int apply(int textureId, Pointer pDstTexture); - }; - /** native declaration : headers\openvr_capi.h:1805 */ - public interface FreeTextureD3D11_callback extends Callback { - void apply(Pointer pD3D11Texture2D); - }; - /** native declaration : headers\openvr_capi.h:1806 */ - public interface GetRenderModelName_callback extends Callback { - int apply(int unRenderModelIndex, Pointer pchRenderModelName, int unRenderModelNameLen); - }; - /** native declaration : headers\openvr_capi.h:1807 */ - public interface GetRenderModelCount_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1808 */ - public interface GetComponentCount_callback extends Callback { - int apply(Pointer pchRenderModelName); - }; - /** native declaration : headers\openvr_capi.h:1809 */ - public interface GetComponentName_callback extends Callback { - int apply(Pointer pchRenderModelName, int unComponentIndex, Pointer pchComponentName, int unComponentNameLen); - }; - /** native declaration : headers\openvr_capi.h:1810 */ - public interface GetComponentButtonMask_callback extends Callback { - long apply(Pointer pchRenderModelName, Pointer pchComponentName); - }; - /** native declaration : headers\openvr_capi.h:1811 */ - public interface GetComponentRenderModelName_callback extends Callback { - int apply(Pointer pchRenderModelName, Pointer pchComponentName, Pointer pchComponentRenderModelName, int unComponentRenderModelNameLen); - }; - /** native declaration : headers\openvr_capi.h:1812 */ - public interface GetComponentState_callback extends Callback { - byte apply(Pointer pchRenderModelName, Pointer pchComponentName, VRControllerState_t pControllerState, RenderModel_ControllerMode_State_t pState, RenderModel_ComponentState_t pComponentState); - }; - /** native declaration : headers\openvr_capi.h:1813 */ - public interface RenderModelHasComponent_callback extends Callback { - byte apply(Pointer pchRenderModelName, Pointer pchComponentName); - }; - /** native declaration : headers\openvr_capi.h:1814 */ - public interface GetRenderModelThumbnailURL_callback extends Callback { - int apply(Pointer pchRenderModelName, Pointer pchThumbnailURL, int unThumbnailURLLen, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1815 */ - public interface GetRenderModelOriginalPath_callback extends Callback { - int apply(Pointer pchRenderModelName, Pointer pchOriginalPath, int unOriginalPathLen, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1816 */ - public interface GetRenderModelErrorNameFromEnum_callback extends Callback { - Pointer apply(int error); - }; - public VR_IVRRenderModels_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("LoadRenderModel_Async", "FreeRenderModel", "LoadTexture_Async", "FreeTexture", "LoadTextureD3D11_Async", "LoadIntoTextureD3D11_Async", "FreeTextureD3D11", "GetRenderModelName", "GetRenderModelCount", "GetComponentCount", "GetComponentName", "GetComponentButtonMask", "GetComponentRenderModelName", "GetComponentState", "RenderModelHasComponent", "GetRenderModelThumbnailURL", "GetRenderModelOriginalPath", "GetRenderModelErrorNameFromEnum"); - } - public VR_IVRRenderModels_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRRenderModels_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRRenderModels_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1858
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRRenderModels_FnTable extends Structure { + /** C type : LoadRenderModel_Async_callback* */ + public VR_IVRRenderModels_FnTable.LoadRenderModel_Async_callback LoadRenderModel_Async; + /** C type : FreeRenderModel_callback* */ + public VR_IVRRenderModels_FnTable.FreeRenderModel_callback FreeRenderModel; + /** C type : LoadTexture_Async_callback* */ + public VR_IVRRenderModels_FnTable.LoadTexture_Async_callback LoadTexture_Async; + /** C type : FreeTexture_callback* */ + public VR_IVRRenderModels_FnTable.FreeTexture_callback FreeTexture; + /** C type : LoadTextureD3D11_Async_callback* */ + public VR_IVRRenderModels_FnTable.LoadTextureD3D11_Async_callback LoadTextureD3D11_Async; + /** C type : LoadIntoTextureD3D11_Async_callback* */ + public VR_IVRRenderModels_FnTable.LoadIntoTextureD3D11_Async_callback LoadIntoTextureD3D11_Async; + /** C type : FreeTextureD3D11_callback* */ + public VR_IVRRenderModels_FnTable.FreeTextureD3D11_callback FreeTextureD3D11; + /** C type : GetRenderModelName_callback* */ + public VR_IVRRenderModels_FnTable.GetRenderModelName_callback GetRenderModelName; + /** C type : GetRenderModelCount_callback* */ + public VR_IVRRenderModels_FnTable.GetRenderModelCount_callback GetRenderModelCount; + /** C type : GetComponentCount_callback* */ + public VR_IVRRenderModels_FnTable.GetComponentCount_callback GetComponentCount; + /** C type : GetComponentName_callback* */ + public VR_IVRRenderModels_FnTable.GetComponentName_callback GetComponentName; + /** C type : GetComponentButtonMask_callback* */ + public VR_IVRRenderModels_FnTable.GetComponentButtonMask_callback GetComponentButtonMask; + /** C type : GetComponentRenderModelName_callback* */ + public VR_IVRRenderModels_FnTable.GetComponentRenderModelName_callback GetComponentRenderModelName; + /** C type : GetComponentState_callback* */ + public VR_IVRRenderModels_FnTable.GetComponentState_callback GetComponentState; + /** C type : RenderModelHasComponent_callback* */ + public VR_IVRRenderModels_FnTable.RenderModelHasComponent_callback RenderModelHasComponent; + /** C type : GetRenderModelThumbnailURL_callback* */ + public VR_IVRRenderModels_FnTable.GetRenderModelThumbnailURL_callback GetRenderModelThumbnailURL; + /** C type : GetRenderModelOriginalPath_callback* */ + public VR_IVRRenderModels_FnTable.GetRenderModelOriginalPath_callback GetRenderModelOriginalPath; + /** C type : GetRenderModelErrorNameFromEnum_callback* */ + public VR_IVRRenderModels_FnTable.GetRenderModelErrorNameFromEnum_callback GetRenderModelErrorNameFromEnum; + /** native declaration : headers\openvr_capi.h:1840 */ + public interface LoadRenderModel_Async_callback extends Callback { + int apply(Pointer pchRenderModelName, PointerByReference ppRenderModel); + }; + /** native declaration : headers\openvr_capi.h:1841 */ + public interface FreeRenderModel_callback extends Callback { + void apply(RenderModel_t pRenderModel); + }; + /** native declaration : headers\openvr_capi.h:1842 */ + public interface LoadTexture_Async_callback extends Callback { + int apply(int textureId, PointerByReference ppTexture); + }; + /** native declaration : headers\openvr_capi.h:1843 */ + public interface FreeTexture_callback extends Callback { + void apply(RenderModel_TextureMap_t pTexture); + }; + /** native declaration : headers\openvr_capi.h:1844 */ + public interface LoadTextureD3D11_Async_callback extends Callback { + int apply(int textureId, Pointer pD3D11Device, PointerByReference ppD3D11Texture2D); + }; + /** native declaration : headers\openvr_capi.h:1845 */ + public interface LoadIntoTextureD3D11_Async_callback extends Callback { + int apply(int textureId, Pointer pDstTexture); + }; + /** native declaration : headers\openvr_capi.h:1846 */ + public interface FreeTextureD3D11_callback extends Callback { + void apply(Pointer pD3D11Texture2D); + }; + /** native declaration : headers\openvr_capi.h:1847 */ + public interface GetRenderModelName_callback extends Callback { + int apply(int unRenderModelIndex, Pointer pchRenderModelName, int unRenderModelNameLen); + }; + /** native declaration : headers\openvr_capi.h:1848 */ + public interface GetRenderModelCount_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1849 */ + public interface GetComponentCount_callback extends Callback { + int apply(Pointer pchRenderModelName); + }; + /** native declaration : headers\openvr_capi.h:1850 */ + public interface GetComponentName_callback extends Callback { + int apply(Pointer pchRenderModelName, int unComponentIndex, Pointer pchComponentName, int unComponentNameLen); + }; + /** native declaration : headers\openvr_capi.h:1851 */ + public interface GetComponentButtonMask_callback extends Callback { + long apply(Pointer pchRenderModelName, Pointer pchComponentName); + }; + /** native declaration : headers\openvr_capi.h:1852 */ + public interface GetComponentRenderModelName_callback extends Callback { + int apply(Pointer pchRenderModelName, Pointer pchComponentName, Pointer pchComponentRenderModelName, int unComponentRenderModelNameLen); + }; + /** native declaration : headers\openvr_capi.h:1853 */ + public interface GetComponentState_callback extends Callback { + byte apply(Pointer pchRenderModelName, Pointer pchComponentName, VRControllerState_t pControllerState, RenderModel_ControllerMode_State_t pState, RenderModel_ComponentState_t pComponentState); + }; + /** native declaration : headers\openvr_capi.h:1854 */ + public interface RenderModelHasComponent_callback extends Callback { + byte apply(Pointer pchRenderModelName, Pointer pchComponentName); + }; + /** native declaration : headers\openvr_capi.h:1855 */ + public interface GetRenderModelThumbnailURL_callback extends Callback { + int apply(Pointer pchRenderModelName, Pointer pchThumbnailURL, int unThumbnailURLLen, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1856 */ + public interface GetRenderModelOriginalPath_callback extends Callback { + int apply(Pointer pchRenderModelName, Pointer pchOriginalPath, int unOriginalPathLen, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1857 */ + public interface GetRenderModelErrorNameFromEnum_callback extends Callback { + Pointer apply(int error); + }; + public VR_IVRRenderModels_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("LoadRenderModel_Async", "FreeRenderModel", "LoadTexture_Async", "FreeTexture", "LoadTextureD3D11_Async", "LoadIntoTextureD3D11_Async", "FreeTextureD3D11", "GetRenderModelName", "GetRenderModelCount", "GetComponentCount", "GetComponentName", "GetComponentButtonMask", "GetComponentRenderModelName", "GetComponentState", "RenderModelHasComponent", "GetRenderModelThumbnailURL", "GetRenderModelOriginalPath", "GetRenderModelErrorNameFromEnum"); + } + public VR_IVRRenderModels_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRRenderModels_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRRenderModels_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRResources_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRResources_FnTable.java index 468123388..b0c098a3e 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRResources_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRResources_FnTable.java @@ -5,46 +5,46 @@ import com.sun.jna.Structure; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1871
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRResources_FnTable extends Structure { - /** C type : LoadSharedResource_callback* */ - public VR_IVRResources_FnTable.LoadSharedResource_callback LoadSharedResource; - /** C type : GetResourceFullPath_callback* */ - public VR_IVRResources_FnTable.GetResourceFullPath_callback GetResourceFullPath; - /** native declaration : headers\openvr_capi.h:1869 */ - public interface LoadSharedResource_callback extends Callback { - int apply(Pointer pchResourceName, Pointer pchBuffer, int unBufferLen); - }; - /** native declaration : headers\openvr_capi.h:1870 */ - public interface GetResourceFullPath_callback extends Callback { - int apply(Pointer pchResourceName, Pointer pchResourceTypeDirectory, Pointer pchPathBuffer, int unBufferLen); - }; - public VR_IVRResources_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("LoadSharedResource", "GetResourceFullPath"); - } + * native declaration : headers\openvr_capi.h:1912
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRResources_FnTable extends Structure { + /** C type : LoadSharedResource_callback* */ + public VR_IVRResources_FnTable.LoadSharedResource_callback LoadSharedResource; + /** C type : GetResourceFullPath_callback* */ + public VR_IVRResources_FnTable.GetResourceFullPath_callback GetResourceFullPath; + /** native declaration : headers\openvr_capi.h:1910 */ + public interface LoadSharedResource_callback extends Callback { + int apply(Pointer pchResourceName, Pointer pchBuffer, int unBufferLen); + }; + /** native declaration : headers\openvr_capi.h:1911 */ + public interface GetResourceFullPath_callback extends Callback { + int apply(Pointer pchResourceName, Pointer pchResourceTypeDirectory, Pointer pchPathBuffer, int unBufferLen); + }; + public VR_IVRResources_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("LoadSharedResource", "GetResourceFullPath"); + } /** - * @param LoadSharedResource C type : LoadSharedResource_callback*
    - * @param GetResourceFullPath C type : GetResourceFullPath_callback* - */ - public VR_IVRResources_FnTable(VR_IVRResources_FnTable.LoadSharedResource_callback LoadSharedResource, VR_IVRResources_FnTable.GetResourceFullPath_callback GetResourceFullPath) { - super(); - this.LoadSharedResource = LoadSharedResource; - this.GetResourceFullPath = GetResourceFullPath; - } - public VR_IVRResources_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRResources_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRResources_FnTable implements Structure.ByValue { - - }; + * @param LoadSharedResource C type : LoadSharedResource_callback*
    + * @param GetResourceFullPath C type : GetResourceFullPath_callback* + */ + public VR_IVRResources_FnTable(VR_IVRResources_FnTable.LoadSharedResource_callback LoadSharedResource, VR_IVRResources_FnTable.GetResourceFullPath_callback GetResourceFullPath) { + super(); + this.LoadSharedResource = LoadSharedResource; + this.GetResourceFullPath = GetResourceFullPath; + } + public VR_IVRResources_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRResources_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRResources_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRScreenshots_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRScreenshots_FnTable.java index c568a74c6..d6328b8e8 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRScreenshots_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRScreenshots_FnTable.java @@ -6,86 +6,86 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1865
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRScreenshots_FnTable extends Structure { - /** C type : RequestScreenshot_callback* */ - public VR_IVRScreenshots_FnTable.RequestScreenshot_callback RequestScreenshot; - /** C type : HookScreenshot_callback* */ - public VR_IVRScreenshots_FnTable.HookScreenshot_callback HookScreenshot; - /** C type : GetScreenshotPropertyType_callback* */ - public VR_IVRScreenshots_FnTable.GetScreenshotPropertyType_callback GetScreenshotPropertyType; - /** C type : GetScreenshotPropertyFilename_callback* */ - public VR_IVRScreenshots_FnTable.GetScreenshotPropertyFilename_callback GetScreenshotPropertyFilename; - /** C type : UpdateScreenshotProgress_callback* */ - public VR_IVRScreenshots_FnTable.UpdateScreenshotProgress_callback UpdateScreenshotProgress; - /** C type : TakeStereoScreenshot_callback* */ - public VR_IVRScreenshots_FnTable.TakeStereoScreenshot_callback TakeStereoScreenshot; - /** C type : SubmitScreenshot_callback* */ - public VR_IVRScreenshots_FnTable.SubmitScreenshot_callback SubmitScreenshot; - /** native declaration : headers\openvr_capi.h:1858 */ - public interface RequestScreenshot_callback extends Callback { - int apply(IntByReference pOutScreenshotHandle, int type, Pointer pchPreviewFilename, Pointer pchVRFilename); - }; - /** native declaration : headers\openvr_capi.h:1859 */ - public interface HookScreenshot_callback extends Callback { - int apply(IntByReference pSupportedTypes, int numTypes); - }; - /** native declaration : headers\openvr_capi.h:1860 */ - public interface GetScreenshotPropertyType_callback extends Callback { - int apply(int screenshotHandle, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1861 */ - public interface GetScreenshotPropertyFilename_callback extends Callback { - int apply(int screenshotHandle, int filenameType, Pointer pchFilename, int cchFilename, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1862 */ - public interface UpdateScreenshotProgress_callback extends Callback { - int apply(int screenshotHandle, float flProgress); - }; - /** native declaration : headers\openvr_capi.h:1863 */ - public interface TakeStereoScreenshot_callback extends Callback { - int apply(IntByReference pOutScreenshotHandle, Pointer pchPreviewFilename, Pointer pchVRFilename); - }; - /** native declaration : headers\openvr_capi.h:1864 */ - public interface SubmitScreenshot_callback extends Callback { - int apply(int screenshotHandle, int type, Pointer pchSourcePreviewFilename, Pointer pchSourceVRFilename); - }; - public VR_IVRScreenshots_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("RequestScreenshot", "HookScreenshot", "GetScreenshotPropertyType", "GetScreenshotPropertyFilename", "UpdateScreenshotProgress", "TakeStereoScreenshot", "SubmitScreenshot"); - } + * native declaration : headers\openvr_capi.h:1906
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRScreenshots_FnTable extends Structure { + /** C type : RequestScreenshot_callback* */ + public VR_IVRScreenshots_FnTable.RequestScreenshot_callback RequestScreenshot; + /** C type : HookScreenshot_callback* */ + public VR_IVRScreenshots_FnTable.HookScreenshot_callback HookScreenshot; + /** C type : GetScreenshotPropertyType_callback* */ + public VR_IVRScreenshots_FnTable.GetScreenshotPropertyType_callback GetScreenshotPropertyType; + /** C type : GetScreenshotPropertyFilename_callback* */ + public VR_IVRScreenshots_FnTable.GetScreenshotPropertyFilename_callback GetScreenshotPropertyFilename; + /** C type : UpdateScreenshotProgress_callback* */ + public VR_IVRScreenshots_FnTable.UpdateScreenshotProgress_callback UpdateScreenshotProgress; + /** C type : TakeStereoScreenshot_callback* */ + public VR_IVRScreenshots_FnTable.TakeStereoScreenshot_callback TakeStereoScreenshot; + /** C type : SubmitScreenshot_callback* */ + public VR_IVRScreenshots_FnTable.SubmitScreenshot_callback SubmitScreenshot; + /** native declaration : headers\openvr_capi.h:1899 */ + public interface RequestScreenshot_callback extends Callback { + int apply(IntByReference pOutScreenshotHandle, int type, Pointer pchPreviewFilename, Pointer pchVRFilename); + }; + /** native declaration : headers\openvr_capi.h:1900 */ + public interface HookScreenshot_callback extends Callback { + int apply(IntByReference pSupportedTypes, int numTypes); + }; + /** native declaration : headers\openvr_capi.h:1901 */ + public interface GetScreenshotPropertyType_callback extends Callback { + int apply(int screenshotHandle, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1902 */ + public interface GetScreenshotPropertyFilename_callback extends Callback { + int apply(int screenshotHandle, int filenameType, Pointer pchFilename, int cchFilename, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1903 */ + public interface UpdateScreenshotProgress_callback extends Callback { + int apply(int screenshotHandle, float flProgress); + }; + /** native declaration : headers\openvr_capi.h:1904 */ + public interface TakeStereoScreenshot_callback extends Callback { + int apply(IntByReference pOutScreenshotHandle, Pointer pchPreviewFilename, Pointer pchVRFilename); + }; + /** native declaration : headers\openvr_capi.h:1905 */ + public interface SubmitScreenshot_callback extends Callback { + int apply(int screenshotHandle, int type, Pointer pchSourcePreviewFilename, Pointer pchSourceVRFilename); + }; + public VR_IVRScreenshots_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("RequestScreenshot", "HookScreenshot", "GetScreenshotPropertyType", "GetScreenshotPropertyFilename", "UpdateScreenshotProgress", "TakeStereoScreenshot", "SubmitScreenshot"); + } /** - * @param RequestScreenshot C type : RequestScreenshot_callback*
    - * @param HookScreenshot C type : HookScreenshot_callback*
    - * @param GetScreenshotPropertyType C type : GetScreenshotPropertyType_callback*
    - * @param GetScreenshotPropertyFilename C type : GetScreenshotPropertyFilename_callback*
    - * @param UpdateScreenshotProgress C type : UpdateScreenshotProgress_callback*
    - * @param TakeStereoScreenshot C type : TakeStereoScreenshot_callback*
    - * @param SubmitScreenshot C type : SubmitScreenshot_callback* - */ - public VR_IVRScreenshots_FnTable(VR_IVRScreenshots_FnTable.RequestScreenshot_callback RequestScreenshot, VR_IVRScreenshots_FnTable.HookScreenshot_callback HookScreenshot, VR_IVRScreenshots_FnTable.GetScreenshotPropertyType_callback GetScreenshotPropertyType, VR_IVRScreenshots_FnTable.GetScreenshotPropertyFilename_callback GetScreenshotPropertyFilename, VR_IVRScreenshots_FnTable.UpdateScreenshotProgress_callback UpdateScreenshotProgress, VR_IVRScreenshots_FnTable.TakeStereoScreenshot_callback TakeStereoScreenshot, VR_IVRScreenshots_FnTable.SubmitScreenshot_callback SubmitScreenshot) { - super(); - this.RequestScreenshot = RequestScreenshot; - this.HookScreenshot = HookScreenshot; - this.GetScreenshotPropertyType = GetScreenshotPropertyType; - this.GetScreenshotPropertyFilename = GetScreenshotPropertyFilename; - this.UpdateScreenshotProgress = UpdateScreenshotProgress; - this.TakeStereoScreenshot = TakeStereoScreenshot; - this.SubmitScreenshot = SubmitScreenshot; - } - public VR_IVRScreenshots_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRScreenshots_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRScreenshots_FnTable implements Structure.ByValue { - - }; + * @param RequestScreenshot C type : RequestScreenshot_callback*
    + * @param HookScreenshot C type : HookScreenshot_callback*
    + * @param GetScreenshotPropertyType C type : GetScreenshotPropertyType_callback*
    + * @param GetScreenshotPropertyFilename C type : GetScreenshotPropertyFilename_callback*
    + * @param UpdateScreenshotProgress C type : UpdateScreenshotProgress_callback*
    + * @param TakeStereoScreenshot C type : TakeStereoScreenshot_callback*
    + * @param SubmitScreenshot C type : SubmitScreenshot_callback* + */ + public VR_IVRScreenshots_FnTable(VR_IVRScreenshots_FnTable.RequestScreenshot_callback RequestScreenshot, VR_IVRScreenshots_FnTable.HookScreenshot_callback HookScreenshot, VR_IVRScreenshots_FnTable.GetScreenshotPropertyType_callback GetScreenshotPropertyType, VR_IVRScreenshots_FnTable.GetScreenshotPropertyFilename_callback GetScreenshotPropertyFilename, VR_IVRScreenshots_FnTable.UpdateScreenshotProgress_callback UpdateScreenshotProgress, VR_IVRScreenshots_FnTable.TakeStereoScreenshot_callback TakeStereoScreenshot, VR_IVRScreenshots_FnTable.SubmitScreenshot_callback SubmitScreenshot) { + super(); + this.RequestScreenshot = RequestScreenshot; + this.HookScreenshot = HookScreenshot; + this.GetScreenshotPropertyType = GetScreenshotPropertyType; + this.GetScreenshotPropertyFilename = GetScreenshotPropertyFilename; + this.UpdateScreenshotProgress = UpdateScreenshotProgress; + this.TakeStereoScreenshot = TakeStereoScreenshot; + this.SubmitScreenshot = SubmitScreenshot; + } + public VR_IVRScreenshots_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRScreenshots_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRScreenshots_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSettings_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSettings_FnTable.java index 3f27c11c2..3ea08aa08 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSettings_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSettings_FnTable.java @@ -6,97 +6,97 @@ import com.sun.jna.ptr.IntByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1849
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRSettings_FnTable extends Structure { - /** C type : GetSettingsErrorNameFromEnum_callback* */ - public VR_IVRSettings_FnTable.GetSettingsErrorNameFromEnum_callback GetSettingsErrorNameFromEnum; - /** C type : Sync_callback* */ - public VR_IVRSettings_FnTable.Sync_callback Sync; - /** C type : SetBool_callback* */ - public VR_IVRSettings_FnTable.SetBool_callback SetBool; - /** C type : SetInt32_callback* */ - public VR_IVRSettings_FnTable.SetInt32_callback SetInt32; - /** C type : SetFloat_callback* */ - public VR_IVRSettings_FnTable.SetFloat_callback SetFloat; - /** C type : SetString_callback* */ - public VR_IVRSettings_FnTable.SetString_callback SetString; - /** C type : GetBool_callback* */ - public VR_IVRSettings_FnTable.GetBool_callback GetBool; - /** C type : GetInt32_callback* */ - public VR_IVRSettings_FnTable.GetInt32_callback GetInt32; - /** C type : GetFloat_callback* */ - public VR_IVRSettings_FnTable.GetFloat_callback GetFloat; - /** C type : GetString_callback* */ - public VR_IVRSettings_FnTable.GetString_callback GetString; - /** C type : RemoveSection_callback* */ - public VR_IVRSettings_FnTable.RemoveSection_callback RemoveSection; - /** C type : RemoveKeyInSection_callback* */ - public VR_IVRSettings_FnTable.RemoveKeyInSection_callback RemoveKeyInSection; - /** native declaration : headers\openvr_capi.h:1837 */ - public interface GetSettingsErrorNameFromEnum_callback extends Callback { - Pointer apply(int eError); - }; - /** native declaration : headers\openvr_capi.h:1838 */ - public interface Sync_callback extends Callback { - byte apply(byte bForce, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1839 */ - public interface SetBool_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, byte bValue, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1840 */ - public interface SetInt32_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, int nValue, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1841 */ - public interface SetFloat_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, float flValue, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1842 */ - public interface SetString_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, Pointer pchValue, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1843 */ - public interface GetBool_callback extends Callback { - byte apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1844 */ - public interface GetInt32_callback extends Callback { - int apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1845 */ - public interface GetFloat_callback extends Callback { - float apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1846 */ - public interface GetString_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, Pointer pchValue, int unValueLen, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1847 */ - public interface RemoveSection_callback extends Callback { - void apply(Pointer pchSection, IntByReference peError); - }; - /** native declaration : headers\openvr_capi.h:1848 */ - public interface RemoveKeyInSection_callback extends Callback { - void apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); - }; - public VR_IVRSettings_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("GetSettingsErrorNameFromEnum", "Sync", "SetBool", "SetInt32", "SetFloat", "SetString", "GetBool", "GetInt32", "GetFloat", "GetString", "RemoveSection", "RemoveKeyInSection"); - } - public VR_IVRSettings_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRSettings_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRSettings_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1890
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRSettings_FnTable extends Structure { + /** C type : GetSettingsErrorNameFromEnum_callback* */ + public VR_IVRSettings_FnTable.GetSettingsErrorNameFromEnum_callback GetSettingsErrorNameFromEnum; + /** C type : Sync_callback* */ + public VR_IVRSettings_FnTable.Sync_callback Sync; + /** C type : SetBool_callback* */ + public VR_IVRSettings_FnTable.SetBool_callback SetBool; + /** C type : SetInt32_callback* */ + public VR_IVRSettings_FnTable.SetInt32_callback SetInt32; + /** C type : SetFloat_callback* */ + public VR_IVRSettings_FnTable.SetFloat_callback SetFloat; + /** C type : SetString_callback* */ + public VR_IVRSettings_FnTable.SetString_callback SetString; + /** C type : GetBool_callback* */ + public VR_IVRSettings_FnTable.GetBool_callback GetBool; + /** C type : GetInt32_callback* */ + public VR_IVRSettings_FnTable.GetInt32_callback GetInt32; + /** C type : GetFloat_callback* */ + public VR_IVRSettings_FnTable.GetFloat_callback GetFloat; + /** C type : GetString_callback* */ + public VR_IVRSettings_FnTable.GetString_callback GetString; + /** C type : RemoveSection_callback* */ + public VR_IVRSettings_FnTable.RemoveSection_callback RemoveSection; + /** C type : RemoveKeyInSection_callback* */ + public VR_IVRSettings_FnTable.RemoveKeyInSection_callback RemoveKeyInSection; + /** native declaration : headers\openvr_capi.h:1878 */ + public interface GetSettingsErrorNameFromEnum_callback extends Callback { + Pointer apply(int eError); + }; + /** native declaration : headers\openvr_capi.h:1879 */ + public interface Sync_callback extends Callback { + byte apply(byte bForce, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1880 */ + public interface SetBool_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, byte bValue, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1881 */ + public interface SetInt32_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, int nValue, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1882 */ + public interface SetFloat_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, float flValue, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1883 */ + public interface SetString_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, Pointer pchValue, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1884 */ + public interface GetBool_callback extends Callback { + byte apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1885 */ + public interface GetInt32_callback extends Callback { + int apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1886 */ + public interface GetFloat_callback extends Callback { + float apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1887 */ + public interface GetString_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, Pointer pchValue, int unValueLen, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1888 */ + public interface RemoveSection_callback extends Callback { + void apply(Pointer pchSection, IntByReference peError); + }; + /** native declaration : headers\openvr_capi.h:1889 */ + public interface RemoveKeyInSection_callback extends Callback { + void apply(Pointer pchSection, Pointer pchSettingsKey, IntByReference peError); + }; + public VR_IVRSettings_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("GetSettingsErrorNameFromEnum", "Sync", "SetBool", "SetInt32", "SetFloat", "SetString", "GetBool", "GetInt32", "GetFloat", "GetString", "RemoveSection", "RemoveKeyInSection"); + } + public VR_IVRSettings_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRSettings_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRSettings_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSystem_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSystem_FnTable.java index 4ca9f60e5..7b372d014 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSystem_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRSystem_FnTable.java @@ -5,293 +5,348 @@ import com.sun.jna.Structure; import com.sun.jna.ptr.FloatByReference; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.LongByReference; + import java.util.Arrays; import java.util.List; /** - * OpenVR Function Pointer Tables
    - * native declaration : headers\openvr_capi.h:1385
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRSystem_FnTable extends Structure { - /** C type : GetRecommendedRenderTargetSize_callback* */ - public VR_IVRSystem_FnTable.GetRecommendedRenderTargetSize_callback GetRecommendedRenderTargetSize; - /** C type : GetProjectionMatrix_callback* */ - public VR_IVRSystem_FnTable.GetProjectionMatrix_callback GetProjectionMatrix; - /** C type : GetProjectionRaw_callback* */ - public VR_IVRSystem_FnTable.GetProjectionRaw_callback GetProjectionRaw; - /** C type : ComputeDistortion_callback* */ - public VR_IVRSystem_FnTable.ComputeDistortion_callback ComputeDistortion; - /** C type : GetEyeToHeadTransform_callback* */ - public VR_IVRSystem_FnTable.GetEyeToHeadTransform_callback GetEyeToHeadTransform; - /** C type : GetTimeSinceLastVsync_callback* */ - public VR_IVRSystem_FnTable.GetTimeSinceLastVsync_callback GetTimeSinceLastVsync; - /** C type : GetD3D9AdapterIndex_callback* */ - public VR_IVRSystem_FnTable.GetD3D9AdapterIndex_callback GetD3D9AdapterIndex; - /** C type : GetDXGIOutputInfo_callback* */ - public com.jme3.system.jopenvr.VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo; - /** C type : IsDisplayOnDesktop_callback* */ - public VR_IVRSystem_FnTable.IsDisplayOnDesktop_callback IsDisplayOnDesktop; - /** C type : SetDisplayVisibility_callback* */ - public VR_IVRSystem_FnTable.SetDisplayVisibility_callback SetDisplayVisibility; - /** C type : GetDeviceToAbsoluteTrackingPose_callback* */ - public VR_IVRSystem_FnTable.GetDeviceToAbsoluteTrackingPose_callback GetDeviceToAbsoluteTrackingPose; - /** C type : ResetSeatedZeroPose_callback* */ - public VR_IVRSystem_FnTable.ResetSeatedZeroPose_callback ResetSeatedZeroPose; - /** C type : GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback* */ - public VR_IVRSystem_FnTable.GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback GetSeatedZeroPoseToStandingAbsoluteTrackingPose; - /** C type : GetRawZeroPoseToStandingAbsoluteTrackingPose_callback* */ - public VR_IVRSystem_FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose_callback GetRawZeroPoseToStandingAbsoluteTrackingPose; - /** C type : GetSortedTrackedDeviceIndicesOfClass_callback* */ - public VR_IVRSystem_FnTable.GetSortedTrackedDeviceIndicesOfClass_callback GetSortedTrackedDeviceIndicesOfClass; - /** C type : GetTrackedDeviceActivityLevel_callback* */ - public VR_IVRSystem_FnTable.GetTrackedDeviceActivityLevel_callback GetTrackedDeviceActivityLevel; - /** C type : ApplyTransform_callback* */ - public VR_IVRSystem_FnTable.ApplyTransform_callback ApplyTransform; - /** C type : GetTrackedDeviceIndexForControllerRole_callback* */ - public VR_IVRSystem_FnTable.GetTrackedDeviceIndexForControllerRole_callback GetTrackedDeviceIndexForControllerRole; - /** C type : GetControllerRoleForTrackedDeviceIndex_callback* */ - public VR_IVRSystem_FnTable.GetControllerRoleForTrackedDeviceIndex_callback GetControllerRoleForTrackedDeviceIndex; - /** C type : GetTrackedDeviceClass_callback* */ - public VR_IVRSystem_FnTable.GetTrackedDeviceClass_callback GetTrackedDeviceClass; - /** C type : IsTrackedDeviceConnected_callback* */ - public VR_IVRSystem_FnTable.IsTrackedDeviceConnected_callback IsTrackedDeviceConnected; - /** C type : GetBoolTrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetBoolTrackedDeviceProperty_callback GetBoolTrackedDeviceProperty; - /** C type : GetFloatTrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetFloatTrackedDeviceProperty_callback GetFloatTrackedDeviceProperty; - /** C type : GetInt32TrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetInt32TrackedDeviceProperty_callback GetInt32TrackedDeviceProperty; - /** C type : GetUint64TrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetUint64TrackedDeviceProperty_callback GetUint64TrackedDeviceProperty; - /** C type : GetMatrix34TrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetMatrix34TrackedDeviceProperty_callback GetMatrix34TrackedDeviceProperty; - /** C type : GetStringTrackedDeviceProperty_callback* */ - public VR_IVRSystem_FnTable.GetStringTrackedDeviceProperty_callback GetStringTrackedDeviceProperty; - /** C type : GetPropErrorNameFromEnum_callback* */ - public VR_IVRSystem_FnTable.GetPropErrorNameFromEnum_callback GetPropErrorNameFromEnum; - /** C type : PollNextEvent_callback* */ - public VR_IVRSystem_FnTable.PollNextEvent_callback PollNextEvent; - /** C type : PollNextEventWithPose_callback* */ - public VR_IVRSystem_FnTable.PollNextEventWithPose_callback PollNextEventWithPose; - /** C type : GetEventTypeNameFromEnum_callback* */ - public VR_IVRSystem_FnTable.GetEventTypeNameFromEnum_callback GetEventTypeNameFromEnum; - /** C type : GetHiddenAreaMesh_callback* */ - public VR_IVRSystem_FnTable.GetHiddenAreaMesh_callback GetHiddenAreaMesh; - /** C type : GetControllerState_callback* */ - public VR_IVRSystem_FnTable.GetControllerState_callback GetControllerState; - /** C type : GetControllerStateWithPose_callback* */ - public VR_IVRSystem_FnTable.GetControllerStateWithPose_callback GetControllerStateWithPose; - /** C type : TriggerHapticPulse_callback* */ - public VR_IVRSystem_FnTable.TriggerHapticPulse_callback TriggerHapticPulse; - /** C type : GetButtonIdNameFromEnum_callback* */ - public VR_IVRSystem_FnTable.GetButtonIdNameFromEnum_callback GetButtonIdNameFromEnum; - /** C type : GetControllerAxisTypeNameFromEnum_callback* */ - public VR_IVRSystem_FnTable.GetControllerAxisTypeNameFromEnum_callback GetControllerAxisTypeNameFromEnum; - /** C type : CaptureInputFocus_callback* */ - public VR_IVRSystem_FnTable.CaptureInputFocus_callback CaptureInputFocus; - /** C type : ReleaseInputFocus_callback* */ - public VR_IVRSystem_FnTable.ReleaseInputFocus_callback ReleaseInputFocus; - /** C type : IsInputFocusCapturedByAnotherProcess_callback* */ - public VR_IVRSystem_FnTable.IsInputFocusCapturedByAnotherProcess_callback IsInputFocusCapturedByAnotherProcess; - /** C type : DriverDebugRequest_callback* */ - public VR_IVRSystem_FnTable.DriverDebugRequest_callback DriverDebugRequest; - /** C type : PerformFirmwareUpdate_callback* */ - public VR_IVRSystem_FnTable.PerformFirmwareUpdate_callback PerformFirmwareUpdate; - /** C type : AcknowledgeQuit_Exiting_callback* */ - public VR_IVRSystem_FnTable.AcknowledgeQuit_Exiting_callback AcknowledgeQuit_Exiting; - /** C type : AcknowledgeQuit_UserPrompt_callback* */ - public VR_IVRSystem_FnTable.AcknowledgeQuit_UserPrompt_callback AcknowledgeQuit_UserPrompt; - /** native declaration : headers\openvr_capi.h:1341 */ - public interface GetRecommendedRenderTargetSize_callback extends Callback { - void apply(IntByReference pnWidth, IntByReference pnHeight); - }; - /** native declaration : headers\openvr_capi.h:1342 */ - public interface GetProjectionMatrix_callback extends Callback { - com.jme3.system.jopenvr.HmdMatrix44_t.ByValue apply(int eEye, float fNearZ, float fFarZ); - }; - /** native declaration : headers\openvr_capi.h:1343 */ - public interface GetProjectionRaw_callback extends Callback { - void apply(int eEye, FloatByReference pfLeft, FloatByReference pfRight, FloatByReference pfTop, FloatByReference pfBottom); - }; - /** native declaration : headers\openvr_capi.h:1344 */ - public interface ComputeDistortion_callback extends Callback { - byte apply(int eEye, float fU, float fV, DistortionCoordinates_t pDistortionCoordinates); - }; - /** native declaration : headers\openvr_capi.h:1345 */ - public interface GetEyeToHeadTransform_callback extends Callback { - HmdMatrix34_t.ByValue apply(int eEye); - }; - /** native declaration : headers\openvr_capi.h:1346 */ - public interface GetTimeSinceLastVsync_callback extends Callback { - byte apply(FloatByReference pfSecondsSinceLastVsync, LongByReference pulFrameCounter); - }; - /** native declaration : headers\openvr_capi.h:1347 */ - public interface GetD3D9AdapterIndex_callback extends Callback { - int apply(); - }; - /** native declaration : headers\openvr_capi.h:1348 */ - public interface GetDXGIOutputInfo_callback extends Callback { - void apply(IntByReference pnAdapterIndex); - }; - /** native declaration : headers\openvr_capi.h:1349 */ - public interface IsDisplayOnDesktop_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1350 */ - public interface SetDisplayVisibility_callback extends Callback { - byte apply(byte bIsVisibleOnDesktop); - }; - /** native declaration : headers\openvr_capi.h:1351 */ - public interface GetDeviceToAbsoluteTrackingPose_callback extends Callback { - void apply(int eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t pTrackedDevicePoseArray, int unTrackedDevicePoseArrayCount); - }; - /** native declaration : headers\openvr_capi.h:1352 */ - public interface ResetSeatedZeroPose_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1353 */ - public interface GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback extends Callback { - HmdMatrix34_t.ByValue apply(); - }; - /** native declaration : headers\openvr_capi.h:1354 */ - public interface GetRawZeroPoseToStandingAbsoluteTrackingPose_callback extends Callback { - HmdMatrix34_t.ByValue apply(); - }; - /** native declaration : headers\openvr_capi.h:1355 */ - public interface GetSortedTrackedDeviceIndicesOfClass_callback extends Callback { - int apply(int eTrackedDeviceClass, IntByReference punTrackedDeviceIndexArray, int unTrackedDeviceIndexArrayCount, int unRelativeToTrackedDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1356 */ - public interface GetTrackedDeviceActivityLevel_callback extends Callback { - int apply(int unDeviceId); - }; - /** native declaration : headers\openvr_capi.h:1357 */ - public interface ApplyTransform_callback extends Callback { - void apply(TrackedDevicePose_t pOutputPose, TrackedDevicePose_t pTrackedDevicePose, HmdMatrix34_t pTransform); - }; - /** native declaration : headers\openvr_capi.h:1358 */ - public interface GetTrackedDeviceIndexForControllerRole_callback extends Callback { - int apply(int unDeviceType); - }; - /** native declaration : headers\openvr_capi.h:1359 */ - public interface GetControllerRoleForTrackedDeviceIndex_callback extends Callback { - int apply(int unDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1360 */ - public interface GetTrackedDeviceClass_callback extends Callback { - int apply(int unDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1361 */ - public interface IsTrackedDeviceConnected_callback extends Callback { - byte apply(int unDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1362 */ - public interface GetBoolTrackedDeviceProperty_callback extends Callback { - byte apply(int unDeviceIndex, int prop, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1363 */ - public interface GetFloatTrackedDeviceProperty_callback extends Callback { - float apply(int unDeviceIndex, int prop, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1364 */ - public interface GetInt32TrackedDeviceProperty_callback extends Callback { - int apply(int unDeviceIndex, int prop, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1365 */ - public interface GetUint64TrackedDeviceProperty_callback extends Callback { - long apply(int unDeviceIndex, int prop, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1366 */ - public interface GetMatrix34TrackedDeviceProperty_callback extends Callback { - HmdMatrix34_t.ByValue apply(int unDeviceIndex, int prop, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1367 */ - public interface GetStringTrackedDeviceProperty_callback extends Callback { - int apply(int unDeviceIndex, int prop, Pointer pchValue, int unBufferSize, IntByReference pError); - }; - /** native declaration : headers\openvr_capi.h:1368 */ - public interface GetPropErrorNameFromEnum_callback extends Callback { - Pointer apply(int error); - }; - /** native declaration : headers\openvr_capi.h:1369 */ - public interface PollNextEvent_callback extends Callback { - byte apply(VREvent_t pEvent, int uncbVREvent); - }; - /** native declaration : headers\openvr_capi.h:1370 */ - public interface PollNextEventWithPose_callback extends Callback { - byte apply(int eOrigin, VREvent_t pEvent, int uncbVREvent, TrackedDevicePose_t pTrackedDevicePose); - }; - /** native declaration : headers\openvr_capi.h:1371 */ - public interface GetEventTypeNameFromEnum_callback extends Callback { - Pointer apply(int eType); - }; - /** native declaration : headers\openvr_capi.h:1372 */ - public interface GetHiddenAreaMesh_callback extends Callback { - com.jme3.system.jopenvr.HiddenAreaMesh_t.ByValue apply(int eEye, int type); - }; - /** native declaration : headers\openvr_capi.h:1373 */ - public interface GetControllerState_callback extends Callback { - byte apply(int unControllerDeviceIndex, VRControllerState_t pControllerState, int unControllerStateSize); - }; - /** native declaration : headers\openvr_capi.h:1374 */ - public interface GetControllerStateWithPose_callback extends Callback { - byte apply(int eOrigin, int unControllerDeviceIndex, VRControllerState_t pControllerState, int unControllerStateSize, TrackedDevicePose_t pTrackedDevicePose); - }; - /** native declaration : headers\openvr_capi.h:1375 */ - public interface TriggerHapticPulse_callback extends Callback { - void apply(int unControllerDeviceIndex, int unAxisId, short usDurationMicroSec); - }; - /** native declaration : headers\openvr_capi.h:1376 */ - public interface GetButtonIdNameFromEnum_callback extends Callback { - Pointer apply(int eButtonId); - }; - /** native declaration : headers\openvr_capi.h:1377 */ - public interface GetControllerAxisTypeNameFromEnum_callback extends Callback { - Pointer apply(int eAxisType); - }; - /** native declaration : headers\openvr_capi.h:1378 */ - public interface CaptureInputFocus_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1379 */ - public interface ReleaseInputFocus_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1380 */ - public interface IsInputFocusCapturedByAnotherProcess_callback extends Callback { - byte apply(); - }; - /** native declaration : headers\openvr_capi.h:1381 */ - public interface DriverDebugRequest_callback extends Callback { - int apply(int unDeviceIndex, Pointer pchRequest, Pointer pchResponseBuffer, int unResponseBufferSize); - }; - /** native declaration : headers\openvr_capi.h:1382 */ - public interface PerformFirmwareUpdate_callback extends Callback { - int apply(int unDeviceIndex); - }; - /** native declaration : headers\openvr_capi.h:1383 */ - public interface AcknowledgeQuit_Exiting_callback extends Callback { - void apply(); - }; - /** native declaration : headers\openvr_capi.h:1384 */ - public interface AcknowledgeQuit_UserPrompt_callback extends Callback { - void apply(); - }; - public VR_IVRSystem_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("GetRecommendedRenderTargetSize", "GetProjectionMatrix", "GetProjectionRaw", "ComputeDistortion", "GetEyeToHeadTransform", "GetTimeSinceLastVsync", "GetD3D9AdapterIndex", "GetDXGIOutputInfo", "IsDisplayOnDesktop", "SetDisplayVisibility", "GetDeviceToAbsoluteTrackingPose", "ResetSeatedZeroPose", "GetSeatedZeroPoseToStandingAbsoluteTrackingPose", "GetRawZeroPoseToStandingAbsoluteTrackingPose", "GetSortedTrackedDeviceIndicesOfClass", "GetTrackedDeviceActivityLevel", "ApplyTransform", "GetTrackedDeviceIndexForControllerRole", "GetControllerRoleForTrackedDeviceIndex", "GetTrackedDeviceClass", "IsTrackedDeviceConnected", "GetBoolTrackedDeviceProperty", "GetFloatTrackedDeviceProperty", "GetInt32TrackedDeviceProperty", "GetUint64TrackedDeviceProperty", "GetMatrix34TrackedDeviceProperty", "GetStringTrackedDeviceProperty", "GetPropErrorNameFromEnum", "PollNextEvent", "PollNextEventWithPose", "GetEventTypeNameFromEnum", "GetHiddenAreaMesh", "GetControllerState", "GetControllerStateWithPose", "TriggerHapticPulse", "GetButtonIdNameFromEnum", "GetControllerAxisTypeNameFromEnum", "CaptureInputFocus", "ReleaseInputFocus", "IsInputFocusCapturedByAnotherProcess", "DriverDebugRequest", "PerformFirmwareUpdate", "AcknowledgeQuit_Exiting", "AcknowledgeQuit_UserPrompt"); - } - public VR_IVRSystem_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRSystem_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRSystem_FnTable implements Structure.ByValue { - - }; + * OpenVR Function Pointer Tables
    + * native declaration : headers\openvr_capi.h:1416
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRSystem_FnTable extends Structure { + + /** C type : GetRecommendedRenderTargetSize_callback* */ + public VR_IVRSystem_FnTable.GetRecommendedRenderTargetSize_callback GetRecommendedRenderTargetSize; + /** C type : GetProjectionMatrix_callback* */ + public VR_IVRSystem_FnTable.GetProjectionMatrix_callback GetProjectionMatrix; + /** C type : GetProjectionRaw_callback* */ + public VR_IVRSystem_FnTable.GetProjectionRaw_callback GetProjectionRaw; + /** C type : ComputeDistortion_callback* */ + public VR_IVRSystem_FnTable.ComputeDistortion_callback ComputeDistortion; + /** C type : GetEyeToHeadTransform_callback* */ + public VR_IVRSystem_FnTable.GetEyeToHeadTransform_callback GetEyeToHeadTransform; + /** C type : GetTimeSinceLastVsync_callback* */ + public VR_IVRSystem_FnTable.GetTimeSinceLastVsync_callback GetTimeSinceLastVsync; + /** C type : GetD3D9AdapterIndex_callback* */ + public VR_IVRSystem_FnTable.GetD3D9AdapterIndex_callback GetD3D9AdapterIndex; + /** C type : GetDXGIOutputInfo_callback* */ + public com.jme3.system.jopenvr.VR_IVRExtendedDisplay_FnTable.GetDXGIOutputInfo_callback GetDXGIOutputInfo; + /** C type : GetOutputDevice_callback* */ + public VR_IVRSystem_FnTable.GetOutputDevice_callback GetOutputDevice; + /** C type : IsDisplayOnDesktop_callback* */ + public VR_IVRSystem_FnTable.IsDisplayOnDesktop_callback IsDisplayOnDesktop; + /** C type : SetDisplayVisibility_callback* */ + public VR_IVRSystem_FnTable.SetDisplayVisibility_callback SetDisplayVisibility; + /** C type : GetDeviceToAbsoluteTrackingPose_callback* */ + public VR_IVRSystem_FnTable.GetDeviceToAbsoluteTrackingPose_callback GetDeviceToAbsoluteTrackingPose; + /** C type : ResetSeatedZeroPose_callback* */ + public VR_IVRSystem_FnTable.ResetSeatedZeroPose_callback ResetSeatedZeroPose; + /** C type : GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback* */ + public VR_IVRSystem_FnTable.GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback GetSeatedZeroPoseToStandingAbsoluteTrackingPose; + /** C type : GetRawZeroPoseToStandingAbsoluteTrackingPose_callback* */ + public VR_IVRSystem_FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose_callback GetRawZeroPoseToStandingAbsoluteTrackingPose; + /** C type : GetSortedTrackedDeviceIndicesOfClass_callback* */ + public VR_IVRSystem_FnTable.GetSortedTrackedDeviceIndicesOfClass_callback GetSortedTrackedDeviceIndicesOfClass; + /** C type : GetTrackedDeviceActivityLevel_callback* */ + public VR_IVRSystem_FnTable.GetTrackedDeviceActivityLevel_callback GetTrackedDeviceActivityLevel; + /** C type : ApplyTransform_callback* */ + public VR_IVRSystem_FnTable.ApplyTransform_callback ApplyTransform; + /** C type : GetTrackedDeviceIndexForControllerRole_callback* */ + public VR_IVRSystem_FnTable.GetTrackedDeviceIndexForControllerRole_callback GetTrackedDeviceIndexForControllerRole; + /** C type : GetControllerRoleForTrackedDeviceIndex_callback* */ + public VR_IVRSystem_FnTable.GetControllerRoleForTrackedDeviceIndex_callback GetControllerRoleForTrackedDeviceIndex; + /** C type : GetTrackedDeviceClass_callback* */ + public VR_IVRSystem_FnTable.GetTrackedDeviceClass_callback GetTrackedDeviceClass; + /** C type : IsTrackedDeviceConnected_callback* */ + public VR_IVRSystem_FnTable.IsTrackedDeviceConnected_callback IsTrackedDeviceConnected; + /** C type : GetBoolTrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetBoolTrackedDeviceProperty_callback GetBoolTrackedDeviceProperty; + /** C type : GetFloatTrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetFloatTrackedDeviceProperty_callback GetFloatTrackedDeviceProperty; + /** C type : GetInt32TrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetInt32TrackedDeviceProperty_callback GetInt32TrackedDeviceProperty; + /** C type : GetUint64TrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetUint64TrackedDeviceProperty_callback GetUint64TrackedDeviceProperty; + /** C type : GetMatrix34TrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetMatrix34TrackedDeviceProperty_callback GetMatrix34TrackedDeviceProperty; + /** C type : GetStringTrackedDeviceProperty_callback* */ + public VR_IVRSystem_FnTable.GetStringTrackedDeviceProperty_callback GetStringTrackedDeviceProperty; + /** C type : GetPropErrorNameFromEnum_callback* */ + public VR_IVRSystem_FnTable.GetPropErrorNameFromEnum_callback GetPropErrorNameFromEnum; + /** C type : PollNextEvent_callback* */ + public VR_IVRSystem_FnTable.PollNextEvent_callback PollNextEvent; + /** C type : PollNextEventWithPose_callback* */ + public VR_IVRSystem_FnTable.PollNextEventWithPose_callback PollNextEventWithPose; + /** C type : GetEventTypeNameFromEnum_callback* */ + public VR_IVRSystem_FnTable.GetEventTypeNameFromEnum_callback GetEventTypeNameFromEnum; + /** C type : GetHiddenAreaMesh_callback* */ + public VR_IVRSystem_FnTable.GetHiddenAreaMesh_callback GetHiddenAreaMesh; + /** C type : GetControllerState_callback* */ + public VR_IVRSystem_FnTable.GetControllerState_callback GetControllerState; + /** C type : GetControllerStateWithPose_callback* */ + public VR_IVRSystem_FnTable.GetControllerStateWithPose_callback GetControllerStateWithPose; + /** C type : TriggerHapticPulse_callback* */ + public VR_IVRSystem_FnTable.TriggerHapticPulse_callback TriggerHapticPulse; + /** C type : GetButtonIdNameFromEnum_callback* */ + public VR_IVRSystem_FnTable.GetButtonIdNameFromEnum_callback GetButtonIdNameFromEnum; + /** C type : GetControllerAxisTypeNameFromEnum_callback* */ + public VR_IVRSystem_FnTable.GetControllerAxisTypeNameFromEnum_callback GetControllerAxisTypeNameFromEnum; + /** C type : CaptureInputFocus_callback* */ + public VR_IVRSystem_FnTable.CaptureInputFocus_callback CaptureInputFocus; + /** C type : ReleaseInputFocus_callback* */ + public VR_IVRSystem_FnTable.ReleaseInputFocus_callback ReleaseInputFocus; + /** C type : IsInputFocusCapturedByAnotherProcess_callback* */ + public VR_IVRSystem_FnTable.IsInputFocusCapturedByAnotherProcess_callback IsInputFocusCapturedByAnotherProcess; + /** C type : DriverDebugRequest_callback* */ + public VR_IVRSystem_FnTable.DriverDebugRequest_callback DriverDebugRequest; + /** C type : PerformFirmwareUpdate_callback* */ + public VR_IVRSystem_FnTable.PerformFirmwareUpdate_callback PerformFirmwareUpdate; + /** C type : AcknowledgeQuit_Exiting_callback* */ + public VR_IVRSystem_FnTable.AcknowledgeQuit_Exiting_callback AcknowledgeQuit_Exiting; + /** C type : AcknowledgeQuit_UserPrompt_callback* */ + public VR_IVRSystem_FnTable.AcknowledgeQuit_UserPrompt_callback AcknowledgeQuit_UserPrompt; + /** native declaration : headers\openvr_capi.h:1371 */ + public interface GetRecommendedRenderTargetSize_callback extends Callback { + void apply(IntByReference pnWidth, IntByReference pnHeight); + }; + /** native declaration : headers\openvr_capi.h:1372 */ + public interface GetProjectionMatrix_callback extends Callback { + com.jme3.system.jopenvr.HmdMatrix44_t.ByValue apply(int eEye, float fNearZ, float fFarZ); + }; + /** native declaration : headers\openvr_capi.h:1373 */ + public interface GetProjectionRaw_callback extends Callback { + void apply(int eEye, FloatByReference pfLeft, FloatByReference pfRight, FloatByReference pfTop, FloatByReference pfBottom); + }; + /** native declaration : headers\openvr_capi.h:1374 */ + public interface ComputeDistortion_callback extends Callback { + byte apply(int eEye, float fU, float fV, DistortionCoordinates_t pDistortionCoordinates); + }; + + /** native declaration : headers\openvr_capi.h:1375 */ + public interface GetEyeToHeadTransform_callback extends Callback { + HmdMatrix34_t.ByValue apply(int eEye); + }; + /** native declaration : headers\openvr_capi.h:1376 */ + public interface GetTimeSinceLastVsync_callback extends Callback { + byte apply(FloatByReference pfSecondsSinceLastVsync, LongByReference pulFrameCounter); + }; + /** native declaration : headers\openvr_capi.h:1377 */ + public interface GetD3D9AdapterIndex_callback extends Callback { + int apply(); + }; + /** native declaration : headers\openvr_capi.h:1378 */ + public interface GetDXGIOutputInfo_callback extends Callback { + void apply(IntByReference pnAdapterIndex); + }; + /** native declaration : headers\openvr_capi.h:1379 */ + public interface GetOutputDevice_callback extends Callback { + void apply(LongByReference pnDevice, int textureType); + }; + /** native declaration : headers\openvr_capi.h:1380 */ + public interface IsDisplayOnDesktop_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1381 */ + public interface SetDisplayVisibility_callback extends Callback { + byte apply(byte bIsVisibleOnDesktop); + }; + /** native declaration : headers\openvr_capi.h:1382 */ + public interface GetDeviceToAbsoluteTrackingPose_callback extends Callback { + void apply(int eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t pTrackedDevicePoseArray, int unTrackedDevicePoseArrayCount); + }; + /** native declaration : headers\openvr_capi.h:1383 */ + public interface ResetSeatedZeroPose_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1384 */ + public interface GetSeatedZeroPoseToStandingAbsoluteTrackingPose_callback extends Callback { + HmdMatrix34_t.ByValue apply(); + }; + /** native declaration : headers\openvr_capi.h:1385 */ + public interface GetRawZeroPoseToStandingAbsoluteTrackingPose_callback extends Callback { + HmdMatrix34_t.ByValue apply(); + }; + /** native declaration : headers\openvr_capi.h:1386 */ + public interface GetSortedTrackedDeviceIndicesOfClass_callback extends Callback { + int apply(int eTrackedDeviceClass, IntByReference punTrackedDeviceIndexArray, int unTrackedDeviceIndexArrayCount, int unRelativeToTrackedDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1387 */ + public interface GetTrackedDeviceActivityLevel_callback extends Callback { + int apply(int unDeviceId); + }; + /** native declaration : headers\openvr_capi.h:1388 */ + public interface ApplyTransform_callback extends Callback { + void apply(TrackedDevicePose_t pOutputPose, TrackedDevicePose_t pTrackedDevicePose, HmdMatrix34_t pTransform); + }; + /** native declaration : headers\openvr_capi.h:1389 */ + public interface GetTrackedDeviceIndexForControllerRole_callback extends Callback { + int apply(int unDeviceType); + }; + /** native declaration : headers\openvr_capi.h:1390 */ + public interface GetControllerRoleForTrackedDeviceIndex_callback extends Callback { + int apply(int unDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1391 */ + public interface GetTrackedDeviceClass_callback extends Callback { + int apply(int unDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1392 */ + public interface IsTrackedDeviceConnected_callback extends Callback { + byte apply(int unDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1393 */ + public interface GetBoolTrackedDeviceProperty_callback extends Callback { + byte apply(int unDeviceIndex, int prop, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1394 */ + public interface GetFloatTrackedDeviceProperty_callback extends Callback { + float apply(int unDeviceIndex, int prop, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1395 */ + public interface GetInt32TrackedDeviceProperty_callback extends Callback { + int apply(int unDeviceIndex, int prop, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1396 */ + public interface GetUint64TrackedDeviceProperty_callback extends Callback { + long apply(int unDeviceIndex, int prop, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1397 */ + public interface GetMatrix34TrackedDeviceProperty_callback extends Callback { + HmdMatrix34_t.ByValue apply(int unDeviceIndex, int prop, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1398 */ + public interface GetStringTrackedDeviceProperty_callback extends Callback { + int apply(int unDeviceIndex, int prop, Pointer pchValue, int unBufferSize, IntByReference pError); + }; + /** native declaration : headers\openvr_capi.h:1399 */ + public interface GetPropErrorNameFromEnum_callback extends Callback { + Pointer apply(int error); + }; + /** native declaration : headers\openvr_capi.h:1400 */ + public interface PollNextEvent_callback extends Callback { + byte apply(VREvent_t pEvent, int uncbVREvent); + }; + /** native declaration : headers\openvr_capi.h:1401 */ + public interface PollNextEventWithPose_callback extends Callback { + byte apply(int eOrigin, VREvent_t pEvent, int uncbVREvent, TrackedDevicePose_t pTrackedDevicePose); + }; + /** native declaration : headers\openvr_capi.h:1402 */ + public interface GetEventTypeNameFromEnum_callback extends Callback { + Pointer apply(int eType); + }; + /** native declaration : headers\openvr_capi.h:1403 */ + public interface GetHiddenAreaMesh_callback extends Callback { + com.jme3.system.jopenvr.HiddenAreaMesh_t.ByValue apply(int eEye, int type); + }; + /** native declaration : headers\openvr_capi.h:1404 */ + public interface GetControllerState_callback extends Callback { + byte apply(int unControllerDeviceIndex, VRControllerState_t pControllerState, int unControllerStateSize); + }; + /** native declaration : headers\openvr_capi.h:1405 */ + public interface GetControllerStateWithPose_callback extends Callback { + byte apply(int eOrigin, int unControllerDeviceIndex, VRControllerState_t pControllerState, int unControllerStateSize, TrackedDevicePose_t pTrackedDevicePose); + }; + /** native declaration : headers\openvr_capi.h:1406 */ + public interface TriggerHapticPulse_callback extends Callback { + void apply(int unControllerDeviceIndex, int unAxisId, short usDurationMicroSec); + }; + /** native declaration : headers\openvr_capi.h:1407 */ + public interface GetButtonIdNameFromEnum_callback extends Callback { + Pointer apply(int eButtonId); + }; + /** native declaration : headers\openvr_capi.h:1408 */ + public interface GetControllerAxisTypeNameFromEnum_callback extends Callback { + Pointer apply(int eAxisType); + }; + /** native declaration : headers\openvr_capi.h:1409 */ + public interface CaptureInputFocus_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1410 */ + public interface ReleaseInputFocus_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1411 */ + public interface IsInputFocusCapturedByAnotherProcess_callback extends Callback { + byte apply(); + }; + /** native declaration : headers\openvr_capi.h:1412 */ + public interface DriverDebugRequest_callback extends Callback { + int apply(int unDeviceIndex, Pointer pchRequest, Pointer pchResponseBuffer, int unResponseBufferSize); + }; + /** native declaration : headers\openvr_capi.h:1413 */ + public interface PerformFirmwareUpdate_callback extends Callback { + int apply(int unDeviceIndex); + }; + /** native declaration : headers\openvr_capi.h:1414 */ + public interface AcknowledgeQuit_Exiting_callback extends Callback { + void apply(); + }; + /** native declaration : headers\openvr_capi.h:1415 */ + public interface AcknowledgeQuit_UserPrompt_callback extends Callback { + void apply(); + }; + public VR_IVRSystem_FnTable() { + super(); + } + protected List getFieldOrder() { + //return Arrays.asList("GetRecommendedRenderTargetSize", "GetProjectionMatrix", "GetProjectionRaw", "ComputeDistortion", "GetEyeToHeadTransform", "GetTimeSinceLastVsync", "GetD3D9AdapterIndex", "GetDXGIOutputInfo", "GetOutputDevice", "IsDisplayOnDesktop", "SetDisplayVisibility", "GetDeviceToAbsoluteTrackingPose", "ResetSeatedZeroPose", "GetSeatedZeroPoseToStandingAbsoluteTrackingPose", "GetRawZeroPoseToStandingAbsoluteTrackingPose", "GetSortedTrackedDeviceIndicesOfClass", "GetTrackedDeviceActivityLevel", "ApplyTransform", "GetTrackedDeviceIndexForControllerRole", "GetControllerRoleForTrackedDeviceIndex", "GetTrackedDeviceClass", "IsTrackedDeviceConnected", "GetBoolTrackedDeviceProperty", "GetFloatTrackedDeviceProperty", "GetInt32TrackedDeviceProperty", "GetUint64TrackedDeviceProperty", "GetMatrix34TrackedDeviceProperty", "GetStringTrackedDeviceProperty", "GetPropErrorNameFromEnum", "PollNextEvent", "PollNextEventWithPose", "GetEventTypeNameFromEnum", "GetHiddenAreaMesh", "GetControllerState", "GetControllerStateWithPose", "TriggerHapticPulse", "GetButtonIdNameFromEnum", "GetControllerAxisTypeNameFromEnum", "CaptureInputFocus", "ReleaseInputFocus", "IsInputFocusCapturedByAnotherProcess", "DriverDebugRequest", "PerformFirmwareUpdate", "AcknowledgeQuit_Exiting", "AcknowledgeQuit_UserPrompt"); + + return Arrays.asList("GetRecommendedRenderTargetSize", + "GetProjectionMatrix", + "GetProjectionRaw", + "ComputeDistortion", + "GetEyeToHeadTransform", + "GetTimeSinceLastVsync", + "GetD3D9AdapterIndex", + "GetDXGIOutputInfo", + "GetOutputDevice", + "IsDisplayOnDesktop", + "SetDisplayVisibility", + "GetDeviceToAbsoluteTrackingPose", + "ResetSeatedZeroPose", + "GetSeatedZeroPoseToStandingAbsoluteTrackingPose", + "GetRawZeroPoseToStandingAbsoluteTrackingPose", + "GetSortedTrackedDeviceIndicesOfClass", + "GetTrackedDeviceActivityLevel", + "ApplyTransform", + "GetTrackedDeviceIndexForControllerRole", + "GetControllerRoleForTrackedDeviceIndex", + "GetTrackedDeviceClass", + "IsTrackedDeviceConnected", + "GetBoolTrackedDeviceProperty", + "GetFloatTrackedDeviceProperty", + "GetInt32TrackedDeviceProperty", + "GetUint64TrackedDeviceProperty", + "GetMatrix34TrackedDeviceProperty", + "GetStringTrackedDeviceProperty", + "GetPropErrorNameFromEnum", + "PollNextEvent", + "PollNextEventWithPose", + "GetEventTypeNameFromEnum", + "GetHiddenAreaMesh", + "GetControllerState", + "GetControllerStateWithPose", + "TriggerHapticPulse", + "GetButtonIdNameFromEnum", + "GetControllerAxisTypeNameFromEnum", + "CaptureInputFocus", + "ReleaseInputFocus", + "IsInputFocusCapturedByAnotherProcess", + "DriverDebugRequest", + "PerformFirmwareUpdate", + "AcknowledgeQuit_Exiting", + "AcknowledgeQuit_UserPrompt"); + } + public VR_IVRSystem_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRSystem_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRSystem_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRTrackedCamera_FnTable.java b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRTrackedCamera_FnTable.java index ddb701b94..8b7cd78b2 100644 --- a/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRTrackedCamera_FnTable.java +++ b/jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRTrackedCamera_FnTable.java @@ -8,97 +8,97 @@ import com.sun.jna.ptr.PointerByReference; import java.util.Arrays; import java.util.List; /** - * native declaration : headers\openvr_capi.h:1419
    - * This file was autogenerated by JNAerator,
    - * a tool written by Olivier Chafik that uses a few opensource projects..
    - * For help, please visit NativeLibs4Java , Rococoa, or JNA. - */ -public class VR_IVRTrackedCamera_FnTable extends Structure { - /** C type : GetCameraErrorNameFromEnum_callback* */ - public VR_IVRTrackedCamera_FnTable.GetCameraErrorNameFromEnum_callback GetCameraErrorNameFromEnum; - /** C type : HasCamera_callback* */ - public VR_IVRTrackedCamera_FnTable.HasCamera_callback HasCamera; - /** C type : GetCameraFrameSize_callback* */ - public VR_IVRTrackedCamera_FnTable.GetCameraFrameSize_callback GetCameraFrameSize; - /** C type : GetCameraIntrinsics_callback* */ - public VR_IVRTrackedCamera_FnTable.GetCameraIntrinsics_callback GetCameraIntrinsics; - /** C type : GetCameraProjection_callback* */ - public VR_IVRTrackedCamera_FnTable.GetCameraProjection_callback GetCameraProjection; - /** C type : AcquireVideoStreamingService_callback* */ - public VR_IVRTrackedCamera_FnTable.AcquireVideoStreamingService_callback AcquireVideoStreamingService; - /** C type : ReleaseVideoStreamingService_callback* */ - public VR_IVRTrackedCamera_FnTable.ReleaseVideoStreamingService_callback ReleaseVideoStreamingService; - /** C type : GetVideoStreamFrameBuffer_callback* */ - public VR_IVRTrackedCamera_FnTable.GetVideoStreamFrameBuffer_callback GetVideoStreamFrameBuffer; - /** C type : GetVideoStreamTextureSize_callback* */ - public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureSize_callback GetVideoStreamTextureSize; - /** C type : GetVideoStreamTextureD3D11_callback* */ - public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureD3D11_callback GetVideoStreamTextureD3D11; - /** C type : GetVideoStreamTextureGL_callback* */ - public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureGL_callback GetVideoStreamTextureGL; - /** C type : ReleaseVideoStreamTextureGL_callback* */ - public VR_IVRTrackedCamera_FnTable.ReleaseVideoStreamTextureGL_callback ReleaseVideoStreamTextureGL; - /** native declaration : headers\openvr_capi.h:1407 */ - public interface GetCameraErrorNameFromEnum_callback extends Callback { - Pointer apply(int eCameraError); - }; - /** native declaration : headers\openvr_capi.h:1408 */ - public interface HasCamera_callback extends Callback { - int apply(int nDeviceIndex, Pointer pHasCamera); - }; - /** native declaration : headers\openvr_capi.h:1409 */ - public interface GetCameraFrameSize_callback extends Callback { - int apply(int nDeviceIndex, int eFrameType, IntByReference pnWidth, IntByReference pnHeight, IntByReference pnFrameBufferSize); - }; - /** native declaration : headers\openvr_capi.h:1410 */ - public interface GetCameraIntrinsics_callback extends Callback { - int apply(int nDeviceIndex, int eFrameType, HmdVector2_t pFocalLength, HmdVector2_t pCenter); - }; - /** native declaration : headers\openvr_capi.h:1411 */ - public interface GetCameraProjection_callback extends Callback { - int apply(int nDeviceIndex, int eFrameType, float flZNear, float flZFar, HmdMatrix44_t pProjection); - }; - /** native declaration : headers\openvr_capi.h:1412 */ - public interface AcquireVideoStreamingService_callback extends Callback { - int apply(int nDeviceIndex, LongByReference pHandle); - }; - /** native declaration : headers\openvr_capi.h:1413 */ - public interface ReleaseVideoStreamingService_callback extends Callback { - int apply(long hTrackedCamera); - }; - /** native declaration : headers\openvr_capi.h:1414 */ - public interface GetVideoStreamFrameBuffer_callback extends Callback { - int apply(long hTrackedCamera, int eFrameType, Pointer pFrameBuffer, int nFrameBufferSize, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); - }; - /** native declaration : headers\openvr_capi.h:1415 */ - public interface GetVideoStreamTextureSize_callback extends Callback { - int apply(int nDeviceIndex, int eFrameType, VRTextureBounds_t pTextureBounds, IntByReference pnWidth, IntByReference pnHeight); - }; - /** native declaration : headers\openvr_capi.h:1416 */ - public interface GetVideoStreamTextureD3D11_callback extends Callback { - int apply(long hTrackedCamera, int eFrameType, Pointer pD3D11DeviceOrResource, PointerByReference ppD3D11ShaderResourceView, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); - }; - /** native declaration : headers\openvr_capi.h:1417 */ - public interface GetVideoStreamTextureGL_callback extends Callback { - int apply(long hTrackedCamera, int eFrameType, IntByReference pglTextureId, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); - }; - /** native declaration : headers\openvr_capi.h:1418 */ - public interface ReleaseVideoStreamTextureGL_callback extends Callback { - int apply(long hTrackedCamera, int glTextureId); - }; - public VR_IVRTrackedCamera_FnTable() { - super(); - } - protected List getFieldOrder() { - return Arrays.asList("GetCameraErrorNameFromEnum", "HasCamera", "GetCameraFrameSize", "GetCameraIntrinsics", "GetCameraProjection", "AcquireVideoStreamingService", "ReleaseVideoStreamingService", "GetVideoStreamFrameBuffer", "GetVideoStreamTextureSize", "GetVideoStreamTextureD3D11", "GetVideoStreamTextureGL", "ReleaseVideoStreamTextureGL"); - } - public VR_IVRTrackedCamera_FnTable(Pointer peer) { - super(peer); - } - public static class ByReference extends VR_IVRTrackedCamera_FnTable implements Structure.ByReference { - - }; - public static class ByValue extends VR_IVRTrackedCamera_FnTable implements Structure.ByValue { - - }; + * native declaration : headers\openvr_capi.h:1450
    + * This file was autogenerated by JNAerator,
    + * a tool written by Olivier Chafik that uses a few opensource projects..
    + * For help, please visit NativeLibs4Java , Rococoa, or JNA. + */ +public class VR_IVRTrackedCamera_FnTable extends Structure { + /** C type : GetCameraErrorNameFromEnum_callback* */ + public VR_IVRTrackedCamera_FnTable.GetCameraErrorNameFromEnum_callback GetCameraErrorNameFromEnum; + /** C type : HasCamera_callback* */ + public VR_IVRTrackedCamera_FnTable.HasCamera_callback HasCamera; + /** C type : GetCameraFrameSize_callback* */ + public VR_IVRTrackedCamera_FnTable.GetCameraFrameSize_callback GetCameraFrameSize; + /** C type : GetCameraIntrinsics_callback* */ + public VR_IVRTrackedCamera_FnTable.GetCameraIntrinsics_callback GetCameraIntrinsics; + /** C type : GetCameraProjection_callback* */ + public VR_IVRTrackedCamera_FnTable.GetCameraProjection_callback GetCameraProjection; + /** C type : AcquireVideoStreamingService_callback* */ + public VR_IVRTrackedCamera_FnTable.AcquireVideoStreamingService_callback AcquireVideoStreamingService; + /** C type : ReleaseVideoStreamingService_callback* */ + public VR_IVRTrackedCamera_FnTable.ReleaseVideoStreamingService_callback ReleaseVideoStreamingService; + /** C type : GetVideoStreamFrameBuffer_callback* */ + public VR_IVRTrackedCamera_FnTable.GetVideoStreamFrameBuffer_callback GetVideoStreamFrameBuffer; + /** C type : GetVideoStreamTextureSize_callback* */ + public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureSize_callback GetVideoStreamTextureSize; + /** C type : GetVideoStreamTextureD3D11_callback* */ + public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureD3D11_callback GetVideoStreamTextureD3D11; + /** C type : GetVideoStreamTextureGL_callback* */ + public VR_IVRTrackedCamera_FnTable.GetVideoStreamTextureGL_callback GetVideoStreamTextureGL; + /** C type : ReleaseVideoStreamTextureGL_callback* */ + public VR_IVRTrackedCamera_FnTable.ReleaseVideoStreamTextureGL_callback ReleaseVideoStreamTextureGL; + /** native declaration : headers\openvr_capi.h:1438 */ + public interface GetCameraErrorNameFromEnum_callback extends Callback { + Pointer apply(int eCameraError); + }; + /** native declaration : headers\openvr_capi.h:1439 */ + public interface HasCamera_callback extends Callback { + int apply(int nDeviceIndex, Pointer pHasCamera); + }; + /** native declaration : headers\openvr_capi.h:1440 */ + public interface GetCameraFrameSize_callback extends Callback { + int apply(int nDeviceIndex, int eFrameType, IntByReference pnWidth, IntByReference pnHeight, IntByReference pnFrameBufferSize); + }; + /** native declaration : headers\openvr_capi.h:1441 */ + public interface GetCameraIntrinsics_callback extends Callback { + int apply(int nDeviceIndex, int eFrameType, HmdVector2_t pFocalLength, HmdVector2_t pCenter); + }; + /** native declaration : headers\openvr_capi.h:1442 */ + public interface GetCameraProjection_callback extends Callback { + int apply(int nDeviceIndex, int eFrameType, float flZNear, float flZFar, HmdMatrix44_t pProjection); + }; + /** native declaration : headers\openvr_capi.h:1443 */ + public interface AcquireVideoStreamingService_callback extends Callback { + int apply(int nDeviceIndex, LongByReference pHandle); + }; + /** native declaration : headers\openvr_capi.h:1444 */ + public interface ReleaseVideoStreamingService_callback extends Callback { + int apply(long hTrackedCamera); + }; + /** native declaration : headers\openvr_capi.h:1445 */ + public interface GetVideoStreamFrameBuffer_callback extends Callback { + int apply(long hTrackedCamera, int eFrameType, Pointer pFrameBuffer, int nFrameBufferSize, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); + }; + /** native declaration : headers\openvr_capi.h:1446 */ + public interface GetVideoStreamTextureSize_callback extends Callback { + int apply(int nDeviceIndex, int eFrameType, VRTextureBounds_t pTextureBounds, IntByReference pnWidth, IntByReference pnHeight); + }; + /** native declaration : headers\openvr_capi.h:1447 */ + public interface GetVideoStreamTextureD3D11_callback extends Callback { + int apply(long hTrackedCamera, int eFrameType, Pointer pD3D11DeviceOrResource, PointerByReference ppD3D11ShaderResourceView, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); + }; + /** native declaration : headers\openvr_capi.h:1448 */ + public interface GetVideoStreamTextureGL_callback extends Callback { + int apply(long hTrackedCamera, int eFrameType, IntByReference pglTextureId, CameraVideoStreamFrameHeader_t pFrameHeader, int nFrameHeaderSize); + }; + /** native declaration : headers\openvr_capi.h:1449 */ + public interface ReleaseVideoStreamTextureGL_callback extends Callback { + int apply(long hTrackedCamera, int glTextureId); + }; + public VR_IVRTrackedCamera_FnTable() { + super(); + } + protected List getFieldOrder() { + return Arrays.asList("GetCameraErrorNameFromEnum", "HasCamera", "GetCameraFrameSize", "GetCameraIntrinsics", "GetCameraProjection", "AcquireVideoStreamingService", "ReleaseVideoStreamingService", "GetVideoStreamFrameBuffer", "GetVideoStreamTextureSize", "GetVideoStreamTextureD3D11", "GetVideoStreamTextureGL", "ReleaseVideoStreamTextureGL"); + } + public VR_IVRTrackedCamera_FnTable(Pointer peer) { + super(peer); + } + public static class ByReference extends VR_IVRTrackedCamera_FnTable implements Structure.ByReference { + + }; + public static class ByValue extends VR_IVRTrackedCamera_FnTable implements Structure.ByValue { + + }; } diff --git a/jme3-vr/src/main/java/com/jme3/util/VRGUIPositioningMode.java b/jme3-vr/src/main/java/com/jme3/util/VRGUIPositioningMode.java index a7b8642f0..570a9be68 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRGUIPositioningMode.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRGUIPositioningMode.java @@ -2,7 +2,7 @@ package com.jme3.util; /** * A enumeration that describes the GUI display positioning modes. - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * */ public enum VRGUIPositioningMode { diff --git a/jme3-vr/src/main/java/com/jme3/util/VRGuiManager.java b/jme3-vr/src/main/java/com/jme3/util/VRGuiManager.java index 46b3dbbb6..a5a4d89e8 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRGuiManager.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRGuiManager.java @@ -30,7 +30,7 @@ import java.util.Iterator; /** * A class dedicated to the management and the display of a Graphical User Interface (GUI) within a VR environment. * @author reden - phr00t - https://github.com/phr00t - * @author Julien Seinturier - (c) 2016 - JOrigin project - http:/www.jorigin.org + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr * */ public class VRGuiManager { @@ -76,6 +76,14 @@ public class VRGuiManager { this.environment = environment; } + public boolean isWantsReposition() { + return wantsReposition; + } + + public void setWantsReposition(boolean wantsReposition) { + this.wantsReposition = wantsReposition; + } + /** * * Makes auto GUI positioning happen not immediately, but like an @@ -204,7 +212,7 @@ public class VRGuiManager { /** * Update the GUI geometric state. This method should be called after GUI modification. */ - protected void updateGuiQuadGeometricState() { + public void updateGuiQuadGeometricState() { guiQuadNode.updateGeometricState(); } @@ -212,7 +220,7 @@ public class VRGuiManager { * Position the GUI without delay. * @param tpf the time per frame. */ - protected void positionGuiNow(float tpf) { + public void positionGuiNow(float tpf) { if (environment != null){ wantsReposition = false; @@ -347,7 +355,7 @@ public class VRGuiManager { * @param left the left eye viewport. * @param right the right eye viewport. */ - protected void setupGui(Camera leftcam, Camera rightcam, ViewPort left, ViewPort right) { + public void setupGui(Camera leftcam, Camera rightcam, ViewPort left, ViewPort right) { if (environment != null){ if( environment.hasTraditionalGUIOverlay() ) { diff --git a/jme3-vr/src/main/java/com/jme3/util/VRUtil.java b/jme3-vr/src/main/java/com/jme3/util/VRUtil.java index 37de4a2b8..9111e340f 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRUtil.java +++ b/jme3-vr/src/main/java/com/jme3/util/VRUtil.java @@ -12,7 +12,11 @@ import com.jme3.system.jopenvr.HmdMatrix44_t; import java.util.concurrent.TimeUnit; - +/** + * + * @author Julien Seinturier - COMEX SA - http://www.seinturier.fr + * + */ public class VRUtil { private static final long SLEEP_PRECISION = TimeUnit.MILLISECONDS.toNanos(4); From 676251b4d5950b8fb0fa43a35094b8df84e87c75 Mon Sep 17 00:00:00 2001 From: David Bernard Date: Sun, 5 Jun 2016 10:53:54 +0200 Subject: [PATCH 069/150] =?UTF-8?q?nifty-gui:=20upgrade=20from=201.4.1=20t?= =?UTF-8?q?o=201.4.2,=20available=20on=20maven=20central=20with=20the=20ne?= =?UTF-8?q?w=20=E2=80=9Cofficial=E2=80=9D=20groupId:=20com.github.nifty-gu?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jme3-niftygui/build.gradle | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/jme3-niftygui/build.gradle b/jme3-niftygui/build.gradle index 4945ea407..7db287711 100644 --- a/jme3-niftygui/build.gradle +++ b/jme3-niftygui/build.gradle @@ -2,17 +2,11 @@ if (!hasProperty('mainClass')) { ext.mainClass = '' } -repositories { - maven{ - url 'http://nifty-gui.sourceforge.net/nifty-maven-repo' - } -} - dependencies { compile project(':jme3-core') - compile 'lessvoid:nifty:1.4.1' - compile 'lessvoid:nifty-default-controls:1.4.1' - compile 'lessvoid:nifty-style-black:1.4.1' + compile 'com.github.nifty-gui:nifty:1.4.2' + compile 'com.github.nifty-gui:nifty-default-controls:1.4.2' + compile 'com.github.nifty-gui:nifty-style-black:1.4.2' } ext.pomConfig = { @@ -44,4 +38,4 @@ ext.pomConfig = { url "http://nifty-gui.sourceforge.net/nifty-maven-repo" } } -} \ No newline at end of file +} From 5c9ef17e73f37c27245bb9f136bbfbabaf5836c2 Mon Sep 17 00:00:00 2001 From: Nehon Date: Fri, 1 Dec 2017 08:40:41 +0100 Subject: [PATCH 070/150] Fixes ReflectionAllocator for android --- .../main/java/com/jme3/util/ReflectionAllocator.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java b/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java index 7bb8a6040..a55d7c918 100644 --- a/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java +++ b/jme3-core/src/main/java/com/jme3/util/ReflectionAllocator.java @@ -151,16 +151,9 @@ public final class ReflectionAllocator implements BufferAllocator { if (viewedBuffer != null) { if (viewedBuffer instanceof Buffer) { destroyDirectBuffer((Buffer) viewedBuffer); - } else { - //on android there is an internal MemoryRef class that is returned and has a "free" method. - Method freeMethod = loadMethod(viewedBuffer.getClass().getName(), "free"); - if (freeMethod != null) { - freeMethod.invoke(viewedBuffer); - } else { - Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE, - "Buffer cannot be destroyed: {0}, {1}", new Object[]{toBeDestroyed, viewedBuffer}); - } } + // Else nothing to do, we may be on android which has an + // internal system for freeing direct buffers } else { Logger.getLogger(BufferUtils.class.getName()).log(Level.SEVERE, "Buffer cannot be destroyed: {0}", toBeDestroyed); From e0230a4b12342aa4f07e43b3e1c31068f3cf398f Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Fri, 1 Dec 2017 13:18:49 -0800 Subject: [PATCH 071/150] roll back PR 746 (worldTransform to identity) in master branch --- .../src/main/java/com/jme3/scene/Geometry.java | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/Geometry.java b/jme3-core/src/main/java/com/jme3/scene/Geometry.java index 6ba209bc3..9bd7ace97 100644 --- a/jme3-core/src/main/java/com/jme3/scene/Geometry.java +++ b/jme3-core/src/main/java/com/jme3/scene/Geometry.java @@ -137,20 +137,6 @@ public class Geometry extends Spatial { return super.checkCulling(cam); } - /** - * Update the world transform of this Geometry and clear the - * TRANSFORM refresh flag. - */ - @Override - void checkDoTransformUpdate() { - if (ignoreTransform) { - worldTransform.loadIdentity(); - refreshFlags &= ~RF_TRANSFORM; - } else { - super.checkDoTransformUpdate(); - } - } - /** * @return If ignoreTransform mode is set. * @@ -165,7 +151,6 @@ public class Geometry extends Spatial { */ public void setIgnoreTransform(boolean ignoreTransform) { this.ignoreTransform = ignoreTransform; - setTransformRefresh(); } /** @@ -413,6 +398,9 @@ public class Geometry extends Spatial { // Compute the cached world matrix cachedWorldMat.loadIdentity(); + if (ignoreTransform) { + return; + } cachedWorldMat.setRotationQuaternion(worldTransform.getRotation()); cachedWorldMat.setTranslation(worldTransform.getTranslation()); From 683bf632f697dfea7c137eecec5a1f35e8ae9a6d Mon Sep 17 00:00:00 2001 From: Remy Van Doosselaer Date: Sat, 2 Dec 2017 13:29:10 +0100 Subject: [PATCH 072/150] add an empty constructor to Grid mesh (#747) * add an empty constructor with logical values for serialization purposes. eg. the BinaryImporter has issues instantiating the Grid mesh. * empty constructor for serialization purposes --- jme3-core/src/main/java/com/jme3/scene/debug/Grid.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/debug/Grid.java b/jme3-core/src/main/java/com/jme3/scene/debug/Grid.java index 563981804..f9e5e119e 100644 --- a/jme3-core/src/main/java/com/jme3/scene/debug/Grid.java +++ b/jme3-core/src/main/java/com/jme3/scene/debug/Grid.java @@ -32,9 +32,9 @@ package com.jme3.scene.debug; import com.jme3.scene.Mesh; -import com.jme3.scene.Mesh.Mode; import com.jme3.scene.VertexBuffer.Type; import com.jme3.util.BufferUtils; + import java.nio.FloatBuffer; import java.nio.ShortBuffer; @@ -45,6 +45,9 @@ import java.nio.ShortBuffer; */ public class Grid extends Mesh { + public Grid() { + } + /** * Creates a grid debug shape. * @param xLines From f47f865d1da847f7f742a699dc3db83b94537dd4 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 3 Dec 2017 16:24:39 +0100 Subject: [PATCH 073/150] glTF: Fixed when a sub graph is ttached to a bone. Fixed a crash with animation resampling --- .../jme3/scene/plugins/gltf/GltfLoader.java | 14 +++++----- .../jme3/scene/plugins/gltf/TrackData.java | 27 +++++++++++-------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index a3a59f3a7..737153fcd 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -1033,12 +1033,14 @@ public class GltfLoader implements AssetLoader { bw.bone.addChild(cbw.bone); bw.children.add(childIndex); } else { - JsonObject childNode = nodes.get(childIndex).getAsJsonObject(); - //The child might be a Geom - if (getAsInteger(childNode, "mesh") != null) { - //this is a geometry, let's load it as a spatial - bw.attachedSpatial = (Spatial) readNode(childIndex); - } + //The child might be a Node + //Creating a dummy node to reed the subgraph + Node n = new Node(); + readChild(n, child); + Spatial s = n.getChild(0); + //removing the spatial from the dummy node, it will be attached to the attachment node of the bone + s.removeFromParent(); + bw.attachedSpatial = s; } } diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java index fdbf892fa..834785b79 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java @@ -1,5 +1,6 @@ package com.jme3.scene.plugins.gltf; +import com.jme3.asset.AssetLoadException; import com.jme3.math.*; import java.util.*; @@ -119,9 +120,19 @@ public class TrackData { } } + checkTimesConsistantcy(); + length = times[times.length - 1]; } + public void checkTimesConsistantcy() { + if ((translations != null && times.length != translations.length) + || (rotations != null && times.length != rotations.length) + || (scales != null && times.length != scales.length)) { + throw new AssetLoadException("Inconsistent animation sampling "); + } + } + private void populateTransform(Type type, int index, List keyFrames, KeyFrame currentKeyFrame, TransformIndices transformIndices) { Object transform = getTransform(type, currentKeyFrame); if (transform != null) { @@ -178,14 +189,8 @@ public class TrackData { } public int getNbKeyFrames(){ - if(translations != null){ - return translations.length; - } - if(rotations != null){ - return rotations.length; - } - if(scales != null){ - return scales.length; + if (times != null) { + return times.length; } return 0; } @@ -234,13 +239,13 @@ public class TrackData { } private void ensureArraysLength() { - if (translations != null && translations.length < times.length) { + if (translations != null && translations.length != times.length) { translations = new Vector3f[times.length]; } - if (rotations != null && rotations.length < times.length) { + if (rotations != null && rotations.length != times.length) { rotations = new Quaternion[times.length]; } - if (scales != null && scales.length < times.length) { + if (scales != null && scales.length != times.length) { scales = new Vector3f[times.length]; } } From c971a4758f8aebf4b4d4ab9e0799193480353822 Mon Sep 17 00:00:00 2001 From: Nehon Date: Wed, 6 Dec 2017 20:32:38 +0100 Subject: [PATCH 074/150] Fixes animation time sampling when source data contains duplicate keyframes --- .../com/jme3/scene/plugins/gltf/TrackData.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java index 834785b79..53b66f352 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java @@ -36,8 +36,15 @@ public class TrackData { List keyFrames = new ArrayList<>(); TimeData timeData = timeArrays.get(0); Type type = timeData.type; + float lastTime = -1f; for (int i = 0; i < timeData.times.length; i++) { float time = timeData.times[i]; + //avoid some double keyframes that can have bad effects on interpolation + if (Float.floatToIntBits(time) == Float.floatToIntBits(lastTime)) { + lastTime = time; + continue; + } + lastTime = time; KeyFrame keyFrame = new KeyFrame(); keyFrame.time = time; setKeyFrameTransforms(type, keyFrame, timeData.times); @@ -79,13 +86,13 @@ public class TrackData { KeyFrame kf = keyFrames.get(i); //we need Interpolate between keyframes when transforms are sparse. times[i] = kf.time; - if(translations != null) { + if (translations != null) { populateTransform(Type.Translation, i, keyFrames, kf, translationIndices); } - if(rotations != null) { + if (rotations != null) { populateTransform(Type.Rotation, i, keyFrames, kf, rotationIndices); } - if(scales != null) { + if (scales != null) { populateTransform(Type.Scale, i, keyFrames, kf, scaleIndices); } } @@ -188,7 +195,7 @@ public class TrackData { return -1; } - public int getNbKeyFrames(){ + public int getNbKeyFrames() { if (times != null) { return times.length; } From 806663990d0b883b15dbffc06db546490f29d73d Mon Sep 17 00:00:00 2001 From: Nehon Date: Thu, 7 Dec 2017 18:27:18 +0100 Subject: [PATCH 075/150] glTF: fix animation defautl pose when no track is specified --- .../jme3/scene/plugins/gltf/GltfLoader.java | 63 ++++++++++--------- .../jme3/scene/plugins/gltf/TrackData.java | 12 +++- 2 files changed, 44 insertions(+), 31 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index 737153fcd..1e555c64d 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -713,7 +713,7 @@ public class GltfLoader implements AssetLoader { assertNotNull(samplers, "No samplers for animation " + name); //temp data storage of track data - TrackData[] animatedNodes = new TrackData[nodes.size()]; + TrackData[] tracks = new TrackData[nodes.size()]; for (JsonElement channel : channels) { @@ -732,10 +732,10 @@ public class GltfLoader implements AssetLoader { logger.log(Level.WARNING, "Morph animation is not supported by JME yet, skipping animation"); continue; } - TrackData trackData = animatedNodes[targetNode]; + TrackData trackData = tracks[targetNode]; if (trackData == null) { trackData = new TrackData(); - animatedNodes[targetNode] = trackData; + tracks[targetNode] = trackData; } Integer samplerIndex = getAsInteger(channel.getAsJsonObject(), "sampler"); @@ -776,11 +776,9 @@ public class GltfLoader implements AssetLoader { } else { //TODO support weights logger.log(Level.WARNING, "Morph animation is not supported"); - animatedNodes[targetNode] = null; continue; - } - animatedNodes[targetNode] = customContentManager.readExtensionAndExtras("channel", channel, trackData); + tracks[targetNode] = customContentManager.readExtensionAndExtras("channel", channel, trackData); } if (name == null) { @@ -792,9 +790,9 @@ public class GltfLoader implements AssetLoader { anim.setName(name); int skinIndex = -1; - for (int i = 0; i < animatedNodes.length; i++) { - TrackData trackData = animatedNodes[i]; - if (trackData == null) { + for (int i = 0; i < tracks.length; i++) { + TrackData trackData = tracks[i]; + if (trackData == null || trackData.timeArrays.isEmpty()) { continue; } trackData.update(); @@ -938,7 +936,7 @@ public class GltfLoader implements AssetLoader { } if (isKeepSkeletonPose(info)) { - //Set local transforms. The skeleton may come in a given pose, that is not the rest pose, so let's apply it. + //Set local transforms.The skeleton may come in a given pose, that is not the rest pose, so let 's apply it. for (int i = 0; i < joints.size(); i++) { applyPose(joints.get(i).getAsInt()); } @@ -960,7 +958,6 @@ public class GltfLoader implements AssetLoader { bw.bone.setLocalTranslation(bw.localTransform.getTranslation()); bw.bone.setLocalRotation(bw.localTransform.getRotation()); bw.bone.setLocalScale(bw.localTransform.getScale()); - bw.bone.setUserControl(false); } private void computeBindTransforms(BoneWrapper boneWrapper, Skeleton skeleton) { @@ -986,7 +983,6 @@ public class GltfLoader implements AssetLoader { BoneWrapper child = fetchFromCache("nodes", childIndex, BoneWrapper.class); computeBindTransforms(child, skeleton); } - } private BoneWrapper findBoneWrapper(Bone bone) { @@ -1012,9 +1008,8 @@ public class GltfLoader implements AssetLoader { } Bone bone = new Bone(name); Transform boneTransforms = null; - if (isKeepSkeletonPose(info)) { - boneTransforms = readTransforms(nodeData); - } + boneTransforms = readTransforms(nodeData); + addToCache("nodes", nodeIndex, new BoneWrapper(bone, boneIndex, skinIndex, modelBindMatrix, boneTransforms), nodes.size()); return bone; @@ -1147,6 +1142,7 @@ public class GltfLoader implements AssetLoader { Transform localTransform; Matrix4f modelBindMatrix; boolean isRoot = false; + boolean localUpdated = false; Spatial attachedSpatial; List children = new ArrayList<>(); @@ -1165,6 +1161,13 @@ public class GltfLoader implements AssetLoader { Transform bindTransforms = new Transform(bone.getBindPosition(), bone.getBindRotation(), bone.getBindScale()); SkinData skinData = fetchFromCache("skins", skinIndex, SkinData.class); + if (!localUpdated) { + //LocalTransform of the bone are default position to use for animations when there is no track. + //We need to transform them so that JME can us them in blendAnimTransform. + reverseBlendAnimTransforms(localTransform, bindTransforms); + localUpdated = true; + } + for (int i = 0; i < data.getNbKeyFrames(); i++) { Vector3f translation = getTranslation(data, bindTransforms, i); @@ -1177,15 +1180,7 @@ public class GltfLoader implements AssetLoader { t.combineWithParent(skinData.armatureTransforms); } - //This is wrong - //You'd normally combine those transforms with transform.combineWithParent() - //Here we actually do in reverse what JME does to combine anim transforms with bind transfoms (add trans/mult rot/ mult scale) - //The code to fix is in Bone.blendAnimTransforms - //TODO fix blendAnimTransforms - t.getTranslation().subtractLocal(bindTransforms.getTranslation()); - t.getScale().divideLocal(bindTransforms.getScale()); - tmpQuat.set(bindTransforms.getRotation()).inverseLocal().multLocal(t.getRotation()); - t.setRotation(tmpQuat); + reverseBlendAnimTransforms(t, bindTransforms); if(data.translations != null) { data.translations[i] = t.getTranslation(); @@ -1198,12 +1193,24 @@ public class GltfLoader implements AssetLoader { } } - data.ensureTranslationRotations(); + data.ensureTranslationRotations(localTransform); + } + + private void reverseBlendAnimTransforms(Transform t, Transform bindTransforms) { + //This is wrong + //You'd normally combine those transforms with transform.combineWithParent() + //Here we actually do in reverse what JME does to combine anim transforms with bind transfoms (add trans/mult rot/ mult scale) + //The code to fix is in Bone.blendAnimTransforms + //TODO fix blendAnimTransforms + t.getTranslation().subtractLocal(bindTransforms.getTranslation()); + t.getScale().divideLocal(bindTransforms.getScale()); + tmpQuat.set(bindTransforms.getRotation()).inverseLocal().multLocal(t.getRotation()); + t.setRotation(tmpQuat); } private Vector3f getTranslation(TrackData data, Transform bindTransforms, int i) { Vector3f translation; - if(data.translations == null){ + if (data.translations == null) { translation = bindTransforms.getTranslation(); } else { translation = data.translations[i]; @@ -1213,7 +1220,7 @@ public class GltfLoader implements AssetLoader { private Quaternion getRotation(TrackData data, Transform bindTransforms, int i) { Quaternion rotation; - if(data.rotations == null){ + if (data.rotations == null) { rotation = bindTransforms.getRotation(); } else { rotation = data.rotations[i]; @@ -1223,7 +1230,7 @@ public class GltfLoader implements AssetLoader { private Vector3f getScale(TrackData data, Transform bindTransforms, int i) { Vector3f scale; - if(data.scales == null){ + if (data.scales == null) { scale = bindTransforms.getScale(); } else { scale = data.scales[i]; diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java index 53b66f352..b9122f072 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/TrackData.java @@ -260,17 +260,23 @@ public class TrackData { //JME assumes there are translation and rotation track every time, so we create them with identity transforms if they don't exist //TODO change this behavior in BoneTrack. - public void ensureTranslationRotations() { + public void ensureTranslationRotations(Transform localTransforms) { if (translations == null) { translations = new Vector3f[times.length]; for (int i = 0; i < translations.length; i++) { - translations[i] = new Vector3f(); + translations[i] = localTransforms.getTranslation(); } } if (rotations == null) { rotations = new Quaternion[times.length]; for (int i = 0; i < rotations.length; i++) { - rotations[i] = new Quaternion(); + rotations[i] = localTransforms.getRotation(); + } + } + if (scales == null) { + scales = new Vector3f[times.length]; + for (int i = 0; i < scales.length; i++) { + scales[i] = localTransforms.getScale(); } } } From cfaaec5418e88ebae9c992943fd215b19eb7a37e Mon Sep 17 00:00:00 2001 From: Nehon Date: Thu, 7 Dec 2017 19:01:44 +0100 Subject: [PATCH 076/150] glTF: Fixes a crash when attached nodes contains skinned meshes --- .../jme3/scene/plugins/gltf/GltfUtils.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java index b5fd0614a..88ebf9741 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java @@ -685,6 +685,47 @@ public class GltfUtils { } } + public static void dumpArray(Object[] array) { + if (array == null) { + System.err.println("null"); + return; + } + for (int i = 0; i < array.length; i++) { + Object o = array[i]; + System.err.print(i + ": "); + if (o instanceof Quaternion) { + Quaternion q = (Quaternion) o; + System.err.print("("); + if (q.getX() > 0.00001) System.err.print(q.getX() + ", "); + else System.err.print("0.0, "); + if (q.getY() > 0.00001) System.err.print(q.getY() + ", "); + else System.err.print("0.0, "); + if (q.getZ() > 0.00001) System.err.print(q.getZ() + ", "); + else System.err.print("0.0, "); + if (q.getW() > 0.00001) System.err.print(q.getW() + ", "); + else System.err.print("0.0, "); + System.err.println(")"); + } else { + System.err.println(o.toString() + ", "); + } + } + System.err.println(""); + } + + public static void dumpArray(float[] array) { + if (array == null) { + System.err.println("null"); + return; + } + + for (int i = 0; i < array.length; i++) { + float o = array[i]; + System.err.println(i + ": " + o); + } + + System.err.println(""); + } + public static Spatial findCommonAncestor(List spatials) { Map> flatParents = new HashMap<>(); @@ -704,6 +745,9 @@ public class GltfUtils { while (true) { for (Spatial spatial : flatParents.keySet()) { List parents = flatParents.get(spatial); + if (parents.isEmpty()) { + continue; + } if (index == parents.size()) { //we reached the end of a spatial hierarchy let's return; return lastCommonParent; From 09f4ae4832fbaf0bdc3ac21a6dc1557f5a4053f6 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Fri, 8 Dec 2017 09:26:50 +0200 Subject: [PATCH 077/150] Animated cursor support for LWJGL 3 (#785) * Simple animated cursor support * Use primitive array and diamond constructor --- .../com/jme3/input/lwjgl/GlfwMouseInput.java | 110 ++++++++++++------ 1 file changed, 77 insertions(+), 33 deletions(-) diff --git a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java index 7e9f70f2d..86eea6c69 100644 --- a/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java +++ b/jme3-lwjgl3/src/main/java/com/jme3/input/lwjgl/GlfwMouseInput.java @@ -29,7 +29,6 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package com.jme3.input.lwjgl; import com.jme3.cursors.plugins.JmeCursor; @@ -39,26 +38,26 @@ import com.jme3.input.event.MouseButtonEvent; import com.jme3.input.event.MouseMotionEvent; import com.jme3.system.lwjgl.LwjglWindow; import com.jme3.util.BufferUtils; -import org.lwjgl.glfw.GLFWCursorPosCallback; -import org.lwjgl.glfw.GLFWMouseButtonCallback; -import org.lwjgl.glfw.GLFWScrollCallback; - import java.nio.ByteBuffer; import java.nio.IntBuffer; +import java.util.ArrayDeque; import java.util.HashMap; -import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.logging.Logger; - import static org.lwjgl.glfw.GLFW.*; +import org.lwjgl.glfw.GLFWCursorPosCallback; import org.lwjgl.glfw.GLFWImage; +import org.lwjgl.glfw.GLFWMouseButtonCallback; +import org.lwjgl.glfw.GLFWScrollCallback; import org.lwjgl.system.MemoryUtil; /** - * Captures mouse input using GLFW callbacks. It then temporarily stores these in event queues which are processed in the - * {@link #update()} method. Due to some of the GLFW button id's there is a conversion method in this class which will - * convert the GLFW left, middle and right mouse button to JME3 left, middle and right button codes. + * Captures mouse input using GLFW callbacks. It then temporarily stores these + * in event queues which are processed in the {@link #update()} method. Due to + * some of the GLFW button id's there is a conversion method in this class which + * will convert the GLFW left, middle and right mouse button to JME3 left, + * middle and right button codes. * * @author Daniel Johansson (dannyjo) * @since 3.1 @@ -69,9 +68,13 @@ public class GlfwMouseInput implements MouseInput { private static final int WHEEL_SCALE = 120; - private LwjglWindow context; + private final LwjglWindow context; private RawInputListener listener; private boolean cursorVisible = true; + private long[] currentCursor; + private IntBuffer currentCursorDelays; + private int currentCursorFrame = 0; + private double currentCursorFrameStartTime = 0.0; private int mouseX; private int mouseY; private int mouseWheel; @@ -79,10 +82,10 @@ public class GlfwMouseInput implements MouseInput { private GLFWCursorPosCallback cursorPosCallback; private GLFWScrollCallback scrollCallback; private GLFWMouseButtonCallback mouseButtonCallback; - private Queue mouseMotionEvents = new LinkedList(); - private Queue mouseButtonEvents = new LinkedList(); + private final Queue mouseMotionEvents = new ArrayDeque<>(); + private final Queue mouseButtonEvents = new ArrayDeque<>(); - private Map jmeToGlfwCursorMap = new HashMap(); + private final Map jmeToGlfwCursorMap = new HashMap<>(); public GlfwMouseInput(LwjglWindow context) { this.context = context; @@ -127,6 +130,7 @@ public class GlfwMouseInput implements MouseInput { mouseButtonEvents.add(mouseButtonEvent); } + @Override public void initialize() { glfwSetCursorPosCallback(context.getWindowHandle(), cursorPosCallback = new GLFWCursorPosCallback() { @Override @@ -150,6 +154,7 @@ public class GlfwMouseInput implements MouseInput { public void invoke(final long window, final double xOffset, final double yOffset) { onWheelScroll(window, xOffset, yOffset * WHEEL_SCALE); } + @Override public void close() { super.close(); @@ -166,6 +171,7 @@ public class GlfwMouseInput implements MouseInput { public void invoke(final long window, final int button, final int action, final int mods) { onMouseButton(window, button, action, mods); } + @Override public void close() { super.close(); @@ -182,15 +188,31 @@ public class GlfwMouseInput implements MouseInput { initialized = true; } + @Override public boolean isInitialized() { return initialized; } + @Override public int getButtonCount() { return GLFW_MOUSE_BUTTON_LAST + 1; } + @Override public void update() { + + // Manage cursor animation + if (currentCursor != null && currentCursor.length > 1) { + double now = glfwGetTime(); + double frameTime = (glfwGetTime() - currentCursorFrameStartTime) * 1000; + if (currentCursorDelays == null || frameTime >= currentCursorDelays.get(currentCursorFrame)) { + currentCursorFrame = ++currentCursorFrame % currentCursor.length; + currentCursorFrameStartTime = now; + glfwSetCursor(context.getWindowHandle(), currentCursor[currentCursorFrame]); + } + } + + // Process events while (!mouseMotionEvents.isEmpty()) { listener.onMouseMotionEvent(mouseMotionEvents.poll()); } @@ -200,6 +222,7 @@ public class GlfwMouseInput implements MouseInput { } } + @Override public void destroy() { if (!context.isRenderable()) { return; @@ -209,13 +232,19 @@ public class GlfwMouseInput implements MouseInput { scrollCallback.close(); mouseButtonCallback.close(); - for (long glfwCursor : jmeToGlfwCursorMap.values()) { - glfwDestroyCursor(glfwCursor); + currentCursor = null; + currentCursorDelays = null; + for (long[] glfwCursors : jmeToGlfwCursorMap.values()) { + for (long glfwCursor : glfwCursors) { + glfwDestroyCursor(glfwCursor); + } } + jmeToGlfwCursorMap.clear(); logger.fine("Mouse destroyed."); } + @Override public void setCursorVisible(boolean visible) { cursorVisible = visible; @@ -230,24 +259,26 @@ public class GlfwMouseInput implements MouseInput { } } + @Override public void setInputListener(RawInputListener listener) { this.listener = listener; } + @Override public long getInputTimeNanos() { return (long) (glfwGetTime() * 1000000000); } - private ByteBuffer transformCursorImage(IntBuffer imageData, int w, int h) { - ByteBuffer buf = BufferUtils.createByteBuffer(imageData.capacity() * 4); + private ByteBuffer transformCursorImage(IntBuffer imageData, int w, int h, int index) { + ByteBuffer buf = BufferUtils.createByteBuffer(w * h * 4); // Transform image: ARGB -> RGBA, vertical flip - for (int y = h-1; y >= 0; --y) { + for (int y = h - 1; y >= 0; --y) { for (int x = 0; x < w; ++x) { - int pixel = imageData.get(y*w + x); + int pixel = imageData.get(w * h * index + y * w + x); buf.put((byte) ((pixel >> 16) & 0xFF)); // red - buf.put((byte) ((pixel >> 8) & 0xFF)); // green - buf.put((byte) ( pixel & 0xFF)); // blue + buf.put((byte) ((pixel >> 8) & 0xFF)); // green + buf.put((byte) (pixel & 0xFF)); // blue buf.put((byte) ((pixel >> 24) & 0xFF)); // alpha } } @@ -256,30 +287,43 @@ public class GlfwMouseInput implements MouseInput { return buf; } - private long createGlfwCursor(JmeCursor jmeCursor) { - // TODO: currently animated cursors are not supported - IntBuffer imageData = jmeCursor.getImagesData(); - ByteBuffer buf = transformCursorImage(imageData, jmeCursor.getWidth(), jmeCursor.getHeight()); + private long[] createGlfwCursor(JmeCursor jmeCursor) { + long[] cursorArray = new long[jmeCursor.getNumImages()]; + for (int i = 0; i < jmeCursor.getNumImages(); i++) { + ByteBuffer buf = transformCursorImage(jmeCursor.getImagesData(), jmeCursor.getWidth(), jmeCursor.getHeight(), i); + + GLFWImage glfwImage = new GLFWImage(BufferUtils.createByteBuffer(GLFWImage.SIZEOF)); + glfwImage.set(jmeCursor.getWidth(), jmeCursor.getHeight(), buf); - GLFWImage glfwImage = new GLFWImage(BufferUtils.createByteBuffer(GLFWImage.SIZEOF)); - glfwImage.set(jmeCursor.getWidth(), jmeCursor.getHeight(), buf); + int hotspotX = jmeCursor.getXHotSpot(); + int hotspotY = jmeCursor.getHeight() - jmeCursor.getYHotSpot(); - int hotspotX = jmeCursor.getXHotSpot(); - int hotspotY = jmeCursor.getHeight() - jmeCursor.getYHotSpot(); - return glfwCreateCursor(glfwImage, hotspotX, hotspotY); + cursorArray[i] = glfwCreateCursor(glfwImage, hotspotX, hotspotY); + } + return cursorArray; } + @Override public void setNativeCursor(JmeCursor jmeCursor) { if (jmeCursor != null) { - Long glfwCursor = jmeToGlfwCursorMap.get(jmeCursor); + long[] glfwCursor = jmeToGlfwCursorMap.get(jmeCursor); if (glfwCursor == null) { glfwCursor = createGlfwCursor(jmeCursor); jmeToGlfwCursorMap.put(jmeCursor, glfwCursor); } - glfwSetCursor(context.getWindowHandle(), glfwCursor); + currentCursorFrame = 0; + currentCursor = glfwCursor; + currentCursorDelays = null; + currentCursorFrameStartTime = glfwGetTime(); + if (jmeCursor.getImagesDelay() != null) { + currentCursorDelays = jmeCursor.getImagesDelay(); + } + glfwSetCursor(context.getWindowHandle(), glfwCursor[currentCursorFrame]); } else { + currentCursor = null; + currentCursorDelays = null; glfwSetCursor(context.getWindowHandle(), MemoryUtil.NULL); } } From 5dbbaf0f065864f3bb6040e69238e105245fcd6d Mon Sep 17 00:00:00 2001 From: Nehon Date: Fri, 8 Dec 2017 22:07:07 +0100 Subject: [PATCH 078/150] glTF: Fixes additional issues with bones transforms --- .../model/shape/TestGltfLoading2.java | 7 + .../jme3/scene/plugins/gltf/GltfLoader.java | 123 +++++++++++++++--- .../jme3/scene/plugins/gltf/GltfUtils.java | 28 ++++ 3 files changed, 142 insertions(+), 16 deletions(-) create mode 100644 jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java diff --git a/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java b/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java new file mode 100644 index 000000000..561d6005d --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java @@ -0,0 +1,7 @@ +package jme3test.model.shape; + +/** + * Created by Nehon on 09/12/2017. + */ +public class TestGltfLoading2 { +} diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index 1e555c64d..350c08d6b 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -246,6 +246,7 @@ public class GltfLoader implements AssetLoader { SkinData skinData = fetchFromCache("skins", skinIndex, SkinData.class); List spatials = skinnedSpatials.get(skinData); spatials.add(spatial); + skinData.used = true; } spatial.setLocalTransform(readTransforms(nodeData)); @@ -732,6 +733,17 @@ public class GltfLoader implements AssetLoader { logger.log(Level.WARNING, "Morph animation is not supported by JME yet, skipping animation"); continue; } + + //if targetNode is a bone, check if it's in a used skin. + BoneWrapper bw = fetchFromCache("nodes", targetNode, BoneWrapper.class); + if (bw != null) { + SkinData skin = fetchFromCache("skins", bw.skinIndex, SkinData.class); + if (skin == null || !skin.used) { + //this skin is not referenced by any mesh, let's not load animation for it. + continue; + } + } + TrackData trackData = tracks[targetNode]; if (trackData == null) { trackData = new TrackData(); @@ -790,6 +802,7 @@ public class GltfLoader implements AssetLoader { anim.setName(name); int skinIndex = -1; + List usedBones = new ArrayList<>(); for (int i = 0; i < tracks.length; i++) { TrackData trackData = tracks[i]; if (trackData == null || trackData.timeArrays.isEmpty()) { @@ -810,6 +823,7 @@ public class GltfLoader implements AssetLoader { BoneWrapper b = (BoneWrapper) node; //apply the inverseBindMatrix to animation data. b.update(trackData); + usedBones.add(b.bone); BoneTrack track = new BoneTrack(b.boneIndex, trackData.times, trackData.translations, trackData.rotations, trackData.scales); anim.addTrack(track); if (skinIndex == -1) { @@ -824,6 +838,32 @@ public class GltfLoader implements AssetLoader { } } + // Check each bone to see if their local pose is different from their bind pose. + // If it is, we ensure that the bone has an animation track, else JME way of applying anim transforms will apply the bind pose to those bones, + // instead of the local pose that is supposed to be the default + if (skinIndex != -1) { + SkinData skin = fetchFromCache("skins", skinIndex, SkinData.class); + Skeleton skeleton = skin.skeletonControl.getSkeleton(); + for (Bone bone : skin.bones) { + if (!usedBones.contains(bone) && !equalBindAndLocalTransforms(bone)) { + //create a track + float[] times = new float[]{0, anim.getLength()}; + + Vector3f t = bone.getLocalPosition().subtract(bone.getBindPosition()); + Quaternion r = tmpQuat.set(bone.getBindRotation()).inverse().multLocal(bone.getLocalRotation()); + Vector3f s = bone.getLocalScale().divide(bone.getBindScale()); + + Vector3f[] translations = new Vector3f[]{t, t}; + Quaternion[] rotations = new Quaternion[]{r, r}; + Vector3f[] scales = new Vector3f[]{s, s}; + + int boneIndex = skeleton.getBoneIndex(bone); + BoneTrack track = new BoneTrack(boneIndex, times, translations, rotations, scales); + anim.addTrack(track); + } + } + } + anim = customContentManager.readExtensionAndExtras("animations", animation, anim); if (skinIndex != -1) { @@ -935,17 +975,25 @@ public class GltfLoader implements AssetLoader { computeBindTransforms(bw, skeleton); } - if (isKeepSkeletonPose(info)) { - //Set local transforms.The skeleton may come in a given pose, that is not the rest pose, so let 's apply it. - for (int i = 0; i < joints.size(); i++) { - applyPose(joints.get(i).getAsInt()); + // Set local transforms. + // The skeleton may come in a given pose, that is not the rest pose, so let 's apply it. + // We will need it later for animation + for (int i = 0; i < joints.size(); i++) { + applyPose(joints.get(i).getAsInt()); + } + skeleton.updateWorldVectors(); + + //If the user didn't ask to keep the pose we reset the skeleton user control + if (!isKeepSkeletonPose(info)) { + for (Bone bone : bones) { + bone.setUserControl(false); } - skeleton.updateWorldVectors(); } skeleton = customContentManager.readExtensionAndExtras("skin", skin, skeleton); SkinData skinData = new SkinData(); + skinData.bones = bones; skinData.skeletonControl = new SkeletonControl(skeleton); addToCache("skins", index, skinData, nodes.size()); skinnedSpatials.put(skinData, new ArrayList()); @@ -1140,6 +1188,7 @@ public class GltfLoader implements AssetLoader { int boneIndex; int skinIndex; Transform localTransform; + Transform localTransformOffset; Matrix4f modelBindMatrix; boolean isRoot = false; boolean localUpdated = false; @@ -1152,6 +1201,7 @@ public class GltfLoader implements AssetLoader { this.skinIndex = skinIndex; this.modelBindMatrix = modelBindMatrix; this.localTransform = localTransform; + this.localTransformOffset = localTransform.clone(); } /** @@ -1164,15 +1214,15 @@ public class GltfLoader implements AssetLoader { if (!localUpdated) { //LocalTransform of the bone are default position to use for animations when there is no track. //We need to transform them so that JME can us them in blendAnimTransform. - reverseBlendAnimTransforms(localTransform, bindTransforms); + reverseBlendAnimTransforms(localTransformOffset, bindTransforms); localUpdated = true; } for (int i = 0; i < data.getNbKeyFrames(); i++) { - Vector3f translation = getTranslation(data, bindTransforms, i); - Quaternion rotation = getRotation(data, bindTransforms, i); - Vector3f scale = getScale(data, bindTransforms, i); + Vector3f translation = getTranslation(data, i); + Quaternion rotation = getRotation(data, i); + Vector3f scale = getScale(data, i); Transform t = new Transform(translation, rotation, scale); if (isRoot) { @@ -1193,7 +1243,7 @@ public class GltfLoader implements AssetLoader { } } - data.ensureTranslationRotations(localTransform); + data.ensureTranslationRotations(localTransformOffset); } private void reverseBlendAnimTransforms(Transform t, Transform bindTransforms) { @@ -1208,30 +1258,30 @@ public class GltfLoader implements AssetLoader { t.setRotation(tmpQuat); } - private Vector3f getTranslation(TrackData data, Transform bindTransforms, int i) { + private Vector3f getTranslation(TrackData data, int i) { Vector3f translation; if (data.translations == null) { - translation = bindTransforms.getTranslation(); + translation = bone.getLocalPosition(); } else { translation = data.translations[i]; } return translation; } - private Quaternion getRotation(TrackData data, Transform bindTransforms, int i) { + private Quaternion getRotation(TrackData data, int i) { Quaternion rotation; if (data.rotations == null) { - rotation = bindTransforms.getRotation(); + rotation = bone.getLocalRotation(); } else { rotation = data.rotations[i]; } return rotation; } - private Vector3f getScale(TrackData data, Transform bindTransforms, int i) { + private Vector3f getScale(TrackData data, int i) { Vector3f scale; if (data.scales == null) { - scale = bindTransforms.getScale(); + scale = bone.getLocalScale(); } else { scale = data.scales[i]; } @@ -1243,6 +1293,47 @@ public class GltfLoader implements AssetLoader { SkeletonControl skeletonControl; AnimControl animControl; Transform armatureTransforms; + Bone[] bones; + boolean used = false; + } + + private class PartialTransforms { + Vector3f translation; + Quaternion rotation; + Vector3f scale; + Transform transform; + + Transform getTransforms() { + if (transform == null) { + if (translation == null) { + translation = new Vector3f(); + } + if (rotation == null) { + rotation = new Quaternion(); + } + if (scale == null) { + scale = new Vector3f(1, 1, 1); + } + transform = new Transform(translation, rotation, scale); + } + return transform; + } + + Transform getTransforms(Transform bindTransforms) { + if (transform == null) { + if (translation == null) { + translation = bindTransforms.getTranslation(); + } + if (rotation == null) { + rotation = bindTransforms.getRotation(); + } + if (scale == null) { + scale = bindTransforms.getScale(); + } + transform = new Transform(translation, rotation, scale); + } + return transform; + } } public static class SkinBuffers { diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java index 88ebf9741..68675e680 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java @@ -1,6 +1,7 @@ package com.jme3.scene.plugins.gltf; import com.google.gson.*; +import com.jme3.animation.Bone; import com.jme3.asset.AssetInfo; import com.jme3.asset.AssetLoadException; import com.jme3.math.*; @@ -685,6 +686,33 @@ public class GltfUtils { } } + public static boolean equalBindAndLocalTransforms(Bone b) { + return equalsEpsilon(b.getBindPosition(), b.getLocalPosition()) + && equalsEpsilon(b.getBindRotation(), b.getLocalRotation()) + && equalsEpsilon(b.getBindScale(), b.getLocalScale()); + } + + private static float epsilon = 0.0001f; + + public static boolean equalsEpsilon(Vector3f v1, Vector3f v2) { + return FastMath.abs(v1.x - v2.x) < epsilon + && FastMath.abs(v1.y - v2.y) < epsilon + && FastMath.abs(v1.z - v2.z) < epsilon; + } + + public static boolean equalsEpsilon(Quaternion q1, Quaternion q2) { + return (FastMath.abs(q1.getX() - q2.getX()) < epsilon + && FastMath.abs(q1.getY() - q2.getY()) < epsilon + && FastMath.abs(q1.getZ() - q2.getZ()) < epsilon + && FastMath.abs(q1.getW() - q2.getW()) < epsilon) + || + (FastMath.abs(q1.getX() + q2.getX()) < epsilon + && FastMath.abs(q1.getY() + q2.getY()) < epsilon + && FastMath.abs(q1.getZ() + q2.getZ()) < epsilon + && FastMath.abs(q1.getW() + q2.getW()) < epsilon); + } + + public static void dumpArray(Object[] array) { if (array == null) { System.err.println("null"); From a59b9e6a94bc8dea244a9276894360447c9ca9c6 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 10 Dec 2017 10:42:24 +0100 Subject: [PATCH 079/150] glTF: Skip tracks that belong to a different skin --- .../java/jme3test/model/TestGltfLoading2.java | 319 ++++++++++++++++++ .../model/shape/TestGltfLoading2.java | 7 - .../jme3/scene/plugins/gltf/GltfLoader.java | 29 +- 3 files changed, 330 insertions(+), 25 deletions(-) create mode 100644 jme3-examples/src/main/java/jme3test/model/TestGltfLoading2.java delete mode 100644 jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java diff --git a/jme3-examples/src/main/java/jme3test/model/TestGltfLoading2.java b/jme3-examples/src/main/java/jme3test/model/TestGltfLoading2.java new file mode 100644 index 000000000..7988da4fa --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/model/TestGltfLoading2.java @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2009-2012 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3test.model; + +import com.jme3.animation.*; +import com.jme3.app.ChaseCameraAppState; +import com.jme3.app.SimpleApplication; +import com.jme3.input.KeyInput; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.KeyTrigger; +import com.jme3.math.*; +import com.jme3.renderer.Limits; +import com.jme3.scene.Node; +import com.jme3.scene.Spatial; +import com.jme3.scene.control.Control; +import com.jme3.scene.debug.custom.SkeletonDebugAppState; +import com.jme3.scene.plugins.gltf.GltfModelKey; + +import java.util.*; + +public class TestGltfLoading2 extends SimpleApplication { + + Node autoRotate = new Node("autoRotate"); + List assets = new ArrayList<>(); + Node probeNode; + float time = 0; + int assetIndex = 0; + boolean useAutoRotate = false; + private final static String indentString = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; + int duration = 2; + boolean playAnim = true; + + public static void main(String[] args) { + TestGltfLoading2 app = new TestGltfLoading2(); + app.start(); + } + + /* + WARNING this test case can't wok without the assets, and considering their size, they are not pushed into the repo + you can find them here : + https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0 + https://sketchfab.com/features/gltf + You have to copy them in Model/gltf folder in the test-data project. + */ + public void simpleInitApp() { + + SkeletonDebugAppState skeletonDebugAppState = new SkeletonDebugAppState(); + getStateManager().attach(skeletonDebugAppState); + + // cam.setLocation(new Vector3f(4.0339394f, 2.645184f, 6.4627485f)); + // cam.setRotation(new Quaternion(-0.013950467f, 0.98604023f, -0.119502485f, -0.11510504f)); + cam.setFrustumPerspective(45f, (float) cam.getWidth() / cam.getHeight(), 0.1f, 100f); + renderer.setDefaultAnisotropicFilter(Math.min(renderer.getLimits().get(Limits.TextureAnisotropy), 8)); + setPauseOnLostFocus(false); + + flyCam.setMoveSpeed(5); + flyCam.setDragToRotate(true); + flyCam.setEnabled(false); + viewPort.setBackgroundColor(new ColorRGBA().setAsSrgb(0.2f, 0.2f, 0.2f, 1.0f)); + rootNode.attachChild(autoRotate); + probeNode = (Node) assetManager.loadModel("Scenes/defaultProbe.j3o"); + autoRotate.attachChild(probeNode); + +// DirectionalLight dl = new DirectionalLight(); +// dl.setDirection(new Vector3f(-1f, -1.0f, -1f).normalizeLocal()); +// dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f)); +// rootNode.addLight(dl); + +// DirectionalLight dl2 = new DirectionalLight(); +// dl2.setDirection(new Vector3f(1f, 1.0f, 1f).normalizeLocal()); +// dl2.setColor(new ColorRGBA(0.5f, 0.5f, 0.5f, 1.0f)); +// rootNode.addLight(dl2); + +// PointLight pl = new PointLight(new Vector3f(5.0f, 5.0f, 5.0f), ColorRGBA.White, 30); +// rootNode.addLight(pl); +// PointLight pl1 = new PointLight(new Vector3f(-5.0f, -5.0f, -5.0f), ColorRGBA.White.mult(0.5f), 50); +// rootNode.addLight(pl1); + //loadModel("Models/gltf/buffalo/scene.gltf", new Vector3f(0, -1, 0), 0.1f); + //loadModel("Models/gltf/war/scene.gltf", new Vector3f(0, -1, 0), 0.1f); + loadModel("Models/gltf/ganjaarl/scene.gltf", new Vector3f(0, -1, 0), 0.01f); + //loadModel("Models/gltf/hero/scene.gltf", new Vector3f(0, -1, 0), 0.1f); + //loadModel("Models/gltf/mercy/scene.gltf", new Vector3f(0, -1, 0), 0.01f); + //loadModel("Models/gltf/crab/scene.gltf", Vector3f.ZERO, 1); + //loadModel("Models/gltf/manta/scene.gltf", Vector3f.ZERO, 0.2f); +// loadModel("Models/gltf/bone/scene.gltf", Vector3f.ZERO, 0.1f); +// loadModel("Models/gltf/box/box.gltf", Vector3f.ZERO, 1); +// loadModel("Models/gltf/duck/Duck.gltf", new Vector3f(0, -1, 0), 1); +// loadModel("Models/gltf/damagedHelmet/damagedHelmet.gltf", Vector3f.ZERO, 1); +// loadModel("Models/gltf/hornet/scene.gltf", new Vector3f(0, -0.5f, 0), 0.4f); +//// loadModel("Models/gltf/adamHead/adamHead.gltf", Vector3f.ZERO, 0.6f); + //loadModel("Models/gltf/busterDrone/busterDrone.gltf", new Vector3f(0, 0f, 0), 0.8f); +// loadModel("Models/gltf/animatedCube/AnimatedCube.gltf", Vector3f.ZERO, 0.5f); +// +// //loadModel("Models/gltf/BoxAnimated/BoxAnimated.gltf", new Vector3f(0, 0f, 0), 0.8f); +// + //loadModel("Models/gltf/RiggedFigure/RiggedSimple.gltf", new Vector3f(0, -0.3f, 0), 0.2f); + //loadModel("Models/gltf/RiggedFigure/RiggedFigure.gltf", new Vector3f(0, -1f, 0), 1f); + //loadModel("Models/gltf/CesiumMan/CesiumMan.gltf", new Vector3f(0, -1, 0), 1f); + //loadModel("Models/gltf/BrainStem/BrainStem.gltf", new Vector3f(0, -1, 0), 1f); + //loadModel("Models/gltf/Jaime/Jaime.gltf", new Vector3f(0, -1, 0), 1f); + //loadModel("Models/gltf/GiantWorm/GiantWorm.gltf", new Vector3f(0, -1, 0), 1f); + //loadModel("Models/gltf/RiggedFigure/WalkingLady.gltf", new Vector3f(0, -0.f, 0), 1f); + //loadModel("Models/gltf/Monster/Monster.gltf", Vector3f.ZERO, 0.03f); + +// loadModel("Models/gltf/corset/Corset.gltf", new Vector3f(0, -1, 0), 20f); + // loadModel("Models/gltf/boxInter/BoxInterleaved.gltf", new Vector3f(0, 0, 0), 1f); + + + probeNode.attachChild(assets.get(0)); + + ChaseCameraAppState chaseCam = new ChaseCameraAppState(); + chaseCam.setTarget(probeNode); + getStateManager().attach(chaseCam); + chaseCam.setInvertHorizontalAxis(true); + chaseCam.setInvertVerticalAxis(true); + chaseCam.setZoomSpeed(0.5f); + chaseCam.setMinVerticalRotation(-FastMath.HALF_PI); + chaseCam.setRotationSpeed(3); + chaseCam.setDefaultDistance(3); + chaseCam.setDefaultVerticalRotation(0.3f); + + inputManager.addMapping("autorotate", new KeyTrigger(KeyInput.KEY_SPACE)); + inputManager.addListener(new ActionListener() { + @Override + public void onAction(String name, boolean isPressed, float tpf) { + if (isPressed) { + useAutoRotate = !useAutoRotate; + } + } + }, "autorotate"); + + inputManager.addMapping("toggleAnim", new KeyTrigger(KeyInput.KEY_RETURN)); + + inputManager.addListener(new ActionListener() { + @Override + public void onAction(String name, boolean isPressed, float tpf) { + if (isPressed) { + playAnim = !playAnim; + if (playAnim) { + playFirstAnim(rootNode); + } else { + stopAnim(rootNode); + } + } + } + }, "toggleAnim"); + inputManager.addMapping("nextAnim", new KeyTrigger(KeyInput.KEY_RIGHT)); + inputManager.addListener(new ActionListener() { + @Override + public void onAction(String name, boolean isPressed, float tpf) { + if (isPressed && animControl != null) { + AnimChannel c = animControl.getChannel(0); + if (c == null) { + c = animControl.createChannel(); + } + String anim = anims.poll(); + anims.add(anim); + c.setAnim(anim); + } + } + }, "nextAnim"); + + dumpScene(rootNode, 0); + } + + private T findControl(Spatial s, Class controlClass) { + T ctrl = s.getControl(controlClass); + if (ctrl != null) { + return ctrl; + } + if (s instanceof Node) { + Node n = (Node) s; + for (Spatial spatial : n.getChildren()) { + ctrl = findControl(spatial, controlClass); + if (ctrl != null) { + return ctrl; + } + } + } + return null; + } + + private void loadModel(String path, Vector3f offset, float scale) { + GltfModelKey k = new GltfModelKey(path); + //k.setKeepSkeletonPose(true); + Spatial s = assetManager.loadModel(k); + s.scale(scale); + s.move(offset); + assets.add(s); + if (playAnim) { + playFirstAnim(s); + } + + SkeletonControl ctrl = findControl(s, SkeletonControl.class); + + // ctrl.getSpatial().removeControl(ctrl); + if (ctrl == null) { + return; + } + //System.err.println(ctrl.getSkeleton().toString()); + //ctrl.setHardwareSkinningPreferred(false); + // getStateManager().getState(SkeletonDebugAppState.class).addSkeleton(ctrl, true); +// AnimControl aCtrl = findControl(s, AnimControl.class); +// //ctrl.getSpatial().removeControl(ctrl); +// if (aCtrl == null) { +// return; +// } +// if (aCtrl.getSkeleton() != null) { +// getStateManager().getState(SkeletonDebugAppState.class).addSkeleton(aCtrl.getSkeleton(), aCtrl.getSpatial(), true); +// } + + } + + Queue anims = new LinkedList<>(); + AnimControl animControl; + + private void playFirstAnim(Spatial s) { + + AnimControl control = s.getControl(AnimControl.class); + if (control != null) { + anims.clear(); + for (String name : control.getAnimationNames()) { + anims.add(name); + } + if (anims.isEmpty()) { + return; + } + String anim = anims.poll(); + anims.add(anim); + control.createChannel().setAnim(anim); + animControl = control; + } + if (s instanceof Node) { + Node n = (Node) s; + for (Spatial spatial : n.getChildren()) { + playFirstAnim(spatial); + } + } + } + + private void stopAnim(Spatial s) { + + AnimControl control = s.getControl(AnimControl.class); + if (control != null) { + for (int i = 0; i < control.getNumChannels(); i++) { + AnimChannel ch = control.getChannel(i); + ch.reset(true); + } + control.clearChannels(); + } + if (s instanceof Node) { + Node n = (Node) s; + for (Spatial spatial : n.getChildren()) { + stopAnim(spatial); + } + } + } + + @Override + public void simpleUpdate(float tpf) { + + if (!useAutoRotate) { + return; + } + time += tpf; + autoRotate.rotate(0, tpf * 0.5f, 0); + if (time > duration) { + assets.get(assetIndex).removeFromParent(); + assetIndex = (assetIndex + 1) % assets.size(); + if (assetIndex == 0) { + duration = 10; + } + probeNode.attachChild(assets.get(assetIndex)); + time = 0; + } + } + + private void dumpScene(Spatial s, int indent) { + System.err.println(indentString.substring(0, indent) + s.getName() + " (" + s.getClass().getSimpleName() + ") / " + + s.getLocalTransform().getTranslation().toString() + ", " + + s.getLocalTransform().getRotation().toString() + ", " + + s.getLocalTransform().getScale().toString()); + if (s instanceof Node) { + Node n = (Node) s; + for (Spatial spatial : n.getChildren()) { + dumpScene(spatial, indent + 1); + } + } + } +} diff --git a/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java b/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java deleted file mode 100644 index 561d6005d..000000000 --- a/jme3-examples/src/main/java/jme3test/model/shape/TestGltfLoading2.java +++ /dev/null @@ -1,7 +0,0 @@ -package jme3test.model.shape; - -/** - * Created by Nehon on 09/12/2017. - */ -public class TestGltfLoading2 { -} diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index 350c08d6b..e0df8fa0d 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -734,16 +734,6 @@ public class GltfLoader implements AssetLoader { continue; } - //if targetNode is a bone, check if it's in a used skin. - BoneWrapper bw = fetchFromCache("nodes", targetNode, BoneWrapper.class); - if (bw != null) { - SkinData skin = fetchFromCache("skins", bw.skinIndex, SkinData.class); - if (skin == null || !skin.used) { - //this skin is not referenced by any mesh, let's not load animation for it. - continue; - } - } - TrackData trackData = tracks[targetNode]; if (trackData == null) { trackData = new TrackData(); @@ -824,17 +814,20 @@ public class GltfLoader implements AssetLoader { //apply the inverseBindMatrix to animation data. b.update(trackData); usedBones.add(b.bone); - BoneTrack track = new BoneTrack(b.boneIndex, trackData.times, trackData.translations, trackData.rotations, trackData.scales); - anim.addTrack(track); + if (skinIndex == -1) { skinIndex = b.skinIndex; } else { - //Check if all bones affected by this animation are from the same skin, otherwise raise an error. + //Check if all bones affected by this animation are from the same skin, the track will be skipped. if (skinIndex != b.skinIndex) { - throw new AssetLoadException("Animation " + animationIndex + " (" + name + ") applies to bones that are not from the same skin: skin " + skinIndex + ", bone " + b.bone.getName() + " from skin " + b.skinIndex); + logger.log(Level.WARNING, "Animation " + animationIndex + " (" + name + ") applies to bones that are not from the same skin: skin " + skinIndex + ", bone " + b.bone.getName() + " from skin " + b.skinIndex); + continue; } - //else everything is fine. } + + BoneTrack track = new BoneTrack(b.boneIndex, trackData.times, trackData.translations, trackData.rotations, trackData.scales); + anim.addTrack(track); + } } @@ -1232,13 +1225,13 @@ public class GltfLoader implements AssetLoader { reverseBlendAnimTransforms(t, bindTransforms); - if(data.translations != null) { + if (data.translations != null) { data.translations[i] = t.getTranslation(); } - if(data.rotations != null) { + if (data.rotations != null) { data.rotations[i] = t.getRotation(); } - if(data.scales != null) { + if (data.scales != null) { data.scales[i] = t.getScale(); } } From 1b2cc6a63b5a14e51cffbabafa576c7f8d927a60 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 10 Dec 2017 19:56:32 +0100 Subject: [PATCH 080/150] SkeletonControl now falls back to software skinning when there are more than 255 bones instead of crashing when the shader compiles. --- .../java/com/jme3/animation/SkeletonControl.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/animation/SkeletonControl.java b/jme3-core/src/main/java/com/jme3/animation/SkeletonControl.java index 4cefd721c..8e31f4d9d 100644 --- a/jme3-core/src/main/java/com/jme3/animation/SkeletonControl.java +++ b/jme3-core/src/main/java/com/jme3/animation/SkeletonControl.java @@ -35,21 +35,20 @@ import com.jme3.export.*; import com.jme3.material.MatParamOverride; import com.jme3.math.FastMath; import com.jme3.math.Matrix4f; -import com.jme3.renderer.RenderManager; -import com.jme3.renderer.RendererException; -import com.jme3.renderer.ViewPort; +import com.jme3.renderer.*; import com.jme3.scene.*; import com.jme3.scene.VertexBuffer.Type; import com.jme3.scene.control.AbstractControl; import com.jme3.scene.control.Control; import com.jme3.scene.mesh.IndexBuffer; import com.jme3.shader.VarType; -import com.jme3.util.*; +import com.jme3.util.SafeArrayList; +import com.jme3.util.TempVars; import com.jme3.util.clone.Cloner; import com.jme3.util.clone.JmeCloneable; + import java.io.IOException; import java.nio.Buffer; -import java.nio.ByteBuffer; import java.nio.FloatBuffer; import java.util.logging.Level; import java.util.logging.Logger; @@ -145,6 +144,12 @@ public class SkeletonControl extends AbstractControl implements Cloneable, JmeCl } private boolean testHardwareSupported(RenderManager rm) { + + //Only 255 bones max supported with hardware skinning + if (skeleton.getBoneCount() > 255) { + return false; + } + switchToHardware(); try { From a741dc66f4df78e35607397df839dbc237e722e4 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 10 Dec 2017 20:12:50 +0100 Subject: [PATCH 081/150] glTF: fixed crashes with some models structure --- .../jme3/scene/plugins/gltf/GltfLoader.java | 70 ++++--------------- 1 file changed, 14 insertions(+), 56 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index e0df8fa0d..41bc3d01d 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -127,6 +127,13 @@ public class GltfLoader implements AssetLoader { rootNode = customContentManager.readExtensionAndExtras("root", docRoot, rootNode); + //Loading animations + if (animations != null) { + for (int i = 0; i < animations.size(); i++) { + readAnimation(i); + } + } + setupControls(); //only one scene let's not return the root. @@ -177,13 +184,6 @@ public class GltfLoader implements AssetLoader { } - //Loading animations - if (animations != null) { - for (int i = 0; i < animations.size(); i++) { - readAnimation(i); - } - } - //Setting the default scene cul hint to inherit. int activeChild = 0; if (defaultScene != null) { @@ -278,7 +278,10 @@ public class GltfLoader implements AssetLoader { BoneWrapper bw = (BoneWrapper) loaded; bw.isRoot = true; SkinData skinData = fetchFromCache("skins", bw.skinIndex, SkinData.class); - skinData.armatureTransforms = parent.getLocalTransform(); + if (skinData == null) { + return; + } + skinData.parent = parent; } } @@ -1086,15 +1089,13 @@ public class GltfLoader implements AssetLoader { private void setupControls() { for (SkinData skinData : skinnedSpatials.keySet()) { List spatials = skinnedSpatials.get(skinData); - Spatial spatial; if (spatials.isEmpty()) { //can happen when a file contains a skin that is not used by any mesh... continue; } + Spatial spatial = skinData.parent; if (spatials.size() >= 1) { spatial = findCommonAncestor(spatials); - } else { - spatial = spatials.get(0); } AnimControl animControl = spatial.getControl(AnimControl.class); @@ -1220,7 +1221,7 @@ public class GltfLoader implements AssetLoader { Transform t = new Transform(translation, rotation, scale); if (isRoot) { //Apply the armature transforms to the root bone anim track. - t.combineWithParent(skinData.armatureTransforms); + t.combineWithParent(skinData.parent.getLocalTransform()); } reverseBlendAnimTransforms(t, bindTransforms); @@ -1285,50 +1286,11 @@ public class GltfLoader implements AssetLoader { private class SkinData { SkeletonControl skeletonControl; AnimControl animControl; - Transform armatureTransforms; + Spatial parent; Bone[] bones; boolean used = false; } - private class PartialTransforms { - Vector3f translation; - Quaternion rotation; - Vector3f scale; - Transform transform; - - Transform getTransforms() { - if (transform == null) { - if (translation == null) { - translation = new Vector3f(); - } - if (rotation == null) { - rotation = new Quaternion(); - } - if (scale == null) { - scale = new Vector3f(1, 1, 1); - } - transform = new Transform(translation, rotation, scale); - } - return transform; - } - - Transform getTransforms(Transform bindTransforms) { - if (transform == null) { - if (translation == null) { - translation = bindTransforms.getTranslation(); - } - if (rotation == null) { - rotation = bindTransforms.getRotation(); - } - if (scale == null) { - scale = bindTransforms.getScale(); - } - transform = new Transform(translation, rotation, scale); - } - return transform; - } - } - public static class SkinBuffers { short[] joints; float[] weights; @@ -1343,10 +1305,6 @@ public class GltfLoader implements AssetLoader { } } - private class TextureData { - byte[] data; - } - private interface Populator { T populate(Integer bufferViewIndex, int componentType, String type, int count, int byteOffset, boolean normalized) throws IOException; } From 8a8d381c0e895cd73c16634fcc90628b12a5e684 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 10 Dec 2017 22:50:05 +0100 Subject: [PATCH 082/150] glTF: Fixes models orientations issues --- .../jme3/scene/plugins/gltf/GltfLoader.java | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java index 41bc3d01d..9796b046d 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java @@ -83,6 +83,7 @@ public class GltfLoader implements AssetLoader { try { dataCache.clear(); info = assetInfo; + skinnedSpatials.clear(); rootNode = new Node(); if (defaultMat == null) { @@ -127,6 +128,8 @@ public class GltfLoader implements AssetLoader { rootNode = customContentManager.readExtensionAndExtras("root", docRoot, rootNode); + setupControls(); + //Loading animations if (animations != null) { for (int i = 0; i < animations.size(); i++) { @@ -134,8 +137,6 @@ public class GltfLoader implements AssetLoader { } } - setupControls(); - //only one scene let's not return the root. if (rootNode.getChildren().size() == 1) { rootNode = (Node) rootNode.getChild(0); @@ -865,16 +866,10 @@ public class GltfLoader implements AssetLoader { if (skinIndex != -1) { //we have a bone animation. SkinData skin = fetchFromCache("skins", skinIndex, SkinData.class); - if (skin.animControl == null) { - skin.animControl = new AnimControl(skin.skeletonControl.getSkeleton()); - } skin.animControl.addAnim(anim); - //the controls will be added to the right spatial in setupControls() } - if (!spatials.isEmpty()) { - //Note that it's pretty unlikely to have an animation that is both a spatial animation and a bone animation...But you never know. The specs doesn't forbids it if (skinIndex != -1) { //there are some spatial tracks in this bone animation... or the other way around. Let's add the spatials in the skinnedSpatials. SkinData skin = fetchFromCache("skins", skinIndex, SkinData.class); @@ -882,6 +877,7 @@ public class GltfLoader implements AssetLoader { spat.addAll(spatials); //the animControl will be added in the setupControls(); } else { + //Spatial animation Spatial spatial = null; if (spatials.size() == 1) { spatial = spatials.get(0); @@ -971,6 +967,14 @@ public class GltfLoader implements AssetLoader { computeBindTransforms(bw, skeleton); } + skeleton = customContentManager.readExtensionAndExtras("skin", skin, skeleton); + SkinData skinData = new SkinData(); + skinData.bones = bones; + skinData.skeletonControl = new SkeletonControl(skeleton); + skinData.animControl = new AnimControl(skinData.skeletonControl.getSkeleton()); + addToCache("skins", index, skinData, nodes.size()); + skinnedSpatials.put(skinData, new ArrayList()); + // Set local transforms. // The skeleton may come in a given pose, that is not the rest pose, so let 's apply it. // We will need it later for animation @@ -985,14 +989,6 @@ public class GltfLoader implements AssetLoader { bone.setUserControl(false); } } - - skeleton = customContentManager.readExtensionAndExtras("skin", skin, skeleton); - - SkinData skinData = new SkinData(); - skinData.bones = bones; - skinData.skeletonControl = new SkeletonControl(skeleton); - addToCache("skins", index, skinData, nodes.size()); - skinnedSpatials.put(skinData, new ArrayList()); } } @@ -1089,26 +1085,18 @@ public class GltfLoader implements AssetLoader { private void setupControls() { for (SkinData skinData : skinnedSpatials.keySet()) { List spatials = skinnedSpatials.get(skinData); - if (spatials.isEmpty()) { - //can happen when a file contains a skin that is not used by any mesh... - continue; - } Spatial spatial = skinData.parent; + if (spatials.size() >= 1) { spatial = findCommonAncestor(spatials); } - AnimControl animControl = spatial.getControl(AnimControl.class); - if (animControl != null) { - //The spatial already has an anim control, we need to merge it with the one in skinData. Then remove it. - for (String name : animControl.getAnimationNames()) { - Animation anim = animControl.getAnim(name); - skinData.animControl.addAnim(anim); - } - spatial.removeControl(animControl); + if (spatial != skinData.parent) { + skinData.rootBoneTransformOffset = spatial.getWorldTransform().invert(); + skinData.rootBoneTransformOffset.combineWithParent(skinData.parent.getWorldTransform()); } - if (skinData.animControl != null) { + if (skinData.animControl != null && skinData.animControl.getSpatial() == null) { spatial.addControl(skinData.animControl); } spatial.addControl(skinData.skeletonControl); @@ -1219,9 +1207,9 @@ public class GltfLoader implements AssetLoader { Vector3f scale = getScale(data, i); Transform t = new Transform(translation, rotation, scale); - if (isRoot) { + if (isRoot && skinData.rootBoneTransformOffset != null) { //Apply the armature transforms to the root bone anim track. - t.combineWithParent(skinData.parent.getLocalTransform()); + t.combineWithParent(skinData.rootBoneTransformOffset); } reverseBlendAnimTransforms(t, bindTransforms); @@ -1287,6 +1275,7 @@ public class GltfLoader implements AssetLoader { SkeletonControl skeletonControl; AnimControl animControl; Spatial parent; + Transform rootBoneTransformOffset; Bone[] bones; boolean used = false; } From e536699d9edc06a0e89314d89542cfc9f07efe87 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:15:13 -0800 Subject: [PATCH 083/150] remove 3 examples whose purpose was to test deprecated classes --- .../java/jme3test/light/TestPssmShadow.java | 426 ------------------ .../main/java/jme3test/light/TestShadow.java | 121 ----- .../src/main/java/jme3test/post/TestHDR.java | 93 ---- 3 files changed, 640 deletions(-) delete mode 100644 jme3-examples/src/main/java/jme3test/light/TestPssmShadow.java delete mode 100644 jme3-examples/src/main/java/jme3test/light/TestShadow.java delete mode 100644 jme3-examples/src/main/java/jme3test/post/TestHDR.java diff --git a/jme3-examples/src/main/java/jme3test/light/TestPssmShadow.java b/jme3-examples/src/main/java/jme3test/light/TestPssmShadow.java deleted file mode 100644 index 9f851d39c..000000000 --- a/jme3-examples/src/main/java/jme3test/light/TestPssmShadow.java +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package jme3test.light; - -import com.jme3.app.SimpleApplication; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.Savable; -import com.jme3.font.BitmapText; -import com.jme3.input.KeyInput; -import com.jme3.input.controls.ActionListener; -import com.jme3.input.controls.AnalogListener; -import com.jme3.input.controls.KeyTrigger; -import com.jme3.light.AmbientLight; -import com.jme3.light.DirectionalLight; -import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.FastMath; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; -import com.jme3.post.FilterPostProcessor; -import com.jme3.post.filters.FXAAFilter; -import com.jme3.renderer.RenderManager; -import com.jme3.renderer.ViewPort; -import com.jme3.renderer.queue.RenderQueue.ShadowMode; -import com.jme3.scene.Geometry; -import com.jme3.scene.Spatial; -import com.jme3.scene.control.AbstractControl; -import com.jme3.scene.control.Control; -import com.jme3.scene.shape.Box; -import com.jme3.scene.shape.Sphere; -import com.jme3.shadow.PssmShadowFilter; -import com.jme3.shadow.PssmShadowRenderer; -import com.jme3.shadow.PssmShadowRenderer.CompareMode; -import com.jme3.shadow.PssmShadowRenderer.FilterMode; -import com.jme3.texture.Texture; -import com.jme3.texture.Texture.WrapMode; -import com.jme3.util.SkyFactory; -import com.jme3.util.TangentBinormalGenerator; -import com.jme3.util.clone.Cloner; -import com.jme3.util.clone.JmeCloneable; -import java.io.IOException; - -public class TestPssmShadow extends SimpleApplication implements ActionListener { - - private Spatial[] obj; - private Material[] mat; - private boolean hardwareShadows = false; - private PssmShadowRenderer pssmRenderer; - private PssmShadowFilter pssmFilter; - private Geometry ground; - private Material matGroundU; - private Material matGroundL; - - public static void main(String[] args) { - TestPssmShadow app = new TestPssmShadow(); - app.start(); - } - - public void loadScene() { - obj = new Spatial[2]; - mat = new Material[2]; - mat[0] = assetManager.loadMaterial("Common/Materials/RedColor.j3m"); - mat[1] = assetManager.loadMaterial("Textures/Terrain/Pond/Pond.j3m"); - mat[1].setBoolean("UseMaterialColors", true); - mat[1].setColor("Ambient", ColorRGBA.White.mult(0.5f)); - mat[1].setColor("Diffuse", ColorRGBA.White.clone()); - - - obj[0] = new Geometry("sphere", new Sphere(30, 30, 2)); - obj[0].setShadowMode(ShadowMode.CastAndReceive); - obj[1] = new Geometry("cube", new Box(1.0f, 1.0f, 1.0f)); - obj[1].setShadowMode(ShadowMode.CastAndReceive); - TangentBinormalGenerator.generate(obj[1]); - TangentBinormalGenerator.generate(obj[0]); - - - for (int i = 0; i < 60; i++) { - Spatial t = obj[FastMath.nextRandomInt(0, obj.length - 1)].clone(false); - t.setLocalScale(FastMath.nextRandomFloat() * 10f); - t.setMaterial(mat[FastMath.nextRandomInt(0, mat.length - 1)]); - rootNode.attachChild(t); - t.setLocalTranslation(FastMath.nextRandomFloat() * 200f, FastMath.nextRandomFloat() * 30f + 20, 30f * (i + 2f)); - } - - Box b = new Box(1000, 2, 1000); - b.scaleTextureCoordinates(new Vector2f(10, 10)); - ground = new Geometry("soil", b); - ground.setLocalTranslation(0, 10, 550); - matGroundU = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); - matGroundU.setColor("Color", ColorRGBA.Green); - - - matGroundL = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); - Texture grass = assetManager.loadTexture("Textures/Terrain/splat/grass.jpg"); - grass.setWrap(WrapMode.Repeat); - matGroundL.setTexture("DiffuseMap", grass); - - ground.setMaterial(matGroundL); - - ground.setShadowMode(ShadowMode.CastAndReceive); - rootNode.attachChild(ground); - - l = new DirectionalLight(); - l.setDirection(new Vector3f(-1, -1, -1)); - rootNode.addLight(l); - - AmbientLight al = new AmbientLight(); - al.setColor(ColorRGBA.White.mult(0.5f)); - rootNode.addLight(al); - - Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); - sky.setLocalScale(350); - - rootNode.attachChild(sky); - } - DirectionalLight l; - - @Override - public void simpleInitApp() { - // put the camera in a bad position - cam.setLocation(new Vector3f(65.25412f, 44.38738f, 9.087874f)); - cam.setRotation(new Quaternion(0.078139365f, 0.050241485f, -0.003942559f, 0.9956679f)); - - flyCam.setMoveSpeed(100); - - loadScene(); - - pssmRenderer = new PssmShadowRenderer(assetManager, 1024, 3); - //pssmRenderer.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); - pssmRenderer.setDirection(new Vector3f(-0.5973172f, -0.56583486f, 0.8846725f).normalizeLocal()); - pssmRenderer.setLambda(0.55f); - pssmRenderer.setShadowIntensity(0.6f); - pssmRenderer.setCompareMode(CompareMode.Software); - pssmRenderer.setFilterMode(FilterMode.Dither); - - pssmRenderer.displayFrustum(); - viewPort.addProcessor(pssmRenderer); - - - - pssmFilter = new PssmShadowFilter(assetManager, 1024, 3); - //pssmFilter.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); - pssmRenderer.setDirection(new Vector3f(-0.5973172f, -0.56583486f, 0.8846725f).normalizeLocal()); - pssmFilter.setLambda(0.55f); - pssmFilter.setShadowIntensity(0.6f); - pssmFilter.setCompareMode(CompareMode.Software); - pssmFilter.setFilterMode(FilterMode.Dither); - pssmFilter.setEnabled(false); - - -// pssmFilter.setShadowZFadeLength(300); -// pssmFilter.setShadowZExtend(500); - - FilterPostProcessor fpp = new FilterPostProcessor(assetManager); - // fpp.setNumSamples(4); - fpp.addFilter(pssmFilter); - - viewPort.addProcessor(fpp); - - - initInputs(); - } - BitmapText infoText; - - private void initInputs() { - /** Write text on the screen (HUD) */ - guiFont = assetManager.loadFont("Interface/Fonts/Default.fnt"); - infoText = new BitmapText(guiFont, false); - infoText.setSize(guiFont.getCharSet().getRenderedSize()); - - - inputManager.addMapping("toggle", new KeyTrigger(KeyInput.KEY_SPACE)); - inputManager.addMapping("changeFiltering", new KeyTrigger(KeyInput.KEY_F)); - inputManager.addMapping("ShadowUp", new KeyTrigger(KeyInput.KEY_T)); - inputManager.addMapping("ShadowDown", new KeyTrigger(KeyInput.KEY_G)); - inputManager.addMapping("ThicknessUp", new KeyTrigger(KeyInput.KEY_Y)); - inputManager.addMapping("ThicknessDown", new KeyTrigger(KeyInput.KEY_H)); - inputManager.addMapping("lambdaUp", new KeyTrigger(KeyInput.KEY_U)); - inputManager.addMapping("lambdaDown", new KeyTrigger(KeyInput.KEY_J)); - inputManager.addMapping("toggleHW", new KeyTrigger(KeyInput.KEY_RETURN)); - inputManager.addMapping("switchGroundMat", new KeyTrigger(KeyInput.KEY_M)); - inputManager.addMapping("splits", new KeyTrigger(KeyInput.KEY_X)); - - inputManager.addMapping("up", new KeyTrigger(KeyInput.KEY_NUMPAD8)); - inputManager.addMapping("down", new KeyTrigger(KeyInput.KEY_NUMPAD2)); - inputManager.addMapping("right", new KeyTrigger(KeyInput.KEY_NUMPAD6)); - inputManager.addMapping("left", new KeyTrigger(KeyInput.KEY_NUMPAD4)); - inputManager.addMapping("fwd", new KeyTrigger(KeyInput.KEY_PGUP)); - inputManager.addMapping("back", new KeyTrigger(KeyInput.KEY_PGDN)); - - - - inputManager.addListener(this, "lambdaUp", "lambdaDown", "toggleHW", "toggle", "ShadowUp", "ShadowDown", "ThicknessUp", "ThicknessDown", "changeFiltering", - "switchGroundMat", "splits", "up", "down", "right", "left", "fwd", "back"); - - } - - private void print(String str) { - infoText.setText(str); - infoText.setLocalTranslation(cam.getWidth() * 0.5f - infoText.getLineWidth() * 0.5f, infoText.getLineHeight(), 0); - guiNode.attachChild(infoText); - infoText.removeControl(ctrl); - infoText.addControl(ctrl); - } - AbstractControl ctrl = new AbstractControl() { - - float time; - - @Override - protected void controlUpdate(float tpf) { - time += tpf; - if (time > 3) { - spatial.removeFromParent(); - spatial.removeControl(this); - } - } - - @Override - public void setSpatial(Spatial spatial) { - super.setSpatial(spatial); - time = 0; - } - - @Override - public Object jmeClone() { - return null; - } - - @Override - public void cloneFields( Cloner cloner, Object original ) { - } - - @Override - protected void controlRender(RenderManager rm, ViewPort vp) { - } - - @Override - public Control cloneForSpatial(Spatial spatial) { - return null; - } - }; - int filteringIndex = 2; - int renderModeIndex = 0; - - public void onAction(String name, boolean keyPressed, float tpf) { - if (name.equals("toggle") && keyPressed) { - renderModeIndex += 1; - renderModeIndex %= 3; - - switch (renderModeIndex) { - case 0: - viewPort.addProcessor(pssmRenderer); - break; - case 1: - viewPort.removeProcessor(pssmRenderer); - pssmFilter.setEnabled(true); - break; - case 2: - pssmFilter.setEnabled(false); - break; - } - - - - } else if (name.equals("toggleHW") && keyPressed) { - hardwareShadows = !hardwareShadows; - pssmRenderer.setCompareMode(hardwareShadows ? CompareMode.Hardware : CompareMode.Software); - pssmFilter.setCompareMode(hardwareShadows ? CompareMode.Hardware : CompareMode.Software); - System.out.println("HW Shadows: " + hardwareShadows); - } -// -// renderShadows = true; -// viewPort.addProcessor(pssmRenderer); - - if (name.equals("changeFiltering") && keyPressed) { - filteringIndex = (filteringIndex + 1) % FilterMode.values().length; - FilterMode m = FilterMode.values()[filteringIndex]; - pssmRenderer.setFilterMode(m); - pssmFilter.setFilterMode(m); - print("Filter mode : " + m.toString()); - } - - if (name.equals("lambdaUp") && keyPressed) { - pssmRenderer.setLambda(pssmRenderer.getLambda() + 0.01f); - pssmFilter.setLambda(pssmRenderer.getLambda() + 0.01f); - System.out.println("Lambda : " + pssmRenderer.getLambda()); - } else if (name.equals("lambdaDown") && keyPressed) { - pssmRenderer.setLambda(pssmRenderer.getLambda() - 0.01f); - pssmFilter.setLambda(pssmRenderer.getLambda() - 0.01f); - System.out.println("Lambda : " + pssmRenderer.getLambda()); - } - - if (name.equals("ShadowUp") && keyPressed) { - pssmRenderer.setShadowIntensity(pssmRenderer.getShadowIntensity() + 0.1f); - pssmFilter.setShadowIntensity(pssmRenderer.getShadowIntensity() + 0.1f); - System.out.println("Shadow intensity : " + pssmRenderer.getShadowIntensity()); - } - if (name.equals("ShadowDown") && keyPressed) { - pssmRenderer.setShadowIntensity(pssmRenderer.getShadowIntensity() - 0.1f); - pssmFilter.setShadowIntensity(pssmRenderer.getShadowIntensity() - 0.1f); - System.out.println("Shadow intensity : " + pssmRenderer.getShadowIntensity()); - } - if (name.equals("ThicknessUp") && keyPressed) { - pssmRenderer.setEdgesThickness(pssmRenderer.getEdgesThickness() + 1); - pssmFilter.setEdgesThickness(pssmRenderer.getEdgesThickness() + 1); - System.out.println("Shadow thickness : " + pssmRenderer.getEdgesThickness()); - } - if (name.equals("ThicknessDown") && keyPressed) { - pssmRenderer.setEdgesThickness(pssmRenderer.getEdgesThickness() - 1); - pssmFilter.setEdgesThickness(pssmRenderer.getEdgesThickness() - 1); - System.out.println("Shadow thickness : " + pssmRenderer.getEdgesThickness()); - } - if (name.equals("switchGroundMat") && keyPressed) { - if (ground.getMaterial() == matGroundL) { - ground.setMaterial(matGroundU); - } else { - ground.setMaterial(matGroundL); - } - } - -// if (name.equals("splits") && keyPressed) { -// pssmRenderer.displayFrustum(); -// } - - - if (name.equals("up")) { - up = keyPressed; - } - if (name.equals("down")) { - down = keyPressed; - } - if (name.equals("right")) { - right = keyPressed; - } - if (name.equals("left") ) { - left = keyPressed; - } - if (name.equals("fwd")) { - fwd = keyPressed; - } - if (name.equals("back")) { - back = keyPressed; - } - - } - boolean up = false; - boolean down = false; - boolean left = false; - boolean right = false; - boolean fwd = false; - boolean back = false; - float time = 0; - float s = 1f; - - @Override - public void simpleUpdate(float tpf) { - if (up) { - Vector3f v = l.getDirection(); - v.y += tpf / s; - setDir(v); - } - if (down) { - Vector3f v = l.getDirection(); - v.y -= tpf / s; - setDir(v); - } - if (right) { - Vector3f v = l.getDirection(); - v.x += tpf / s; - setDir(v); - } - if (left) { - Vector3f v = l.getDirection(); - v.x -= tpf / s; - setDir(v); - } - if (fwd) { - Vector3f v = l.getDirection(); - v.z += tpf / s; - setDir(v); - } - if (back) { - Vector3f v = l.getDirection(); - v.z -= tpf / s; - setDir(v); - } - - } - - private void setDir(Vector3f v) { - l.setDirection(v); - pssmFilter.setDirection(v); - pssmRenderer.setDirection(v); - } -} diff --git a/jme3-examples/src/main/java/jme3test/light/TestShadow.java b/jme3-examples/src/main/java/jme3test/light/TestShadow.java deleted file mode 100644 index d3c7122fb..000000000 --- a/jme3-examples/src/main/java/jme3test/light/TestShadow.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package jme3test.light; - -import com.jme3.app.SimpleApplication; -import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector3f; -import com.jme3.renderer.Camera; -import com.jme3.renderer.queue.RenderQueue.ShadowMode; -import com.jme3.scene.Geometry; -import com.jme3.scene.Spatial; -import com.jme3.scene.debug.WireFrustum; -import com.jme3.scene.shape.Box; -import com.jme3.shadow.BasicShadowRenderer; -import com.jme3.shadow.ShadowUtil; - -public class TestShadow extends SimpleApplication { - - float angle; - Spatial lightMdl; - Spatial teapot; - Geometry frustumMdl; - WireFrustum frustum; - - private BasicShadowRenderer bsr; - private Vector3f[] points; - - { - points = new Vector3f[8]; - for (int i = 0; i < points.length; i++) points[i] = new Vector3f(); - } - - public static void main(String[] args){ - TestShadow app = new TestShadow(); - app.start(); - } - - @Override - public void simpleInitApp() { - // put the camera in a bad position - cam.setLocation(new Vector3f(0.7804813f, 1.7502685f, -2.1556435f)); - cam.setRotation(new Quaternion(0.1961598f, -0.7213164f, 0.2266092f, 0.6243975f)); - cam.setFrustumFar(10); - - Material mat = assetManager.loadMaterial("Common/Materials/WhiteColor.j3m"); - rootNode.setShadowMode(ShadowMode.Off); - Box floor = new Box(3, 0.1f, 3); - Geometry floorGeom = new Geometry("Floor", floor); - floorGeom.setMaterial(mat); - floorGeom.setLocalTranslation(0,-0.2f,0); - floorGeom.setShadowMode(ShadowMode.Receive); - rootNode.attachChild(floorGeom); - - teapot = assetManager.loadModel("Models/Teapot/Teapot.obj"); - teapot.setLocalScale(2f); - teapot.setMaterial(mat); - teapot.setShadowMode(ShadowMode.CastAndReceive); - rootNode.attachChild(teapot); -// lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); -// lightMdl.setMaterial(mat); -// // disable shadowing for light representation -// lightMdl.setShadowMode(ShadowMode.Off); -// rootNode.attachChild(lightMdl); - - bsr = new BasicShadowRenderer(assetManager, 512); - bsr.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); - viewPort.addProcessor(bsr); - - frustum = new WireFrustum(bsr.getPoints()); - frustumMdl = new Geometry("f", frustum); - frustumMdl.setCullHint(Spatial.CullHint.Never); - frustumMdl.setShadowMode(ShadowMode.Off); - frustumMdl.setMaterial(new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md")); - frustumMdl.getMaterial().getAdditionalRenderState().setWireframe(true); - frustumMdl.getMaterial().setColor("Color", ColorRGBA.Red); - rootNode.attachChild(frustumMdl); - } - - @Override - public void simpleUpdate(float tpf){ - Camera shadowCam = bsr.getShadowCamera(); - ShadowUtil.updateFrustumPoints2(shadowCam, points); - - frustum.update(points); - // rotate teapot around Y axis - teapot.rotate(0, tpf * 0.25f, 0); - } - -} diff --git a/jme3-examples/src/main/java/jme3test/post/TestHDR.java b/jme3-examples/src/main/java/jme3test/post/TestHDR.java deleted file mode 100644 index 6cfcbdb7f..000000000 --- a/jme3-examples/src/main/java/jme3test/post/TestHDR.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2009-2012 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package jme3test.post; - -import com.jme3.app.SimpleApplication; -import com.jme3.material.Material; -import com.jme3.math.Vector3f; -import com.jme3.post.HDRRenderer; -import com.jme3.scene.Geometry; -import com.jme3.scene.shape.Box; -import com.jme3.ui.Picture; - -public class TestHDR extends SimpleApplication { - - private HDRRenderer hdrRender; - private Picture dispQuad; - - public static void main(String[] args){ - TestHDR app = new TestHDR(); - app.start(); - } - - public Geometry createHDRBox(){ - Box boxMesh = new Box(1, 1, 1); - Geometry box = new Geometry("Box", boxMesh); - Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); - mat.setTexture("ColorMap", assetManager.loadTexture("Textures/HdrTest/Memorial.hdr")); - box.setMaterial(mat); - return box; - } - -// private Material disp; - - @Override - public void simpleInitApp() { - hdrRender = new HDRRenderer(assetManager, renderer); - hdrRender.setSamples(0); - hdrRender.setMaxIterations(20); - hdrRender.setExposure(0.87f); - hdrRender.setThrottle(0.33f); - viewPort.addProcessor(hdrRender); -// config.setVisible(true); - rootNode.attachChild(createHDRBox()); - } - - public void simpleUpdate(float tpf){ - if (hdrRender.isInitialized() && dispQuad == null){ - dispQuad = hdrRender.createDisplayQuad(); - dispQuad.setWidth(128); - dispQuad.setHeight(128); - dispQuad.setPosition(30, cam.getHeight() - 128 - 30); - guiNode.attachChild(dispQuad); - } - } - -// public void displayAvg(Renderer r){ -// r.setFrameBuffer(null); -// disp = prepare(-1, -1, settings.getWidth(), settings.getHeight(), 3, -1, scene64, disp); -// r.clearBuffers(true, true, true); -// r.renderGeometry(pic); -// } - -} From d3f0c2002a7389b6d99075aeb1c7ea6d9124a541 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:26:25 -0800 Subject: [PATCH 084/150] in examples, replace deprecated methods and classes --- .../src/main/java/jme3test/TestChooser.java | 12 +++--- .../jme3test/animation/SubtitleTrack.java | 7 ++-- .../jme3test/animation/TestCinematic.java | 11 +++--- .../main/java/jme3test/audio/TestAmbient.java | 7 +++- .../jme3test/audio/TestMusicStreaming.java | 4 +- .../main/java/jme3test/audio/TestReverb.java | 4 +- .../src/main/java/jme3test/audio/TestWav.java | 4 +- .../java/jme3test/bullet/BombControl.java | 5 ++- .../jme3test/bullet/TestHoveringTank.java | 23 +++++------ .../java/jme3test/bullet/TestWalkingChar.java | 9 +++-- .../java/jme3test/effect/TestEverything.java | 39 +++++++++---------- .../jme3test/effect/TestExplosionEffect.java | 25 +++++++----- .../jme3test/effect/TestMovingParticle.java | 5 ++- .../effect/TestParticleExportingCloning.java | 2 +- .../java/jme3test/helloworld/HelloAudio.java | 7 +++- .../light/TestDirectionalLightShadow.java | 4 +- .../light/TestEnvironmentMapping.java | 3 +- .../jme3test/model/anim/TestCustomAnim.java | 2 +- .../main/java/jme3test/post/TestBloom.java | 5 ++- .../post/TestBloomAlphaThreshold.java | 15 +++++-- .../java/jme3test/post/TestCrossHatch.java | 5 ++- .../java/jme3test/post/TestDepthOfField.java | 4 +- .../src/main/java/jme3test/post/TestFog.java | 4 +- .../jme3test/post/TestLightScattering.java | 5 ++- .../jme3test/post/TestMultiViewsFilters.java | 4 +- .../jme3test/post/TestMultiplesFilters.java | 4 +- .../java/jme3test/post/TestPostFilters.java | 5 ++- .../jme3test/post/TestRenderToCubemap.java | 6 ++- .../java/jme3test/scene/TestSceneLoading.java | 4 +- .../jme3test/water/TestMultiPostWater.java | 4 +- .../java/jme3test/water/TestPostWater.java | 8 +++- .../jme3test/water/TestPostWaterLake.java | 4 +- .../java/jme3test/water/TestSceneWater.java | 4 +- .../java/jme3test/water/TestSimpleWater.java | 4 +- 34 files changed, 165 insertions(+), 93 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/TestChooser.java b/jme3-examples/src/main/java/jme3test/TestChooser.java index 5c2c572a1..c47196035 100644 --- a/jme3-examples/src/main/java/jme3test/TestChooser.java +++ b/jme3-examples/src/main/java/jme3test/TestChooser.java @@ -76,7 +76,7 @@ public class TestChooser extends JDialog { /** * Only accessed from EDT */ - private Object[] selectedClass = null; + private java.util.List selectedClass = null; private boolean showSetting = true; /** @@ -246,7 +246,7 @@ public class TestChooser extends JDialog { }; } - private void startApp(final Object[] appClass){ + private void startApp(final java.util.List appClass){ if (appClass == null){ JOptionPane.showMessageDialog(rootPane, "Please select a test from the list", @@ -257,8 +257,8 @@ public class TestChooser extends JDialog { new Thread(new Runnable(){ public void run(){ - for (int i = 0; i < appClass.length; i++) { - Class clazz = (Class)appClass[i]; + for (int i = 0; i < appClass.size(); i++) { + Class clazz = (Class)appClass.get(i); try { if (LegacyApplication.class.isAssignableFrom(clazz)) { Object app = clazz.newInstance(); @@ -333,7 +333,7 @@ public class TestChooser extends JDialog { list.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { - selectedClass = list.getSelectedValues(); + selectedClass = list.getSelectedValuesList(); } }); list.addMouseListener(new MouseAdapter() { @@ -485,7 +485,7 @@ public class TestChooser extends JDialog { }); jtf.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - selectedClass = classes.getSelectedValues(); + selectedClass = classes.getSelectedValuesList(); startApp(selectedClass); } }); diff --git a/jme3-examples/src/main/java/jme3test/animation/SubtitleTrack.java b/jme3-examples/src/main/java/jme3test/animation/SubtitleTrack.java index 177050118..d1d415128 100644 --- a/jme3-examples/src/main/java/jme3test/animation/SubtitleTrack.java +++ b/jme3-examples/src/main/java/jme3test/animation/SubtitleTrack.java @@ -31,7 +31,7 @@ */ package jme3test.animation; -import com.jme3.cinematic.events.GuiTrack; +import com.jme3.cinematic.events.GuiEvent; import de.lessvoid.nifty.Nifty; import de.lessvoid.nifty.elements.render.TextRenderer; @@ -39,7 +39,7 @@ import de.lessvoid.nifty.elements.render.TextRenderer; * * @author Nehon */ -public class SubtitleTrack extends GuiTrack{ +public class SubtitleTrack extends GuiEvent{ private String text=""; public SubtitleTrack(Nifty nifty, String screen,float initialDuration, String text) { @@ -50,7 +50,8 @@ public class SubtitleTrack extends GuiTrack{ @Override public void onPlay() { super.onPlay(); - nifty.getScreen(screen).findElementByName("text").getRenderer(TextRenderer.class).setText(text); + nifty.getScreen(screen).findElementById("text") + .getRenderer(TextRenderer.class).setText(text); } diff --git a/jme3-examples/src/main/java/jme3test/animation/TestCinematic.java b/jme3-examples/src/main/java/jme3test/animation/TestCinematic.java index a066426e4..93ad16f7f 100644 --- a/jme3-examples/src/main/java/jme3test/animation/TestCinematic.java +++ b/jme3-examples/src/main/java/jme3test/animation/TestCinematic.java @@ -57,7 +57,7 @@ import com.jme3.scene.CameraNode; import com.jme3.scene.Geometry; import com.jme3.scene.Spatial; import com.jme3.scene.shape.Box; -import com.jme3.shadow.PssmShadowRenderer; +import com.jme3.shadow.DirectionalLightShadowRenderer; import de.lessvoid.nifty.Nifty; public class TestCinematic extends SimpleApplication { @@ -237,10 +237,11 @@ public class TestCinematic extends SimpleApplication { fpp.addFilter(fade); if (renderer.getCaps().contains(Caps.GLSL100)) { - PssmShadowRenderer pssm = new PssmShadowRenderer(assetManager, 512, 1); - pssm.setDirection(new Vector3f(0, -1, -1).normalizeLocal()); - pssm.setShadowIntensity(0.4f); - viewPort.addProcessor(pssm); + DirectionalLightShadowRenderer dlsr + = new DirectionalLightShadowRenderer(assetManager, 512, 1); + dlsr.setLight(light); + dlsr.setShadowIntensity(0.4f); + viewPort.addProcessor(dlsr); viewPort.addProcessor(fpp); } } diff --git a/jme3-examples/src/main/java/jme3test/audio/TestAmbient.java b/jme3-examples/src/main/java/jme3test/audio/TestAmbient.java index 2703d53da..6d300525e 100644 --- a/jme3-examples/src/main/java/jme3test/audio/TestAmbient.java +++ b/jme3-examples/src/main/java/jme3test/audio/TestAmbient.java @@ -29,6 +29,7 @@ package jme3test.audio; import com.jme3.app.SimpleApplication; +import com.jme3.audio.AudioData.DataType; import com.jme3.audio.AudioNode; import com.jme3.audio.Environment; import com.jme3.material.Material; @@ -55,13 +56,15 @@ public class TestAmbient extends SimpleApplication { Environment env = new Environment(eax); audioRenderer.setEnvironment(env); - waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false); + waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", + DataType.Buffer); waves.setPositional(true); waves.setLocalTranslation(new Vector3f(0, 0,0)); waves.setMaxDistance(100); waves.setRefDistance(5); - nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", true); + nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", + DataType.Stream); nature.setPositional(false); nature.setVolume(3); diff --git a/jme3-examples/src/main/java/jme3test/audio/TestMusicStreaming.java b/jme3-examples/src/main/java/jme3test/audio/TestMusicStreaming.java index 6d7ceb913..35332b11d 100644 --- a/jme3-examples/src/main/java/jme3test/audio/TestMusicStreaming.java +++ b/jme3-examples/src/main/java/jme3test/audio/TestMusicStreaming.java @@ -34,6 +34,7 @@ package jme3test.audio; import com.jme3.app.SimpleApplication; import com.jme3.asset.plugins.UrlLocator; +import com.jme3.audio.AudioData; import com.jme3.audio.AudioNode; public class TestMusicStreaming extends SimpleApplication { @@ -46,7 +47,8 @@ public class TestMusicStreaming extends SimpleApplication { @Override public void simpleInitApp(){ assetManager.registerLocator("http://www.vorbis.com/music/", UrlLocator.class); - AudioNode audioSource = new AudioNode(assetManager, "Lumme-Badloop.ogg", true); + AudioNode audioSource = new AudioNode(assetManager, "Lumme-Badloop.ogg", + AudioData.DataType.Stream); audioSource.setPositional(false); audioSource.setReverbEnabled(false); audioSource.play(); diff --git a/jme3-examples/src/main/java/jme3test/audio/TestReverb.java b/jme3-examples/src/main/java/jme3test/audio/TestReverb.java index 262f2984d..8fd5d1b7f 100644 --- a/jme3-examples/src/main/java/jme3test/audio/TestReverb.java +++ b/jme3-examples/src/main/java/jme3test/audio/TestReverb.java @@ -29,6 +29,7 @@ package jme3test.audio; import com.jme3.app.SimpleApplication; +import com.jme3.audio.AudioData; import com.jme3.audio.AudioNode; import com.jme3.audio.Environment; import com.jme3.math.FastMath; @@ -47,7 +48,8 @@ public class TestReverb extends SimpleApplication { @Override public void simpleInitApp() { - audioSource = new AudioNode(assetManager, "Sound/Effects/Bang.wav"); + audioSource = new AudioNode(assetManager, "Sound/Effects/Bang.wav", + AudioData.DataType.Buffer); float[] eax = new float[]{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f, 0.00f, 0.00f, diff --git a/jme3-examples/src/main/java/jme3test/audio/TestWav.java b/jme3-examples/src/main/java/jme3test/audio/TestWav.java index 2c145ec75..09fcfe714 100644 --- a/jme3-examples/src/main/java/jme3test/audio/TestWav.java +++ b/jme3-examples/src/main/java/jme3test/audio/TestWav.java @@ -30,6 +30,7 @@ package jme3test.audio; import com.jme3.app.SimpleApplication; +import com.jme3.audio.AudioData; import com.jme3.audio.AudioNode; public class TestWav extends SimpleApplication { @@ -54,7 +55,8 @@ public class TestWav extends SimpleApplication { @Override public void simpleInitApp() { - audioSource = new AudioNode(assetManager, "Sound/Effects/Gun.wav", false); + audioSource = new AudioNode(assetManager, "Sound/Effects/Gun.wav", + AudioData.DataType.Buffer); audioSource.setLooping(false); } } diff --git a/jme3-examples/src/main/java/jme3test/bullet/BombControl.java b/jme3-examples/src/main/java/jme3test/bullet/BombControl.java index c02e5a441..4d9af6a45 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/BombControl.java +++ b/jme3-examples/src/main/java/jme3test/bullet/BombControl.java @@ -102,8 +102,9 @@ public class BombControl extends RigidBodyControl implements PhysicsCollisionLis effect.setGravity(0, -5f, 0); effect.setLowLife(.4f); effect.setHighLife(.5f); - effect.setInitialVelocity(new Vector3f(0, 7, 0)); - effect.setVelocityVariation(1f); + effect.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 7, 0)); + effect.getParticleInfluencer().setVelocityVariation(1f); effect.setImagesX(2); effect.setImagesY(2); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); diff --git a/jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java b/jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java index d1def4203..a241072a2 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java +++ b/jme3-examples/src/main/java/jme3test/bullet/TestHoveringTank.java @@ -54,9 +54,8 @@ import com.jme3.renderer.Camera; import com.jme3.renderer.queue.RenderQueue.ShadowMode; import com.jme3.scene.Geometry; import com.jme3.scene.Spatial; -import com.jme3.shadow.PssmShadowRenderer; -import com.jme3.shadow.PssmShadowRenderer.CompareMode; -import com.jme3.shadow.PssmShadowRenderer.FilterMode; +import com.jme3.shadow.DirectionalLightShadowRenderer; +import com.jme3.shadow.EdgeFilteringMode; import com.jme3.system.AppSettings; import com.jme3.terrain.geomipmap.TerrainLodControl; import com.jme3.terrain.geomipmap.TerrainQuad; @@ -65,6 +64,7 @@ import com.jme3.terrain.heightmap.ImageBasedHeightMap; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import java.util.ArrayList; import java.util.List; @@ -113,21 +113,22 @@ public class TestHoveringTank extends SimpleApplication implements AnalogListene stateManager.attach(bulletAppState); // bulletAppState.getPhysicsSpace().enableDebug(assetManager); bulletAppState.getPhysicsSpace().setAccuracy(1f/30f); - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", EnvMapType.CubeMap)); - PssmShadowRenderer pssmr = new PssmShadowRenderer(assetManager, 2048, 3); - pssmr.setDirection(new Vector3f(-0.5f, -0.3f, -0.3f).normalizeLocal()); - pssmr.setLambda(0.55f); - pssmr.setShadowIntensity(0.6f); - pssmr.setCompareMode(CompareMode.Hardware); - pssmr.setFilterMode(FilterMode.Bilinear); - viewPort.addProcessor(pssmr); + DirectionalLightShadowRenderer dlsr + = new DirectionalLightShadowRenderer(assetManager, 2048, 3); + dlsr.setLambda(0.55f); + dlsr.setShadowIntensity(0.6f); + dlsr.setEdgeFilteringMode(EdgeFilteringMode.Bilinear); + viewPort.addProcessor(dlsr); setupKeys(); createTerrain(); buildPlayer(); DirectionalLight dl = new DirectionalLight(); + dlsr.setLight(dl); dl.setColor(new ColorRGBA(1.0f, 0.94f, 0.8f, 1f).multLocal(1.3f)); dl.setDirection(new Vector3f(-0.5f, -0.3f, -0.3f).normalizeLocal()); rootNode.addLight(dl); diff --git a/jme3-examples/src/main/java/jme3test/bullet/TestWalkingChar.java b/jme3-examples/src/main/java/jme3test/bullet/TestWalkingChar.java index c7e937c0b..d5b42d01b 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/TestWalkingChar.java +++ b/jme3-examples/src/main/java/jme3test/bullet/TestWalkingChar.java @@ -217,8 +217,9 @@ public class TestWalkingChar extends SimpleApplication implements ActionListener effect.setGravity(0, -5, 0); effect.setLowLife(.4f); effect.setHighLife(.5f); - effect.setInitialVelocity(new Vector3f(0, 7, 0)); - effect.setVelocityVariation(1f); + effect.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 7, 0)); + effect.getParticleInfluencer().setVelocityVariation(1f); effect.setImagesX(2); effect.setImagesY(2); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); @@ -237,7 +238,9 @@ public class TestWalkingChar extends SimpleApplication implements ActionListener } private void createSky() { - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); } private void createTerrain() { diff --git a/jme3-examples/src/main/java/jme3test/effect/TestEverything.java b/jme3-examples/src/main/java/jme3test/effect/TestEverything.java index be05958c3..62f06a422 100644 --- a/jme3-examples/src/main/java/jme3test/effect/TestEverything.java +++ b/jme3-examples/src/main/java/jme3test/effect/TestEverything.java @@ -36,7 +36,8 @@ import com.jme3.app.SimpleApplication; import com.jme3.light.DirectionalLight; import com.jme3.material.Material; import com.jme3.math.*; -import com.jme3.post.HDRRenderer; +import com.jme3.post.FilterPostProcessor; +import com.jme3.post.filters.ToneMapFilter; import com.jme3.renderer.Caps; import com.jme3.renderer.queue.RenderQueue.ShadowMode; import com.jme3.scene.Geometry; @@ -44,7 +45,7 @@ import com.jme3.scene.Node; import com.jme3.scene.Spatial; import com.jme3.scene.Spatial.CullHint; import com.jme3.scene.shape.Box; -import com.jme3.shadow.BasicShadowRenderer; +import com.jme3.shadow.DirectionalLightShadowRenderer; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.util.SkyFactory; @@ -52,8 +53,8 @@ import com.jme3.util.TangentBinormalGenerator; public class TestEverything extends SimpleApplication { - private BasicShadowRenderer bsr; - private HDRRenderer hdrRender; + private DirectionalLightShadowRenderer dlsr; + private ToneMapFilter toneMapFilter; private Vector3f lightDir = new Vector3f(-1, -1, .5f).normalizeLocal(); public static void main(String[] args){ @@ -63,26 +64,20 @@ public class TestEverything extends SimpleApplication { public void setupHdr(){ if (renderer.getCaps().contains(Caps.GLSL100)){ - hdrRender = new HDRRenderer(assetManager, renderer); - hdrRender.setMaxIterations(40); - hdrRender.setSamples(settings.getSamples()); - - hdrRender.setWhiteLevel(3); - hdrRender.setExposure(0.72f); - hdrRender.setThrottle(1); + toneMapFilter = new ToneMapFilter(); + toneMapFilter.setWhitePoint(new Vector3f(3f, 3f, 3f)); + FilterPostProcessor fpp = new FilterPostProcessor(assetManager); + fpp.addFilter(toneMapFilter); + viewPort.addProcessor(fpp); // setPauseOnLostFocus(false); - // new HDRConfig(hdrRender).setVisible(true); - - viewPort.addProcessor(hdrRender); } } public void setupBasicShadow(){ if (renderer.getCaps().contains(Caps.GLSL100)){ - bsr = new BasicShadowRenderer(assetManager, 1024); - bsr.setDirection(lightDir); - viewPort.addProcessor(bsr); + dlsr = new DirectionalLightShadowRenderer(assetManager, 1024, 1); + viewPort.addProcessor(dlsr); } } @@ -93,16 +88,20 @@ public class TestEverything extends SimpleApplication { }else{ envMap = assetManager.loadTexture("Textures/Sky/St Peters/StPeters.jpg"); } - rootNode.attachChild(SkyFactory.createSky(assetManager, envMap, new Vector3f(-1,-1,-1), true)); + rootNode.attachChild(SkyFactory.createSky(assetManager, envMap, + new Vector3f(-1,-1,-1), SkyFactory.EnvMapType.SphereMap)); } public void setupLighting(){ boolean hdr = false; - if (hdrRender != null){ - hdr = hdrRender.isEnabled(); + if (toneMapFilter != null){ + hdr = toneMapFilter.isEnabled(); } DirectionalLight dl = new DirectionalLight(); + if (dlsr != null) { + dlsr.setLight(dl); + } dl.setDirection(lightDir); if (hdr){ dl.setColor(new ColorRGBA(3, 3, 3, 1)); diff --git a/jme3-examples/src/main/java/jme3test/effect/TestExplosionEffect.java b/jme3-examples/src/main/java/jme3test/effect/TestExplosionEffect.java index 5d2d781a6..ff5100ffe 100644 --- a/jme3-examples/src/main/java/jme3test/effect/TestExplosionEffect.java +++ b/jme3-examples/src/main/java/jme3test/effect/TestExplosionEffect.java @@ -98,8 +98,9 @@ public class TestExplosionEffect extends SimpleApplication { flash.setGravity(0, 0, 0); flash.setLowLife(.2f); flash.setHighLife(.2f); - flash.setInitialVelocity(new Vector3f(0, 5f, 0)); - flash.setVelocityVariation(1); + flash.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 5f, 0)); + flash.getParticleInfluencer().setVelocityVariation(1); flash.setImagesX(2); flash.setImagesY(2); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); @@ -120,8 +121,9 @@ public class TestExplosionEffect extends SimpleApplication { roundspark.setGravity(0, -.5f, 0); roundspark.setLowLife(1.8f); roundspark.setHighLife(2f); - roundspark.setInitialVelocity(new Vector3f(0, 3, 0)); - roundspark.setVelocityVariation(.5f); + roundspark.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 3, 0)); + roundspark.getParticleInfluencer().setVelocityVariation(.5f); roundspark.setImagesX(1); roundspark.setImagesY(1); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); @@ -165,8 +167,9 @@ public class TestExplosionEffect extends SimpleApplication { smoketrail.setGravity(0, 1, 0); smoketrail.setLowLife(.4f); smoketrail.setHighLife(.5f); - smoketrail.setInitialVelocity(new Vector3f(0, 12, 0)); - smoketrail.setVelocityVariation(1); + smoketrail.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 12, 0)); + smoketrail.getParticleInfluencer().setVelocityVariation(1); smoketrail.setImagesX(1); smoketrail.setImagesY(3); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); @@ -190,8 +193,9 @@ public class TestExplosionEffect extends SimpleApplication { debris.setGravity(0, 12f, 0); debris.setLowLife(1.4f); debris.setHighLife(1.5f); - debris.setInitialVelocity(new Vector3f(0, 15, 0)); - debris.setVelocityVariation(.60f); + debris.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 15, 0)); + debris.getParticleInfluencer().setVelocityVariation(.60f); debris.setImagesX(3); debris.setImagesY(3); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); @@ -214,8 +218,9 @@ public class TestExplosionEffect extends SimpleApplication { shockwave.setGravity(0, 0, 0); shockwave.setLowLife(0.5f); shockwave.setHighLife(0.5f); - shockwave.setInitialVelocity(new Vector3f(0, 0, 0)); - shockwave.setVelocityVariation(0f); + shockwave.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, 0, 0)); + shockwave.getParticleInfluencer().setVelocityVariation(0f); shockwave.setImagesX(1); shockwave.setImagesY(1); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); diff --git a/jme3-examples/src/main/java/jme3test/effect/TestMovingParticle.java b/jme3-examples/src/main/java/jme3test/effect/TestMovingParticle.java index d603e229a..b38eed97a 100644 --- a/jme3-examples/src/main/java/jme3test/effect/TestMovingParticle.java +++ b/jme3-examples/src/main/java/jme3test/effect/TestMovingParticle.java @@ -60,10 +60,11 @@ public class TestMovingParticle extends SimpleApplication { public void simpleInitApp() { emit = new ParticleEmitter("Emitter", Type.Triangle, 300); emit.setGravity(0, 0, 0); - emit.setVelocityVariation(1); + emit.getParticleInfluencer().setVelocityVariation(1); emit.setLowLife(1); emit.setHighLife(1); - emit.setInitialVelocity(new Vector3f(0, .5f, 0)); + emit.getParticleInfluencer() + .setInitialVelocity(new Vector3f(0, .5f, 0)); emit.setImagesX(15); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png")); diff --git a/jme3-examples/src/main/java/jme3test/effect/TestParticleExportingCloning.java b/jme3-examples/src/main/java/jme3test/effect/TestParticleExportingCloning.java index d245de23f..d38fdbdf9 100644 --- a/jme3-examples/src/main/java/jme3test/effect/TestParticleExportingCloning.java +++ b/jme3-examples/src/main/java/jme3test/effect/TestParticleExportingCloning.java @@ -57,7 +57,7 @@ public class TestParticleExportingCloning extends SimpleApplication { emit.setGravity(0, 0, 0); emit.setLowLife(5); emit.setHighLife(10); - emit.setInitialVelocity(new Vector3f(0, 0, 0)); + emit.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 0, 0)); emit.setImagesX(15); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png")); diff --git a/jme3-examples/src/main/java/jme3test/helloworld/HelloAudio.java b/jme3-examples/src/main/java/jme3test/helloworld/HelloAudio.java index b9943879c..bc13e01e8 100644 --- a/jme3-examples/src/main/java/jme3test/helloworld/HelloAudio.java +++ b/jme3-examples/src/main/java/jme3test/helloworld/HelloAudio.java @@ -1,6 +1,7 @@ package jme3test.helloworld; import com.jme3.app.SimpleApplication; +import com.jme3.audio.AudioData.DataType; import com.jme3.audio.AudioNode; import com.jme3.input.MouseInput; import com.jme3.input.controls.ActionListener; @@ -42,14 +43,16 @@ public class HelloAudio extends SimpleApplication { /** We create two audio nodes. */ private void initAudio() { /* gun shot sound is to be triggered by a mouse click. */ - audio_gun = new AudioNode(assetManager, "Sound/Effects/Gun.wav", false); + audio_gun = new AudioNode(assetManager, + "Sound/Effects/Gun.wav", DataType.Buffer); audio_gun.setPositional(false); audio_gun.setLooping(false); audio_gun.setVolume(2); rootNode.attachChild(audio_gun); /* nature sound - keeps playing in a loop. */ - audio_nature = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", true); + audio_nature = new AudioNode(assetManager, + "Sound/Environment/Ocean Waves.ogg", DataType.Stream); audio_nature.setLooping(true); // activate continuous playing audio_nature.setPositional(true); audio_nature.setVolume(3); diff --git a/jme3-examples/src/main/java/jme3test/light/TestDirectionalLightShadow.java b/jme3-examples/src/main/java/jme3test/light/TestDirectionalLightShadow.java index 6e3ad412b..79aacc616 100644 --- a/jme3-examples/src/main/java/jme3test/light/TestDirectionalLightShadow.java +++ b/jme3-examples/src/main/java/jme3test/light/TestDirectionalLightShadow.java @@ -59,6 +59,7 @@ import com.jme3.shadow.EdgeFilteringMode; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import com.jme3.util.TangentBinormalGenerator; public class TestDirectionalLightShadow extends SimpleApplication implements ActionListener, AnalogListener { @@ -155,7 +156,8 @@ public class TestDirectionalLightShadow extends SimpleApplication implements Act al.setColor(ColorRGBA.White.mult(0.02f)); rootNode.addLight(al); - Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Scenes/Beach/FullskiesSunset0068.dds", EnvMapType.CubeMap); sky.setLocalScale(350); rootNode.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/light/TestEnvironmentMapping.java b/jme3-examples/src/main/java/jme3test/light/TestEnvironmentMapping.java index ff674f664..4785b33c1 100644 --- a/jme3-examples/src/main/java/jme3test/light/TestEnvironmentMapping.java +++ b/jme3-examples/src/main/java/jme3test/light/TestEnvironmentMapping.java @@ -48,7 +48,8 @@ public class TestEnvironmentMapping extends SimpleApplication { chaseCam.setLookAtOffset(new Vector3f(0,0.5f,-1.0f)); buggy.addControl(chaseCam); rootNode.attachChild(buggy); - rootNode.attachChild(SkyFactory.createSky(assetManager, tex, false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, tex, + SkyFactory.EnvMapType.CubeMap)); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); BloomFilter bf = new BloomFilter(BloomFilter.GlowMode.Objects); diff --git a/jme3-examples/src/main/java/jme3test/model/anim/TestCustomAnim.java b/jme3-examples/src/main/java/jme3test/model/anim/TestCustomAnim.java index b5eeb5365..93403587a 100644 --- a/jme3-examples/src/main/java/jme3test/model/anim/TestCustomAnim.java +++ b/jme3-examples/src/main/java/jme3test/model/anim/TestCustomAnim.java @@ -93,7 +93,7 @@ public class TestCustomAnim extends SimpleApplication { box.setBuffer(indicesBuf); // Create bind pose buffers - box.generateBindPose(true); + box.generateBindPose(); // Create skeleton bone = new Bone("root"); diff --git a/jme3-examples/src/main/java/jme3test/post/TestBloom.java b/jme3-examples/src/main/java/jme3test/post/TestBloom.java index 1a394bf36..9572568ea 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestBloom.java +++ b/jme3-examples/src/main/java/jme3test/post/TestBloom.java @@ -49,6 +49,7 @@ import com.jme3.scene.Spatial; import com.jme3.scene.debug.WireFrustum; import com.jme3.scene.shape.Box; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; public class TestBloom extends SimpleApplication { @@ -114,7 +115,9 @@ public class TestBloom extends SimpleApplication { rootNode.addLight(light); // load sky - Spatial sky = SkyFactory.createSky(assetManager, "Textures/Sky/Bright/FullskiesBlueClear03.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/FullskiesBlueClear03.dds", + EnvMapType.CubeMap); sky.setCullHint(Spatial.CullHint.Never); rootNode.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/post/TestBloomAlphaThreshold.java b/jme3-examples/src/main/java/jme3test/post/TestBloomAlphaThreshold.java index 0514aced5..b9f136726 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestBloomAlphaThreshold.java +++ b/jme3-examples/src/main/java/jme3test/post/TestBloomAlphaThreshold.java @@ -51,6 +51,7 @@ import com.jme3.scene.Spatial; import com.jme3.scene.debug.WireFrustum; import com.jme3.scene.shape.Box; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; public class TestBloomAlphaThreshold extends SimpleApplication { @@ -101,7 +102,10 @@ public class TestBloomAlphaThreshold extends SimpleApplication teapot.setLocalScale(10.0f); rootNode.attachChild(teapot); - Geometry soil = new Geometry("soil", new Box(new Vector3f(0, -13, 550), 800, 10, 700)); + Vector3f boxMin1 = new Vector3f(-800f, -23f, -150f); + Vector3f boxMax1 = new Vector3f(800f, 3f, 1250f); + Box boxMesh1 = new Box(boxMin1, boxMax1); + Geometry soil = new Geometry("soil", boxMesh1); soil.setMaterial(matSoil); soil.setShadowMode(ShadowMode.CastAndReceive); rootNode.attachChild(soil); @@ -110,7 +114,10 @@ public class TestBloomAlphaThreshold extends SimpleApplication matBox.setTexture("ColorMap", assetManager.loadTexture("Textures/ColoredTex/Monkey.png")); matBox.setFloat("AlphaDiscardThreshold", 0.5f); - Geometry box = new Geometry("box", new Box(new Vector3f(-3.5f, 10, -2), 2, 2, 2)); + Vector3f boxMin2 = new Vector3f(-5.5f, 8f, -4f); + Vector3f boxMax2 = new Vector3f(-1.5f, 12f, 0f); + Box boxMesh2 = new Box(boxMin2, boxMax2); + Geometry box = new Geometry("box", boxMesh2); box.setMaterial(matBox); box.setQueueBucket(RenderQueue.Bucket.Translucent); // box.setShadowMode(ShadowMode.CastAndReceive); @@ -122,7 +129,9 @@ public class TestBloomAlphaThreshold extends SimpleApplication rootNode.addLight(light); // load sky - Spatial sky = SkyFactory.createSky(assetManager, "Textures/Sky/Bright/FullskiesBlueClear03.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/FullskiesBlueClear03.dds", + EnvMapType.CubeMap); sky.setCullHint(Spatial.CullHint.Never); rootNode.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/post/TestCrossHatch.java b/jme3-examples/src/main/java/jme3test/post/TestCrossHatch.java index ff3ef081c..5cc3669ae 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestCrossHatch.java +++ b/jme3-examples/src/main/java/jme3test/post/TestCrossHatch.java @@ -49,6 +49,7 @@ import com.jme3.scene.Spatial; import com.jme3.scene.debug.WireFrustum; import com.jme3.scene.shape.Box; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; public class TestCrossHatch extends SimpleApplication { @@ -114,7 +115,9 @@ public class TestCrossHatch extends SimpleApplication { rootNode.addLight(light); // load sky - Spatial sky = SkyFactory.createSky(assetManager, "Textures/Sky/Bright/FullskiesBlueClear03.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/FullskiesBlueClear03.dds", + EnvMapType.CubeMap); sky.setCullHint(Spatial.CullHint.Never); rootNode.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/post/TestDepthOfField.java b/jme3-examples/src/main/java/jme3test/post/TestDepthOfField.java index 9966adc61..263d45ff3 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestDepthOfField.java +++ b/jme3-examples/src/main/java/jme3test/post/TestDepthOfField.java @@ -21,6 +21,7 @@ import com.jme3.terrain.heightmap.ImageBasedHeightMap; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import java.util.ArrayList; import java.util.List; @@ -65,7 +66,8 @@ public class TestDepthOfField extends SimpleApplication { cam.setRotation(new Quaternion().fromAngles(new float[]{FastMath.PI * 0.06f, FastMath.PI * 0.65f, 0})); - Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Scenes/Beach/FullskiesSunset0068.dds", EnvMapType.CubeMap); sky.setLocalScale(350); mainScene.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/post/TestFog.java b/jme3-examples/src/main/java/jme3test/post/TestFog.java index 5cecc4bde..544932ab6 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestFog.java +++ b/jme3-examples/src/main/java/jme3test/post/TestFog.java @@ -77,7 +77,9 @@ public class TestFog extends SimpleApplication { cam.setRotation(new Quaternion(0.023536969f, 0.9361278f, -0.016098259f, -0.35050195f)); // load sky - mainScene.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + mainScene.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); createTerrain(mainScene); diff --git a/jme3-examples/src/main/java/jme3test/post/TestLightScattering.java b/jme3-examples/src/main/java/jme3test/post/TestLightScattering.java index 2f12f3892..c2940cab6 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestLightScattering.java +++ b/jme3-examples/src/main/java/jme3test/post/TestLightScattering.java @@ -44,7 +44,6 @@ import com.jme3.renderer.queue.RenderQueue.ShadowMode; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; -import com.jme3.shadow.PssmShadowRenderer; import com.jme3.util.SkyFactory; import com.jme3.util.TangentBinormalGenerator; @@ -76,7 +75,9 @@ public class TestLightScattering extends SimpleApplication { rootNode.attachChild(scene); // load sky - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/FullskiesBlueClear03.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/FullskiesBlueClear03.dds", + SkyFactory.EnvMapType.CubeMap)); DirectionalLight sun = new DirectionalLight(); Vector3f lightDir = new Vector3f(-0.12f, -0.3729129f, 0.74847335f); diff --git a/jme3-examples/src/main/java/jme3test/post/TestMultiViewsFilters.java b/jme3-examples/src/main/java/jme3test/post/TestMultiViewsFilters.java index 477dd96c7..adbc036c7 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestMultiViewsFilters.java +++ b/jme3-examples/src/main/java/jme3test/post/TestMultiViewsFilters.java @@ -126,7 +126,9 @@ public class TestMultiViewsFilters extends SimpleApplication { - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); final FilterPostProcessor fpp = new FilterPostProcessor(assetManager); final FilterPostProcessor fpp2 = new FilterPostProcessor(assetManager); diff --git a/jme3-examples/src/main/java/jme3test/post/TestMultiplesFilters.java b/jme3-examples/src/main/java/jme3test/post/TestMultiplesFilters.java index 010651379..46efd639a 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestMultiplesFilters.java +++ b/jme3-examples/src/main/java/jme3test/post/TestMultiplesFilters.java @@ -72,7 +72,9 @@ public class TestMultiplesFilters extends SimpleApplication { cam.setRotation(new Quaternion(0.0016069f, 0.9810479f, -0.008143323f, 0.19358753f)); // load sky - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); // create the geometry and attach it // load the level from zip or http zip diff --git a/jme3-examples/src/main/java/jme3test/post/TestPostFilters.java b/jme3-examples/src/main/java/jme3test/post/TestPostFilters.java index c5fc0b9d8..c2ee5b04b 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestPostFilters.java +++ b/jme3-examples/src/main/java/jme3test/post/TestPostFilters.java @@ -50,6 +50,7 @@ import com.jme3.system.AppSettings; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import com.jme3.util.TangentBinormalGenerator; public class TestPostFilters extends SimpleApplication implements ActionListener { @@ -88,7 +89,9 @@ public class TestPostFilters extends SimpleApplication implements ActionListener } else { envMap = assetManager.loadTexture("Textures/Sky/St Peters/StPeters.jpg"); } - rootNode.attachChild(SkyFactory.createSky(assetManager, envMap, new Vector3f(-1, -1, -1), true)); + Spatial sky = SkyFactory.createSky(assetManager, envMap, + new Vector3f(-1f, -1f, -1f), EnvMapType.SphereMap); + rootNode.attachChild(sky); } public void setupLighting() { diff --git a/jme3-examples/src/main/java/jme3test/post/TestRenderToCubemap.java b/jme3-examples/src/main/java/jme3test/post/TestRenderToCubemap.java index e5aa79d55..b3473b7ec 100644 --- a/jme3-examples/src/main/java/jme3test/post/TestRenderToCubemap.java +++ b/jme3-examples/src/main/java/jme3test/post/TestRenderToCubemap.java @@ -41,12 +41,14 @@ import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; import com.jme3.renderer.ViewPort; import com.jme3.scene.Geometry; +import com.jme3.scene.Spatial; import com.jme3.scene.shape.Box; import com.jme3.texture.FrameBuffer; import com.jme3.texture.Image.Format; import com.jme3.texture.Texture; import com.jme3.texture.TextureCubeMap; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; /** * Renders a rotating box to a cubemap texture, then applies the cubemap @@ -114,7 +116,9 @@ public class TestRenderToCubemap extends SimpleApplication { cam.lookAt(Vector3f.ZERO, Vector3f.UNIT_Y); Texture offTex = setupOffscreenView(); - rootNode.attachChild(SkyFactory.createSky(assetManager, offTex, false)); + Spatial sky = SkyFactory.createSky(assetManager, offTex, + EnvMapType.CubeMap); + rootNode.attachChild(sky); } @Override diff --git a/jme3-examples/src/main/java/jme3test/scene/TestSceneLoading.java b/jme3-examples/src/main/java/jme3test/scene/TestSceneLoading.java index cadc42e54..2567d94fa 100644 --- a/jme3-examples/src/main/java/jme3test/scene/TestSceneLoading.java +++ b/jme3-examples/src/main/java/jme3test/scene/TestSceneLoading.java @@ -66,7 +66,9 @@ public class TestSceneLoading extends SimpleApplication { this.flyCam.setMoveSpeed(10); // load sky - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); File file = new File("wildhouse.zip"); if (!file.exists()) { diff --git a/jme3-examples/src/main/java/jme3test/water/TestMultiPostWater.java b/jme3-examples/src/main/java/jme3test/water/TestMultiPostWater.java index 2821b818c..2611d9696 100644 --- a/jme3-examples/src/main/java/jme3test/water/TestMultiPostWater.java +++ b/jme3-examples/src/main/java/jme3test/water/TestMultiPostWater.java @@ -20,6 +20,7 @@ import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.texture.Texture2D; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import com.jme3.water.WaterFilter; import java.util.ArrayList; import java.util.List; @@ -73,7 +74,8 @@ public class TestMultiPostWater extends SimpleApplication { cam.setRotation(new Quaternion().fromAngles(new float[]{FastMath.PI * 0.06f, FastMath.PI * 0.65f, 0})); - Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Scenes/Beach/FullskiesSunset0068.dds", EnvMapType.CubeMap); sky.setLocalScale(350); mainScene.attachChild(sky); diff --git a/jme3-examples/src/main/java/jme3test/water/TestPostWater.java b/jme3-examples/src/main/java/jme3test/water/TestPostWater.java index e1d3a08dd..21e11d153 100644 --- a/jme3-examples/src/main/java/jme3test/water/TestPostWater.java +++ b/jme3-examples/src/main/java/jme3test/water/TestPostWater.java @@ -1,6 +1,7 @@ package jme3test.water; import com.jme3.app.SimpleApplication; +import com.jme3.audio.AudioData.DataType; import com.jme3.audio.AudioNode; import com.jme3.audio.LowPassFilter; import com.jme3.effect.ParticleEmitter; @@ -35,6 +36,7 @@ import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; import com.jme3.texture.Texture2D; import com.jme3.util.SkyFactory; +import com.jme3.util.SkyFactory.EnvMapType; import com.jme3.water.WaterFilter; import java.util.ArrayList; import java.util.List; @@ -93,7 +95,8 @@ public class TestPostWater extends SimpleApplication { - Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", false); + Spatial sky = SkyFactory.createSky(assetManager, + "Scenes/Beach/FullskiesSunset0068.dds", EnvMapType.CubeMap); sky.setLocalScale(350); mainScene.attachChild(sky); @@ -149,7 +152,8 @@ public class TestPostWater extends SimpleApplication { uw = cam.getLocation().y < waterHeight; - waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", false); + waves = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", + DataType.Buffer); waves.setLooping(true); waves.setReverbEnabled(true); if (uw) { diff --git a/jme3-examples/src/main/java/jme3test/water/TestPostWaterLake.java b/jme3-examples/src/main/java/jme3test/water/TestPostWaterLake.java index e178c12ac..16441025c 100644 --- a/jme3-examples/src/main/java/jme3test/water/TestPostWaterLake.java +++ b/jme3-examples/src/main/java/jme3test/water/TestPostWaterLake.java @@ -62,7 +62,9 @@ public class TestPostWaterLake extends SimpleApplication { // cam.setRotation(new Quaternion(0.03f, 0.9f, 0f, 0.4f)); // load sky - rootNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + rootNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); File file = new File("wildhouse.zip"); diff --git a/jme3-examples/src/main/java/jme3test/water/TestSceneWater.java b/jme3-examples/src/main/java/jme3test/water/TestSceneWater.java index 41e71c2d3..4e0d8d6fc 100644 --- a/jme3-examples/src/main/java/jme3test/water/TestSceneWater.java +++ b/jme3-examples/src/main/java/jme3test/water/TestSceneWater.java @@ -66,7 +66,9 @@ public class TestSceneWater extends SimpleApplication { cam.setRotation(new Quaternion(0.03f, 0.9f, 0f, 0.4f)); // load sky - mainScene.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + mainScene.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); File file = new File("wildhouse.zip"); diff --git a/jme3-examples/src/main/java/jme3test/water/TestSimpleWater.java b/jme3-examples/src/main/java/jme3test/water/TestSimpleWater.java index 4a8855df6..c8ba06fed 100644 --- a/jme3-examples/src/main/java/jme3test/water/TestSimpleWater.java +++ b/jme3-examples/src/main/java/jme3test/water/TestSimpleWater.java @@ -103,7 +103,9 @@ public class TestSimpleWater extends SimpleApplication implements ActionListener sceneNode.attachChild(geom); // load sky - sceneNode.attachChild(SkyFactory.createSky(assetManager, "Textures/Sky/Bright/BrightSky.dds", false)); + sceneNode.attachChild(SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap)); rootNode.attachChild(sceneNode); //add lightPos Geometry From 990791b21c62cc68664ab1c41d80b9f5dd158def Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:28:34 -0800 Subject: [PATCH 085/150] remove setFlushQueues(), which is deprecated and has no effect --- jme3-examples/src/main/java/jme3test/light/TestShadowBug.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/light/TestShadowBug.java b/jme3-examples/src/main/java/jme3test/light/TestShadowBug.java index cecb53224..acf2d6df1 100644 --- a/jme3-examples/src/main/java/jme3test/light/TestShadowBug.java +++ b/jme3-examples/src/main/java/jme3test/light/TestShadowBug.java @@ -100,14 +100,12 @@ public class TestShadowBug extends SimpleApplication { slsr.setLight(spot); slsr.setEdgeFilteringMode(EdgeFilteringMode.Nearest); slsr.setShadowIntensity(0.6f); - slsr.setFlushQueues(false); viewPort.addProcessor(slsr); PointLightShadowRenderer plsr = new PointLightShadowRenderer(assetManager, 512); plsr.setLight(lamp_light); plsr.setShadowIntensity(0.6f); plsr.setEdgeFilteringMode(EdgeFilteringMode.Nearest); - plsr.setFlushQueues(false); viewPort.addProcessor(plsr); viewPort.getCamera().setLocation(new Vector3f(192.0f, 10f, 192f)); From 99f4f20c7569a005de5ac5dab296d615a42b01f0 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:32:16 -0800 Subject: [PATCH 086/150] remove deprecated BasicShadowRenderer from TestFancyCar --- .../src/main/java/jme3test/bullet/TestFancyCar.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java b/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java index ca64536de..d628d4616 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java +++ b/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java @@ -51,7 +51,6 @@ import com.jme3.renderer.queue.RenderQueue.ShadowMode; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; -import com.jme3.shadow.BasicShadowRenderer; import com.jme3.system.AppSettings; public class TestFancyCar extends SimpleApplication implements ActionListener { @@ -90,11 +89,6 @@ public class TestFancyCar extends SimpleApplication implements ActionListener { bulletAppState = new BulletAppState(); stateManager.attach(bulletAppState); // bulletAppState.getPhysicsSpace().enableDebug(assetManager); - if (settings.getRenderer().startsWith("LWJGL")) { - BasicShadowRenderer bsr = new BasicShadowRenderer(assetManager, 512); - bsr.setDirection(new Vector3f(-0.5f, -0.3f, -0.3f).normalizeLocal()); - // viewPort.addProcessor(bsr); - } cam.setFrustumFar(150f); flyCam.setMoveSpeed(10); From f27f56855617c62e8262a7aa29b840a9ce1d07a9 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:33:35 -0800 Subject: [PATCH 087/150] remove deprecated shadow renderers from 3 physics tests --- .../src/main/java/jme3test/bullet/TestBrickTower.java | 11 ----------- .../src/main/java/jme3test/bullet/TestBrickWall.java | 5 ----- 2 files changed, 16 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/bullet/TestBrickTower.java b/jme3-examples/src/main/java/jme3test/bullet/TestBrickTower.java index 7b0df933d..feffac8e6 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/TestBrickTower.java +++ b/jme3-examples/src/main/java/jme3test/bullet/TestBrickTower.java @@ -81,9 +81,6 @@ import com.jme3.scene.Geometry; import com.jme3.scene.shape.Box; import com.jme3.scene.shape.Sphere; import com.jme3.scene.shape.Sphere.TextureMode; -import com.jme3.shadow.PssmShadowRenderer; -import com.jme3.shadow.PssmShadowRenderer.CompareMode; -import com.jme3.shadow.PssmShadowRenderer.FilterMode; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; @@ -104,7 +101,6 @@ public class TestBrickTower extends SimpleApplication { Material mat; Material mat2; Material mat3; - PssmShadowRenderer bsr; private Sphere bullet; private Box brick; private SphereCollisionShape bulletCollisionShape; @@ -139,13 +135,6 @@ public class TestBrickTower extends SimpleApplication { inputManager.addMapping("shoot", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); inputManager.addListener(actionListener, "shoot"); rootNode.setShadowMode(ShadowMode.Off); - bsr = new PssmShadowRenderer(assetManager, 1024, 2); - bsr.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); - bsr.setLambda(0.55f); - bsr.setShadowIntensity(0.6f); - bsr.setCompareMode(CompareMode.Hardware); - bsr.setFilterMode(FilterMode.PCF4); - viewPort.addProcessor(bsr); } private PhysicsSpace getPhysicsSpace() { diff --git a/jme3-examples/src/main/java/jme3test/bullet/TestBrickWall.java b/jme3-examples/src/main/java/jme3test/bullet/TestBrickWall.java index 0173f1a44..ce61e355e 100644 --- a/jme3-examples/src/main/java/jme3test/bullet/TestBrickWall.java +++ b/jme3-examples/src/main/java/jme3test/bullet/TestBrickWall.java @@ -52,7 +52,6 @@ import com.jme3.scene.Geometry; import com.jme3.scene.shape.Box; import com.jme3.scene.shape.Sphere; import com.jme3.scene.shape.Sphere.TextureMode; -import com.jme3.shadow.BasicShadowRenderer; import com.jme3.texture.Texture; import com.jme3.texture.Texture.WrapMode; @@ -68,7 +67,6 @@ public class TestBrickWall extends SimpleApplication { Material mat; Material mat2; Material mat3; - BasicShadowRenderer bsr; private static Sphere bullet; private static Box brick; private static SphereCollisionShape bulletCollisionShape; @@ -106,9 +104,6 @@ public class TestBrickWall extends SimpleApplication { inputManager.addListener(actionListener, "gc"); rootNode.setShadowMode(ShadowMode.Off); - bsr = new BasicShadowRenderer(assetManager, 256); - bsr.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); - viewPort.addProcessor(bsr); } private PhysicsSpace getPhysicsSpace() { From 247d5d93241d52d24334cad6e686f63de2142b68 Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Wed, 13 Dec 2017 18:37:42 -0800 Subject: [PATCH 088/150] package protect the MovingAverage class instead of deprecating it --- .../src/main/java/jme3test/network/MovingAverage.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/network/MovingAverage.java b/jme3-examples/src/main/java/jme3test/network/MovingAverage.java index ef7a5e7cb..991b5e5f6 100644 --- a/jme3-examples/src/main/java/jme3test/network/MovingAverage.java +++ b/jme3-examples/src/main/java/jme3test/network/MovingAverage.java @@ -32,8 +32,7 @@ package jme3test.network; -@Deprecated -public class MovingAverage { +class MovingAverage { private long[] samples; private long sum; From 435f2d4d05da30f3a3a6650fac611292e5f2d42e Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 17 Dec 2017 18:46:46 +0100 Subject: [PATCH 089/150] Prevents NaN time when animation length is 0 (case of a pose) --- .../src/main/java/com/jme3/animation/AnimationUtils.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java b/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java index 9cbe5d7dd..2254638e7 100644 --- a/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java +++ b/jme3-core/src/main/java/com/jme3/animation/AnimationUtils.java @@ -31,10 +31,6 @@ */ package com.jme3.animation; -import static com.jme3.animation.LoopMode.Cycle; -import static com.jme3.animation.LoopMode.DontLoop; -import static com.jme3.animation.LoopMode.Loop; - /** * * @author Nehon @@ -52,7 +48,7 @@ public class AnimationUtils { * @return */ public static float clampWrapTime(float time, float duration, LoopMode loopMode){ - if (time == 0) { + if (time == 0 || duration == 0) { return 0; // prevent division by 0 errors } switch (loopMode) { From fc8135412f0236bb65684eedd14272d11bc3a620 Mon Sep 17 00:00:00 2001 From: Nehon Date: Mon, 18 Dec 2017 17:43:57 +0100 Subject: [PATCH 090/150] Fixes normal lighting in world space for PBR --- .../src/main/java/com/jme3/shader/UniformBinding.java | 9 ++++++++- .../main/java/com/jme3/shader/UniformBindingManager.java | 9 +++++++++ .../main/resources/Common/MatDefs/Light/PBRLighting.j3md | 1 + .../main/resources/Common/ShaderLib/Instancing.glsllib | 3 ++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/shader/UniformBinding.java b/jme3-core/src/main/java/com/jme3/shader/UniformBinding.java index 46b689cd9..1235dde7f 100644 --- a/jme3-core/src/main/java/com/jme3/shader/UniformBinding.java +++ b/jme3-core/src/main/java/com/jme3/shader/UniformBinding.java @@ -195,7 +195,14 @@ public enum UniformBinding { * The light color when rendering in multi pass mode * Type: vec4 */ - LightColor("vec4"); + LightColor("vec4"), + + /** + * The normal matrix in world space for World space lighting. The inverse transpose of the world matrix. + * Converts normals from model space to world space. + * Type: mat3 + */ + WorldNormalMatrix("mat3"); String glslType; diff --git a/jme3-core/src/main/java/com/jme3/shader/UniformBindingManager.java b/jme3-core/src/main/java/com/jme3/shader/UniformBindingManager.java index f9ead8979..340fc162c 100644 --- a/jme3-core/src/main/java/com/jme3/shader/UniformBindingManager.java +++ b/jme3-core/src/main/java/com/jme3/shader/UniformBindingManager.java @@ -36,6 +36,7 @@ import com.jme3.math.*; import com.jme3.renderer.Camera; import com.jme3.renderer.RenderManager; import com.jme3.system.Timer; + import java.util.ArrayList; /** @@ -66,6 +67,7 @@ public class UniformBindingManager { private Matrix4f worldViewMatrix = new Matrix4f(); private Matrix4f worldViewProjMatrix = new Matrix4f(); private Matrix3f normalMatrix = new Matrix3f(); + private Matrix3f worldNormalMatrix = new Matrix3f(); private Matrix4f worldMatrixInv = new Matrix4f(); private Matrix3f worldMatrixInvTrsp = new Matrix3f(); private Matrix4f viewMatrixInv = new Matrix4f(); @@ -114,6 +116,13 @@ public class UniformBindingManager { normalMatrix.transposeLocal(); u.setValue(VarType.Matrix3, normalMatrix); break; + case WorldNormalMatrix: + tempMatrix.set(worldMatrix); + tempMatrix.toRotationMatrix(worldNormalMatrix); + worldNormalMatrix.invertLocal(); + worldNormalMatrix.transposeLocal(); + u.setValue(VarType.Matrix3, worldNormalMatrix); + break; case WorldViewProjectionMatrix: worldViewProjMatrix.set(viewProjMatrix); worldViewProjMatrix.multLocal(worldMatrix); diff --git a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.j3md b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.j3md index 61edf8e0d..afca96d4c 100644 --- a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.j3md +++ b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.j3md @@ -130,6 +130,7 @@ MaterialDef PBR Lighting { WorldViewProjectionMatrix CameraPosition WorldMatrix + WorldNormalMatrix ViewProjectionMatrix ViewMatrix } diff --git a/jme3-core/src/main/resources/Common/ShaderLib/Instancing.glsllib b/jme3-core/src/main/resources/Common/ShaderLib/Instancing.glsllib index 5a45ed2f2..37c3a40cf 100644 --- a/jme3-core/src/main/resources/Common/ShaderLib/Instancing.glsllib +++ b/jme3-core/src/main/resources/Common/ShaderLib/Instancing.glsllib @@ -25,6 +25,7 @@ uniform mat4 g_WorldViewMatrix; uniform mat4 g_WorldViewProjectionMatrix; uniform mat4 g_ViewProjectionMatrix; uniform mat3 g_NormalMatrix; +uniform mat3 g_WorldNormalMatrix; #if defined INSTANCING @@ -101,7 +102,7 @@ vec3 TransformNormal(vec3 normal) { } vec3 TransformWorldNormal(vec3 normal) { - return normalize((g_WorldMatrix * vec4(normal,0.0)).xyz); + return normalize(g_WorldNormalMatrix * normal); } From 3cd96b205372cbe0bb7d1968869d836d25196104 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Tue, 12 Dec 2017 14:57:11 +0100 Subject: [PATCH 091/150] Blender ImageLoader: Support Loading of HDR Files and many other --- .../plugins/blender/textures/ImageLoader.java | 133 +++++++++--------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/ImageLoader.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/ImageLoader.java index ccb21bdf9..806de78f5 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/ImageLoader.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/ImageLoader.java @@ -31,12 +31,14 @@ */ package com.jme3.scene.plugins.blender.textures; +import com.jme3.asset.AssetManager; +import com.jme3.asset.TextureKey; import com.jme3.scene.plugins.blender.file.BlenderInputStream; import com.jme3.texture.Image; +import com.jme3.texture.Texture; import com.jme3.texture.plugins.AWTLoader; -import com.jme3.texture.plugins.DDSLoader; -import com.jme3.texture.plugins.TGALoader; -import java.io.InputStream; +import com.jme3.texture.plugins.HDRLoader; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -47,11 +49,29 @@ import java.util.logging.Logger; */ /* package */class ImageLoader extends AWTLoader { private static final Logger LOGGER = Logger.getLogger(ImageLoader.class.getName()); - - protected DDSLoader ddsLoader = new DDSLoader(); // DirectX image loader + private static final Logger hdrLogger = Logger.getLogger(HDRLoader.class.getName()); // Used to silence HDR Errors + + /** + * List of Blender-Supported Texture Extensions (we have to guess them, so + * the AssetLoader can find them. Not good, but better than nothing. + * Source: https://docs.blender.org/manual/en/dev/data_system/files/media/image_formats.html + */ + private static final String[] extensions = new String[] + { /* Windows Bitmap */".bmp", + /* Iris */ ".sgi", ".rgb", ".bw", + /* PNG */ ".png", + /* JPEG */ ".jpg", ".jpeg", + /* JPEG 2000 */ ".jp2", ".j2c", + /* Targa */".tga", + /* Cineon & DPX */".cin", ".dpx", + /* OpenEXR */ ".exr", + /* Radiance HDR */ ".hdr", + /* TIFF */ ".tif", ".tiff", + /* DDS (Direct X) */ ".dds" }; /** - * This method loads the image from the blender file itself. It tries each loader to load the image. + * This method loads a image which is packed into the blender file. + * It makes use of all the registered AssetLoaders * * @param inputStream * blender input stream @@ -60,76 +80,57 @@ import java.util.logging.Logger; * @param flipY * if the image should be flipped (does not work with DirectX image) * @return loaded image or null if it could not be loaded + * @deprecated This method has only been left in for API compability. + * Use loadTexture instead */ - public Image loadImage(BlenderInputStream inputStream, int startPosition, boolean flipY) { - // loading using AWT loader - inputStream.setPosition(startPosition); - Image result = this.loadImage(inputStream, ImageType.AWT, flipY); - // loading using TGA loader - if (result == null) { - inputStream.setPosition(startPosition); - result = this.loadImage(inputStream, ImageType.TGA, flipY); - } - // loading using DDS loader - if (result == null) { - inputStream.setPosition(startPosition); - result = this.loadImage(inputStream, ImageType.DDS, flipY); + public Image loadImage(AssetManager assetManager, BlenderInputStream inputStream, int startPosition, boolean flipY) { + Texture tex = loadTexture(assetManager, inputStream, startPosition, flipY); + + if (tex == null) { + return null; + } else { + return tex.getImage(); } - - if (result == null) { - LOGGER.warning("Image could not be loaded by none of available loaders!"); - } - - return result; } - + /** - * This method loads an image of a specified type from the given input stream. + * This method loads a texture which is packed into the blender file. + * It makes use of all the registered AssetLoaders * * @param inputStream - * the input stream we read the image from - * @param imageType - * the type of the image {@link ImageType} + * blender input stream + * @param startPosition + * position in the stream where the image data starts * @param flipY * if the image should be flipped (does not work with DirectX image) - * @return loaded image or null if it could not be loaded + * @return loaded texture or null if it could not be loaded */ - public Image loadImage(InputStream inputStream, ImageType imageType, boolean flipY) { - Image result = null; - switch (imageType) { - case AWT: - try { - result = this.load(inputStream, flipY); - } catch (Exception e) { - LOGGER.warning("Unable to load image using AWT loader!"); - } - break; - case DDS: - try { - result = ddsLoader.load(inputStream); - } catch (Exception e) { - LOGGER.warning("Unable to load image using DDS loader!"); - } - break; - case TGA: - try { - result = TGALoader.load(inputStream, flipY); - } catch (Exception e) { - LOGGER.warning("Unable to load image using TGA loader!"); - } - break; - default: - throw new IllegalStateException("Unknown image type: " + imageType); + public Texture loadTexture(AssetManager assetManager, BlenderInputStream inputStream, int startPosition, boolean flipY) { + inputStream.setPosition(startPosition); + TextureKey tKey; + Texture result = null; + + hdrLogger.setLevel(Level.SEVERE); // When we bruteforce try HDR on a non hdr file, it prints unreadable chars + + for (String ext: extensions) { + tKey = new TextureKey("dummy" + ext, flipY); + try { + result = assetManager.loadAssetFromStream(tKey, inputStream); + } catch (Exception e) { + continue; + } + + if (result != null) { + break; // Could locate a possible asset + } + } + + if (result == null) { + LOGGER.warning("Texture could not be loaded by any of the available loaders!\n" + + "Since the file has been packed into the blender file, there is no" + + "way for us to tell you which texture it was."); } + return result; } - - /** - * Image types that can be loaded. AWT: png, jpg, jped or bmp TGA: tga DDS: DirectX image files - * - * @author Marcin Roguski (Kaelthas) - */ - private static enum ImageType { - AWT, TGA, DDS; - } } From 11a647a3d464068681d215d0c514abe6bb50c737 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Tue, 12 Dec 2017 16:25:23 +0100 Subject: [PATCH 092/150] Blender TextureHelper: Make use of ImageLoader's new loadTexture capability --- .../jme3/scene/plugins/blender/textures/TextureHelper.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java index 2d83dcde6..6593226fd 100644 --- a/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java +++ b/jme3-blender/src/main/java/com/jme3/scene/plugins/blender/textures/TextureHelper.java @@ -252,11 +252,8 @@ public class TextureHelper extends AbstractBlenderHelper { blenderContext.getInputStream().setPosition(dataFileBlock.getBlockPosition()); // Should the texture be flipped? It works for sinbad .. - Image img = new ImageLoader().loadImage(blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true); - - if (img != null) { - result = new Texture2D(img); - } else { + result = new ImageLoader().loadTexture(blenderContext.getAssetManager(), blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true); + if (result == null) { result = new Texture2D(PlaceholderAssets.getPlaceholderImage(blenderContext.getAssetManager())); LOGGER.fine("ImageLoader returned null. It probably failed to load the packed texture, using placeholder asset"); } From 0d8b86b66f1df02d102101aeb4f1aa4185d2f3a2 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 24 Dec 2017 22:16:18 +0100 Subject: [PATCH 093/150] Add default config for glb loader --- .gitignore | 1 + jme3-core/src/main/resources/com/jme3/asset/General.cfg | 1 + .../src/gltf/java/com/jme3/scene/plugins/gltf/GlbLoader.java | 4 ---- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index dc6d9aec8..ce4b6840a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ **/.classpath **/.settings **/.project +**/out /.gradle/ /.nb-gradle/ /.idea/ diff --git a/jme3-core/src/main/resources/com/jme3/asset/General.cfg b/jme3-core/src/main/resources/com/jme3/asset/General.cfg index 80b038ba6..2b3b25d93 100644 --- a/jme3-core/src/main/resources/com/jme3/asset/General.cfg +++ b/jme3-core/src/main/resources/com/jme3/asset/General.cfg @@ -25,3 +25,4 @@ LOADER com.jme3.shader.plugins.GLSLLoader : vert, frag, geom, tsctrl, tseval, gl LOADER com.jme3.scene.plugins.fbx.FbxLoader : fbx LOADER com.jme3.scene.plugins.gltf.GltfLoader : gltf LOADER com.jme3.scene.plugins.gltf.BinLoader : bin +LOADER com.jme3.scene.plugins.gltf.GlbLoader : glb diff --git a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GlbLoader.java b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GlbLoader.java index 7ca499c9d..c3fe31103 100644 --- a/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GlbLoader.java +++ b/jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GlbLoader.java @@ -22,9 +22,6 @@ public class GlbLoader extends GltfLoader { int magic = stream.readInt(); int version = stream.readInt(); int length = stream.readInt(); - System.err.println(magic == GLTF_MAGIC ? "gltf" : "no no no"); - System.err.println(version); - System.err.println(length); byte[] json = null; @@ -37,7 +34,6 @@ public class GlbLoader extends GltfLoader { if (chunkType == JSON_TYPE) { json = new byte[chunkLength]; stream.read(json); - System.err.println(new String(json)); } else { byte[] bin = new byte[chunkLength]; stream.read(bin); From edba4b98449eb15467e25d7e4564f31a8e65468e Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Fri, 22 Dec 2017 16:45:25 -0800 Subject: [PATCH 094/150] test override of ColorRGBA mat param with a Vector4f or Quaternion value --- .../material/TestMatParamOverride.java | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java b/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java index 224290f25..6124d9edd 100644 --- a/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java +++ b/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2016 jMonkeyEngine + * Copyright (c) 2009-2017 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,8 @@ import com.jme3.input.controls.KeyTrigger; import com.jme3.material.MatParamOverride; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector4f; import com.jme3.scene.Geometry; import com.jme3.scene.shape.Box; import com.jme3.shader.VarType; @@ -50,7 +52,15 @@ import com.jme3.shader.VarType; public class TestMatParamOverride extends SimpleApplication { private Box box = new Box(1, 1, 1); - private MatParamOverride override = new MatParamOverride(VarType.Vector4, "Color", ColorRGBA.Yellow); + final MatParamOverride overrideYellow + = new MatParamOverride(VarType.Vector4, "Color", + ColorRGBA.Yellow); + final MatParamOverride overrideWhite + = new MatParamOverride(VarType.Vector4, "Color", + Vector4f.UNIT_XYZW); + final MatParamOverride overrideGray + = new MatParamOverride(VarType.Vector4, "Color", + new Quaternion(0.5f, 0.5f, 0.5f, 1f)); public static void main(String[] args) { TestMatParamOverride app = new TestMatParamOverride(); @@ -74,19 +84,30 @@ public class TestMatParamOverride extends SimpleApplication { createBox(0, ColorRGBA.Green); createBox(3, ColorRGBA.Blue); - inputManager.addMapping("override", new KeyTrigger(KeyInput.KEY_SPACE)); + System.out.println("Press G, W, Y, or space bar ..."); + inputManager.addMapping("overrideClear", new KeyTrigger(KeyInput.KEY_SPACE)); + inputManager.addMapping("overrideGray", new KeyTrigger(KeyInput.KEY_G)); + inputManager.addMapping("overrideWhite", new KeyTrigger(KeyInput.KEY_W)); + inputManager.addMapping("overrideYellow", new KeyTrigger(KeyInput.KEY_Y)); inputManager.addListener(new ActionListener() { @Override public void onAction(String name, boolean isPressed, float tpf) { - if (name.equals("override") && isPressed) { - if (!rootNode.getLocalMatParamOverrides().isEmpty()) { + if (isPressed) { + if (name.equals("overrideClear")) { rootNode.clearMatParamOverrides(); - } else { - rootNode.addMatParamOverride(override); + } else if (name.equals("overrideGray")) { + rootNode.clearMatParamOverrides(); + rootNode.addMatParamOverride(overrideGray); + } else if (name.equals("overrideWhite")) { + rootNode.clearMatParamOverrides(); + rootNode.addMatParamOverride(overrideWhite); + } else if (name.equals("overrideYellow")) { + rootNode.clearMatParamOverrides(); + rootNode.addMatParamOverride(overrideYellow); } System.out.println(rootNode.getLocalMatParamOverrides()); } } - }, "override"); + }, "overrideClear", "overrideGray", "overrideWhite", "overrideYellow"); } } From 950721f926bdd0ce9d0bfeb99dd51537f578bc1b Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Fri, 22 Dec 2017 16:47:15 -0800 Subject: [PATCH 095/150] Uniform.java: avoid ClassCastException when overriding Vector4 params --- .../main/java/com/jme3/shader/Uniform.java | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/shader/Uniform.java b/jme3-core/src/main/java/com/jme3/shader/Uniform.java index c377b8ebf..0340c8a13 100644 --- a/jme3-core/src/main/java/com/jme3/shader/Uniform.java +++ b/jme3-core/src/main/java/com/jme3/shader/Uniform.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2012 jMonkeyEngine + * Copyright (c) 2009-2017 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,9 +33,9 @@ package com.jme3.shader; import com.jme3.math.*; import com.jme3.util.BufferUtils; -import java.nio.Buffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; +import com.jme3.util.TempVars; + +import java.nio.*; public class Uniform extends ShaderVariable { @@ -348,22 +348,37 @@ public class Uniform extends ShaderVariable { if (value.equals(this.value)) { return; } - if (value instanceof ColorRGBA) { - if (this.value == null) { - this.value = new ColorRGBA(); + + TempVars vars = TempVars.get(); + Vector4f vec4 = vars.vect4f1; + //handle the null case + if (this.value == null) { + try { + this.value = value.getClass().newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + throw new IllegalArgumentException("Cannot instanciate param of class " + value.getClass().getCanonicalName()); } - ((ColorRGBA) this.value).set((ColorRGBA) value); + } + //feed the pivot vec 4 with the correct value + if (value instanceof ColorRGBA) { + ColorRGBA c = (ColorRGBA) value; + vec4.set(c.r, c.g, c.b, c.a); } else if (value instanceof Vector4f) { - if (this.value == null) { - this.value = new Vector4f(); - } - ((Vector4f) this.value).set((Vector4f) value); + vec4.set((Vector4f) value); } else { - if (this.value == null) { - this.value = new Quaternion(); - } - ((Quaternion) this.value).set((Quaternion) value); + Quaternion q = (Quaternion) value; + vec4.set(q.getX(), q.getY(), q.getZ(), q.getW()); + } + + //feed this.value with the collected values. + if (this.value instanceof ColorRGBA) { + ((ColorRGBA) this.value).set(vec4.x, vec4.y, vec4.z, vec4.w); + } else if (value instanceof Vector4f) { + ((Vector4f) this.value).set(vec4); + } else { + ((Quaternion) this.value).set(vec4.x, vec4.y, vec4.z, vec4.w); } + vars.release(); break; // Only use check if equals optimization for primitive values case Int: From a6b86ad24d783cb533b13bcabc703a9c6ad0f61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Re=CC=81my=20Bouquet?= Date: Mon, 1 Jan 2018 14:12:00 +0100 Subject: [PATCH 096/150] Fixes Lightmap handling in PBR shader --- .../main/resources/Common/MatDefs/Light/PBRLighting.frag | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag index 118ebbe19..9771e4fa5 100644 --- a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag +++ b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag @@ -195,6 +195,8 @@ void main(){ vec4 diffuseColor = albedo - albedo * Metallic; #endif + gl_FragColor.rgb = vec3(0.0); + #ifdef LIGHTMAP vec3 lightMapColor; #ifdef SEPARATE_TEXCOORD @@ -204,12 +206,14 @@ void main(){ #endif #ifdef AO_MAP lightMapColor.gb = lightMapColor.rr; + diffuseColor.rgb *= lightMapColor; + #else + gl_FragColor.rgb += diffuseColor.rgb * lightMapColor; #endif specularColor.rgb *= lightMapColor; - albedo.rgb *= lightMapColor; #endif - gl_FragColor.rgb = vec3(0.0); + float ndotv = max( dot( normal, viewDir ),0.0); for( int i = 0;i < NB_LIGHTS; i+=3){ vec4 lightColor = g_LightData[i]; From 12004217d1b1999b2cdf10296efd5e3b3fe7d60f Mon Sep 17 00:00:00 2001 From: Nehon Date: Thu, 4 Jan 2018 16:53:48 +0100 Subject: [PATCH 097/150] Ao map now only attenuates indirect lighting in PBR shader --- .../Common/MatDefs/Light/PBRLighting.frag | 5 +++-- .../jme3test/light/pbr/TestPBRLighting.java | 17 ++++++----------- .../main/resources/Models/Tank/Tank_AO.png | Bin 0 -> 9175243 bytes .../src/main/resources/Models/Tank/tank.j3m | 2 ++ 4 files changed, 11 insertions(+), 13 deletions(-) create mode 100644 jme3-testdata/src/main/resources/Models/Tank/Tank_AO.png diff --git a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag index 9771e4fa5..7100fc04d 100644 --- a/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag +++ b/jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag @@ -196,6 +196,7 @@ void main(){ #endif gl_FragColor.rgb = vec3(0.0); + vec3 ao = vec3(1.0); #ifdef LIGHTMAP vec3 lightMapColor; @@ -206,7 +207,7 @@ void main(){ #endif #ifdef AO_MAP lightMapColor.gb = lightMapColor.rr; - diffuseColor.rgb *= lightMapColor; + ao = lightMapColor; #else gl_FragColor.rgb += diffuseColor.rgb * lightMapColor; #endif @@ -268,7 +269,7 @@ void main(){ indirectSpecular = ApproximateSpecularIBLPolynomial(g_PrefEnvMap, specularColor.rgb, Roughness, ndotv, dominantR, nbMipMaps); indirectSpecular *= vec3(horiz); - vec3 indirectLighting = indirectDiffuse + indirectSpecular; + vec3 indirectLighting = (indirectDiffuse + indirectSpecular) * ao; gl_FragColor.rgb = gl_FragColor.rgb + indirectLighting * step( 0.0, g_LightProbeData.w); #endif diff --git a/jme3-examples/src/main/java/jme3test/light/pbr/TestPBRLighting.java b/jme3-examples/src/main/java/jme3test/light/pbr/TestPBRLighting.java index 122b2612b..5cb276a07 100644 --- a/jme3-examples/src/main/java/jme3test/light/pbr/TestPBRLighting.java +++ b/jme3-examples/src/main/java/jme3test/light/pbr/TestPBRLighting.java @@ -33,27 +33,22 @@ package jme3test.light.pbr; import com.jme3.app.SimpleApplication; import com.jme3.bounding.BoundingSphere; -import com.jme3.environment.util.*; -import com.jme3.light.LightProbe; -import com.jme3.environment.LightProbeFactory; import com.jme3.environment.EnvironmentCamera; +import com.jme3.environment.LightProbeFactory; import com.jme3.environment.generation.JobProgressAdapter; +import com.jme3.environment.util.EnvMapUtils; +import com.jme3.environment.util.LightsDebugState; import com.jme3.input.ChaseCamera; import com.jme3.input.KeyInput; import com.jme3.input.controls.ActionListener; import com.jme3.input.controls.KeyTrigger; import com.jme3.light.DirectionalLight; +import com.jme3.light.LightProbe; import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.FastMath; -import com.jme3.math.Vector3f; +import com.jme3.math.*; import com.jme3.post.FilterPostProcessor; -import com.jme3.post.filters.FXAAFilter; import com.jme3.post.filters.ToneMapFilter; -import com.jme3.post.ssao.SSAOFilter; -import com.jme3.scene.Geometry; -import com.jme3.scene.Node; -import com.jme3.scene.Spatial; +import com.jme3.scene.*; import com.jme3.texture.plugins.ktx.KTXLoader; import com.jme3.util.MaterialDebugAppState; import com.jme3.util.SkyFactory; diff --git a/jme3-testdata/src/main/resources/Models/Tank/Tank_AO.png b/jme3-testdata/src/main/resources/Models/Tank/Tank_AO.png new file mode 100644 index 0000000000000000000000000000000000000000..9191ee1bd1e732feac1a1e7dd4b959ae55829ee0 GIT binary patch literal 9175243 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 Y4vpcnOcqI5cC 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

    cZ&fy!94&E#=>?s?Z4FTidEop9 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

    A)rsrD*^#W(Qm4qM!kytrx7}fQM&dr@ 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%0D7S9(M%bq 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� zF!sXYcWnmE;Ja-iMaW)j{+_9{R<4F+jh_C7sbp|glK1J6U6xl zLr~&4*5M`#j%0D^3o?S}wkAt#I|^xzSDO_fsY4z=KXO#=S4R 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%0A(0s~|G_>bAnI1bBKjf8`h;uw)^=VX?wk zeD(NT*BBl>y4P!UnehJ5K1==mL=;EkLlL=$0#_ zIbxuwtUoqJFEx!ML0|^@aW@}aR5JS0GJihk3zAbym&I$njo^b*2!Q8GRFV$J`HJA{=*NJ5lKn9DoTa60H zj^q9>1D;7FW{{Y4bT63gRR~nN2&;x@$#2n7mbx9GSKbrGywE_XFrCG|OVI9WBz8T? z6KE}FSGz7wSl9oNGC9#!E{VG3rLmn8efzDyETnDA^L>_KYam;_E8Fb%^5|uw-%3+< ziv!rMr1W8`?%7(k$Nk9fR@aL|y!q~BkYM!vJVt%wdF4Z(M?!V$cJvCwbL++I+H_jW zqHn>;M66%FQW}4292-bX}QrvysV^^wLpP zzibx0dpeX9@^oFCTfiU+bFclQUhtu|L z^mZ%N=LLh!EE@UdCfeuLgQ55NQXN@GDe#ZcDu8N@S`DAcq@;(zQK~GzZe5!#*aBF0Wv#?i zHC<3f`s2bvrUEEtlA0^m_P3g-chwOpPKCuMrvs|g<0Su9!PE6(6LQvAD)J0|l>R0v zeXAo^9Ms(SsksxH@1~RiYk4GP$QEgp!+HvH8TUcGi-sDeZ3MB#L#3Kg;|CWL-o!&O z8}e?QWoA091sH%F#*B910sMAh1B0oD>IB}v;BHre#6zG{a zu0c&6qrHLWpRY6nUaD-Cqcq+>(?OO5HMg!w)Q`iFi(d|H*-d>t?eSd^TViWlVOyez zU8cBhlN@E>=k$p_W#eafgK0ft;7EwkZHx-7Ts8- z`|!n;Zv40{pJD*_ruFZoN>;kx60(Vpm+$R0wr}2~3ok#%{*8FvnQKZs-MnLT@~q!5 ztx?#GFX_+#l*RSix5e<#kXyw{tUP4SBXa^7?=DI zXWho)IavHw0)T?KAhy2?_w+bS_6!D4r;YxUz0uw0_X0(R>R$HCrJ?oGW*Wdf%V)!e zsf`p@_18ew#&n8>eQan^I!vtCNBU)cm8w-*N6m|YnhyU?02#WYu_s*fPe1iu*o>!5 z0^(z8oi;_Ugq4D33T% zWSHBV+~ym14GR)WA(IsPOuAoTORCPy4J4+EH~yEWf5N%z2ie^it~dW?{0N-9#^>u$ z!FvIW#}I=J(_uTzs;HfZ&DuO4hmSVAk0hztVoCe#ma7B*1MaP<41P)y_^$yun^NPO z=^tK?6k(OlvvJ`5T@v*jzm7hWP9zLvB}kB-z!tge_ya(yM`!@ZSc31K#JCpk;c9%6 zU3F$ZE7;FKjQ+;b`9$P0?RtWE&o#`RsYDaoxX3Iw`tYmnyYj~%(_aB_66Jic<{M#=5O+O|!f+#G%pT7bkpr53`!&8pO80L5#HVC;g9iEa10|engE%XU zjP|Xy3;JrQNz`*>00tD~5~BKdvfJ@h_$9OQ(^O(3sLP+3#SJIl8Ap&q7?9R`RB~@J z2z1@CC4HuXZ5%+FG1WQ<{D0M@jx3WaIqA)4t)Ol{@-3y zQ2-#`kT$34$jmax1_XmM43QN44QjVoAed);68?TaEsIu-7Y|Y&9TfR>cHq(<^sU? zYXDwTR;^?lsq4%Dbra@u@4&w|zpn2k=rWh98kbT9xyTemJbc?h=@e7n8(iC~Z&3iYu4999N4CM|9zhTDZJ-y`t-;vuBp{=cb* z<>(EdtzcI+?K{l}g>?-fiq&YBUO~<`lp--{J@`jn?Q3OIu$NZdBOZji zy@`koNPte?ap3+=6oj4y_Zx!S!4`&ZKVkaL>1+L(0ntR9bN5XmzyKrqDGHtew=oe%&AapSj<@eL9#fhz(1sh@-d z+@9rbQ$AH6-#KlNHa*3;tkmhsm{55To8pZ4t|b zIk=eI&J(B`6L0XE?9-PXgid>`NnbhYhNxS*5FvsDl364L3ogR=g;q>0X|tEx`tC#( z#U{MEdj|Olk5%4_mE6j%vQQ)3=B;fwH!&lvvgk)IJk7oQ1+`Yf$Q4(v0v>Yk@u%940w!Cy>Ujd1SM zbG%FZI`H?H&5Iu(I~4zV$+$-np&A2(4ss=1aQ8`;lH0fHZOau1H*NhY%IR$R2~ZJ~ z2{x=O;V3p>3oJ{kROh|?5i>KE#lX8D4Q*b;kWj$ZhL7$l|F~Qi{gpQIINQTNst_8 zNV@v_co@%-AB4p#dnppZ?7nIwR*&(<6qEnV;2M0nO4BP<{2?!slQpVN65iToY*Nl~ z|2{b&lU5~cowgu*l7vjl&#D{l3nVH!DN|8RSw#W|s zcNk=;^skN&n}_sgC5q^~lPdbluK`tb{p9OWhjRX+yEN6Fg9}{y#b)i4C&gwGv^IWx zr^SsXL!mu+z~lbnZ@@)zaH7mHVIuccpZx95#x#?TeG~CKzZd5e*MWR-Fdw(yL!Sj? zevgfP{;b?tR>Ss3iKV4%zo~1x<8~0hE7>dsIv*_IIb%qAK|g|)sza$MLNF>q9y%NG zVLv<_{NgYe>cauvui7%mw2U!fn zvWwK=)wwT@`73+&rzQ$>D@K*o;O%m>vT=L1$7?w1EZ1$L3s@o}n42bp0H)x~Nw-rkqkO^?v-X z41n-!g5~q7wZ5O{M%8;M{!=@B`BUvVTJ_dj|Cg0|mH0fyQ0~An&w1PE( z8W+8o{O&)?C(a^Xk6P|6V9jH4lc(Sgg;KsQBu2E3F4#KpR!Vm7*q`uSA`adHIA;b| z>^EeJ#wjhl-cKr}U`)?M?q-*R1f@WAC%tO=^EXNWVvs%AfV*B>`SE$qfx>DW(Ov&q zZH2rzQ$~Us{4P{aL@FnzaZivYEmpP94*PFo$eRg)7`T8?(8p`?OO6whnhH6wz;8ZP z=_UE0Mv+{QCFtd7{7x!Raw%_iRN*~M9ZdzH*QW&8WW>zeYe#-&)f538O178}J*!n$ zkB;I7C5Xr5XBDYTO>BVzDVv$7YH}M63@EXE`68aVpJWZ2=rulAY~lOGQ7HkK#KpCC zw*WO7FUQG`<@`B8k}aBx9_3yHQmO*vJJMHbiWgVL0BwmmxLpn_upj5!QhFV)87ZhF zNCB3~!-E;x9RudCntCvX+^Yc|d}^4#vwaocOiGDV3N$%Ws84^lLCI&UcFgv#FgS@h z1+d#MdikT|)#Nyd95h+5RvtwEfH9cSg*b|M<6jxi?`=)+%ALY-eD!{Q&l49VdQl#L zMAirlJ~EN<7X`rZPIm5tG7700j#=_QKf=_G9zw*#bvm%odw6Fl9b)R#HM9Y=T@pw< zZwk8!p8+tFCxCjkl9^ zqVCJ$wdV`S6xjo8F4^7_?~9(mw2F>j(hATC(3M-ek36Wp?z;jy&a01XHb?$t+wf*S zLgL$n0^M$`&jP1?M+Bb~h4^0zlQ#RJjCM-$BOwropn|2MBy?ROsZkFN4Q7XwZP%OH5j#BEoJ1HaXV+SAuvAy zn*cu^yKb1bf)JXerSx5Z-~+Qxx}Nt#!MoM49lJMt%?Vgy+UivzooP#|L59Tu8%;<) zLLij^{L;bV%s3wmuLzu$*eUnMn{dzVt)Bb=xd>!>szL~v=zPT5Fnt|$Nq)+~sKPt; zq0GJ0YYfo56^{}#kDJzdBx#!1Ie&FCy&ezH5sGUauf@^dpjatu}+B)}IO~52NIC zfG@E0v$PIzbux2YyA+;iPjcf?va1T7vi_J-3Cw99T`cf6Bqh4i`j8JdS=K!xB^rvgR;ZTBv(nEy-c$c84`4KqHv&@L;fDn4H13?? z+`VjBug_$G5P}tr)#jx<;IV(2Hk=j;k1_l^9$gzav^wXG0M&NWWv2=UNLx)^+#f6P zN@_mTjS+c7HObA}QCyLNI{!A*l(F}D`qL$7Gm)l-Pv|~mwTT}W#_@--F(h+Ov%wov ze(g$P3Xh*%eb5jddBimEB)HlRp@HzW8rKDto&vpUHo`wf<$Xi_;=^!io*QSht9AAD zDF_U+Nqr`^D_EbnVU>#ZF?`T@B<+^R74yp0!ZSTkbsq*&_|1cO(;t`egrF7khqU`-B^X1=)|=Bok47f)f-U zm;gM)eyS3Go0`yp*#2_7azVKnL)?XLBiL;(S{Bs^_z1!3e}0R>Yt2@78s{g8=NyaPUA8Q@$CM%&-ew@ZpR46 z-||%EGh-f7WyO;67x(U#A$BiF!MKYC70R*OX+&kv1dg1Q_bMw*WukPfg&)eCXYm_8 zSq+5#oBnti0 zUo^3`)s4l8)bX2N4!eGQN0CNCE04bVr}eh{fU+FkAaD4n47pP3H4#-%qIYtlJ=*<^ zV*$Gx)!!TMxn9O3!pxFK`)w_G5e>Z0Vw5{sxRj!aqMo8lFkm%5W5Jfzy5EWUS=p5xdhKSkww{(|_O z-6v{+acHe33*X^;i_AhMae3TS-*#sKcTqHJgus_iD=I|(_W&tw0#0yiGL&U|V@}|f zB-6Fmv)BtDpmXon;{j;xwTrV(_#3E@*`?i~eUJ?A5FG+ya!utx56sJ~&BW|SIlw49 z`uwyI{cQ)NsX(K2zL17Fp2s_)@Tk1Xoy~a{IqT@*0&EW08KE3=wfpQQ373Z*2l=p6cWoysINfN8>O+u#)aF(!gBtU(D+eFCB36 zhTba-p2QKXSqi;WeZ2hceYzTWi}7A}>%4eB0>JvSr!Mt*v=*W-@ywWvBZ|^z7qnn8 z{E{T5cRa4XczI2~Lvupl8(g`d=Ts8z<VE1IQcC5P{=pvn*8eqs?F(RbBW((Y`vv0`xT);bqkF%ox+95WJC5(zHxM3oqLK z!L>r+@**ZP)~!cqg<6a-YvU-PBkanr@XXkcqYblZG=@?x9Q&}vnb^IOoLF2BJ#jLd z?CPjDuu&U4^ST-c^`uO(QI5;HrywdJ&?&9bd{sz>$|b(?UKu0-P3kP z=)bJ3vSVuKYX*Wnn*kAuO)B6WFTuJiIH18ymf;DvCP3c{Y`HzSQ4lC8$a6l=^ivnd zD!d1Y7ZdaKIdSI%M`nY@ck{z^NXPmU_ONo&_Y&GS>gO^Qt?MTre;P=$z6dQOV*ROI zSNIzB3&@7vA3xgSYNX=mpjW{dD|C}IUDu1&%cDium?i<))hw~=S*THFO%b3( zRRuL5IMM6XSsCz0XqdmJK!+I>H|cnUBHGaXaWA&uC6o?}P$oL!XRpI*UDK!{He7R63#eT( zW}1L*a==v%Cr1+bAnGYY#d1PV1?ub_)EWYwqvy)$=fCRf#43j!49-bISA2*Y)x&1e;!0tRy(8s zgg4jU@q!W1b^T{wgADl+i^3eO`r}4o0Q3U|2#BeRrP4~;>;KTlwY(O(p$=5VH|K7b zP%0=0IU7BI{L2RsOjbggvV_Ih0A*Yn(yY9Yi(x&R5*{*hi4zODZ1NnSHdBp{{_EY4 zdc-a9Ez=DyMNYIvFUve*DP<_BR6)uvsadzfT(1KN14Jn2bQN&2W^%Gd<2?G`{2xQf zFfP$L)OHt!7)DRS6_#;S1qd1xAd(GibELaP|FtAJz2(qTugEk-mhFT5>b<)^Hzv4Y z3`~%CE@0_>w_uYN@%yPWnIJBG0~3Jmng;F1G91ZmL=BP?dB!yN8g=U1lvYnl9g9rt zX}6!zgop*jp}7@I&asCWERgK-yTRUP~L zQAE_!YuA}Ls{opn8$z`P#SW&6Hb8#+qH6&)YdFHA65x{U&RHIHu7I9nV@2mc=$jq_ zD09$K=_7_SmHkgk0vDH598rm120HGtkoQUyN&yBw0f4-y)vkOtc)SCU+;2Vy@2BIR zDJOm&p!c;o8Qw`F3Zw*Zb`?EyMToP9H8u;X9Z$?b&DZmXvO1lQx7;|uR9#a6-Cox_>+YAHjeGGbk+nUE@MD-y}OMMRp0tTOwp ztHIQCAu%^$ER(aYaQAjVf~LSitu}vFE6dCBpnv7R4t%gbS}|gO*-|%RPfz|W)Rke} zK+nmnH8kFZ$FVn*M$Gf?+~~Vp_^Z>U`Cw1NFxK{O<%bNrG^eq?!M=sS6EyHh;~qtD zv{WyBLAtJ3xeslwxRU?-3#_6kSb4EACVDs-wZ3x!+3UUZ3g50>?D$s+0E+MMg4;=Y zHA5>4fR#!D$^17MJ&R<1muSr@Fw$twenTIZ*f+4+X|Tk;PZrNhOtzrsWw9K?NP_p- zLuvc{YwImW(&J%M*8z-H*H|z1*j5%e!Ez z#rVi)$jtNi?%4e23Y&}c-@bV=*YIP^Njfa_P>8y}^Ks_{X7F(~@G!Sb#pqKL*%jXn zWgz~}LY?o=T?bPFp77-E4k(aqAY-Nd04A?q(O~M*X&&Je3Bb?30CHGh!X-HJLNG}! z8Guu>D-4X9QriHShxnkQ7IkoH2w-TD0O$raHdx&5@6cBJ4(@U-?XCi-|GJLeOw7YP zb&Z^NJ%EX?6Nhf+jaP*^Mb?w+7C;Ts?< z8|vmkhqV@iu~&@tLatC=0MQ!dUB7oTa^>-87dE%sQcJ)7Fs%uf_<9miH}+gdADy&(kat`wB~ zj?)ch77-^gK&Yur1pF@Xar8 zNmtu1#7e0Rgz8*(+5<0rscvs!EX$x7AYckO?aR1T_^;>_P)y}aV(}ehY`k0B2sKyb z_|kDCZ~@dt0yA2IQD%hCg}bOv}iFL(f<70T00JJMY|1;>T*VN0i-d%=tL z0bM5R<%ha(uD&FTLHM`z4+Ct8GFPquw`?Hvq#d~{4)XWfc`J6DrcmVO;I#c++EwX! z21X1euibY=s>6V1JtJQLscF{Nq;>y}X^?l3K;RoGI$d5Zhgo(Y+iH|M{&e7S{hFRX zYRH`DE?v!6o`t6UhNn4s9{~V#-&WqOa0PVHV9PFL`ANFhb$B6SDX(Alvbd_b7#J=);B*O~mF?S2Cd} zNrJ@gb!VD>v)bBOeFuh9joq9%g?}&8=)v6uc2kg-u_#A6GnYH7MFuxkGn}dcP9Pki zFUy`ymO`karV3yLMzw!g%%&2}ZkG*=yvaV7v{F>|PrDF4=DQnw#J+o(8gy6DikO>d zEOyg<$E#iJlDQIoSB}$mGq(y7^=PaVGE{$#Rt;U= z3d*IT4BxkT%Y)uSzJhyzPLV+c$auX0_@_^2fh~E*Z9Yi<^aBwK8FyWPT(BNu+xGMB zPaXjdJa;{(TC%tq*^tddnLz;vvP}Wc_=6&EL;E(q#T2!%f-*`iZPW^wBe*AG#AkaO z$TPwT1Z`CpkCcg1{W~zs6<73+zd%~~=rYj2)Z@6*`z*x1yLMThWg1pdY)WofK4ko< zl?y{2NXfWnxS-yV?o?F0a&GtX430vjjx znPAhB?S6`vO3Py+v3me=cKa`m3mK?!`Y&z6ySeAPjQb{s0OD6HK!DYYVG&&E(~<$w z-_l!X`*+&}9XX=ka(s-tx6DEJwyji(ovo*juvl6;(OtgdIo><;zWdZ#&Uo7Gy4S|X zzO&P%Xdd!ZIWeOcIM!r?Pm{14t6go@houDs)e=yg9Wc4na8~cEet}UPk|S>N8@`jZj}I6$Okhky_c&# zUe*59{yY)r=5W3LWf!4)G^V9NcWYrDk9fs1Lx4K>XC5HE+c_89h}r2k2tOA3iC*LUUBaE0CU0y^Re$LzuTwAA$Rrqi-4ll*BN#|(WgXW<7+6pQt{Z} zUFlbSqGEC8Q7LyK8b!+QL)#FK4)Za*T(s72oMm_u&>Uwb6ZRX^r-!x6-`o53`K8An3xy$6l)xQ+Wx zJLTL>#h1hrhQ}p-I^ww5=>^PNSuvY$)ip3YJz7o(i2DP}T-#m4zGIrysZB!*^pE&+`Po=WS>!(k@vIL_N-2hIr+bbVZe%?JdyX1><6uIT%rh zU7hZ2@sSJKBMOaGH?2LkK);05VlpYM{4pBJE* zyx+gZgrnA;jf6DCf(LWA@M!~qJa@9Ue>dRRV*~khEzrgVAbUrM z%F<>>1#81K{S*PL=Wq?;Os~oYJ;Rc{e9}0MrnhC;Y&}*kFAej~-FH`>?T!g|Fw%>e z6l9{bd~lg9v6F8mbf0~9g{?K=rg{1jZ^5w(F!(Uiizs)gO~l% zWGFclUsyO#1ONq0%opb1$t>8!lKn)9{P^5dmsIvYio=QHHA$CDK_W}v8RI(4gTgay zKmAqFE3T{lW8ubybzBlze+`rI+vTI$GmdZ^cZw0O0Jyy8dF7Q}0N&l;5*!>OM-59D zs?IU*lALCtCY~CP+-;vlEJgwoUi0mCSGT@r?cjctoS|>v;E-HUE#S#jKILs-(XzzL zk#aDU`W1RCHv>|3&||qKP!>mdLuv<}%25Us9W2t?$JO@TP@y2%9n@zbka|mKs^1LG zn)o^e_-p&=9hiLykN=YZpg{8yUM~o9Km1ouuN%+S5BCfQFe65KY*u)nB#+YATp8X> zQKRq_g!0A6-xq3B(`!?Q_UC+F_APu1l+HR(gU!(0os=Ih9-X+z8bpZ1RD=4a@5`yCc}AazrLQ z3l>fg;aLzN{TU}f^biz<(z!}K>qn3GmN*L7@MpK>8yMuS#yd%?+pF=)YjY+h z4-8tV^ETVQ8GSvy;OBevXXyCN2Pwf{B!96lf`odg%?aQ}pWZmk)?&*xvXHMY1#APj z&?s>$iDoH;Ui2}5@#c7b!c*6z;Fs}eYqrRaew+Py*}D2D^D=EBUf2t#e zRH&<2o@+b`M+5aQF_jpWm@`sukUZhd9Y#oZv*NGdbzq|8Ni5ot+D68pgp}V)AX)X$ zozM;Vu? z+~fMM4k-mH#JEQ){N`zT%#(1QndF@pVZWjQyo$|fw;iE>gC8B#X0eM%fa;a&5lX?AX>+}sur5vHx5YEOP0Qw~@B;qs*_|fZ_10@a!t#PYE zXHYCb-9tQYu!4Oy-za58EClJUvR0lu;lHK_1JOg%(Y0pc0-ONRN)&|Nn1~~SJm~J7 zGSVpuWIx4wsKuJzcVMBa{_%x1FW6ni>0Am#!f)z^uVEDF)ErP}yZl~mWydC@#3}4jT6G-Me zcV)RkmI(|!Qq%u^mgbbq6no&zEb1$_|TtG6^N;kBS3Ia3t@~o9=(K^wp#+Z_@s6sy{!;N zDXtTJ-_lmHyOy^Ie(wAKjuu@P*V?}NquzxR>EWa&O;CusF8VP{Rq<04v>GT4_mm!LPbv5 zr*FSr8JPpwpVB{!N;0+jY_}dS`1H?zY8LS1=vS?Jw}VD%151Uud|XhodiwmXSRBo* zv2o6jVE6zMZ=4KZ?+QWUxBdgNs2GcXYS$M!qOL$Mw`jQ&t)2}SVtf&}zo_nqibfM0 zE2U82*M4~Y?KI2uP3I0`MqN0^UH&&-fAjzly#E8x!ZN`H9z9Pe)z_%awnOhB`~tvv z`X8*}jdeNi2}0OQPDdb^&4bUX2Qpa=K9qh-V4NW{HuCaVo*=4^``P!WcKM5*SqZ0( zWErP!5*y?5_b*I7wmtPv<~QGY-BNup+#ApOf;10@;n-}edptb;?#nj=k1#;VY7HAK zO8Okk?<(U4bheBDgxu8-dI45I3A1pz49M-X<=<4MzmJeum~bH$JBXx*)98rXUk{MMiC zq;y)B3L9tmiD3Q`b$k|{6;`2vW__+B{HzO*?k9tOTg3bD9oubzRp`tcUh@=t5WPlY63)@u*-z1i0$H-N2e``xa&&_>*2|C|&>_nV!onR7RM)OqGffDv&% z_#v5%M^_r!oSrc_Zuqh5=vm*qjXhwhT){MrGW^u$Bad=mMoB(|ev9<@t&h~1AJF1R zucMC4c3aA+$_9*}p5q&XTFwWMc zZ-i{*4K}3fM&a$5$m!wsN|9 z+DYPb@qbx>)zf1%Ur}CKN<#GWWRP>tqk_Y7{EjQO%qF@!gt`Dkk9rQGE#bgqyTD_d z60rxNzfk%6>6ZW_KBfez)lAjvmt>Txwt`v9AsKDr=o3qW;yc~qK7RMo?*qB#q7!;_2shx z4<2rCDCEg$lMEJsmK>mafsPuLpEb{;-R$N{(Rd2oG&ggHM-dd4(vX6trmd}_Vh_;K z*{^5$bjsWw*0wke(Rf$(y7DxAfd4^~Y0Lny(5z0MG@%9j;(JR{kUOFg*ry1NK z(g`3(v&8@&tBoreSBvNEM}hglB&mOf-`I$p5nce&y!@0@F`?S=IGS);X5YKf9^0Jy zmF~gM8=7u~v?enoeTUZHI`Y7@bA&7 zguQ0sLYsA(0bT_={40|LQRTt=Xd@6?;~`^9jw*6E&q(s-;GgdZk{aprJ z>ID%=4_g0c*Fr;_5^@NAI;C1nzFok?-2s8~?i&E(ZkiQ23rmiLUYr$p+jI7cBFu~; z#VJ1go6LGvyb!mW<%VLv%2xn+TML49f(!iUo0wU8?aYq^6}-{77x(hb96;h5h1}dW ztoQ5Be_lEG_?7P_cI|?3h2{L;^`s*=07*tiQx2U+vxJdj<@b{Q3fE^lX0|FvKq zd*>iDCoZ+{xp$vHOcxx1vS9Kx^g|SHBK zsgM6W#C*6Lvh=}=$r!t#cz$BnZm77)vjGUYjerpJ!~Ei*iMKy!cONi>3d9R9a<|@f zJmpg!((K2FAk`QC9CyIkAajdqME|!K(BZuZ(Ctje{?UtjRNY(!(6>GUP@~)AO>#H{ zCsb>-@L@V1U{=2uO~6jH#sU`l5Kamy?+=in=-K3g39c&grbl--lh1Wv z?>hQ~tyB32DX`2jD+2!}a}E5v5%^sF*j{grxNTr@&4KSFNAW`)+|c<*0L|K;zl8!x zK1;*$0nCyOoB}O0?gAy3@=Q`%=W2%`?y?QY{Y-1b&S4J=Jty4(f8o|t6V>6?uh{e7 zg33Gs-QIZb$&l7%;;$DTs^TA<*;(phSdW)~u@_JdI_&k&AQV&b&HL=A&rw~?V?;hP z-tx3jf;Kb8Mgg68=M8E7Fbb|2lJ0g&=aX+)=r&fjTSBkem|nej+dQ@n)dsZarFQ6T zNWmIYkhC>Zrka+7wH^GYK7zp*Qpk70@RPCCd_#j=4+tNfepWxEN{% z2!;Kqq&dyc^Apr2LQ-&ipzvhE~PXt!ab zVMDB(SEsYr9|V1J4NWeSuH!+dscc<-is)0**F6C~Gx}?3g|TUT4b+Lk2QLOtm13%v z8e{$Y@tp!^koIugg6mPTB>^X1g209}oK8v;fR026&k#PrAA(m9syL4{inUqNCkFyNaskGFd2mENPmM=(F{O^lL5e-uBqd;N#GU+5CE{Cvp6SD+ zr*yOl(S2P3(DFd2$D8y-g%|3N_CK9>dr6`FM-;#*5O=qm)=uzUb_eOw-&;z;e=UJz z{tF=mHzzMpcqo3?un{oQvGL|T{o?*gz>$;(9a$b^BXduV)|q37!BLw_8CM0$&EauFf=)@U*WiPnN^ zc1mf7AInjlV<*o?#}+9JULwQd3oeTJHbiBUayBMsww@ zaY1)`9#IpL`SZ`f9{3j@>F4)H+kg6*bj>e|&s|eS@0;C#H>)82)*xo`9U|w?^o6m$ zmcG^%-$oo5rWy0Y5qB$YV8|BszZJK;Sz6U0A`i^cd~KHz&C{Sk!N)?LuHOFKm|L5eO9^pH~QOz?|pyJ4_P24RZk3(Ia+<^0Gc-F zE~5V7l>TnXnU2?ir&nX+oJqP3fVaf#7*~UhQ~$vA(GH5sj)*HYWi}m7Hqsg1G@s27 z_rEBR;ODQuaf8PRM~J$^(^e96-4+_J=*F%PSU7-_uWwY@U?u#3gcOin9BV5G)}+5y zKg-&YHL>FsOr)eU%Z>buJa-FOc<%g7cr??=bhW$p6Hz(|fIgA}naVFi>o5{5OPN%` z4g80DcP$4=pG3T&*so4t|98Rl}^^HI)5D3KJvMx7Er?a zX27v2y5CQb8mIE#G5ENg4skqCa${g&0!r4GzQPNw5}3uY!HE>|ifY?e?qZ>>KB|n5A;kMg}c) z1EmaXO9gag-8F$YqcY;HWLk)oj0!)|<@FV?1+w%rm7>%D%*zIEBZ;!f`?OR5-oK>W z4QWD8|J!tc=3l%|=yb>Kl4~73e+4Um)nL&GxM+U){ir7biub^RKe%~xasMtYWIqPY zB;Qm$FJZKA6GS~we%D~ga@PLIrjOp~1!0VeSo4JtH9rKt1vfiof-kEFl@QQZ5rN^=I$1{1gYR(z3*={>iL0G2Su;@k! zK0e$Qvf#Z35G+bVM0!-QJ#r`^t$S8(mGv?wZ-DQ89ThAVQf&U(E_A3O>&(Q!~zJqWQPt ztP~W}sts9q{QjW`F8^U>Xp4i95Laqm%HO+9N=^E6$Gzp5E|VzevX!2S`XhmYtcYsY z=1a=kNVvRTjwEPI0O5Wy_I=f>)Bk!xS`y8l^L>;4$*WIZGS+7LC8&t_Oo%~@p|80+Hwe>Y7mSQqvi)J124riPW{B-Zf?#!Xj~L`GoB&=$ z-MZi7@@8gQ8pssr#t*zT4$$QU6#(nEVOB(u$#N>$%yo+rdk@^gMWw;P5QWRQTsTg5 zPrT`~A511`<^aasdmxO|Jyo|nQ8^Ngr&`DpGS*p@(CieeUI3}J!h#E+Mr@tQ;!uYh1o*k$I zL?Z5Vez)44xb-cZ<+xG;u~DWB<#l?q#dbuElt57wbC~qw4635iGOx~k@@5OMMA{_a zo$RMqk4gJFi0*J(H18HljqsUk;3S-n7ZfNfKjUh&|teY=> zf6c|k(yeI=em@Fm=G$q{7S@sE>gEBz-1wSPE@z)RWVit6j-Q2;snF|F_U)SLg&$Z% zRCMSaP(U^2MA07=x^gN%3RQ9gL~ZpDIw5u-f^kugKmBU^#sw}Ci)Khdl!KB{Y&#)f zP5FR;ok~XtukF)fw*#a5-JQ9Q@ym(kVn01UMX2poEjSzd>HTo#jqUWi0JR{HjL&JA z7s%URYOY(szGKwvb-Q=EFtY-n!Ob9b^xU(I0NP5?k@h9qSemYz(X5BblP44u_^m}J zY>mpcD=soD?`68rdI1!RFBQFd=-NYC;+m&;Pa5(T#qsw8#5vA?&WsX=n?D#}O-5e* z0wKa9z`zV_y_o_iUVsoP#aX1R`yyGWKeXa|Ur-}`9x&zmi$}%<@Z+(vwJ^9SZ+#wn zMC3;W;3YldOEBjgmuEZm+Zq^4DG!>Y{t_Cpcr+4fs>hZ@KEB8uV?8onaxI4qc zXqbf1RT!H$_xlp5;<1F>KW)$RoO`$U(?Q?=*5Z2TEF)`cp)jzB0OQ&j66)0{zMM{! zMglzjFJJc@yRhJQ<0PQVQq9tKgW%q=-9YFrj=5}!xcI^8{F`ZRCIb;yd_*P90BK3_*P0s>y9L-)z#}bHt+4+A3r?%ke`eHAP@?to9Ea z@neb9MZC%7YP3s#>U-hpK`m&^+|rbv$1aS#=_H6~#}>q!_<+%XuukT;ao@2Eqe1!n z6{}B17M?5HqA@>j1Z79ml6~|m@sd3E-Sf$x&-RVD;-E{VQYBzPcz5xLF#;>= z1{vZV>2K8N-lPVYgLt`_E z;bOK>C0Ple+s6oYQ=*weOU&eW^9T6Gm`)TaQ3IXkwv6g3#Ao)q^Ha^}@06bDU%~nB z`qGd!6Wbn?Gwa_k35!XK19Ij+;6%O$yVR-ZS8j6HQcwnbSrkol%IyH$+|PlfK5n+B zZt-vP4DgE5r$caw@-XV5d%jfS=M*PRPPAp1W2?|Web8OoDt9s^*!O{A?46K9`QJpn zMBT%LEaZWp$BE9@BQx}vuB}@TgAqAW+!<)CnFS0fH_Zh9s<;Nado_s95!~G$Y_#x#y2;5M+}1>s z=iC_CqYyefV!^PK4f)uU%1!IhNtqeJJ<4-*C~n9bJ;{xC-*hhEA`HOB${+wRKvo@z zrnDGG`a`wJg@~)J+hw>&45ORn-tbJ;R3e8#-^368^7zW)@#{}lY^T~=?6wW6?wL34 z3U`-IFrP|*Kan&UfX%ntFA0t`)Cp-(u@RKCYH~&;bUr&>fBgUipz^H5uLJ*E7jB2r zV+9V>AV`jRHJUTnojwpodBf(C`3d`?s3kTWBQPK{*Ydf7l>`A zD@GyK`t{7g0$?$f=<|-h#Dh}D-O1e*JOS933MU;^OxuT5>^8c82w)=8X_+4-)ST>B z=Xx8_H>XFd^XxGZvJh&i!XTS1H-#H*2riL!j@DNCn0SE~T`?Z}FXepSrmM@Xb$UMN zqj?;n?NfNAbvlBK5ia;qp(AHWgHbx=YbAlx?eMHH-LG!+oh9seM|wr7f~C3|3Bg){x?o`b~){I&66AZ`^-Bmw*f-_lq`9U5*cywSbNj!S(I)b?*%T%Qp#x;Ytg!QavE}uhy^UhW~i7-l1?*;p7cBr5AB%tru@~+3K ztaJGi+XVdKWF!>}q{N#%A?hC*0O+?!LEL0k)NZe3F4}d#*Hh*nHIELQG3t~;Etd|u=&b++@r=VQyPB3`nozfdf9z#GEsVX=Cs`KR zUl=2cZpTiO0^a$thPq~_SzV<}ayW~I_s6?S#$Zc_Cqfj( zmx_*`Y7}4Px_l4siav_~P^~}n_fkA17Akq4j%}Yr_(w-XS9^?UK5oC~oGz6TB(whu zuKa!M{GEFGdr8E}0|fEieNXW%iZT~_S=?mLw&L2mVzUWe>m<&-7guYR(69@?^BzPb zQ+KoTUt&ICRXv5)kYuNdxj_PQk@F%P`MpvtNPieMM} zP{DRe#-}JUIFEAAibAb4I0`Edjpw-b6V3zwaDeKUE3f!L{-Z5i=mk=5qmq%cUbPl7ACkqCYq>+@Hc&^yx0%og|o9RBd}9jus8hw&<21* z18h)zVZ}Jf*olA=-jdaZjLYJXR%xY)SsTvJdQFoaGhoN4#nZBMhB->Ug3}7X5oEsY z|86?t{BF#^b@Pyg#4+M>fMt@SuRPMPQ|gkN@c2OT`;FQYI3h1+;sQ~9`2Wti)C6wW zZ+bfs#?ZWLAN)6=!Ps11mj<27X|u>3^D^o(o5E2g!_HI?SKX zdF@tCxZJ`o<|ga*xM(H$Xu-Jj(%TC$`gR_)+E-2(b)BDjiW?Wuk>sLutMvmv1w$`M zkGNKh>FzZouCnwHjN^ZC(5PX3g;rR-RpKdI^0e~dxIWr+)1R}BDlQYZU$gjbf@p?? z&s-kmy5#|Z6gi#wJPXf^uZYi{&+@qpX<0w-=kEamrap{GCr`YKdA3n$Z z_P5=F;d!(Gv~*51h`k=npfXWR2XF_-d^-mC4m>Aj1THb0BQ5r0KL+ZdL5hL zm(oIde;heFlu+G{q9yGKB-2=>w4zkNijha~H04S~2~QS`De6b5|2?DSW++L<`C>qe z?T$#@k^S9xO23no+u# zV8%us1Yhdt9F24U5^S^e#H3C|Cc-!zfN3QFq*xWN1^V?-bIwZv&UO~apIb>07NCn* zAxf%;EE%6%=LvC?90M-WqV3$8t$N%TBR}?yF2p9b{v959K-0b7!uY8es;KPV9}T)n zmM7@$l9&~P%r;9Pj56Y~g?Oq200!8o=u1Ms>ocWX`Fixiqd*1eJ&g+xoNqfOV1+wk z4LOr<{__)fpq%i9likpq($y+VKRe!pvV9y@ak2y0#CCq;`7co(3~Z?P2r$nzAhGR2 zUtT==@*@O^0n2&1#&$-)wORRNpX39C`VHy@{%we_Y$$>O9(^I%lD4Ai#3KDo3BY~; zjly;Q9_LY%$QO;o*nS2~gW-n_;2MVTrv4UCQWXnXvBI0GOW6DBrMFzg^QI=F4$xn& zsa+ro%&Q&DomXv6^QBy3f!H|JzI!D?C<+9g2LtFkO)lpp_4dI#@V~be*Rpq4R-WmUH$`ubf{dM))Cv-jvVDcyz#BW|W02~~k;a(Jx4+Vfz zSZh_99OxAT5V>b~0kTccfQVVURt?C%=ydO80M#l<|6BYgBE9=rXBQ6MLNqsKa9%(1 z4d1$qJp~yy0_}Vm^dlON=myMG28dK`uQsQ<-ywYIwgV?`))^AO;tpe>v!SjcFbKRZ z1|D}GuU;N`=$=cmahv+9ieh(w?dSK|aIyr!B>4O95qkRc&zyWP*(mv>+2(&7uDC%s{sroU_oab@d;AB`fW!?VBQ=v5iyDMkB(4SqPCY1z;82ba&bF2gVFzYK=9) z{_LxMCB2DBL>LBM)D=5^eOU$&W}`xirHc<yI9nw8(dcWz29R5 zxTlpbLn2dU1~7%HwX-bUchIc|`w0`>)w{*E7Pg|ezn?)`xQ_d7c%Ow2mi7Zdg>i+d zg(BEDp1$JEG&}zeUWshO1)iqR{mZiBU53!PSZ$4s6_l4uRvAruO8<>BQ;QdWcb?}x z3TTGjUHb;d3Ntw?uld_Br}UWf6Z5kxvnjI`(@P5R10+A(%=i1}u%R13UCs{|1;C?j z+d&{CmYGRKIa$ix2N2&7J)yoL=>9kW1UDp{AEon8eeKm;EpWnOM!OHg&J^7ss0(b2 zE_AP6nhkg3X!%v(RG7-SbevS%xWz5O+pWhf;m`JLvw=_bLOuFChriY_#Mtu* zqE6qtdr9^oEsEjfd&5ze0YU@^Dh&fp9h@EbPg-rI|`Z!e!7dLF2q0U_SkfLBU; zo%8wNtf-r8l_n6!f5j;E8Mh;NNhVg#@VnMyl4sULVbA2kSdkI@5Y`5D_pF09wX$=` zqL~j6xXb+cP~neVv+2Gn#6Axk;Rd#H@jC^{2vh9;c>h|X^xYh}IoJK}2FT}BH|Tj( z9GMd}Q2;n9EP`n>?|B_KCY?&s{MGQx#@ik?X3VMWV_q5@Rj=41Tf~ARKQu?PSLC`= zrZ{olS)c`?5RL;Pe3OL+X!d`62j^9?WB*y*t3*QFhfGKF&;?vv0v=fQct8+Tdxuhx z8ymhNA=bzS;2hZ=1N6rU{l>hA(9Er_Ep(%W4EH(5k1jxE8$(&T?obhCM?wS_sWFC6 zorGZq!5kk%5^b0~u=YwF{0@O;@r`dZ=^gshIUM`oY7`kTGkh7?jIclq!84R%cWaZ2 zYNwcmD5dg|W%94bZ?}983@$is9{$S}cpkd}WlDweN%6mk(qdrUHJWPtDXOKCpRCT0 zJR=Kf5&i?Au$^_;6LF*NX|IL$Tn<7!WgD|%K=Ft-+Xjd#&GY|A_xwK#ji51y#w%oYfoKh*w`svhQek9+XY9k&5};k|>1 z5Vcfep^qZ<-L;HeV6WHB1L*ri@bFdO3X}B`-DU%2~ZS#CBZk>4!dc1BP31I*7*Zw=` zS|!`_n(4zADvZ_}6JPFmlxHdk^~St8&HYb|w>1e6sl&~s(T+UnhQ}buCJsp$|3U^+ zWEeS&uI=R6-)?zFi7uBuQF<~NV5&(U# z36l9O|B;n4epctZ)XsMc;t-S8{|==g3r!mU78SU3!xt&45W)RQtt|T4l}_oPXL1O@ zT(^O+67~ijA+gEpMwXJ{AMQuVc>Q{F}8Rw`bgn2hwd?9-!CVul;D9j^Rqgu zD{2hOowRKL_wGsu?{1qv6`duKG4;nsGwMDOnfHD`Gy3kK1-w6_)nJd~JYH5vGL?3) z+CS9h9B})WSEDXe=3ularp{6jH>SjB((^+y{`UJ$bj&nYwXvP#bz@!1-nV+am;xb# zRF1)rljF_x(V@UUk6gpkh~S(zh8Lo^i3cCgfRKYGK!UaE5rBLd>MbXMa@gx`*6`cN z4SeAMkGaSE6;szCbZim5*}S+1c<(b&@l^@)K8*f?JyMCSxlRJebEm!mGQ$Fvls}m^ z>#s}quQ=r@bEY(G)u+b*bh1v6M7 zQRO3If6{uAQo~f<6sevlNB-@Mu?-^Je%U3GNss>yYp1ViCqi4D;%yaAe+sr;+>UwE zJl0w@2wi`fb!w$kF}2q$$!+9^@amVVL&hMJt-hQjYa3d9HQ0gE73IJ8cyQ^lSNcW3 z>&7e3G_v+0Y3Ck9%5{SkUHAqY7#Fw-Us2vh!7;4M1^Wco1GiSUCr`JpT!`P+AcrR3 z8Z_sCy<2}F&=IeS;rLTXpGxJwOqHq+diz$H0kyOb!A*8Y(%F8`nSlJc{Y8kql?@@P zI`{UwPD2hnRViGIm#^`zXE)@lDYmD<;IZ^O6`w?fapLZk#Qw2_(hI{QkGF}@VPV#f zyBY+xZT*SNB`+o1+q~^Sj#nW6A6-dI#um(DxRp8ybTL`%xTKW6qV(9It@u2pp(lmk zC?)L1G4k!JsO3UWNu`NqPb1yx$z2yO6DD>&z2#eT#I%8zwf%01pGHr}4-kX*Ecy-j ztH#Revx&JW1FvmA=_rs&3Z1tjnlFDr)3FJ6`0drBO-kH{Sz{b7N(EQyb0GLw!Q(fJ_>5@+=ZQwZSpwyd``})jhPje&k%l zFlK$K-xx2qo-eo+<;l=3@FU6w^~%?$xruhhsd|P3(U( zr>c!{rp+UjF1Cg#xyCG45%6rua>?t8=5cyq>$J*2eH(=7qi1?J1!XUczc#@xCIB5= zMV;d@G5%<|Xp5^tt3--#A>-UD##8{_CJ%&YpB5l2RMswF6P36tzX;fSpC>9*29a{q z1IXL+ATJvWXCArrrZI{LkJ?9l=#*W~S`ga=upRen+-4|YxPgGu)%znEkF18_t+2Ga z1QbR8uc~09)FhA%??A+tA0U~rhU^?JG^_&_etzOAYNMlc+AP3_+<7hU%nPYQL)W-jQ$f)T1`t6LR#ZGV>>qvlN?dmcUHBz)L^lNYGNlh<25r%kR+^un}0`z}Z4`{W3f zd4ovOk!t+s0#SjF z_~!c>{22T? z1A!Iybk?<0S04!RrIHWgvEKE?RA5gqhfRX4CC8~hjB$5oNw#qv+y-g67?NT09CC2mzYhQ&U0edi@SVF6;IxfTbV9EA^(+T?KdaT}JHC9w zX4l)P(~^K;s9xloR8Md07bf=CL&090GtTr%N3XP(3p=%=q|=$z;_?EF@+LQ31P*)2 ze3nT-Y6rTIpfI4v@Kq^OFii9`e$v3mUO2bzDHJZ|CQBU0=T4 zVu-mXLIiVz*eommd|2|-+9AUU_|bOxeh5&DWu$tG*Js}i_>Tn^U}_TTqt+=ke52mA z#8fo^hanGV2q98q4=bPA4mVE#Rh@R?s?np%QUWpfrhyb~x!)tr9*06PmYykMoV4+T zeIKOP%#7CP?~06L80#+PuK<|~S3n>a0s3gK)LzmLi#GfcRsZqLRHcW)+Tm370HC9{ zy1FZvAkK={FVHFcawc@(=`P+t!x;8zuM#q`(8Vn99s9*wh+^zwq&myp-i@AYK6wJq zS?7K`;9pv_y;T?EDS7Ixy~tXNj7oI3#~H)U>uT*vQv#<)b~jvuE=m9nTncU&*Rk7e zE&P=q!CeFDQ}qo9l4DAZ$_xh8B9_9-qc>|``=2Ex(B0)!1x`*_Z&wB{gabGZ&`Lxu^8-0u~@2%;TQhkP;I5>B;3A{f(;gefbl;XY>z+TQ zLx@#&az3-GACJ=K*F+evkp^8LXBg$VE=t?66Y6764aZ`PG64G_(zP4vbRqz05FNr8 zMZ7Kw!R=kRN3(eEpvq&q!8ViKQj*r^11{J`&?1`O48p zy-|y6ypOqpTsHQ&0q~9rQE>^Jc{0|a|6QjT-KVHYd)`ViPrmSzRW7<1S(eoprxj@> zss?kf968!N1~7HYG$ja-y5ddq*mQCKTj-+Ok8$f3mFmBL+%DGb3PCz71?zXX1)m`5 zo`#z)UnlkGo0714L8?5zGg~fm9w2-9bd~gru_=px|0$C$lpF+`Dy=HoT~Kw&tJ8e_ zD}{1y=79Nu5og0I_oUna;~(XwuX|+jr;I8=_f_uJS3tUBD!h`!x;1Ta(81!5++M!Y z7^4-+;%5hCA#`QIc)Q25SpObc)D!gqoVhpl->Vbl64O1|PPMiksY7Y2OzQn4&K*=W z&2E1CaGIq$$JrXrnr278WjIFoJV`UVFJ|p8=MU=ym^@HOY39U-N{QlA`Z15}!TT=h z{v{c9x9_*})Qj{=%qx=v?#hPnwbBheTvz{Q3U1(gqUK|c2X0AsR}BIog}s0>?iDxe zs5>mR8(9Rrv;J2X{d(xF7tQoB*=O@-6<_uK{C#JUmzE|~He!83VLe0Y7FOSG7@xW` zd1ifGDSbY9>*D9tka#Rtstb_1>v{q($!^*eLYT~}P~7h-as!vblIyZt-D95$7_ycY z!UNd}LdqE*V?U#t6$7YxMG{;%xADA~_mdhdct1D2yn3@4K_o^FU?)vL%Dp=FNa}T^ zW-GSS4bN@5J@vS@rG32tF*(Agfb^Jz6>a4Q!y>nmxk`!^OJV(wRg=Ntvg`yULJv~k z4L-3*=AW@~0uf=a9Lz;QX$zuh=u2y-$=mY71e%U{V}vFisPlHgoTPr`#%+_{|`7`nu~@NpUvmJ}--@Djg4O#b6bX)_V$|hanF(4gmPDIq7}y zr76{hw9)VJ$i;bUZES!JT6`DA9x+(eHd>W_|1j;T1yPzD%LsP+CP=FhalhYyJ?F=q zd4c)NIG<~b6n?XMbgVFfjvA zlgNCpCUM2cr%*yW1E3ZcXz`?AB_Z9ZuB&1w)j(Y!NE69p)nS_B`tu2AdZPGbv z0Do=(7)m@ixxVtbZIZOsL>Qa-E3f$ql!me|;SevUBkPZ(%$aAu%euYnKsvNDNInU?*)~m}ZqX6<}1Du=O>w`M2?AS&L*p5Q!#6 z(L@R0?mc(=COQg-&q+fTp1h|J!KZgq*-M_`UzlG5Fpl&ti@oDlFuMFDPYtg)eG<^| zg6ttC_q8}5l14;ixvL$fFNq5Xi%dxZw7+d3be>`WRjSLNhy_S;hxj+Q&M(-P!vya# z0^Z=K!<8WXku8KPLVg?=CFHRQ zLpORYoyC3k=d>fuQvk)-{VnWMG_=0J)mA6s<$}lEu*YMHWM!(wu6HpP3$^LnwF}g1 z0LDnFrRtNev&M$NMqt;Y({PQ`IYHXN0H6$etzJJh&RG*U+q!3R00KvDBo=0O0b9Qh zCvAXCH-0~WCb;`;_DPR((#;FsN6kM`n2#HZALgT5A=eDm0@8bpGhVglQg#W`tFA;W z;rBbjCWg~z{B%)C&u?sp=Fe{MZzv&|e~N+rvmtzw%A@w)`|N6HW%ZM@+XR2_L5Oxp z0Zh-P^s@E9`Cj|g>i>9_wiZ2WXb2VqAer*{_pH!rK5o|#-0e`m4q(T)psViYaKi1z zTn#*ucHndcs<0Ka12^bIq-HqnNUKrT$sk15?G)cTY5XwMO|CjeUPI3ImFCYl4&&V; z+GEI7J~AuB?ZOj9xLr)Pq`EVbCHei>+!-1_%_+wER@^IndY8a+P}sm$hBKzS#ePci z*~q}tcC%8w;hVe4A%(-dD^PVEjcoV86(Z%S41^mtAtSSA1ramCUZTeGhe<}7GBVJ6 zy+7O78Ht%s1T2F;f%H`oJw@@)o~)-t-PBGWW{{K2AVl+20N!5-NY%W0L$>?VLmb>! z1GFiU0)EBlh7<>dR)xuh-*gmNjlY!j>h3!Ix`s$AKl;ju+(SWYdte4I39X9&GVkht zyMEoJn}TkNrG_OeX@6GVW_cQJyOd0lI2k$vN1(dt1hJX*@N+fY? z%mK%rfd}q{9)NU5WH>nqU(597?ujd`PSG%z6ZR+i_74jWas7EMpqFXqpafvM=Xn6q z+-zhdktmJPa|-*Yca^RA80Dwv2mq_7t*{)Y9eoMK5n1WK`pqKp00%1rfKqEt(?e}l z{9g)bmivpt+$AOT84W=Cjo3Ni0pQP#lfw;je!rmC>OrzQ%;7_yQm`nj9(P6uQBP8Bo*`FG|mDCTf;;XXa1 zWgl}YkS3Oa3PqR|YfO{X;hSW78ZjdilR1o?#j zySy+sLYUt+b1f8MG_o}3Ad8V9zxedu(*=+8bq`Ta&yfft{?4~}XBe!*vGG6KDUR29 zqCIYgH|&v6%c-nljTT9a zTAAJO&A9`uBS)z|n2Y^eD(hl039zE8zh_Dj(+|zAtnF`S!YjZUmwx8K<+o_G|Fa7q zsqa^P&*uN0a(QV7+D7q+ARm*PyaB<}$r%Fh6ke&eeO)!r-*Fij&k>ECewvbRz-+;7 z9_*%E*k6f{n}~@&Cmj7Hb@D*`sTy(PM;Uds?|C7>n&(i8EMNN6aFJyu$v#r!K8gJ*`S0!?o z2YMPdmKtG#{);vgIv2uO*>fb9FLla>=uV$rF_KD)vC)u3qqvodPNrFRbx}67Qf8{^ zuoT5{Bu<`q{kt2fVW|bAz0Clod?)SF-jejm?G=|J5owS_Pg)ju(FZ(>iCZ-l{=3CJ zASA~(^85*^#rKLodN%8Ek)I^ysO&!q8qB6DISF39tq@@{PLH*i6TsMi31P*13co)qOCzf%tO4%d-*y z&(B3gPyEBn9sdZ~JkPF(x9H|uA=l{|>hkXI`Xiz1;x|aX8|f-(cGkf8k+C!S#XU6(rs|XTBkulgqUW-s39IFGgQ= z^`sn};5;T%TP9o;vymTJ^)mJokiWrmw8j0}zrO1I`m$w1vi1#m-%D5y)oQ*U{OEjw zOOrXDS6C7*_yv3H0bw|1ho8B3SyL0a|E}7E8X3Yx7o`8*F3$Uz+?1t%xKY?PHork| z#Usxk)XM(XuPJyML5cADwm3h=1p@v-@up_;&%0($6{wWnuM+%?=H3hYEz)Blve^Kh zqx}+uCc;1p$**j2UhB0DQ0!wHq!6qRSpbD9zQH89Ofqd-jPL(y34BqZ2gM%*tpyHj zsW`(Qwtt;23XrQv=4Ffy>HU{>FNlKJpyu(bhn%P^`zvW;awRzv8rBX5bsV$t>UiPO zJVl zotNC3#li}FA4BkaA#D@DuFu;^|KWv`OQ1*{BZAZ$@)`dTCCZ`&L`R5nJlyJOC0)HR zK+blhbyBeLwiSKp^lK%iv?KpQLfpWm0} zUSqTS7%DGf-#tiXq_haAXwg$=cvLKsG>8lO?sv{9>AzP*1B5|2zeW}qp(DDIF^$DUchKV1k6agS2UqB7Q-4T~}V+b8(Fu^{S`mV*_x`e$I}%s)1kT>t>C`3BgM-rszp&B@3wrUu98mpHZ3x1vH;{%>olPC-O3Xu3h5c9Jz_Ux@t1@XfgDl{ zc4UH)l(6K|Z$+CE-HCe1K)A|Lp(^~IS}05VeMXt*P?&uYU6UX{D(5z0_`Vu{IM$VE zS9vO+PRp>6GuU0Dfz`+~>eC`RWTDD!x_&pSCJ*SMc+t=Yp|hlVLO>CRMBMKqFOV`| zUJ(OYIW6FW6bo6pr$txe6fLO*o`vZ+TQn}wb(n3EL4H^WBse+be-}X6jh0+ffmDnj zER-&xo5?B6&<~X{{I1kv;fZsy@Bp0?gP@c2#3vV1Y9h=Ckbp_o^w2n>%$n?1VQ})u zDFoU}{S6;9M+nH7ojXEyf@U{U2RF}dK#NmX!7|;=vx|fSF4xAWfHtyW>v_ZLy(u@@ z8+icZ^Ng00W{=8(*b0Eglo9W(e^iiW`G{6qqR{(6zIkDil{voZ-a5o#p%m4Px(3%& z$K328n|(<`<&h4S;D?l71L_kM#TI&Mf53fDmHR{{mvKB-UxIWK{d|o5A30UN@9Lk5 zy0uqYD3|aLLte_hvT7dlEx0wAd{%EXbxIr-qkk6PXlBoDBN)Q$l2rHH5W_K}Ms21G zCvBDIh|B}e6emgM8xpwGw)i=kUfo|a;O;t8v)oB7C{v{XVAe!Kr1t7&Txz#7YwCe% z6k0ZR=tF;Pdp5mO?TW%s!2{fLT82o8F{IxcdMT^alO8M1X7&%?;4n-(?&4ERcxA1G=Gn~(-llI zy3RaoGP>xR*a2MLr02|W0e8uHXdS|k1>+3>>#n`y-i@oTXft*9sZ--Cd+Ga2#ExM# zL5#I}cR}6(Hjh9PK<1h5b-1@Xq!&Zw@kzWm{#$Y<8 zGTECRxE(@lLl3sby$8k(-`(FHc2e|}HPKAWYx!y3s;KjqTbYbYb(akRAMWnzKA$|= z)clPJ3utXIq1(9I+a0#p;5#8#ug!9jUB$@PF48H{uar6=5|<+!t~hxtj{C#dqIuBQ z*5$}5Bst4m>JPUKnLyAI3_wx*`l3K9TrM=@ZxVprdST+tP16pgFCZl6ba|wH`c3xY z4FVxIsF#>Wgg3u){u+Ecvo1Fdyrnph&FX2^>v3^PdxiP0P9r8Ag0!UQm@7mK3d@rJ z9tR`u=07Y9wnF}wI+S@;;9E#5gqjvGD3$WwI-T(OQn@9Qewa>`nhA0B>Zc<`5X#Yv z<4bab^P6E5pf3zB%w{7F{CbaQg{DV5)(dSW66EYM4jpPh4G?e#@f`2Z(MOUu^|f>G z71zRtIyV(;wL_%>4&jp>+e3BR07Pc77*URs0*+&xzCx} zmj=+&kVi)~~B|&_ec+WZR9xupKpAPm2ZP(ev7jXl>yyf5?CA;4^ z4Uvu>e|!2e)U91~iF%=74Zwi!LIil)ug8D~*$j}!LW7NS01fYbK7hW454e9L2(dA4 zMaoTu@)Pg3iVg!rPR%{H%;%I2%tH55u?05UpvtCt%=YUgpF@du@g*8ZLWfc}pt>!b z(IaOnG_SM3(TZvqls}_OuCL!vIp9w^;LF)&3usVc8GI=DH9;5ggEfNauE%Wm_|pc< zRhVyPT|Q@F1V7wj$`lww!qo}f4)=Qu|9+uBOdnR?Yq(kp+gO88gxp$XzFFJqA5SWh z_9>On&5*6(n<3w0R7ww1XlGcux6rr>p#R9&VY&W9#RWI@`yu&vZoW&m0|?Ons#Bo- zka6K|k|zztmsT4DsMaX~*kN?s_lmV^NbJzNUv~0hOgf8C1}=32irr6!fDh0@e4CBB z*BDJD=E{3vL)8yANtb-b7Wy$kN{l>8+!}!(e-G&e1EfV9g0zwYt{+(2YlTSHZD_lZ z$WJ1!p5FeqaaGq;O8C00T=x&|3k^2qrnD7ok}QOA|2A* zARvNthX~RQ(wzJM4twuhe>1zYvpcS1aL#$Z_kEuCATsSYKeClhY-4=1IA5Cyc|IUs z%w5$zN`oG6u9~Lmmay$(7S%)dK?v=w?ZD5v7*S3ijq8VOo66%kMfiDARv)x5&MmJh zy=hWb2Hu(rnW&iq9cim4Pg_>qeq|rA3F8g#<}N6-5QA*(`_kIkii!exw4<0x&qr@L zZ|&|fECZ5RwPD}8jsJXG{Ace`E4+2ak33hrh=;FjaxVw_5FzNUsfX=y!LB%=s$;=lm7k~}=%VyNsXVPdVt`zzQ6oO1JhrwMlPu#iW# zz8bd^LhddS9tOE}WIU_{$Sx1BfXshs(;im4eyKbz1Cv7N$TuChU!YGZMf)ue^8wsp zyRQqfEw}^n=D8K5mE&60JxAJFS*X5FAImJZ{!`_5eOKNk*D5idqS7sGoS?e2$&(8d! zq0D(t>yNjgHjvD>M_C?d!}JR6GJa&4SBP+#rcS!V?^!fJ%n>6SVGR`!vo))F7M@a! zx|I*aI;T~l_~#jpKD5HQ_JjPZ+JHU-D>hcXv)or!1VcPA{nFBjiGW6VJ=W5SW@AUM zoA2Qx&1O{0 z&kl(zw7-+i7%J${ADxCopZ3gieLhQO26e){{et}gMto&!*wQ`~sS#o=G-b(8sc3xt zsCSj^o zF65^BynX7m=r?6+c9Db-STO&)U4Tl_>unnG4~x!vo3)9lw+qDuxu0wBjl^Yxjm`GP55As&qN$`R03o^ z?$34U&Pt)ZknPrP@&QLmh4W!@RI}QMiXWHP(A0~#1Obx4NA><7ZpL6Y`&??y)M9C8 z6LDa-StZhlEW1ps)+%+Icq2CgvA}gWYjw_s*m&d>ut9PXdeP}6dhPO>1?PDqyB@iZ z!tH-3SPxM;QMknjPWNl>25nl=$0n8jEj(k!GBBn~*ap$YJHhD!a2v0HX7L4-w~cgM z)>LwxFm6eL{C%&6(FaxG82zbhxi=B}b4#`k0{D{S_{YzhV4cNFY7QJdAduyN<=6K$ z<0EcnUkUVaa%7qf*3}1a%YcDwHJaVnGf|&Xb*XZH$*mkgcE=i}j8MY?M}o@eqC#3> z$;P$%$&9!+i)d{6)b+P@R~A$?o)uXk(#dZA>Z!BPrR=Wf;n7;?)#@{a+hf%!(r1B} z&%6!&df%3$aIE?tHUlE>Q#%F>%?+@4KBHdq`Xq@Gs(6g)RbhJtHb2ux4ZH=3spoXo z+<1gz9$e8eRZUOf99l1_`$BAE-4LL;a;&MCncB9|cNF^MC=}vnltJ}km@D!o;G+4i z*Q;|19DWR1e?oqo9u%k7>A4~bUPN8@Ad5B7W_9b;F93$eMW)BrXyCWhoyUmm??kQF z`Ly}AFq&6v4Y@-59#cgP`#~c7{_1Op{c6ME+!^dR5-ch(T|WkBQXB>Z&FRP(IYiVv z2~vLHroxWypHp~+6CNm4jB@hfFU>$&>lOgU+Q^w&!lQ5J8eTLj9R^^+@QNb+gy~(b}h@SLb(0bp5<_L`xX4ZyIP0EZi!e z(%>&&ejuTjdOq~6`=Ic6bLq)`>S;;$g)Nyt7_AH%N~}oEx&mUhKDnXpBE2jn9rOa6 zGUhI+q@c0dqp_au(oP^8O^-yz+?RY**IAE9&v6TP!F20+B;sqc-DT-`{$@gbj;$uT z$$@?mBj0th+n1J#h<${p2t@MBeWO@F#~B zef`9GhJI#e(gnMgwE;lq(CmGwm^@}yMZH{epnX<6#$DUI+0e{4PJ^B$Gw_jgMN(); zZMBosl5#S9nRuT)|FWH5+fFkvc$U=dVc|kT$mD9YvTkoyg`F_)| zC9Ct7+A!c|KH!58Rl82lTY9kO&6L@8)D!*}W1Dix&^q3%ePO$eujf(PG{KN^2;mgx zY7_?OUtW^5bYkQUBYfAt2fN>BonTf=37$b-YdHSa%H*O|KQSr=yFy&YP}V#_9gzh41a z{O5d8?&y2sp-{*!b=3d67mk05J^yb(fa0hvd;)tzAo!l?eD4wD(Z2kr^OEgyyQqX z<7>X9RT6pi<~{eYG^3jIQ{sKbB~dZ?kFm?lc@}CzMOle*6ujLr;CfJmj(EVpI1^>Md0fOrK){^lbKpYhLt|;R~69d7g=YadiPSLc#mSBn*-^CHG z?tf7LuuBd~1O5*-vL5);JqZ5sJHu94AU_$NMm-o|KE3=3U0LQt9tc9F`Qe{?dNqqM zE^8iex>4jAkAf115Yb2g1bafq@Ks`gpi(`&uV_yl*)Ev@n#2jfvZQhGqF$t`@tB4p z`X~w?$`SIUhMY5b!m5m>2rHJ^cs=&G_uRy~aXix5c#bOBM)k^T$O8fw=#_gL+azBQ zRFG+f14T@?J%KNLwCk;Tfl<1@u+-A!gKqa#U?drL=!=CiFRl~*+_M_^tpl2eigA(U zN)(sMEu&mj29(C0AtK>G#h2N&c|gx2?bnZ^M@|JI^ z$hagZZfKR8?Udsq5x>}It}nf6lo35N|q{N za%em^e&IL$>KI^FiPlfeA5byZDtk|@ufdQIyy9Xc$u%5)belx{o6iT} z))zB~uWLL&Zc+o$cx#`k>+CW%h535~qPY9soptm{8{URoR?`&XB?FsV#xg1nKW4JO zT&v30N966$S2%&KYxk3hhL#}cu**MB3S57oUf+fAiP4UoM1w#>$I2;^m=Sb{IOq-U zWX4f{&(TgUMp^$0^YYad(AFy?#A@Eg+4T(qYFDHgfERZNM2JW2dUjPzcH390{ zi+bSMXTl0Yim+Ys1&(Iy_2^;798v$U=j;sm@4iScPWao4*P^^ExmWjfnFi+pJ`m6^ zl^Fhr(r+j4$wm~sB|-m3X=WJ&wZKJnyI>mgczj%2+wT5WVvYHHn%j8oA~fgIhJ!S( zm|3O_^)+&LOp}+O7nY=lco3*rWObfLe4qE|)>O*boS7)7ln~$*3Ul{W;)bKK3*u2> z#Zkk^yL?gUVd!i)kHd^8q{O8#Z;2}s`1%SG;h|-tvy(V=Vn}?1b4UE^g zCOYZ^#_20};B2&7{FOFrH}T-ea`&)zOcJb|Gy0PNRap>Lpb$9q7m*yvvK->I*Al#+ zLIDSP5=H_JONn})$4u;@gPCXGx_$Hyh|@iEOc#-t&1a z)Q)r&zHz;ARC(6CS(%E%JO9Mx5ERhp9$ zb>{!KTUycb^x{WF%jGcv;y8CSUD>BETGaM1=BETdv0v$ix9Uk@eP^ewYZ6G&!&J0k z)NVaJ64EpsaV+6>R8@wfK}rv;+lz23SbUGZunOlgYrEuM%5yXFCF(LVEtxbllh zuPqT#gqtW9+N7GbcJZ64>$B~1*LeOSaz-6b`~5ai#93AHn5|mFl!A|E*B$a`l}qBt zPI?I!f~kE`X17s0)fUw&wO@kJ;N2UQ| z_xs;n05Lg5(oqapc<1eJJyb8dKp)ut$2z-(lkH}^6EA%5YTo#cp?&E0ntkQ1ufeSE z0pGE4E9FFLM7g zaPBAKDSW!wrccb@yBJI)>U5gfapKdmw#%a%S+ZZShFdcB(9m<(u>E1Ktsg+bkD zwWW1{crEuVl`Y0iOQu!q^cQ|V5Y8A@2OGz;4y@{bDvn-Rnfdy`rynbC%Ruo~@f6I9 z4v@7WBfHay!;MA~OA0Ve@B`H^%U?JS>F{DheX7(pt#9iG4H!)U%<@lLcRi>dMo=`@ zAye0vmNnm)M6ccg=bd9cNBKuysQ92e%U-+o{wxKoi4hbP_I>8h_C6@y>G7@QQm0Y^P?5p1 zk?+znFNnvftRwiksYIPc<n52sZ9SGAT*Fe?>ll^^V|Xm z21Lx$D~KNrnx_puB?jBIwLEl14UpCiTj!d33B%VAatUMY>EZF&;9i&VRGa6VM>0BT zwND*{Oc?r~es+U_7-em$hk0o}7JCU;N#w(UPE2o5l6r|_8CgW%TS)WXNkTQ;Epwfu zUH*As=En1`oiq&v*%pUZ5WDf^vEM}kK+%)Z-%A(rH7no3$`?&(H_vsHHYI-GrFjl_ zQ8;B6c(xn^DvVe5Gr*v-a8OS4&cbZ~ZT8O`5b3AG+VPI3DREwQ@A*ac)zHmYvhBJD zz`5B$Sms{^0$eizrsbWUxepB;zK<&Rm1yTWW+0ir@_}Be_+zib@rjz|=40nOis3=h z64{wCh}#IMYkao)%(b8_+KgH?hvFqI#YZJ3I=zA~>>$2jcI?ghr&vW;YUqWi%vB!yFu&jIVpbTWg7Uy*LlwJh8(@WwH9eH*jX9tPbZV#V)rtjzX7ih^@7`DSj zPVi{qK~!lXE~Q7ciw3~0Gqd+ zo1{v?c@m?jDSGl;xs<1l&_#ohVWhm+OWjZP51i>wBd@x>jrWq=<(j_2^k@J)@rw+v zUkqXOWX|_C(1sc<^mvIcd!gAfs%}V9*4I2-+vhdeGq*ZPzDaWW9mM`ncpyqWd^iFy zLGQu^Xu@X5YVO$@`&Q71eJV)@h^Z4lP+R(DB3rx+NRuZqrnDfPXwSyW6RKb;_yw3_ zvgtg(Sufucd(*c>>0`GKb^t$}c^hs6XtMzjc+DLE9d8aF5NG{jqHPLLFXmG8U{PWK zVrF^(1ICEIWgG8E@Ce#~fp{5Q!@yS%8A&n!e%7&W_3fZvy~14XPJj-}r(V<6^wq(` zRX?wEfYC(1zxlJ*ExhLxQJi$R zJV4}--QhhA(8Lm`Pr;+4CGTY2lAfd{glan;;;Y8DPSjSSYO^+OHYZ@ATA(-c$8D}| zez|?$exlp^P2)s6=T&_@uZ5UE0&j>IZ7v^*7?-DYfYZupNaVcx6Ar?&B11y!hca)@ z&$Kj)d?wJGuIkuPg`vvIpVyJ%DDhXE31#o^cD7nJ$&;~GsMDM}wW$G0E8^EmPz{+|E#V)S;^i~Enn)Wg`a^7_2TcMBu`E?m)JJHW6}gB_@XQNfv} z>bdLw_1J|3?P67H-oewTlLc3C6nBrR%%+3KxffEN9Ri-{DL~(jn9-J+EKn)FOSN)cl&g^njiC_Pviw zto_=&AOzt>meC8vYK0YjguP z9wqq$b{&j=XdZq|twoerZ~XbiY0GFQ3AeDI9v4Ac_<|5X-Hr{(IQ3t`599K^JUm-H z9FzcyZsb*u;Co-vk77mM=YW_OJQtsamN~{XIXm|N(7(VAy6OlaAz&jH7p$2TQJ`O~ zEBL&qk^#6EwQ{3JzOSSIGlszOUr6D-OZ?6=HGgjStk7PytKzzciua0Ej9PB+I%|y@8!YS@+ zwHkU6Z8~Z&zRTT{|DB2^_z6PguN^7EcRsp?KA#WijHIlo)}ARQ%x`!N>Mw(qR2&Kf zF^B$HcvRBQezkpFbI$~ka^?7MFz8Z!yV>eQwSkyKowY<>hj2#;qS%-VP7fF+r!B2> zi&NoEf&f*@@qoLz@adh)Th};u_Dmi)CgN9VPuS`<@Ga~0G{tzJ&SLJMxuU9ovNlz2 zd>6i%F&lNBNnz`gqPdDzpYK5MB+Bmgfs0!M@(wZb!=U>B5G6RI$%?s|KJd=Gk%u8g zXn@W?;4;N3$y5)V?K4SAj5cdF%izZt6` zO?R;5xsA%OOr;ueVelAwmTX+;qeZe5|JS}Z?OPIf$07%S|0rv|f^xdpaYbRe?v;&2 ziY4H;+y}gLOtVtXE@4DNiEGq8umW*rqG+rdsmiC8*y)hENP@q@5m}z-0?9xl z&qKNCSnbh#n~-8kFfKlqVXH{l37zb+#EB|hOP-OkJSxo{Py`+E@HILoqQ?QGf_|i8 zM=AiB;8=>4JRb}^TMT3m^=+x}F-HtA!>#{VHOm7;Ay8UmfXrz=^FF4Rzlb>Fi_({X z|JKA*X@x%W@WT}@Upb5$eg4kc{)Glt5#=}!R%ZK1U@pEwfUXVYOcxBSSYbzsBPUpU zu4fIGx(0J*5CWQMwv1Sc*bzu(SvG*~A07b6l{YoY%ro0P`X0~$Ui_HOpC3i9F~S%q z0qmW1h$=}NM|6$n^X5AXeipiw546k)4vdO5IL3`alF#3%(HvgAhP2i7LU2;H@BgFl z2){KO?A6h1sK3;yWV^&-i`LLEH@8D{#(JQzobG$mUanZIYCT5t$e9O_%a+4`GUowd z5`753J|06dmOh6Wvqv#el)K+=q|n3P3*_lmMV2<7X$JbFfkZlypiwT%3cViS%|LStZj_iu zU9#M-eD`>KJqa_uFQ~Ta`?T@4pM?#mn|sAc7WE(;=!kj8L7KdLb>QtLs$mBavwsd? zYkblI{AZcLu<@%OxjrR(i(RMo(*1pkp6#~{vqWt*5QBzl>jqc~JwOP`R0^BO+ueRQ z+B1Z_ReI1zxF$nulFB_mWgbztb5l~A=WTOrT*!zoFOi!$@+;!GYjVTSIjnIeh@$Xo z0DUJ1!g5cU)(BbWt+1GExgdLCmc+fq8YN4YC`i)x{Zlj-Bk{lmMDbn0p33ig_O{Ld z=7|X;#7dGci$OziDg9Z2tw=)<NyB&Q55;=DSJj`fBpNi<1AQn4QC>7v)wtS@sXS9!OM}!7vxa4rlOPmP@5FC z#6j3Hc`rxCT5lF>cp3(u7@;D%fqEIoBzfz^pJs-WW5KddQ$My$|2|&lbxwLL#{_OW z+eu#V$^%%N5|EInNB|QV5pUA0&_xDLSp715eu=K>o6@COr2{)Z+SLpT%gC9}S%Kuh zxK7K^5t3ZLS=N(Yug+&yLo!Yzsj>&TYaHic&7T7&`Y>g72_cT@8)Q$q_WU%k4)Ziffs{KZ4E7VS&h{RYMDbE^sUhBQG-zAL@+Cb0I< zvIL-Y-GyM`Wc%IP*o7Dfd`q5`Yduds7TB~?w9p6aBDDCT3*B^n{>d1?b{5Gy^b;yw zd#PUEzV=;Ol>eN&?CFn+r);Bu3ilUe|GLkwXFo)(w-9y55^!IHItog?H+b*z9r`;C z#;^0d@#j?{8>@B;gT-rw5TC1ywU<5bWnaAT`F#EGib=;~q3T4}BOSHfqC=&z)%A;@ zG97N+90aR}i65lykZL3s{~R~F2`z$`epK%*3|U3pfG(a#nB!+sx8z+|dlH}%U^o#4 z*hXyw)qIsM&$=4Ochws4|E)k`XcGZk)9(rN+Af@N*Ud*KIW56U(P5(O*Ek#7g*Bz~ z&HCP=^qyyJpBOI}e4iqwh7TVIiOa{3w$`@;Xq{kPZr`2!&SBF(05(ekpp7#YgPR_V z=F@6;O_a!->d)!z7sM9|O}z;!f!g z$JhXzx0HV$^y^w+pxi7{;YH#DKfMYBT4@&vQGA+O=JgdgYe!c+N|pkOirV$})G`!W(igH^hFF@BFZD?jH>hbJq=5t~ee+!X0T?HklW=^`&Wv zF#yWY90Zn131E*g=3R>&W5e?pM~OEAPP2hKwT`nwJ9K$#dP7ZFPcZKLQ;6f=+P2myrM*L0n0 zwKMG%JMsNnUC+rFQ5yyqysmc+{kCn)pG*d9iT{JcRznXv-4wZtjkLOW@9?s}(V4ET zpH#CoQE3DzsvWH|whx)%>VhG*EAP4$;2#%QGj#5t+2o_uoQ zH^3p}p9A?5W%M0z923g)x{+c5*xJCJfHm!fWHK3m418mz~egvkrx_Q+1E-w zJR-(_s#tohIvk?tgd(^#X)CI}Y0`eGV$!8esA_E@fy<-Q{PNwUy{s_lRXc0p*RsyM zbd8NWy0Byl@=oJ7QAbnK{Qh{{kmS$tKWmsD#jnlxE~$;`&v5Vl75tvAkH355??!DJ z=LbF7cgKR~yc#8UmeQ>d<%3B&!RRG}*-H=SuGB3x)REboaBmJE{MN7aL8Y@Z-buB| zb_$pHtDG8jbXcXI9zM4AP?(x(RECPR#L;}4;;Z!^uSTEaP1TZ%?(_x{jG|JmeV2_tN>k}(B(b00quyS-(iCb2 zpGpM%G<@kmS0459w}T)<=iIE&wH7^lq*vDR*wT*n}jx8 zW6mHKTEveiz zG#Iinl_Z zP{5e7ywLxJPlgJis>B$4rvU^eXW_NJ-mG4i7O3|VRHNgFy235hrjE;*xW~6Av}3+e zz`Icha#}V>Dj29*e&P6ogUH-9zGpJ|KvdZN!2Z7 zXJ+%*7m?kKIK8^=Kt(~QM<6b&!EmdP7I8ANSGqaDf4y7!TYsYT&EwKJ9VYLuG*LVL^OYD^+R2| zc^Yk;5&}bBl)=3e&eM*BS%%o%1prEtU6y&d##fv#e!0_|m+(v^;-48Gd|!@6-Ia#m zJjS9Ai0alT{hKFbMYMde0{9(&fyn5^fzHxp;h60N0BdI(58K3Ptb`6q?VjG1}-46OJ2?tf2@!EdiLh>;v zWyXj?h4Bg&w^alrxd0FZFLg>Wgm%YXgP+)1jHA)vlrufAV2Syl^d4E z?j9zn)DXk5j3-ofGU>4;+&x*d^8P-n4LE|I&wrP@M9-$HSKsI)^bPjXF1M;*%j`b7 z+n1-x43-}a=2m9`S(11buCH^I$u5zK+QJ14s?loPUy-RnkxCi@Nk$*%J*}Jh7I>{1 z8=3%duWGMH)*RAZfRfvLsavuxECF6&5GDm=G@`}F+7@wGUo2PfVjO4g#3}A>DvSws0HdKco18yyHA7Kh$R0o2*3gx4Yn5K zC--(<&thA7D;>5DaebiaH2QWnilCtiAuvEZm;-F#%we*>x1%qMp2aUt9B!T+!>f1z(nsm0pwY>U#^^UK1dI9h#gFUq79l+?4YSql##C1M z^N%lt|92O_Y@+vr(KiiFikrt=(u&2g>7@EB&9a^{DGzD+acJKYwif>$x3~6{?TwT5 z8|$_*uJW@`s$|o`u%)kw(#8fg=(QGf4okJ5eA|Gq6-7m)3cz$Lc&eI)*ULtI_fG7Z zIT!S%SneQ^UvC39_w|qbl~Mo2L%a4Kiln?PqF5#q4H$E{vVC~$tLoe`s1IDnd+GVjP|kL8}@uA zB7L55XE>b(+!_S@SfRtsIbN?W{E^$5-FwQ#`c>Xz=YF5>{0$K@TS}Wx1qegeA%Cw+ zrWdUO3JHTYW(w^}o9UHTzYNHvqT908#LnQpUP5vgpUQ7^9hZ6V+kBeOI5t^6zhl(Ce402b zPE8=Vj#^y!1E9ano@Ep8Zy1_evwh#6o%oz5I*EB~$+l}QtU>%H;2z_wzy-KNQ<5f&kEfD2i%H)Ws}}+NCy5~T zcS+W-{R_a{^KTHqX5BPN`wIX^ zqfa@(A31J73;jXz>Fxt`WVWq&L?BHb6Ec!W<8^WVxQadU{apsQax0uEMB#WKqw}#A zqp@4hxRjfD93u8IM`c6(`^DAKw0;NTn&!$`wZHJQI``nEEp%>?nt2|z@uXnaH*AW$ zg2PM#{HdDyMMXwh%BrW(Nc5W;5;LCwV39Mbd1~x4z1#HwlHI}zvN!S`!*p)}s9mdM z>90MBOhCD2;uXm#QI*8D?@d#0f2i^l6**L@gmzO|0dL_2$lAXej+EtdUtTqAESPQ~ z^5bdZ02473gmwhTWhE!R$DsUlIX3{s>8b%dBHWVL27E3ZXnboIR4t1_2f~1MDs6U3 zxUrvf&IhT0xlq@__w6}q-WJxS zS4BYrw}z&&E1oA~n5KGi4&S~%j1`wyE9l^`WMt1;PdXRct)Nn2{xglwV+XNg`Bpa8 zI0*!r>bI!m|F){7Awsq<6Kp|e@4^nl_5731wX^OIQS3o8i8j~+0?Hu#P{Nl+xgeYy zP2C<--4|3M-rM073lbE%^SX!Z(V~lEL){$Qofn9sf`bCU$0W;ob?Q5TS*&4cZ0=}} zkgtJl`Maa88_Ae|mMMF=KI)4xv0((FNIoA@a^k(Bu1V7VS!{N0eSZB6J;lkWQMfnF zM8SWt77*M^KL#*e)1C~bnv3a#z9z|KmiH^WU4+9CBJT7L!^2+~wH;2-jzaa*LOP&4 zE{AiE#htV%v@?`%1I^j59_8kqxy`2)@DJH=xdSou808AUpSK1`_`bS{9Rh+&X?^&7I-ybZkR7I%^Z2q#-=eC!Ym;MPdKIzVLs&^PMH-Vs>qWH{l3 z*t-h~r!c^5i1@LSnfPu4XzikbK6nTW=n-TixZ>C?}<(EEAeylQUj=cZcETDtaLJ08rrdw!N-k-*T zZst%28XzzN{2z^9%9v;8Nt-*z-yIW-0W)r)A_S;8HxJGHT0(2Dnf-?3ZJe*H~KiW;jK*u8S?8zK}EUpS>zZjux-uro$ z(b95>I6(YBfCSS-8i<*vb`2!JBM`v+avgX6dP5;bHvzzs_sDG;VHg#K5ZH^Qx7gCw zM9yFpB|}>8JHMJ!#+iVUalVSOZ1y}ZCwdPK$9~(OlT=k}&J?}*y32yRh7jW=Bb1W( zB_mSb!t?_)RiIyJK^(8{)mN>JXK5SSZ8jC3R0ka;02F&OXWN%920yF8qGuaezx=X} zZf#Jqb0@*|!LH6cHPrLuihU{o5v#g2CJoxwG@n?Tzj16lI@ZG%PK}a(o|~;1t!S4g zFiMLR@<}5eFhxPHXUwI{`*9w3d~Xwdy<;Reml(V1^|s0rCJ()TjazPJsoy!?VV0tJ zf6!m1^ouW7R>R9mhQPVGfYLA~4c6faGCnD}CGS@$1f`MF(`!YjDAT9KlxS6%dZNwH zjR90F#EsuO9aBs=bl$A6AZCePMNw%9_vJ6xOrH)ZAv|;UIJ&S3sPfity3#7kj9sc? z(xELrUa0!5-x57<+m!m4S^;0OYQN>6K5IOW&ngo2fdzUKmgm|PJ-!ql%%E_(pqhlX z`47UnZ8LO9(&4t*ygLlrK{5Wy?KbOMBk~L}P-Mwqyf-23*#raIVeQWd`87Id#$l!U z-98h4p6yOV+L+wwE-OXFI~QEXD2x?Kj76oS{6u9j099wG{;LsTcq}7NyIo~(2?esP zI9g_=GqAeTdAdG1+O$H=z|vm()9|^Av*Z!ck$Z~BJPmKg_gpNrwZT$Ul=G{j)sdMT z(x@YE(XebmJTNhu{D#PKfd?se1K*)WMtrX`pnS03dk{#UzV z5vBCJE11oH>s+p{umdIY*~oL65eW2d#Q$6I0`si9$Hv`0bJ)Wf-Hi9DG~cKthlrl>{gXCdagv%GjIypimd67js!qRKNC6%L z6he!MHj5!`NT=8Rrt9ng3xDdi2!o)ZL8~Skr&j>J!^7nGngcZk|J(q;?^W&lSH9u3 zA>plv281hOcd-d#Fivi&tEoPYiL7`;yE)TXG@C0*?mALnC(PACSR#K2ktN^u%zpoD zPmVc%cx<>K(eo4fhPmnh!J!Qz>y6$iP~hEY^Uw8FOlR00z?I#VMv(79IVw);96^W=Z783W=tjrv|G5X~{e#cs({wfPFiua9p z>05?ny?Ip-Q1$uy)4zT;cV>F{4Rmb)9n%!`f5$7-2Lx_df_9Gq|HoSN#Zmlkq^8vW z#d}5W>z916UZx>;kI57>v`6>qNQK9}pAZAqaUm0TD zq1s=#M1YMe-37kuP3I{3Ed%U4aKz#n?{FcJ6N#ACD2@ErLS~RrUb(M7S7fUuKzlWR z5`l=ni!3N5@MW2AhH51CKw0HOGhHJle9aIcQH0DNpT@M~J2_rdq7CfmC_c9I53doG z=U_I49Aa66A=boyL#!HTh-Gt$r~(^X*K_|3vB3Yi{`ybj!393(u+&1>!dkCsz^2#d zeMAF@;x9;%=YSG5`((!EdV9<|en0h_p{oWDa6rvXnpmVL{ zG{!Nt2Zpyx{l0BnHYBrjo1^@;HHjIorW~y!-YVq)SBhPPzPnLQvxaH7nZStZw5*aE zlTWHwWjK<*J?dg5@r!Sb#tAbwXJptC_n(GGkuXJjE+isDdm!F%MMpNvJxBZp@_x@Z z=_@##>#og3CFpIri%7Ukmf4G>k&4WcUKHL0@C&{c_lTi zcJQJ%uV^=8rnKKnK^y-KF%YOop8DCU{rCQ1f_Q3>GtIaq&hd|pPh(sGORvKf?u%6Q z;c86nU1WyErhT1$y`3-WErJ*=_~%d+U3i6NQUij7YeFvuMO*%fR}mL@!6uWpfBrM; zk?#eV2B;jcx+@4iA@aYU zYqvENC`;0iD`J7WgwPvdPnu5wepSO-mclC!OIo zWc+xvepflbUCE0quOSiRqw2z$vF(iv5E)lM+tc>8jE-REw(Ez69%d@@w4YCt-6&?i z&jC#CJOJsiH6+59zflBWSSG5I*zrXk7vc=ug}}COTri%%=L7&sJazICb{)(W;!mKz z_Mr+#zM66|MtKLM;Ax3zrfFslcmH#ctgocM_h27Dy@?dmxK)Is=KBXc4R|)nYemC{ z$tNHA`j6~z0|m;=_bEVJg|&cmEdNROrvjNsdF@C57R1Bt*EuFjCpryS*PxLS-6X(~e13-O4i02ILOvJ<1@K zzqCI=l1-kc!WofGeXVIm3g2=+Z#K%aJI~a=nX87=_63zQg$#C@FYzeSt3DsQHQNAz z=iM5`v4XMAQ66(`=#MTitFh2R&>TN^(8YlI^p!byZeRXe_B`6L$PMYT^a_B-*LUp$ za0}Ma`H;JxH_2IIY<=~}@%$FP-SM>o;Va;d{J{7{lfB9Bp7sw00@buLkxcsrOKqJ2 zSWcO-m;OR+DF#Hf7qebFB8sc|hof$P&6mbH3q#eJPM_~ZFEScj&7C(KyY7h|0T`R! z5Xbp7tY$1_=4lqdpXx5yfreZ6C6%){w0|)cN-!2zWX&TTr1)dpN0Bm0duIn(5BveKz^EisdSykj;|*ikS4AmK_pMX z8XnvA_o6+?_~*C3zFrjo&+^w5zz=!S!fk-&HQP9@XI;wI!wo8Z(8u+QTeN)mg1if3 z!Fnu4;s7K@CmFy83-_gsl(SDDtyi%ZtS1U();lG24S%26iUBB+q}icElJ+F>?J}P+ z6%%7{6H$=I#PTuV=S~Jk3%fXAymQ&aJhY-y6OFDflMe6qUwg+|YN(#ZJZMOufnzRy z=j9?d!yj%oPu0_cJ#w;b_G#71ADnsXfm$`;;Qa>L2aqrQ6D`?Wct{KMy@(?-$!?Jv zA3MLcO-NobD@%vK^-hOzhx4N#onQVgp91e*=p{GuyA|(qsHE$Ac^{u4F0Te#3a&Lf z5L~856UVw82x8TyhRr$MUE9ej^NBQF583h>2CmTWq|vMl!HZjf4Gtv~4)FJ)a_wK% zOt@`uJAL32JXf)}5E7+!&Smxfyw6JD>$cxNF^`P1v=N!b$Dxzn-4H5QUIPi*`h)O8 zfT>;-@Ijm?80i9Y*DV93sx%m_WMB92qmmI5n+s6PY7VNgsLHtq;`>Y1>y0ngUix1n zpSkNXutuw?89D+yJs`r?#)Jg6%wH#G%Oh>-7TEYqPuwPAxc%d)NDXwC4OjY*_d-Ps zWZKg4W9_0sdgu~_I320Th&brf1PPXL4=~)&$gC)UXHacGezIJ7P02ymO85^-iK^EH zsmgCeX)fJG&R(etKBA+J;=K|{^@MrT0X93yQ0~}%{jD?$gD8r>A#+AGlW+bCv~@vZ zs2~QuHq&_}vF%OsdUmBXb>5pIkyt9K{Y9TOxhwE|Gc`v!t+1fTzIPo|cH6mI0319Q zCaxhxUvc^vHZ}qFK?5bP056At0Q6 z&16gCA)h4C2MIAKhc21@uzpABB(Fhca!>uN@bZ7Cy6(LiP|6s3^2Uv2W3OR~|XE_d^2BSC(IAIo8xU@zQuY-FMsjD)mx*Y+(#mQGuRz5t)W>&&*2f&i!s z3Trg86cBp4l?kxwa}E)LBc;!Cvu@?^bsxD#mT7WcQhq>e*0>BxmLaRlgy1{8C;K

    CM0GiNf2ySz3f6E`6vh&1}Jn6%u`^?DqboyU87peXdB86!{K1+M-?Bzwk z4p$!GO|nThEwOV)zU)V6%Y1&jPV^h)d`p1UuB_iOt7*D-;nSe}PXU0mWXZ(6Smv>E zBs4z{x>wlwRPhQehCi&D{Fi+HbgLau)A*wad?r*c03%^--2+c*L6!kcn2#;|*TcW! zzD!%>n_J{&V8w65uqz`|PTpHqS}Y^2?|hP+1<)Us2z*#@;*q9y2_C^1u{U@x}wPm|IC8I9AuVnob%Xira`22iwlRos2_%)v}tfC+!H_1Yw2 zLle^0ZK}&tkobe>B=$@_n6q%CsLIj#=f`c12NY$2vBHpv-0H$>v%~)!{UrWtaaL)z1vuZ* zL9h&hPow83?=k{JXH<~cpjCi)5a(bmPWe?=P_Ay>&dsS_V(Rs*9uxwRqyC1;+3{0I z6bZjzNiAiGtO-jo`PvNYo z84}XCE^!-byu9+&IDhdaS5l5kzW&P7Vt!jY0r&T{s$YlDMnq|sa<*T;5L^GaAM~_p zI(To>d^vB;#B{UxczWlwbNNw!ZRW!dGe_i<{%x!k1Y7ul#P^kM3rYe{g<_M&g=7nmLTfLWtZ3~air8@O;q}-8cq5T(>zg}1=Z)O1-4-0e`Q$-* zMCZufwwsG2#0#6-`#uVD>FK;YUn5~N-QIsQ2z|Ph0;Br&<@Z?q^~&d7m;di9KnnPz zE@2Wo9I9V;V>n}OG>dS9qbG7 zg6`wJ_L5NjmyuoSb%0~n_I)rb2|4#*%sLGV$gD1AxCfRc^54Zq@~_0SlXBAeG&DE3-NZ&&r! z%}Yk@f2V4kz~R;>OsY>Zoq*Z-qD(GEKvaP)UpRuO&~PDx^!tr-l57mcEwf7|5xd?3lxH-C_+4X9 zoyVR=)1A5Z$(+;U!(GJbUoU*wKLV_Rm_eomMwPUrfowS&J4ld8o7C32f z_^dcbO>!<|vZYtM*m@pKdqQ*eBjUW}7WjGye0}MJpz|?&PH~Rn0nDu;`!L{j&Dr_W z^J|<~#n-c0@e)^@ZjLaV)_4xcIPBvkjlx^12T+55TG!- zyMN?=3SU-$V4R`Rhm6T?;tJ&w%KuuQ;X&bSb2nfLv3d(XUTNK=pF!h$J=I8p%a{5MP5)@6rICPbPoqS)Kj+rH724t;#`H#^dW_|+l zuU=&9+X{-)zb2vL3QJw<^<0ugsop%U4V+XUFNE%dhzqM6Kin?Hi@u1HLgqqGV)&T^ z1iM`V2%tf{n$0`9<^<~jrzMG<*Kl?^8}@vn$T=^_YcoAf`j9P7H8aDz#`ME@O3D>S zw*x;kkRaq>J4EfPlPu5O!GG01>n{-nf=(#&+sW-7!-EEPboe%ej%rV(vu5e?GN zD}8S-i+*dixB4jLVQ9&xsn(YW$_F#jbyXkmF}%8C@I8IIs*5Y9^S3Z@|1^@sn8q zMcbQB0NKF_Ieb}bh*IT?NeF>^Qcjsd;Kfn5+KUidH3wkOIb%Q-PhD%wChBUwhfV4u zp`Sf_u!fYWo(;TSyd{Kt2py%-6IyN+b#*lWZYfljGD=cT@-yO3>j06&`__^Yp|zf) z2}*W!ZvpixuhP%D9{|mB<49mI)KANdLY~P_{9mD$@hyU3B~MBvW&4i#n0ChKkaaUJ z0XclLrVrC5t~jvNS$PF+saIAoN@FclPCrJ14IWZlWgA|;KjRFLaj|JCybM6y9Dxfg9&}p-uVt&CW7Er?)?+? zbGTP0F~;P3N=7wWMe7hond zB?X4?#ik8i-`CIzZ%P9ALtGM?I*1sN4hGv8aNY?YceIhHcnzCZfO6M)TAno%1=1X; zGjpZxemk-cJPoXVeH#oKVxgKYZ`e!5?ijnLl8y;AT^5Viu=NI0g)S)Qd~BQ1dPr)O zc^B>_4|ZoMeDWF%rg^b{tmVeYQ7A(Ll_5$A4{8o> z-L-F&sBp2Dnagum-Sr>-+ayCRoPg6Si5^7dTY;N5TWJeeTd-4XN!0H|@(|Q^1 z^QP(B^ilwgL{B+s5A1Ptt=eR6mPK{=wR_qylbB1k?Xc~1AKmK&sqMWs_9B>#mko=8 z7-%GVBcOxlYUjPOkKiXZsSjw@oR&m;du^;wj>E3la9rWwMgRSBBCJR{CL(9w>Cqx= zcm=>0_F|BWVZm0lf;AA>cPp*ntEb$U6HN$7t=5V0d;zs0Jfi;6s!1VpcBW~6@p8yy zRNWA$B1!6mrK@^LPL`m(_X9P7zr}1LDc*H27==lf-Rvj=c&|%<+MXEm3jb$ z^~LTOcJgaovO7OgO_FZh%#JhOlWR?5gbG*cVETz4;X@=e$Bojg9nzD05_^Z!l*Gt} z6F3a#wwL($+MG;dI;ruhFHN?kq0svj*vQkWd(N;;EeN)3VeLTH`5)~YW}x_3r@PnA zUX(`I{o5TedbeqJ0J#X7%?{Do(9bS*N^=%~toHs?rHeUEeu>pR4&J=%-%Jqx;3_e)hmp`~HIydx@&EjGf_;0JSiWtUD0STyBc zdU4HAT%Gste$3sOe3>BqiC$g79dxBQU`*n!k_V|0iFM3>{oWo^auXo6X8S}jK>)8% zS*MiqP?VV#0w@Tjh=4(S?MPGVGA_%(?$pIG-5GN&Chli}j9}uM;6(3K?{r3gASMYo zA&>Z?jVCp)KH2q7A?p16Adloc_!_T48cu49EZ|FjO5T}vPDX?m-2_n~2*+6U!%p?O z*h?WnS6uQDvGpHw{}ERG(IThes@p!72|ve0FU(8hURB(G#2EUR?CfdFoGVN$t^1~P zIs+G;;JNfrnj}7*YKe^Pn z{(FD_=46q3ao>ld!_9~{mt0J0$AxM*8GBAQGy?m(w_>LKlOFZj2z1zBrGA1775o?` zb+SBsoO*@9Bii`&G=QjZba-ubH{f$4sJCbzB_zCJoFe*C{kw)TPjWtSx9VH=Jb^R$ z^UPohUTyQQ{}oZvVEeaa6mG=Z{rTlrXDNt&&@=u-Qr|%@M?PW?R%h{~X3<3nZI`!C zH#~e0eWG^8fqu}%_~fbN%e*rYqQ*vk2&_VTow@<$#o3TBRd~#7H^f~Z>5|JF+GZK_ zD(lw+ctC8~c9mroDZzpFiQE|rwq{#$T0OqpR;LDx<#}e8iA*!N#@w*Zc6ia}0zhSb{XT%l3ktzu>ks|_aL<%_?J2z4ntEXM z$kZCP{r3FrIhXY-VeM4zPlF-Q5TggdMWVM7`X9|`)0Q_v9*YE8E82fI4G`w&N$jallpa}6fId=O!aCLUwb5GVk#32JEa+ZpLG zl^d7`RLvC~HUkQ{H#b*#@i?K=R3iAC{;VH4)B6|cZzBvCCG*4t3U$y&3Nlf$OX zH%q+fwxB@hX5`pCuT++i(S(@ag;siP*NWfX`p!p`t$38z66AUeo!IkY#4qWn8DVwq z8I93i>otXnib=MD{{r84Q}nw5&5Xvjzzuh{=QOA55V4^ z%)(^^T$u6Fk39!gv@AOScVm)?O;^VnwDR6dg8etuWX%9ZLot=Nf!DfrJSq*KQ_n?L zssP!0U(h{di)@a$RcevhJNQ@NuRy%#Z0&LLH!^D5RIazFV4Hq`C>T`wr9R>Zcpl&V zqtKeFxA}X%R#w8=FPUE6lJ#L}BtMeLU*;DM;&-Hzh+f_N1Xd@Wvtzp`899({DYYPH z0Fx6IK~5)2Xf2y>D~l^zH2uq8=VNrJ^x4bo6|#nIWF=mWS{~NLH~E`tKp#sjCPcD--Zwp27$5F3b3=`-5uX?`@x5g zBk(h5+>JqBdx*LUrGI)Wc$ke6lo^STTPy6O#o;jD$N#K*c_B|26g%SJ^V!n8ADZSW`LLGB+*!w2kI1D)E&JpKs zGRl>8eir@*yr=6mpuSC`L8#Z}GNC}!ra6%LTJi0sY+zaFf>s8>F4F9=N&2P!Q5TOp z;Yn^;8~#NNm8&JP#hI=$e3Rd|6SK1>c+~!p_3bdcm}5ZXC1T5OgxlSYE2XcZVd1Ib zcTTBRSxbOrqJFEoaoav~aw97pJT0?s8FKlQHMB3eBK`fWFk{8Its zI{S&)eG^P?7oPe$i^#2cOA*fm#L=FIjxups6_DBwzkw>CO1-T#4%i-@E4Q8xNt<6Y zCK*=7HnmxTH#KOkla^U8Z*a~!8gZT#ahJ;*2yre&<5LIio<8H>hx<5dZ-u#iyk|sGZAbF9nhbUV0G+h##K@3$skH5 z|0z5`ai)KtQ+OpG$GoEgLG3b0D1rP**vCrq@eFg{;ax-Hjo3Dw=TvK z>-#n(prUhF-n+r?4n*Z3MymK7a<8{;>5jV~+A->N?v>CZDkARKvKRn6@FnM&3I#IK z6$&zfr@zSn;0+;DIG5~0KIj6`R3R(JKPqeEzZv@HALmP?NeVYWbRT)4E|hv0n;1#I z;<_buzzln3P4o&jK>lZdTz|CCX-I-F=I%q*%-}Y~c{X@u9Jqgl1yEKY~xag26H9|9}1?ShaO-gLfYO-#L-uoTAP_a7Acv>pQx$^Ov*d z0Vnq){)(U93_U}fG#@mf&cmTUw0JfP(|V30;)~FT1<23_f&lsRs#;`Oz?H1-2Z-rs z5bRC~AVBG>_%~=V@Km|$(aUkJk3{+_`Z+2QJnxgi1TUGL>9^9? zcQ5gJSmhiOPd&r9t=iX_yU@k&2Tt$%&LBrXQRRppX7Ib3HvKiS#S_kDHkor+pMc!Q z^CGow8w4G0tL}kAfqn;11hd6{V%0%NM|5@gyth|e8wQs$dN|d46xm4l% zC{s6-yoMN1j#pJxy~eRoJnmTinygSD`CTO?7w)6nILN-hxP8VO?ba#^=gZN8t&7Wj z)8%yITlnScYsosxd8na4Ez2mFZ1?E0)C=ZLPvypzKC9(2WK@gg$?kj^QjLOM{?0#P z{dxUJ6>f4kWhvj}=jVz3eg(i+G888Ix3kgJz`04D?K3s+89j<>ZmK#m1=KmFfo~NI*?!wO9G3@nI3 zTt{WaBLV9nQAftAPZcO`#axP`Y>H3>H8kc1 zW2k;LkJj2ns^-m4&zuYtyST{WMd~-qzp81%@`G=dokqgSD*)dbe6ABf-;R2f%Z+C4 z>8KRJ7Ho@W;`?}7W|$Hzviv3YC7?XJa-wstfpruq_{rlgBH|_m_$c9LXivrYy8KeM8nG@on$X>|_AbBT?+=^R2 zz`zzjhjSheufw^QQN#Nw+O9^ioxWZ5|gU!m~+kTGHIGTZYNT+#wpp06z|@%qfNy6|BDZL*!^eu%KUd z^)g=L>2#2*;w+sPNkatOGAd>M9jxWe%(qQ^AOA-AX;w^W68|qPlx~6LrLrhfymDy! zXKBLv>e;=MF9*-C0-&tvFJ^J7t0BQVgyT)rBfd&alJ{a14_N!Im#`#7^7fi;T?)X% zH9wg7xC!rId~jL6c-XP(wq80Tb8KvfI_`85xLjUsW>IqO@a0pZ86Ik0A{B;K7+2y= z(bGwW_81#=5v=Q+#Q_}#43XWsn^DrWxxBw~OvPY77`STU!C!wVWFQ70Z3@(S#jTVx zH~|LA@k1Y8`pm$KGiQ$|Ly&RS89J{dd}~m&gpUYZwVFqncvD@|6ZxxBZybo@W8u&gFHOt z8Q|0za8VRSdcbxBAf~TwCV3MJH$!0Srhfo>0} zhTI-;GB1O-@6*j#1PGzCUg`A|P*MK#C7BMbf&I5MGpo19bDS6)bTW?zx>@IHs^;Fc zZE~**jefk-|3p57=7;W0x$R9Z&6AY8-bqpSp5CUR8`~|<(A_e4?lCeQmyvHrb;{mY z($|*s-S-qMMwVBBh3x3;EM-r`310ALE11mf7q9YmeV&t2{-Uc>bAbv4au)G8B*ojr0DeR14$FUT6mCeu-MHn14NpY+_2 z_0G_3o{i!!g^e3lCml{V*zyyW^0??+|vI$y); z0?(W{k>tYw%>~ZaTUSC~-OhjY{yrgf(D?mzQLi-C8}Zwy;i)m0B$jO8RAi6CKcR_m zi{~)$L=(4hZ@=8%VXpk5AIjHzH`)Pj zI~8-TLa-%V{M}j@59skpa#qAr5*YDBiPEvpGg!5oZr{RAqNTdXuodlNHjm&jR2_u2 zs9DekUCRk`ZK|2JpkPRj(NgEu5jKKCN@%S0DtX2eVVkWDTY?yeCqU&DYyxbcc=6U> zKKPT+bTkim*Y@C*7)gkAV$8S6moAz$T$HO+0Gz><2|#TBhG4g208*U%#$$@v;054^ z=E@_IpRLufj$aU%P)GE(4I!#Vb%o=L3{#55J^n`#aFE#EKTg0^1A*;n_`j8>Rx&Ja zGy+dSl#iz6%aox7dM*6iHacj}5kvLyxp^DPMyk!_`BZl7?{uTStIM=#1!}g)I7-T* zxBPd1BjzF?evRCwJ;P5VtnHY`)g^H*HsHMcQ-Yc3%NQ=sdN${a`VzW$-i-FAJOOW zpkC~*6@h54k?jzJgnC?Fd)~akHZM;0V_%6Fnk_M|yA!re0l|3CWvD$kJ=>kx2M7-C zD5Uh`y_8D?;A^swyEpWAZw20Bqs)r#Z(ptt!aQZOgE?PhW8!nQXayyo5DPCcfL9Zk ze{55SCGw;O@@bIe8%gBl1kNWg#h?9qAK}5dii25%&&_RKrM_EZUU%A)IA*d&f@dOS zmwEh0^aHqcqa#oh8+b8^S|xesZT%(2PP1nvDkJQ;4X6F8V?+fv1iKvus3>sQ@>TR) zf5a+Df#g%UUr36+Ee9}nrDcgJK2V5v=UvwCW5*a@x}|mtlTP)ZjnSEsF3J})n)d6tF($~dHh*g%|7k&igMdrgLj@Xo6_kGP_EtyuJ!q$7{Z47H6xytD~ zYYu78bHBhw1xq%Eu)!cp#WJ=}u*~oQF6@=hGN(GB54CQy-%}v^_}iPWFhT$51m#Da zpNLJzANePA>C?*04&HB7GtPUmL`9MDnH(kfWO~Yfk`f+bp7Z2hCh9Ws4D`Cz@ak^y zj9y5H65rL#qhda2$9$@<7xd4;lGMzThW{`Up8am@*2k7oWJoaz4LmmTAKYcnQD79% zKOQ_x7|19^QW-sz;dnc^o3nO96*n~&I|bv*M({0KWNwg%2BAO8Ub{hb8w?1IM#d07 zx7Jqn;aD9!RSgXk70o`qjDuh9@(vne9ddbp6ll$W`Ex@#pg#DwLJpUTEI9}H_fyqn z%}{?)6Wv|r-$w+UI_fA7#e|SAN|)P|9KOJ1v%ZbRd>iPP@n92ZHx$5gliKK*I;_sp z(jY<6aEefK?qu-%*_3a5wol2xK=70Z@4z;URP+Bi=z)HDvLCuiE#BN{_ST2~T(Xb; z%!-S*F#2RyhR5p&g=aSslTz;v$o=5qQfdDF9*L+B$!1WViYLjjeZ%+ zT(YJpCm2IwC;9ikHevk?nhGsdg@bdT9Yiv8ee_0dgXG4ZH}tLfI{4Qp)EgFdST$g|PHv2l&vl`zpPQG>j7NZi*w*1b` z4m;A>(e1SZPwXRhi!M6ZS-!$egQf!nT0wv*hl=U<%q^%#akK*u1y1-g?vl? z&bbpb#p49S9C*jVf_@(#X1!Q04cPd)T#8b^%=*};ZO+Q_EKcx%$F8i`GOg+FGWd(% z8?AQwSw%(3tzpeKO$B~lVC}p_<DP_)9vDeTZAtMRQjJ~Qpi)J2d(^5DPTj4#jW4i z<3zL4QbZ9@N$XI}b(pUUc+nvP7}z?V!5_N5Yf9du3sp{*fijqfBdf)+d(@V#+OX~0 z5ZKIT?=2SW{s-V1dM3&Bt5irywYl@h2}FVm1Pe6@SHq(EuF4jyTt=H;2QEtoZ5-4s zEMtAdSz~X6^pd49i%P*g>*f~cMG26fO;6Utr zK165g9L~Pt-72)PPeK0isri@2=i$Bc-N1P+?w^yvN}_TW?GZ{Jsx+h4P<$E0b^2T| zTb3jpuMdG96a>hhU#IgG_{%VRwgM1xQSbnq4CNh6?EoCqfu@U*Ta%0-sxi#olm;o6 zMY=%$y8#60vFo>{n51Q=9xb$wRz|VenuIr(Q4hv&{od4jrbqmz$(UMKKxmfK^Qo)~6&K~v zkJI009@wd`F86CzH&bQ0F58iR|8w~&Er4pXXb0f09{9c@;L6mzp6GKW>*J=(W8L(y zpt1tusQ~_&uQjVgw6~OQ>0kO6j_364_Qw&J&}Z!}YT1N1MI75K1+22Z1bjxVOcl5i z4WFFFm+}aGKT#-I6g$ED>~hkf`-#liWkl#TC>!Agj42z=gr+=r-r2q|{}@}g$bYDX z@k+RBNAKJiUy=n-lv6!IF~hq+xAgkEi1H*#{>_yAo@4l{FHg+KXO|CTg2>S((Ze

    lBN68;5;cG^aDK^mw2Im+_jGq@! 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

    v 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̗ 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≤{pHe~&*} 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νD#3bPFON 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�l-&tP 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,~2_(gU!r(z!)e``dAY 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[*6(CHeGkcC|h@xbz07yBtYU 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 RTI+VsE{s;(@dI&rXj;Igxdv01=zTSU>W! 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 &)i@%Lp*V!pA|-!SHeN=- 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 z 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⪚rkjZ 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 hz|-~~h0L7mpJ5?9Ba|Grqc_1}tHwL_ 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®eq-wRZ`4B?>$zxaH8y{aW-cQc${S?#;kt2 zZ*Sgj1UGz%3ne^XwSsERxsuma%vW7WyIl$i^+A%42&Qh9js_yXAT0PslmqSL)=?xOp z_!(;D>i`V04^%)`3F-0^1bNdwl|#fe1Mb{TT3m6ZRQKxWp8z!>NBVQ?N9UiXvx$Q!T8Q>g!2hFGwOu~Pe(D<&9dU8d;%YVvt&fobQD&TLe{FS@^^-9#8uAdeZwSP7zfZzvu zGH2sRR63JqJKPB$Y+DNc5?JZe*I&`x4(Ye981>H$(`^FJ$m?TU&?3(^>=YtppFj*t9B2wetKD9we7JOo)=D8vhSu*XJ_T)#v3-`^Mr&ovbrd z8*-6u#B&$L6aebx=ZJ%{?Z0y|e)>yV-=!^%_7k=b%BQClV~LhvM%nHxVR&N6bsJg} z*?sFzB{M?wCQeW^P?t+DxA{=6M8je@`}`|FFXDUWjiAq0&VxKu%`bOZVWpFQHE~sL%EKgp<7F0UXZ^acjL4F z<(?wpUX)rJv0yuSk_ndWjJw-P^0lh%NNL{>56;=_SpOH5>m>EDIuJS+X8`V-RBCVKbOLX*~^&3TG^+=-F){oWrTmL zd{D5}9>D_nOF(-E^IZo7S#g3&v-8=9icH0Y%otW~Ly)UNQaG6iE;o920YC7!+No~iK2+fo; zKI&YNWXHioMgrX(uV>UYcz42#?G)H`YB5Pj{Q@8PoTsg{Cx$P|F7i75OM~Ql?EO2d zk;yZ1rLS^B5_Tp9Xnk?#%|7;gDMI}l8r~ZiF`C;sV})O(Hbs~ znwCZEJSA1$U7$>TJWiawdjFpOJ~Gh~9nleYM_W?Bl6Y9E_k{8(fbK|0Qob5=>*lVx zBXRC9Ydf!UjcDv-QQ+~br}s#yw=7alz(aeE+D^2=GO}W_F;9MU)xU22RNmoX^D^Qn zpf<>UhgcM&AmL-TrhZr`!NEtP!4WA*f@D-@OpBBaE;tvK(LC_#F3TFRU=Dn!_rMb1 zI{2w$2D2oReyeUkuI2ck2{GCUXyjG##3B@_{aZuMKjM{Uu0i4%uTuHpPqd?A_7yGw z-DrLq3;eI*5?|bL-<{LCZn5MPS@X@?=P$6*i!uUelWoMmKxa~VuduS879R|jTaiuX zP5&0(CV=X}IXUJ}&sX+&s-+O^6!jwtQonHkWKC>3iapFz%5`=vE-^o79K{?@yFo5L zIagJyj`sDZIFCfn+J~2X17U}uN3=Xf+EWI|ZwtLS*~DnY#+@`cwKuD4D`tF3&l>*F zCJ4b2a_K7G_R+=^>zT`$;Y*FWIeVjxggm9XRBJu^4P)#Hm&yrZHudnms_1GHink|B z@a%2f(|Z)k<7tl*y7$lN!f15*;#u1&G&a30>&zeU?^18gl`Q_UTzI10Y_vSVZ<8$C znB??h+5qb-8ayQZDr?(#Icv-OFdN3ij~l-Hc(AMyaK3xgxK8bqG$|hlPqp)DDUJ-rUPq zLQX4$gh+hdZ&+CeuV&l>4-U^+{>p0C*ql39grmDXFrOi#&?UHk`?n;kE4p9hw*U&)2MF>B05b1Y?jQrjwjjGYEe$y zgLPXdWTf!Lyowdqgg6)G&N;2r45;PGdbieAfP;r_uL~O+@uYH5qTa zzzov{1xzha)9?VIo4BQrP1D(^uKoNCsPOV1f0uqf^TiyLp*Hu%7d|ix6sgjdSsFR4 zJM00B@*E-~Q~1ti?9a|AB}Wc{9jnOru6ccM^rf>^L$+oE62rJ~$`Rc4bQ`{@5-b@i z?lE`fFx=6fH$lFA8`|Wly$QBH6@+V1hNg!;7sUJhj{hcr_l@96c_zh{m2&gw6!BFM z*}r&mn)9piFS1F5sx=8@o`Slebe@~Aeb>y@EU^+C%MhqH#ERL=2sqYre8nmWTCw-kt4;E*G5EKKne`fAADBI6 z`Fz!#cmpMHVn=5wc7G~xCv4>FD-Z?&9ao6V?!Pe;(4D83$ZHl_zl`xzz=(6#fIQYc z*{gCD+@eZ5tU2zw?TbS&%Di?oL*Q9hzu7|b!nHWW=?@J8P{yj+*KwZP&yJ!nSY4 zoA@Aw6L=oOFO3HH1=jsvf$(GX(8n9A#+T5ID|xk7${F*13RQDEJg55es00dCIQ_aF zQ<5`enJE?rcQdjlCQg1Kj`dOTr`OO1IyrOXH**cN&p!cM<|ngc%X%>xGHdx(adg&H8)0TlzH zJ!7ZVNfB^3j<=qi5YP=UM@Tn)oN9qVjFXKQs(J5rKw+h&ab(?;tItU>d8EEzrB~=v za_fz0!H7eTt=@hs%$mn;slUZ*>D>zl>_^lGi5wovg^&4#QGFhZrJfdqA!pFngIT)n z^+leE{5HvjN9>SQi}89l#kTB4<;^ADq%_c;i2fHz0Qo!yOOL2K`UBBYPpVpHFuCQ^ ziN~q4_=PWhS_L0BeAC`LfB85Ie{xP6oHdhX8D$1Yy7A9 z%<(hxA`Fi?KajqIF;p-HSgqs4TiF~S`Gikxtz>+g*XQ1MF%h)E-YVh0`-A_X{w2~( z-g}pIEB7gUVTgT+nrtWJ;L=edHZ6UZ^LQ4^EOw@H8K9H#h?CPkMWassmlo*R=0V<` zEfS-GE3DZ;ir~n7x`?PrK3NJo+QyU7vgG;k#XzqwTkiv!-gbzcc(78d_4TnZ4-;cM zbHpzSWQZm7iOpvd^7>y73vN>P6%PRS+Wp2_2p@x`gG(5s|6r|KivOCg2fs)=A7AQC zsa_$l8QSk*9u?ulpv}EPYGPmp z1Peu@J8w4ZxCGe+*$K?>AR)!uYrV{7rg!W=#}N8w06}^SR)9<;^0dYqK0=FU;jq(A zV&@7BK*I@=w>b-6_QShj0L8!E8wmOM!0retJ%5e9Omzha_EuHkjYqvZ?#%qx?nLOj z<0L7Ceq)62RbVM&1IXWjXNM2PXe3i*T!HXwh}F%inTGG>HI7(G?RirlfsrsTw70lr zI4cG%P3BBHME#Tdx$=o1a`G)Ipc99(jV);EBaJ9cIiEq*ejusblDAn}pof4fnn5@+ zW@vrMXIp_jmjj@DEbs)l8xb?tn?9z{t@ACbzkA^xe#ZbfL7&3~(B^aZ(Jhb>PJ9s~ zrRU%TvZ|EzLb`AlzXgwSSkvTVq1%du@uqa4tgis9H>1uU4e0P~;I%5!B${LZb)*!O zP({Z!9PX?tjc0lL#QqkptzLn5J-iG5djZoAN;{!7n%$@Vm{8GhfW##5ZNd~;VD6#Y zVuB;)?;W>qvK(Sm??{``E7KI(WN9ItsFDYNeuPm8jA4RpeQW^8hT(-tDUmJX1VB;` z!r0dMb7~x{3iA4lAGN==u4Bd^ukYCAV0R7;>c=Z!9*14%-N0HSC zP(A-RYi`r|o8BI%UOnx_`n{}v7_4xl4k5EG0rvQs)L^x$;_x4;w~|-7t-LCP>UM}h zF}7enA+Ge{q2bG;s-pAYprs!V6FDIKt8wMDqbM-sqW@icYR_x=S5d6Xfw8h51t!zm z!ZNn^35$$x1M~5m_2|19fj$ueTDUzddEumdT`Q`bb@`WHHLDz{Dgx!o!0P&$a~x@d z?;s0w5Ui8~%s4BD&w`W_O8-k#ACU<)2*fe3Fi@y23iL58P~=>&Yy0ZZUkGv6)vda& z2>1q{L%?MOi?Q>tGRE!rv+RE@>SvDFy%4D2ZUkJ=*>`t=BwYF>5WEnGOx0Ce)zjIL zenp$M|6tIGnEC6qUbc(k?N-02_n9=-^5JXomUp+WV~%_1=&cX(R;y}>KLncGUYHL( zVj0S?lEWo2FWs=#)kPc#mSe-KjqH^;}30A{@022rXPlHYe+k6Mq0#g7{% z41-=*;ybR@T7yB&9vVE7;SMkVE!%a5L^>EnK9eR}{)o_NHD@wmGQq60?Km7^I=zb@eHFyU?*9M82_T<%vv+(5z-D`r#9>M+api+gqpurXvcX3e`jZ zOJ6j|1@K+ddJ#7Jjrruc$)DUtXCnC`^gj z@Y_?=62n_&GZtjkn+Ot2_x;P;iL$D}V3KBSFq0L9Vbh`@)!~YgviK7}dvr z0Z2CYZ2^?+vx1tw&%werFdGgF(Yl6Sfg_l|US^3<eCqQ-Td2GHb|2x!5^Q@o4~ zpOD)2+hJUE!}6W$t=cE-@QvYgXM^6$ja@Yv&-Cdqqujek_1kKYR0NG32K7O;^A5+s zg)=c~`A4&4+&j-IVdqBa>1DBZ_1kU3+YH!i0>z#N4%?n~q?ljT%Xj zo~4mF4nUwW$w$sr|3F}Utw0qzj11JMA{lzIbanf*b@qiG_IYUkT|l!EmgE&FfU5Qu z;|g~i&(M6n?|am{UKLL_c_g^4_FWl$yp4@+zWVpH+Z(C5sH=7irX-cdJe8vn7mBf8t~WTJKipGU}}vf$CsV<-2`k0_D6T3=}lH zhLm>6=kj@g@wMK=vVZ$4JGi7#WHUtiU6-|9hz4PgXZ~3>@sx@o_rbUR;RWZ)wRy0Z z{9*x}?Uw@t<0a{7R8U}!Bs>r+GyG{u+Y4tk;s0_S>2BS6a?mI^!JoE!YV6v}vo2#a zn+fLBwwV_&n~!rI9j?X+ zl&=OErIOg(3yOx_7|+~d{8pgKPG^=#Y6cx2;Pg!`u6g>vX-JXRm{xh1bkPHuLf_k) z&2#v~n?M{_v1NfmGFt2NS;;BmfGKH%L(2(bf`uJY@byCncThNg4~7h5<8yn>c3s+n z{Eh~LJNLDhP29h z?f*)+vE$A?f1Y$Y->-U!w2T!p+%_6E_Yft#&F6Qb7(4G3Th@d!ddz(5DzwdlpgDb` zA+z$tyw1lNM{aEJ~a@Y`_euzFyo3fnTV!Q2n20(fM?JWD6LA z$^C38BTRKS0>8DoFwtKZobp5CNfaeU`hMlzb*+!VQ5D)-a{cpb6M57`FkrGu)O<>` zGMBZ6;~F#K_VUhN3^WdypSLjP>`Pbi?T$4JTW|Evq24{$ar9d$E%O@9j-~Q%Fe$KF zDPfbfn5kmF8Q3_Mr@0vGdzhMfWZCkp{IOAx-`rvM{CQGTI*A`$%5+;u*LG6)NPKXI zw11Y*^MOi<-&u#o`&pLL!45IEYRK4xcq;~8FZR7!Y;TyHJ2bTUjvmjPNc!tBx0BV@ z3(>SgzLu$fpPl<|!hRr>bo$(7DsH-QdfMt`{hb7z0HP&vD8VYzC$TqZ_2ul`&e<#9 z=ZMQSN(&)at_1?^0*t-r7bI|;--$n7f@J(}0`;<9agysH-8WZ@fGY4h^Eb7TkoC7{ zu3VQ=ijI72TffVd>k$tdx*pV4JLSD*8h^}0Tc7hVYlt#ph)=qK=6=LBIPB4ywvO59NH)nT4 z(f7#JWPYIjRYy$Ht�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�iak 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

      9Zh8czlw9{Hl+XKXAxTS%k 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%0D+FfFJ{ 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⏷Krcrw_Ekhm#WqmIPQ~rfIXcfkG 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⋘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�IT+MyM4lP_~KXv<-mq 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ℑ>gN;AprF{pSs;L@1p#-aR$V-YJ**AvWzo^VCuOJ^z;W zo6WGX;V4eIw4A~D!4`6_%&`_-Kp!d{Uat`}^1*Cl9?ty`rdydp2mcJZZqZLs--~v9 znOAXg!Sx9fmt#P0WraxMvc{qG==C`b)LR)<^1%L*0fA^ebPdF^EzFxv5FDC!gl$-h z{&a)&m4oe8FYm)mwLp>NSO1X-qBp_S=xz3p+bwt2DBh!}wI)IE7+ZY){_sir^&3GcM8d*<852P^->c?kA1?#hEun+% zgVe7GD}vz7eJ1}(G+gj*CY=Yi1_AiaBw!F_`BQM|^Q_+jklCrB9^iy=g0~*z^1c4Q z!Gd{r#|9C4kXdwJ9+jajpp=mtr4H&rlLRH%BXWpoIWQ`K>Q^l>nOamFdNY|aI|^;F zN`j($SwEP4NKLzewK&bNe8w3Cl*{N(S7GKF_P5p$RLw4m;pDv2Xybqp5MW`U$L|Un z(iIcw+-#Af7v+s;+9=vRX0@WI#GlAJH+q}$PUCytoF+~RMA8VGD1Z~Hbn-779<#Q^ zgn9z-XunS70yt7hY03jw2W*foqsRbzh+0TDc8N}1zZWcu3O=7Pv)&YVe6PWtiQt>r z7~S_R6lgT$@|J_Oh)^L*v>nCw>aKi5o?LKF4gsKKLFkiP`?hZlv8_D`qp$+Qo&Xk zz_e@WL8kbGXGFY=sE1%g6Mygl%PIAH0DUACoH!a&|u^yTEO$+W@@0F84^XQ(8X zxKG!zP>?+Tp!oMUMf<9zXtq6>6#uc00J%bHyf~N72-9KOm)1U0wyf$LK-##VLEEE< zQAik|xGuUlyv-O6W#CBi#Da>x_cOPenSHUdlzy|Wl0@MzqSc|0M6%K=iDgTEA3W*4 zF7u?`@HrCqVt6OiM*V^i(cPwM_;9zA-aGM=UiJQwG3g_azdHZl$lU| z$&ShqpuK;4H_cs54Cg8ulF#s4d;*|`uJ=3$t%P3#94OYBB@t_-(=7He!nlhedomt( z#sXc_jc~?GDoiY!gEo}L6UuqvmxTcL;&#tWLbK{G!M~?l-p6bK2KoIZ;>~AFk=wp@ z$IjnU&-Wvft`oz~+%&!(*FKLw^Gj1)@cS=4>}CV=kj;uD_7etZkPT*0Lr&5lQ)h8g zW=%-i{Ivbb=OmtwvDlJ;2zJSfWS;puJkN27)up|QnN~~@Cgyy-tfD2+HjC70V1y}$ zn(^|kFKIJwog9&K`NQ#K0)Z$vfuz?yRFKTVkkz17krzDgBER6 zxxsGUg>J_Fx_UL-txPzN`k9^9uL-{iQgsBKV%6liUa0lXkI+9@TbE<9Sr+ywf zVS?eIof2;e_bP%|-xo$>=0h70UQIes{;eG~D-FUfDJ z0P&-~HIae^Zug4qB%hfL{Bz5V)H1&y>vl!41b3cYTJQSvKU1k&+QI39Kf(0)b9~-m z3QZF=A5@kI71}Q%)O*H#UJth|X5UONzZo;|u|I4a)(VguQlq~WIqLbb2J(c5=>^WL8Y@j6^3sw3zX)q0bKgwt9O z(=V?9TnppRI?Hfm0DyM#)i=)s@2m_m%j29-*CS~R)ow}7=eKKx6r@!eysr6e$0*-3 z=yZPoPW0A)HWA~cl`CurXgVT@t}2)_b|qKeQ1s-!SwwXbQ4 zQt@b2{)S^!r8X~gaJ~gjwb|t}>0D>P<;(O0%mXhSetcV)+Wnauf5~~Sb;PBxp#o?V zCVu^+m=mvpc*Ys~Gt1wrF2PGm^Olwj*|2|tbu^GJNnCaXVZ^sc=f*HA1Gzo~FJ9^?A|9l%+B=?EEObICm zEbkmsu#&xYvjG^cuHJDO&IN$jSR~5#z-ee86k+wY7ygwxtB7iZ zzy|A`eK3Hi>oPRwxg&qT@i_h9-EY#gpUhhHd3!irRZc~Q_!d7B=uBK26qiGULjlAy z-@6jACDcdE=-zS9?7EjMels*l zc(a)MQVG)X*JexTIN(CY_l^Yot$IDXQ5M0#po~z%9U#Ckrv4M}a_H%G`Xr~WLE*g- z@+c}9%o zwPO|~hg^VLJ@AM!Dg0OGD~qfge>6PC5-;Q9hONbxkm+N{PX$(n=*TX4Mp|kj!eGu8 zz0-}o@udna>1;~QpbzPI@8Vy725=`HfeF(H!zUW|#XqJKSh#n2FPdJaXIRS)f5@LD zKEOUhm%2_;eBxmY(CeD$0aAtf0QEcQ`Cvkt;EtOWAnB?J-2TMXOSX(RU_1z@FW4Z_ zAu!MrH%R;!>581Zv>%ur1+a5+{`^_R)rP{Ru#@{#EOP|gu{wbOpB8ab27lX8+tG1F z+i(Ay1+djQ6g$R%z~n@MC4N3cw1rhht zlwU;SnMK24AOJA7??9Yd)Jg(J+iXxL#vw36GT>_;gI|NhGz0PUTl;!px@3z!0ZS^~ zbTa*P0RcJx7#x_6c!{_1saUB=1t5wM^>)A^IxiIZvZj^AQBOVNM0cOcFn%De>k$7Jh z6o14=AfSD0V~kb%-!oaw@ay~~&zn*zM)6yz?^PuWiiSt55qh@dNgcB@|A3sBmr!t( z*&n7$*R#!o$u!j=wl&gj*(JH-7dM4)8PIeSYR7F2f>&+NKH)l{RPTfXgnXXVkHb@7 zqSF=9}7nfv6BUU?)r0$L-W@AthFAVdz1>-Ce0Zw2o zE3Nw~XTKA~t!iEa@R6q=1PJ8ULY$t?z6>5?a+RD;@Gx2S!8PV8i62#j8y~26vNe*v zGibXvM~+D_^zn61rNx?9*1b2c@v)o4c9!70t+w{n!jlNEFn~Z;s3=iexiq2%(2=Wa z=L*pwDUlqXD6g`xiRYK7Czg>gcd`IjvuJVvX>Q(+6g`N8azMbsJ)-YeW)d(^I8+6& zq5Go+e9XPjm=9+9&q7}>w%lsXFjX(b`P3zIHvnv;thr*E1@O0iLcx?Lqt$YVtGD}* z59&AZc6H`U+D+iLFRJ+rPR=`<;?MREl(3NB<3W_6`LjDZ4B>sDJ9~iBK>r^A9RytH zr4~wRWju=u5r`7*0YUesg+e3LHcak!0l6Y)nPb^wO-L!U3bXd}B>Ph1Jm*MtfMPZD zKz8Dgd)ilP6xOo67NyS%HXAGLH(jUz5a4D)Ai{9EZ`C`T=25zyn2^ui=l{Tbdr} z(iH}c{RIp$1)ixuAL3cXZ0J-9m;>`NDvL6?BI)z*K9CMI==8z_+X?u2-5h63xz+#PlJO4{05{C2af}5>Z)UXz z+*U*n=W>8VospFfurrpr+w@ipo24Kcs|8&6>Jg!(EOU4XJ#VN#27BFlXm(V3WUgY1zQ8Y3UWz=Zh*K0x>P-AN^#LmZ2e=^Fd`G z?FAx;kh-n!0~FSfwl=QSU+nqdMCTkp_+f;Fv6GMefB%fHB;B-z$nbsrA>lJ`MR{i@3!Lt4fcHXM)qn|o%KwgXN| z0lqGx9sqH21h|SsxiM}_(l4ea`dMG)rO}l@PSo;3Ae<{~Xz;et=+O$wWo2r0O0eh8^aKyo;R*1G- zU%SUzQkwd=+M#qkVybn^lzl^ItfVxxK2io%=%MMDltZ>(5P;=CZs|zQhoI_3*?taj zP;my(Z6d)Ga^@P*7Nc8~C{Ektcc2v{jqYhnU4)#F?y|Lj(Cli@f^);C{V^%5kC}Y5 z&hihmOeO3A;$dse0`(#+N_!f6n&$a>&!N)HAi6_|Li;V+X6K8(85oQD_1-3uBmaO= z=l{*fzZo!NKD4*Ih{XHn=EUab&opmxAWwDWSCk=BiNMpxx`+6fpMKYtuA0c8U=ijK z+wgQ6V*(w*x%-pyb=ZA5&fh+|f`wEg7+{ucN+h);q8M4eOYTUzKK59X&3W4SY#H@sfXkp9FDeEsugTb?q$Jj+y_ds!@rp{8(CKDoESM#c&i3N4 z;7sc>-*n@FE6q2p%%?nX%NP)hgQ2Udn~%!OPN;}@4jYzrQKx$cvUU;I!=(>dS{F>E zb%#Wt#?X)-Eh57J*-did*zp7qP|>0{%dLjXqt5JRPOzJ@2RvsCPmTRj8SA>2(Cn8P zI@oa{Bv%z~yQssG-#PjNK<>F>p5q;nZJd*pc&Q0j)#i05-}9xy*f9u4HjnHua0pDx z3*d!6$%M5LL(+Ci0{!k?aK-U(8EMxO%+GW*hx+A&wVXfLoUF7bWzmQDU#Gi>QG!&g z&L?A{cH6a$3u!+|wNi5TFeuld2~-$W^*7b%zf?) zB$#Eyh?9pbA)s!+(29p8Vb*N3(p6uy6(mWHAjuEr&K!J1x?&ff?y+=v$DZEZCma*q z{BoqSqwUVsKsHOi4G>>P9BBzHQ>M}Y2+-&pVgXyH0r1HPxu~_lwmv8%!1PLd{3`{^ zPQE5{Qk^xVUZ)oD_sE7Q%Ea||SuP4%w~pq&)GEvOuN(YpWruO@1R3t466y@~`v3&g z^iTfVMBn#;dp zig)9lv42jZMi7F;7fC1t$y!)sGWkv4gWQR4*4z1wQpIsxOR9z@dtJ=iQO#U(nqj$= zyXz9j?O|}NW%}#7g85`$s@210e`L8R@IyA4GS`)VmaAivh)FW>-s960@9mxA1aE;; z^S!4EhffcmUJ|wZh$N$8_+B!CR_B@3tdJ6s-aUDEReH3wN7*@v51U9BCOv> zQ2%NqGR7`JXF-@p5iknz0WjTeMeP8uWPrBzI-p7FS*Q84CmkAOs#;=S#dV(MvuMQx zw5I^{OEpmz<ToCn~s8i!mqj`WIOafIG`I8wj8qgVW{8HR9}0 z3}gNbiX-HpK?{k7EUr<$;0_DqAC_c43cY+OF;+7PAV5KkS4Y0M+5P(*lPh+JeeH2_%i8aRu{w zPDctgPk>nvAS-2Z(OD}VGFoeTMIanR^S#x*A5ewkK3~@Wq>{3ff8UkzRs&!d(unj{ zHHAnO0P7~ut!twjP$x{C?tnzOv+t_SGbyB|h(Gpu^uC~Dc;4Ef&jknsJ#1o>M7!={ z^pOa!mdCU7YA6Bhw+!r}L3xwI$iwwymniQ?r*HROmrhQA(ZhVEKXpF=JW#)~COQ4j zBlVw8F~Lk9Dc#ThXuG4Hxp<|~v zQnsX%?GN}~QGqJYsK=sSu1B^w^1+$k2V3l1D`?s}Uo7k(OOKZwh2zhWNM|FPi9e5L zAAB`eY{QMtl0jf8s>^fAKBs0+Bn`o8Q>XhKqQM!R5fdl(K|qK$n&6iJ>)${0qi-*- z%8r)OXvq-Y5bA8Mf-x?D#4aIiY`KhsmBu(^P4Adv;lnl4*WiAQbG&$`tnCLLgGTqC zR;bg4WCJSAjBRb62IwoHn$tf_!hC=lT&Sw25*TuXU2Q?fO8f(nLjXoe`sjcSjw?R6 zyh2NkglM+ee$vd>S&R2%T?|?V0>+@AGR|8g4G?Xk;KnVeAwhATF!CQCztDa0iR-m% z%=SN6Hi)X$*)Q_|+LbT_mI^@`NrFUOiC_Ahc@5;OX&mM;PX4Sezjr(Nxr1UWM;h;+ zgw-BKPnUzWm0?%|C4h6Yd}{rL2{Z!zrpg`9dKH_fY^oah`0>#JN=XO^97Y>=gup~O zT{Sn@6_8O^Oqb}3)XP9V#(W09tl5W7$znZ#%Du)5K!;XLOI51?Our8j9jR#9udK7P zJM{uFA=eFdQ4>i(0l^z4hdUTTT_sDSdp2F*OgIy9ng~qzj>aQ($cou6iPt6G>_~iS zJ69KJBDP3118#adaTclTPRP~;&Q4D616}VTRT*U^AiH9mi2$QUIbo>{G-AYRtD-AYBp+L7;AFL7JV?`poF}eV0xx z-GeN<&>3-XaJmp#>^aF!d;1jwD9ZP&)$wI#iKO`E&f66JcHYnCS9^lXx){DYw;P2` z@D2rjo8!6PVwjku?Co7ue{O7abgM|n#ZQI}!P)cS3u|AY9ppT+1Bq`{VhucTFaqdK z-|dT~InQ{IQ%|2JmYh;k_L^cLW;*Q`YSgh@FR36FD8$!+$*7l)AbbD3=-+*_7bm}) z(i85K`8QWmGTl+2L44hQ7062!#o!3}*X}(35R-&}bWnQ1NOz1V0vA996ARN=P(#$I z?Gk3B53eD@<^ zM9n5wNVB=dHy)DTA1Vi0rZB*Kc15$^%Alo^sH zgmHVd%f-ey-&3mX&^YK?F@Y(Y@|kwOMsq4YVtt_+4E$VkcedMR)q zNY9OZ>IS*Fptwmr|1V1xB$^fVV}Zf&n4~Ur%r@Uxm>LE3fvhOlE=8}Cg*qd@KXfCcLUs-we|q#t}`zF-tf-ONg_K4Tk6$BS?RQEclZZnqqdn)Z-5A zMkp-S?HPI$qcNT>T<%`EYnc$B63?9o86@8O_3_Et;m~^CXzR`WDE+tPG8_7DSV0H0 zznv9S$Iefu!3#H0RdI=nPtiKl7X`N8xO~tw3BQA8L8d<4FkX}R{<>hZxCW}1nOn!! zhbhbn?KcJ0WbLc-Anl*JB*^8Rtw2)mT`7hv;@{ZtYU#=JO@HbNo8Dr6Fuzh2J|Xu8 zJ&2pK+_Ver)819waZUsAw}=Usq2f#^3j6@gf%h$d0lw3=YNC#|1+IdFzyksD7fAZw z3__}%5%~l+Nt}o_Y-_Dba4t9iJIEtr|J`cfD1F9_@Ab|8)KvsP#0STHb^v0DB_bj`61&KPfSuXk9{Nx~Pg=$dn zs32$Kn{TiWV$ay4q=91oF@*6U4?wgi_E5DC{U*Yo^nor-Az_qFG=K^RSIA5wVgPM2 zW*?d*Y8UAem;>7ZWlIhBOnt2YoFzXVr1NQNtI9ZsC}!DLNK}QBb{`tl1|kE`pur+U z1i@@^9$?T6)yH^!2B;|iQ30qvE7A;@2g*sW1>Xcr{k5|b*6|TrjfLKJ2L(LBbirGb zJPSLZS`}p6*IF*<)k&kNPp2`xS50mZ+IrRt5L`H40x$a8ACn$G)7+1j$k*o`^{gA| z!S?gfDKTnvJv>`T)wrH9Lr!LO`<&TtEBt>8ot&V(5=qoeqIU<0kALe0BIkPae$hl& zg_ZyX`k6bmJ=Vu?|04KICmi`aq5eWBZo4Vad%is+lUm?N=-DF88%t`z@Xt{+khHMK zClvJq!%uw0^Xj1d;_R3n5V`A8^61oD*dqxva$uN!i-JZ$$%r12{k{aR}|~_}3OK zFK9bo%-ZkQoK8x5vo(>QndQ>vA5PCjE_DWE#BJ_R>rcm-6Om>r12WOC6_QC{5XhChO#z#gz8pJ1b)6rvTh zaGoqp5@Dj8GP&^}|vUwD9Kh49_%CE(Nbs|V1KOMJ^h_f(#-Q4FB1^q3HPlVa_Ca}OQ$ zSlr9|$lb!UtLi5ZU|0hPM;Te@jB6Por4f2N3A4PdCYpQCPnDO1<7Y7R*@|LEa5=Yf zYcuDGsvKyH{ic{9Qb|R>MqVKdmOs{6M2)8aL|0Uh{Agy3w>PtB`JI1u#7GHc&<9cO z6fgtnxhCq(8NN|pJ_1-7!7EIjD44g^P_7pVFcyix{0a)c?6X@MLjl$f`aoiRUvRkQ zi+Lq0_rgz_{CO`)SbAbCx&?MDPXsThU`ZqZ+I50tQiHm}xg3Dy9(n9eeBpKpw1U8n zO6?~h+|jHgcrP)_0w`rdGh_$v@aaGkCfD6UYGTFihPxsz4VVT2_gcw^P0zMR;HLg} z3la;h%N5}^MA^L!K*{|Wdhin}jR*sk*6IM+xEHYtpdw#FcBnnV8{}GykIHpekAftz zk1-(%F3JF=S8(I^Y1D3Ih?=@SpxE@{Pygvd3GDa|NPcV0AL1{*D+lPB-X^;~9mmMC ztKbi*v=R?}_ZVjS7>505U@&SVaoldhZbO;L^8^Vn1B%4knO7^nE(1JS+Q&vmSut4$ z7`(ksvvSej@}c;H5uXpy*fS{}2;e(!sstqp_g@>m?8$NPAjn?o1v$O~d^Y;dJ@sLeN%lRvl4q~%-GB;d^2hz20%N) z@Cta0nqev1{~-l4zWb-S1xX?FHs-;5vyQTPU3NS5zZtcdwqB-_=#%s)>*^48S|gEq zhe`p@;Gnpvd#*KOQ)v19`Qim<+@-}3|KD7SCG3r8i(f&ZEyq~o1d#uZ{!MhXfc>;jj|=uRbnxsLPA z&;Ql}B7C50wD(oi))%0tGyT@R4B7iQiiqE7x6AWvIg`*Fi$!#j3zj>&$swkZ3Le6Tyhkp^0A1ET>=G;>K(v!?Ap&(! zXM6QnlQ89GiK9|)g8R)!#d-po#YQejH`_rVZhdP71kVummjNKYB8B8fKTb~2-PQy0 z7S{%9si~_D@gc2(kN*hXM9ae^Mi|y3F|S%BPOw?}o+ihNU!!2F+0XzP1wb!NPm^`CgMzi+Jo?CsV+0O`TXjMuV%(hhci z|4?EGZqEr(B~5+u**H64RV~vcd_+k9`?R{3{3hMkmRGBXkf<(Jrx4of%GBG%JcdTK z`or;ydVAa+vQJ;9s_2c^)<7h+6 z_EM<4(hG)*m0ho+|J;^jzK+aOgI5+p(M4uVZqK)}{yv3`(*gvmsDuW&nnEIgpNpq0aq5wk%&Fs8i}&-qes?K0(KILvkN< zLW~)9y;<2RG6>u%U$uRdgte~?iI*Wifis-UHq8TQV7Q@Pl%p#_)ORR4IGGgUod&#%Ub$Ds}K#0L(gcrZ0wwqWp-Hc zQ-j{aPJf~PM9W`@as|CCZZu2{{A}`Pn8!kpz4oMmsC%lhIo*F4&$JJURt%!_KLXh; z1#>P!4JObltlW738;IAAaxtgV!|vsIMNxr&+HP2s1eFsM3tsX0eUcz(C`>pk$BUye z9zD?ZoJ5ef?Pf{Qwz-l=XWI5QZY3HYE*R>Y~FSFiO+ zgpNAn39}g=8%2o$!6)IEZ5 zstXiWoIyu69y>Cn+`8o4=r;>;3^|d1e!$PGfd{(%5P#4rV~4hw3Ta8&Qa;W`XhBg? zoTz`k4FQ^{IBoC#z+|YYIY}wlcvK7vB{e!NA+tV<0EYI+Pkp_cK-#F3I3Np!my6iM z2L@lQUlv_3A0l8c5tlZR@@@bT|wLNsG7SbITtM@oZ)*qOl} z@(Yu6(1jRN2_Ibi{*_-(jd$oBk07i9)zdgtI3@qf7K4Tk19p@F2F;>KYah*Z<^j9k zz}aXGDRt6*edxDZn`V~_2S0fbVe`}7{;vh_HD>8BF6FldOzakbdL`nQEJ1Xj0r4-g zwcvtsG_LUW7V2Sfj5%E#PIy*7UITgidXrx_f4g!FM7n(erhI3^8BU`aT7|v83o~xJ zjvaeIg(;HPS7IFgQQ~S0xx^Tt?|HJIsM9YUu4|K5HKZRfqP3py5-5pr2gYg2h(YTf z-q>kurYZ5g>5{*m(kP5)R{7wrC+YAbYc(oOtoTJ#cBa}Ei9R6WqCtltFLFpe23xKR z6k-|@w!Slc!Y9>Od^mb$a~U74S4d{lp&y06^rQ~v{yD*e>f#&ZW}hGDr4;vjjsZ=a z0la^7`q1Gm*7XPu{z~d9z%dX975UifxM)MC7njbnKGXkvaCnFSZT}n?4plM)_myx( z(l}v5Wx~<#w2~p6HLl?c?H((tdzq4q8R1sU6S*^5NrlQIcM)KBbp9UdbqH)p%-oa# zWO$qMHm0o9t<$t%2eGb#hMxubJXztRU_-W5qzAyixOIi&hv7i<&mjVBEpXrNl|bxg zs7w`pamb1xdtLr0<;yMck%4O2!x%Fxp!HYHPKrK`Eho*bnz- zMHFY3(1N%rE0^9=dIH$U6kOh--|OJhB1jpd#ehl=kT$UW}uQQP)Ga(68@3v5h` z&aL?(9spR!B9LKw7#$5z(DGcC3=&nWpp(VL_~jFABGx8(-= z{Ao2qAW4MD*?M`XHxKWvS&QA?G5@m6#6(J$*v(0$uUqP< zV#9L0zw7uj)obQAS;L+xwbOIUf0L8YLCrES>jY+QF)0=3W5w=zgyko_n?>iB@4e;R zQbyZT##qem)(>tyIjo7XF8BW-} zsi{71#zs4dTy>=X=SW0^240u0jyY@x9%j)mO3`E7M6_|=QfeoOms$5)1L{HLRg*c< zKi)o*vs189W3{l9>2(xJ^i8$iqC;+wq(sKSnkhZ$%9jSfoHiUHNI14F6p*Ldq336CMNKd;( zzEn%HSs(vDf0Oxy6V|lw-*T@rhtM3Y#_%3tfC|nu!oeUb=@yY60Cw-;vZr&SK(fL0 z&m2=ujn9hW(X1yT0OdT{?gw|wMRJJ$C+@qU-LuI{z}J{xi;8v6i{G_b;-zwUW9c8* z4pzvj^3i-E?8Vw?+o1?*=A&((fwZiyAGn;g)ogp8_tk9Y26YDg6BcWpJKeeTnrS}1 z^iunG@F-{WAszLGb!kB>Pp(#t_LRQMi_r)pQP)j>qVPxe*9KMw82u3`@_zzex8BD@ z6UjeR2QO6N*06E5{g=SJ$+#qc$L)gPD;B>PiKnchJ#|jS$@pSz%wlL@<@k#vm_O~1 z-1%{0cEO*|KYi8$NV4Al6!iKNmdIhUr^@3h|J!#F!QnR7EtVbhkte12Jd@5AH50#z@bYIjsHdZ4>)+Qww?%TCQOK6o5}0T8|bO zsj^zd8S8q!SPe8KuEd@|Pq%d#pDk~Nt&;&?$z?iJ$}~1GUMombmpXs%BNP>u94yUv zA^TlYoSWezF~TG>kdEZy`R9ZnGTcf{PR_&R{UTkfvcK=8NI&a8%iF`|nuS`-a>wp}AK=j}F*X~cNh zV+Jr?I-JcNe9wn-)CdBkZRakn?12ymf-OY`rp#_on2={fMEY`7)gK z-s`7)c0zzw__36L0@l+mtZ_z~Tuj}Re;z5=)un;=7#ZS-e`1rl%W{*1w%^%_+yl_Q z3vhoAnB4?G%iQP5-ZyHGa^9+}(z2Im80Rz))%Mo`a2GJ@?!rvjG)E(zmAPv52=7&% zp7lpgSVZw^VlkYS>&MTsG~N-4_0aT*qG7ut*8+jFK*ENQDhSMo+=zS%>0YGbl3x&< z(FF2>3i?mo5Gadp9~!9yXGT0;8_SH)>i=doRkk%IjX=55!n{t~a*Cs6mA|}dCT{-G zaKs8*iv1HL5SKo?dEn|PsudG;90%O?NQ>0v`53ws1+|*yV_#YORW(x=Miv2DByTM0 z1&lsp{gZ>_mX&t4QRAoQI;;Q7=*#Cl`oS*|aq8IHeASpG{>i29RBX+C zr74(yx#yCZJ~&{7a~&Qf!7np@Z}X$8Qto)}tIWi3#xgblJ3uB1hr~454j?l8E@X(l zeAhX)4!8H|GK(|GP15uH9mnWeoL=i!LKW0;(`ug5tAuKPhL?_qKj6>6GOqL~|I&{* z2J{Z-D~tBd6r=_E`>s=E)y>g|Ag;5N)h=V#QZLfoTNCYIh`cBAM&0$9fFq3*W^ zng;e$T|k0C%475AXp z)1dL5xn0lSk9C9_qL3E4c_PPP|J`_i>}HNtq52tsAx+r^%V*-P;Q(+6CQAuv3P~X? zMk_pTDbRGBg>FLSRRFDzrU1I~J6z>YSoadY{OWsU8D-MNyGRk$#P4HvCI`E2 zG+1QYBR$0x+5d9d=gn6PLCGu_9A3feyM(~b?;pM1&=BHL7E%SUCkBEZsEHIi7|w~z zvKr5`!dNq8;v|p0LJ<>;KF`iR9q{AP#@7iu+bu<>V78EvFTRp zUxX=fS@4*&WM7ovA_3p^<3`JAa{no#e&|R>RldX+1;qb25WsBD{sAC-BLJeIa+~og z+na7dbB%G$2Z1pztm}#+Qq>St%>tbw<0?y?#Ik_XiVS=1Z-P{0~~N zMi$Sf2P7_24qyxVOZKeTI)Hyf>lN`B`y#?uzL~je&Z(BRI07F!Sy)ByB!#pz{_SZr zHGBgQ#+PU{X`dzvlv5_q00oaUa1Od;1frkGz}K($Bg!LRG5iwG51Tnhj5ZL-WcNOWXsFbYF4HPxhjQ zRSr;civP+cbR|HUo)O}clgxNqY19*@(5JnCj^R`z991>`rfG_csY;MS49pO7KUH6U zP1qb^r6zI2Yp={-(C02>zB3kyKFydKf);+0ioYwM`CBRzJ!>4 zR~_!JCmE_`oF%~YkOx-P?xg3YtQcd7LMdQytFG15y5I)o+129Mv9y*){jDNRAkefD zkl5+?dBEx&U9S;9x#QmkwkvlYJL$XtkS}tp49)STogAwq=<&EHwXY}PG#5g%MLQ

      L_};PpyX!;O7e!(Xc9d^fXKTfu)xE*8?GWW{>iFE;zCVT)stCwoj^6b@~j^RMXWho#+ z{#;d5%b_-{b?Cg;~0$4%uXKcvCSsPmi;*>OL)QP7uBea>^e)n(DvhU zg8PsjQ4qIcrR8AJ$|y#52*{L5Uwi;wUSH8=z7E&vU*=z!oEKTyL_|a*FIs1g5{0Wm z=g|Izf&^Tn4oDwqbZ&tTCW?GQoaY#!ZMx&gGqu$d#xF&%_XISb=sk<0&6+LWx#wA^ z2!D*=(s3WQzpMqLU=+5UzgQD3qMFJ@aM1$8u10L?W5bMBqP1iQdJi$g-23iHS84n; z9&>ksSkWL(rPwrFRTFhU#mg4R6&_nNfB_1aL$SCYP~iUWD*8w**~z@iezMgbbwgOK zRX3z^Xc>6gcY9yIo;=Ub=sbVbQVA|qd7x@;xLU8O34vCUpP#LaCGr!8JGdg~9H{|+ z&vbw#?p*?)@?z#s!w;YI=g-H-N{X!}9{>Tu4V$quGh17S*ls1U$zWzKL~Yxr$#7LK z%4@!P*R#bBwq*f45yZjqm=7=5$W7#7XE@ zWpOc*iYnpEYpU_~@3U>ib7LWYPSJE+E4qoX&j$+h>ew(c@+k?~57irb0X%1$AVFKk zGsp+$7tYq&%M7|HW>fm>M3m^3I~p5Kig!WP7^zOcq(EiY#w^n! zfVIO3*3WSJ`uc{BMz-b-|DO88!7^9Gxh*8-&~eFl+A~1{rUrGCw=E_hX6KZ@#~vS6z0to^UZj_PkeFi-C$Mw{yN9ip9F`J z_Tre#?~e{MWq9yImSqJ9Mf`c&5kh=Y4dd0#s?asd;m3flKwoq6=@h+>u*q5N3FH5a&Um!piMEjuX;8W83^PquI#AR`0ov-nMeAd+3D$Ue`lA z)1A3Jt!`B@vbDbX`>+np?=ObVHpbJ`XF%Y4&d*`CB%*{Lv9yMzA5;mD2Nndzg9+p; zwDFL&cMp_ZOr!96Z~%mTfw(apzL!jW^0fB-#vt`TU}!7jDwX<(?u_sPYiIw*SK@zD z^g=xnKfSGeQ(3Bwyx25ECTr#ZUH9`n}au);q>xi@APhGx?qT&1Pab z&{&TiV#6DyKH=R)EmuqSmd{^2w*&U zX5IgSimfJESOBQ>@-e`f*{hYBC{G10R(U__yFTOuQ-65#%jR1EafvQvr}FDBkbip_ zAd1q01wKD5zwMLfmky7w79enYf}wxW6g&2@-`Aj=Q?s#A6RBEfw}s~#NgpIdUVNra zC5JIgpBsuU?WNNq7f`<@Y#d|jwJxk{|DCO28&M$A{=XBo{~fOF`RQLaVj}-zpYp-~ z5<2A9adeqTc$t2{9}z-Yf77v_Zt^Nwlvjvu22%NQ51@UDUWWXIxLI{bcS3j`(uqT5 zh(VzgEc`J9|MvrDjjGw_gk|98B0$13R-)N)QDQf7AqaaXtmj_3aSmt#QIlm$(Tfy? zN0y`X-5EatqZXO9yS-lV9_b8MnaHii*7?O0d51aE8D7N8eI+VgMEnm_nnMB!F;V{u z{yDCj-;L>gV4q!{JmMDki)r{G=RkdXcRrQtQkLe~&m6Ig5dsuwG#JN<&{pHhAd_s9 z0+cp>mxqor5*719Ur)-1iwb?Uu7%vrOE477B~su&wH?>#Vy31BiHw0hkpQ6wuHbKu zp}?~Ko~KXBg3^5Y~(1l;HWk-X^rdSLCC#r?(RpUEHdv5MbcPD22gytGy`b4p%^+?tJ+(?uev3o^T>5pW7-|FNU zyR%-p3%`t*UXIk;^4W}ui9dfXKIXoAucXX|=cx4T?!|S~+Pri%Q6Qz#o3vnI)I43$ zg!e}M0dIA4-46hB9xOE+muph~B^aP`~t^Hi=SAZ(wNP!?YJJ-;N8JHi|IvjHkI(#2LqV5vt1oUrV`QC5*Vo6mJ1hsQL2xi8xF1a!Oo?r*f zGoTJZ- z_2ffzjB}+Qupv5IWp#CEI5+?D=-~VPKLRfjG;>ZeIwkfZ4%AN@=gt(~<4uEr#aXQ! z+1j1;&QkE7)ty-Q6v}e5jXSx?nm*Gss?JL5e#E%dVC{G5e_-~v(={Bs@kgfGxV9f;V#STN&0Fj zXAv9Aj)oW?%&RV$U=Q(>$R|n)dcZYSHb`-rf9svQiq|uMm%V}$P_~^JXvp$O-!yV9 z%JZgJcc`qL+H^}hhZ&#*!@T)M#`zfF=xIV1t6Q3Cr21=5Fe*6}Anq7}boU{)sOY{)#k}?Q_)0C;l%9B9{`ONM4J*_ zWe5FlH&9h4JcV2imo-d-H3o6W0;HeQUVE}qx_1|47Ym@nkF4d4*9V39$(-F6H@l~B z`&}WDIw*}G<-s}oiN;>^GTXngex>QOkJU0R?u!mWSk&kd$WGHWaX1fT*y8!#qY!rK z)?;tdL3jlVNy`Av)l?eBdJ&{Zmm4{x7Fhku-2RI(LTKFJAWlwcBzE6Mu1~%n2x#Ap zUSjK2$$SiO8kQA4HS4Eb|9SA(TST=n%9rV!F)%QVnHzD{ybw@c@TgGuxfJ~F3aZrk z0CG>Sk_v-pM64eZ#OQFOYRY56+%^g$^sAx(tmY>W@2zQp;@j(_W8NLpw+}4P!aP`0 zUaL5$0a&Ip_kh40fxI`XO~UVr31YT5XS5pf6`A^_Ad(_F0KZxfA~~Z5aIV5*6N(H;&g<|T-Bi2A=Kw+RB4qWmeDR)3Jd2JmM`Mg-^X;w1 zy^Gsh|2D#~z%|;b&;GF5Vo{-q?sw$2n&LAExmD&|7K-EBj2ZI@RMMlRubvK- zw>1I0r!r*>zli#XMgeS}#0ISyEcnV3cW*pxC2@Q$p-SUXk^wb+e5_UaIiPW3W@F3P zHDp^lUoH(meAv0;`I-I`A;c`h0wBw{Am$qoqJ*pz81`XHY7A+#HYFyz8bw9XeE@Q4 zN0WJa$e-ZBqh>FBqtIc25dg~@)-+@HTz~RT1b_0urjR@J*cOD6@Cpt|>7yne;roVh zvbVpoHaM#C$r{Lz_G<}QzHt;kvMFYs<$IvYCVd!Z~fN&>wkoh2B5Z_1V zBXaV1Ps_>C4KVJQ{Phz`lgk1y-NHTmULC*AgCvHRj*@%ZyozamfKCysA#d@^9c(_{Hz{hV2ZM^INARK-|fd4_6cfU`+k6xXlQeXub0|A2| z)C`et)zn|4AgpfD{p!QgXEOk926^>)SRBNZB*fLLMyM>kcj=bGD(-ri@I!!XKekC@ zz3jy=N&6;HaI}A_oaY8qP!}QlLR9GgppGtZQbMn0q9}K}1JNj8>Pmz+(D_K52-rM+1OzCwrOx#Rd^ZToCe=||-tAjT z?+p&uXZk|QPiG!0;WPw_MS@lBLv0uUxcVE8C-3eMA^{rmmyL^$e1SmMg*USB(X zpSb4~O0&!Z@J3powEKAgFQU&^r!jkmY^=-T0M81>ep(M99iu?K54xA8&I%9Gv>a?m z75-qoAt^MEwM)G(0wGPKVbtR0Y>)d=?XFVI9fefqSnBllSEIH1HE6Q0RBYq194 zI~!EzPLhwctBK>OI0;$Cz{TsHL!9p`sxN7Xm zXWCX^J#s_WIo_PZq?;*dzka}AC3lZJgwy^_#mxyckXy@tQ#o(EW8KCL?O)K@4<<@K z(=(PFOUPeuG{Wn*BTvK4^=!B^d7^K{B{PnDHQ&vLHcMW&)qIh05(ePDSAZ0& zxjN2?tG=#( zeO3hbs7~+$ctM?t29qX$Cb%ms7^H8M3z|>8GwS=Nxg+W|1+x+c@ar5QMGIcR_=G^P zRK6^RaZCg`J*g6zq_GKD47g$Bz%CI(hdcNF)fYgZif<}@Q}cn9!3nQVd;@EMEWWM+ zO%ih|N~fKx$!x3ea3prh1Xr zbC(B=Ai6Vgb?78|=2{k@M3X~ch!r@|Za*(hiuLsJ8l-y_P%!(}wXMdw*{=(@z1P8w z%aP9BbbnsJnJUaRQDKs4lNfso32hhc0BDy!5UMBv;PPg&Q5xe?LTX}W1?npyXyX_) ziLPlL#c*O~ z;ha%P8qy~iOb+RNY9QZBPQobY__?s??1DTqaO0MVWBA`W(*V0|jOeYs+f_`pK#*T4 zAd+)U?2}p(-%|W;XTV+(K>sP~VU@5s4H3NKYxZjeuqM+tb=|qEXe8zyw;yz|gLKrr zruX*U;*V8+dk1e(G++zv`K4dtpZ|U*<4`^KPKLRH2fz(aB$wcEK>HCzpg0m5u1x%1@}_1{N9 zZA`Kk%;b*T)4FxY`Sa&%97s^2I7or&ic9W5@$-@9cUq<#?#+UqZvb zIt4|1TNZu{sR@^grRSmZksWlg5`m6KA&!VPsh$_x@`nJnI}Fpj?tj1gk$?+}z92wc z_jlUEQTC}I6gM`iAVn-<_MX3+a@J=B;8`sSCZ?1(JxarAdd>AG%mb|;#aJhwYfR@C z5Lnzb_Gmru-!5Ire%N!lFIm6z?QxwSRhO942>*n>Hz>aN`RC&gF(r3!o!ES}bgZcD z3&>|$XxArs(RANfq;`qOsZG4PTGy4yVHhH^@~(K|{o2zV?$xsvsaZtU;q}KuX%2=G zd2}qh4;O!QznPU=lUqCgcDC=A=o_=Nn`k6dZuP8rNMXYnp6H!p=aM6I|8G|A{~Mbd z_Dh4EkbU3~6`OGAZt~<`ycnW?c|l`^8zXLZ%xV$T?T#Hl7@^yi0b~Vh8uBtV^DqWp z**1t;ikg>3Ji1O6=Aop_=!q(+|(z$dq&HAU+3H=1s;5TEl=UYdqQq{yMSYaG$+P{qezpHUgmUc zysd{a4D%`r28)PM(qncOiE6zym-#}sTyI#-h%Ugd91xo~?8!|spo#H`1v+R;1bgdc z4|mK>1>vtCRH^h6*Pdt59#eTQlC>K*aMud9rs?uIpgg z$APHSn-w?I#&ezn7D4GMmJ1Dqfng6-86I$tRJ&@E{Fwc zB|F9qKPl}Q90UDN*Zy^KZEPL5pQ>ch#6LFti2R-Z%_O)e&?6Qgd#@*%;iSeAw_#FY zIqqx4C=&IdO>yJ1n?Y?@NKveh#*m{?qtUtX*ZsCa1&4DgX8$V2(YcdeC4^svFCK=j zOn&lk56Y8gSAUTMWqd0?(PY?#IOHmh&5WMHS|?`CkDOB;r)9E>gSHmgOL50&}{t@fW7GJ(pYWD-k$BOFO^G=Lx>9m z4DIGF8T1BS1Vb9(rCVhHhRpNO4WaKT5pp!%`l1*$E|XH5^tugtz_rxdAP=Lqf+2j1 zw;}&XK#x@VTkiW=vh1rv$Zy z!5S4MsZij@#Agn9)wn|-Po!MzUzav6TO1rd-^YX>o!54E|Jp1~9J@7W_@CrvzSURH z&0t=>v;gnsGx^)Yzw=v6R8IEy)>cOSEvFwiqgp*1jp_4=sM7e95Y4}8+u}N>yNF&%V8%>7`$vs^F0N2;hk6_>=lwAaa z#1QpIWiY8Lge|684dC<@^#cJz9|2k+I7pYX^E6&PUly;;i($>RfXasU383;Jp|j3# zk>hnl7;sIEF}r;5mn|V?IsP-Mp^$JNzJtOslWz3D)}uSw0GDnJ&s3a4n#5q@%FlnP za=QMAx}a&LEoPh5M*!}ec@DQBIWL-faqZZBg4{_%2VN6u59iUvFF)_&cf5(A;t)jh zNdwy(IR8$?nH}RRJIz??_yH~UO-wAs+Ty7(2Z9l9yErjC;lsz9KPU08p8l!ID(;yT z^6P4_1fx>k1Kbgk0Z6gh&D2LfOCASI-rnRmM9YsI?pVd}qN;y0jhVF3m%;Xmk zqs1uNN(TbyXCvHOW#(?SB$pVB=dNGZ8?B1rt0v8a?;c4A`uDZn_ZJ0l3L(UjC-hx< zJu`axXc92@#}99%jO3@~i^)aL(0k|xh<_i26l=7Bw?e)cYRe`3ofX^@Xm}yy1U%Ge zt)q|?y~JC(w)8X~rPIIz5_yGJzDKX3)1F@?eKy-JlsVrESor3<{C~3m2ZaE?svfqY+J_5KiDcjE_;vB;>T{W4|e`Pu0Ot!GdJ{NRT9OjuNwaPkj?b+ zsPN3#m#_G(Fef!x1nw-u0g-no%b+;$?s^)F5MF68|8r!*H~4XWP1T(;SH$C^Z{tleEs6%ztPUObCPe-SNS34sq0V# z)ygqMB25agZmwzc0y-K*w*a1Kl6{r+&@tlK$^*00LM0yk@Hp1j$=77q+_09HAe0uh z5y*Lv)$mKckUkgd9$Z@4eaZdQwC`&g%U;nyqvj>=*P@>d;-|lwrfIyNtS2KMw|2j$ z`3g5zb6Eop1tLSIF0XP*w9uULWHsWB1%#Hz5wrf!klZrKM_?yXXDNiVEkJp*`~_?+)oe=(;z zi-Hv8)B)@|y=iVoa%w?ZKzVgb(jvdwkqjyw2_EoYsa+zrb2q-i8#kWDB820DG z50N)dl$Y!KyweX=KY3TF06{{Mxs`c9;E>WPvnyiD9{Sofv9Pi8$7lX}&!6ktjC%lv z^hZ!KJc#qUk8{uf&`qY9$sxZ=Hjz4vSC6d=wj% z0OXL}Fu+pI0bs(bThCy`A*Nzr-#0*c`<-`J{le^>mz>gM&C5@~_CSE=M}U?)F;1(K z^I!B5T05OR8Gyd(s+x`d534hk9UTC=74!9^Ao?A_OR~ytW*m*G!Q> z@OSI5Hqt1i<)l8TbeHcQ#4&n7-}SWm$+eJ6N)WfCp3|pUjJSN$FAuB3tvCw)i${0| z)Hhim9uddM=^h|5@$@ls(NLQS0QTjT2dLe*Uh4H3RwJTzAH|et(j#=$6rVl^u8+lT zbR5|9J$@=uMl%abM`f6YUV1C*^8cR{}w6RyH< zu2-+88SCY|YK5-P{rQ8}lz5eKCDqOv0LRT6mmM=}{&U83H^!yZ-OODjgb>vsV zh2R}!Pb;cl!EWgqUhbjQEt3z>)@c#)aCpN`^6FZ@spyZ%-~89EB?(&#-p5v2m7mQ9 zn?lKP>I&~=jUW=Nmh;gIb7IQ zLg0Kz(-QNyC-l&7?5b)2cQ(4l{QegKZ16$7BY4cLxbmT+(lcFvWc>SKER*_jA)J!> z3bMQki)S}o4y#Ww`c%D40qO`o2rPgT(S$~*q|xiW1Lw4{C? z(0^h0vG>&?ThhA#q=FE;&o{1DX#e3{W3`(kiue`qKnfoVr@bPeg`c?sO9uqNItToG z{#ZmeRC)*r){Z(kzRWe=LbjXMXh8G{ZC!H`U#XmnF=iDT}r#SOb~2&_|v5NAZLL%9MUF+as#s{~)4QtxsNI>AU1s57Ade z(^W@buTmLc*BVgl)S%%(AGi&n&9g|L=-LStKVH{*$N6Sy4pgfgZzy`|0oTkyP?K4K zNhxzh@PM){i-(C95bkAc)r7xlKEP~?62%$X8U~udzWja%Cs&uqJk1UP3YI36%&ZOY zLus$l0VOwidJJw4FpOZ~y-jySc!tHykD}DTZ}R&AVE!v_1RMXH4rC9WCxmFIWU_Ef z7yTOgEKXe*VXVgYm7wb@0csjTY#Bq_C*J4v7ymX<0=$MY7`dN7{&KC1)=@~uK#Ar= z!~g}<#3^2kJ72m01ccqOVLj41|Lkk<)q6~CoiWV;PEBGWdVX2ie--z4j)y!LlEJ3Y z6Oz8SZe{4OIQ@<4jx%DOsI~U$*@pw4+9Va?GGpqbJzDD8T{!-;1g^p<#= zGcph>NmcN@+gM;pnRFN2;!tu^@c;p4Q-zzxRB0gyYLfM~M6fo!$fz5dqcX%oQvS(! zC@`z#9g&$dK@HQgZ`vucIF-p?xJ>I8r+q9=PCGy3|7ri`+M5x4mD-B};JV?mLAp+` zJnCKwAh4Rf@Gj0w-vO81QoAAP6%D*rDv<-^CDo?D4?|2;m$29pT6A(sZZ7Rt~U%dYtU{Q<+!zZO;7a(!v-$#eI9qvt* zRq?=$=|`$QW49!6xsdvX;hK71!wXpRafa}r+3%fXd^!c>ij~YBYzUEyY`$!F?X9Hg z#>+#pUFfoIjR!25?l-DuA^iV;JEy~!wwRGNzL<@Hmwpe>|FHMVPvmUV?ZaUF@ohi- zW~`H_{_4r=oi(W(m5dA@8^Zs>F9se!;8j=W?Jl?xt`BbK4NcCHkzF| z+z_p896$fL8ER7vNOAK*{-zs%{kG*U5M&w*V4?=}?`gJN*q>Hz%wTEqXT8(MC*sA9 z55h}o*xSp>77T{*V_%yb*T4co;8lf5$k1=#LB9~4=r^oLWhLdHlPW+`vcg(MyehjI zP&(S&o&t@S&9WLX25))V;;aL4)*F`roPWnQv+FJgQm4%NGJu&sdUwTRvr>MI$V@eT zHr-0tq7-;mbY^gzy`%HmmlRAp;3mx_1I;;gdY&0Ov$Hp`1*JW%b#F;D&YbzqT5bZ` z;>Xf`0&d0ll8%2p-}IWDtugzjJ{vwVnlp(EB|3DkYHT_G<53u0t~Nq@OT3vA_39lk z;#d_8JCq-qpOl`DUp#m6u92Hcu_0uGpUnq|Oq=nH5hCxK2~dp?;z@4l&|Th`nLwM@ zO;x1Sx@dhtbgmf=hU~#uOR=9d4YG1==vV^@^V5nIBlGmc@HQVo53RYYn2y7Xj>4a_ z=`4ThyP5u`$#zrJ{bSH+9>Dt_o-$@S+BO^w+@A#j8Qz1K*Q7NZmhPr3+}%z*{dw-! za+KS)_nz^Tu;|ipsEForIDJ*ub-CAX>u?nwz6YO#0O5W*96qrPw`SN0ELT}wqib-4 zW1*&)>m4y^%6S0Z0l|#Ot6nGWU9}Gqopne}&09P?+iyM8>)24$QZ6owk5RlD6q$Gr z+4`jZ(7$-=e`D~yZTEkH0hs9cSjwyALw32NO|R)*un}F=H3wKV*aL)c-IiIF1waai z-C>PIw7I`(!xr59QD3DIh!>+anFuu{FKWAFhi!#5Q8RRe&8s>$$qfQzljEDu-7ACy zF#bFEUmEdq9e{YuXd}o*9*8B&XY-dGD!W70;$F-(8L3c%i z)~m!LV|ELy9l>1yeMtoBJFq(~KmX&aWtrR{?IR}YS>4g4WkE^TkQ)S{K0t`*Pa1le z8c8N8T)nYN&HeJ~r}P_aCybZ8=N2uE=T(5@(~R=|U(1%4#|pP^$UJU)j$Ax;cdhIF zE8lkdy44&OKPGdMR*+eIyX|3BSzP(C4q-s^h4R3F8hZ2VYC0rgB4h*q| zqQ5?oTj|edN_@Hwf`hDy-^v|rQNPpSR7uv93Uwh`Itz|e3%JNepotTXiCPUJz_h>b z@4rootNh!P9{3k0Ysc;jU<9g0OzBt~*o;c;_5Kd1ijH0CVKTo%Aa>QWu8JX>z)^`y z!uj7_%nsdWp5=8X_*lC$c|$1xlXl}`Xlbb9KclNEbdUb~H=@yj$x4CW=qH~XT zF#k@Gg0EaanR+>J(|VgJe!#-Es0`aZvbOac^XoN{4;^<@*^YF`6$E`P&SZ5hO@L5g z!cI}{K}G8JxhFq*!&5mT45P2Ubjuo_`t|!Fzl9q?fi|H4HWEYk>gUnvPdXWKvIkCH zQjYVdPTcknF(MpK@W|W3t$*CWsb}z#*%P04XrDsWB8N_)?}tu$yPpyyZxx6c^xbvZDajiEWO(9~&##Z+tO~ilmnNvA zn8tI&yo(;>83y1kyF>mkkJ%0Tk^uTwd>*`=@LRCOQh6_BS+3u^of88yY`QZNLcNa# z&^!4c=E8TN98zf_cVoycP@#uuDJrO&?Sr~-lz*Jy!tG;@CeFbK+g4E|=WTaQAkfKI zQXxr@Gy*J@PzDYeKI0X`^r>zzw zJ?ci9R{!Ux22Iz+-~4>oC$W~e|8utYaOrecsSw_tzSH<4^Fi^WzQHqa5gV?5GZ$@D z-ZiyG2f;nr|Jr$cJO-u)C_;4nXiNu)9Dy?$RpDbOj{ZIYDbSmc733lm0euLU>r2}O8bg;(h=^6bWWrX^(q*lu@g3+_|SEA23QlE7sD z9gNo-5disGu9Z9kJMCvm2(QoR>*ni%H$c#~!SC#EIsrT%VtB%^j9uT<+?+!5GLKq& z@!BB@z=jQLTg0375D7mMK)lK69$Sms$;jiKxqfYXYaa+U`~loVeTf0k{)GTixEoID zy}-T>->MeN}0bk8+F)rI@f&M1R#c1R$sbG+cb2&N;uZ0 zo<+A(tFeH>ycRob`Vf7bjqCsh{X8=^%eVkQR90IKG;3AiN+5q(Lnz620M@@f093V{ zi}#`%sv#Z-{u3I`#OwRIpkLMTlSF@_|LF&S<|yM#?}A(7s(leFMCd=3v;sYF_KmSD zW+!UCRJc2$^zF`jTmyE;*3>WsGCwSKogH@K0dI)8t^I~G!QcADm(J2s$%SU zt)jSN%;q`T76s&VB6XhRI|~*jJxl+KzE`gdppg!e0hp#DWnutD91N2buClBKa9bMO zvH%X%9ahh1S)@>89i6Ad&X=5`&%d&OFq@xEirf-$be)8ly1Kp=0OO>@6mZiy>uOmc zN2n&#E(?ghue;W@_vl1;+u{(wwrwo4{3RGM(;xbY_$E`}Py-;3`lfG+r=mTalqY3` z>7kmM-#fgdyx7p~^WjwS_ETJb7J}Ii91z-a+Esr$&Pot8%W(MCyDhj`+`~d?paQ1V z>|@z}5jFXUe=-iCg}>pjk-#PS zpc~!Pj|tEn-&FpXKvNUT_^2289BdlAri}=-^0g7ak@#Ng`?&^@)V%-86o7GCx@cE= zzO2hOVUTE@|A5jP|1Qd2`s3Tr8O$@B0M^IC@sIqgKd0#(-%4O7MS@a7Hq}}P;kUGP z#-K+mw}KN+^cD#Da|XQHw$VATc~HE`Dc4e^q!(gWAOjM^@Wx_k_9j{=CtG3H@-6r+Y#CZ|5x1KB%obpR^YPnV|21sP{X zCtJctmxi5&kMi_cJ%zR39)?MEfu>?K7?CqY*y93O$vps+M*P2gfkR$R zg$pCjc40PutuC0T8B~m*j-EEQ4;q{?$V(mwNirb*3`AC=o<{@7R(r^1tyk&K%agD@ zvK21HkIY&qPJg}LoF_x*FqII~rL=l{l3>*ynte47VDv{qX^o!%w2Oy+#f{XH@9A8u ztpqC*Cc2tEz5!@;=7OVL6sM7!s_vg;uB|t?S=I`EFM4B1)u@d~)ZfaSzEzLDKo{?5 z*l>*J8s~4teh}HlaRIovMNdxlZVA7(^DE8Rc z7!LYr2gVozMM0e!=T3YTxQ4E%8m)m zAvqnisKCGE?7=c$=A;EAv6F*(lpegoU(^{tdAqs#MPOtuAYIzSFVK@Z!9^+|$hi`b zs6wAag7uD)*@ps)50Mt11btTU3m%K*Hy8aL-L~@|GJeKaj``@bu)&90l&XK8!!+^s zK(#=xU_)*S&ESU?{{n|Fr{x_}D~X3xR$2B*j=IhsT?p&B>pkWvjk}9RKkL3HbHdQ9 z@Q3Mdl>dOfZEhL)sdLYRrLQj3SATsxBB~D+B8qXz0+pyaiWPny79Bs1Z5*6g*<$x* zY9H+Yq8W;ilGn!+To@s?M8hq?ZK@;uc24@PnGOJ{Ler^>@`Vs~fnv=c5wOZYmZ}cR z0=+1}Gy!uTud#S$%<)czcJ^DNwmj=*yN&XLdqEN{iNAj${DK;rXP6b8n@=nYbBqo7 z!q0DCWdT?`ygX-bYGJgEDpQXkj6k_}$}A**+TuX`m1dFwg3NDyVK-66;7Gz?7_)@@ zuU5Cok=PatMQ=^8pK96Nd-FHPq6i=cf%G*d40Ywx_Z<1JBH+dvT~c2F$So}B?}>{{ zrAsaKsJ41`#$fdNQtaeSP~d}H;e^ug?=PcGb{0n5;FpezlD9VSMU`oa;8BP$dR352RnT?+VVKCvBF7DAV3=={3jQUf zhFA4ZluugsB3I~c3Pl}c0Boj@U`?tlhh2<_{o*5)!+9F3f5>b5+N-`|4ngIy#m~{Gw}?e#%fr6z-}X zeJ_(Tm&7RJnPKqDe1LCOdvjj9WcHKQ#kD&LSy=k$xk!zStp0(gPUuuni?q2K6s>iMzM0KKht7&=#M4Q%W2mOE-W|9#<9 zLbuw34n1sw)quVHvzr5_-FxkBIC^X{huNH>?->M8onQ>aOpe^5AG$dHn@K| zMNSp9_mftohFPlF0gOGL6L}vd`e*JrQ|WFf?=Pl8BmXxGptC7geb_W{*ywXPaj4=@ zI{CQzXWIJJ?rZQtLSR;)TZsF;o=}EW2(?3znq_3e zy>B_^2AGQe2n-T#1d{yjP2*^ex7Y~(U&N!nRR=A9s$enSWh>STMTd*rvXXmu3$I`0 zQRoKI4k0SbK_49AvM_i=X@E^e3ynEP?WtOYFB=G%o zq0If4%*HiBBjO!q;_wjXVWa!Q6j<4a=V=ZwFNGuw7Y;g>L`pSFf>cwGfeT03dbQ6R zzDKnImnWx(CN!5^^E&ORsLS2C#^Iw&JGIMHUNKp~{7eB~RLYjb0M5Eo?YKZqy+1Gp#K z17d@K5?>!)8QRw^h(t~4m;e$2X~vP!vu~Z$tJqZaA1(*12R#UYW@a%&tlu3pb?(YbAQrT>FPR3W?CK(OF`ZVi{ODbRB4yn$K7h|>2(%T_uz@FC~ zrxXbB13a7~$`$!_@tdwTB~kU4DP5wqSTXD!E<Sc%;P~o!YK5AGB-P<0o~A z88!l;-hTjiNU?hPB#UP2(E2^oKYT?P+Wlzyc6dIbFsZ0UG zNN<$gjO~nVqg9Rq1%mmh>{+hwN2^^sVPiTl$d~Oa+t1$5{ulq&Mm8Ek15C3GG*Y)+ zctfCMm>1zMu1fcbP-_1;=Bl!J58rQz9D!&Y6Fj*5@v6&v5;$9G)4@b+!!ot0Z21`- z1#I+WJj85-Ype7nT8`f2m#X_OYEzluzdpqQEDS9f9Oj=6TMDfv;UQ2=ox}^5Z(Oq! znp0irTOE->v$beu}oYFA!B8L zs8FvMfN54LW`@3C0XZ#7?IwAmTpW6;rIrGxRY2*j|2OC01-vdKI!(J`&eeRx0`oW@ zaGSbPSkT6zy$;c1^Q1(C#yM(%u}h9K;?)2llm=Vb%2~vC0lep`IxXjD{in#C4&d^@5NRqL|s1e901hd$(rutS5JFN693&pWtYnc5Hy^$~2D zw@ZDB*0x|5jG>AaqxN8^e`}%cl$(olccxSF^U+Q!<)tdE_(wS{q!46!2B zJ4|-sUp+we?zIDm^M}y3n}G_PdrF3&nk0sr8pi<;4GuL4l)PDI-S&kL zE6PxNHOo>+5?xc#qRDQ4SV&WNG;odE!EiFC>ROzX`J&T@7Ax0EaNWo9;>Djo-+!bT z>+|KtGiN*=iok2-wT>^wyGm20n*Yz`o798$SINiHyJG(a8e_#Ijm9hB-!jt}#9(A=|X2kztkrhqr&#u_c~8Bb}#|e6%_sO^Ec81^$CO+iY(4Q8{tebR@v^FP zOn52c7@=<+zu^2c6&W>MAV=@$^YxQm|#<7*WuDUPNiclGKJe05g;_k1gTK6rzi)8**FO58N zXmn?viA+$gqqhqexe+Kd9JhRv07P?+FjJ)PUDprFr#!yBa2Yx+Tf+LL0w^b=^1Pw5 ziNEj7YZBhzMvh=W6k-7@R7?a5g3#Jg?pDvfjW?Q- z+jcRoS?5zg@eRX^c}P%dr!b1NbSbJZIM23l5vYe7!lnLt$~hlMI`B21$U0bR6XlO+~Zf_$%X9=()9A>BxdYW;U!qdS62*8!=iExL-C^fS= z@`}+W5Szhx=LLD+n*iyh{;10gX(gS8)|Y3aH&yr9BSzl=1aAvt(oY+%2TR|(g_fiTjLkh)DfU96*N$^?Ro%WTJf}C8_Uj74u3hR>$`a`^< z?%9(S-ec{qqS?e1}ZXOl^1!}`jM40l(Ar*W4<*T4=;AZQ` zsdo@KjvEev2nkI7C0oHY)6!jNNWnbFW?Yb3G3&R zmysV6zp!CGEEgO5oUu@NAU! z6MHgV_Xcb*k8L}7mRHxcZxxH3Tu$bSJZImZR1v0dnX>Id*##TQ_ z;QbwAsV3BfPl5k@4J*rv$nm6b16Y=wGp6^v+IPJ8>#CMbhic1wk#l}eh!VhXzK*1aSw%lh9gnU!B4d6Y#O zLTJOKfzyv^EVrURsdnMNuLHNm8^2!qkXXG3$taj(Hs8ov!nA*#j@D%ela?o7Z&rTb z;!@-`q1?NB>~u{^F+GPXO;p`{ch?vmfnbI6tS`$wV-UFO0_G^sOAU8PC$^SdLtGb& zO>EY9s8yf~pt%-<5(OG5nt}gjW$&Jtv62{Y*Tv$_Yj)L z&fjqPSaGIM#KNv|0P&~jqm^?CQ*aeP@;q9^F(^V+Rvvcw z<*!3_<%45xqZ8h5cF=GG`w>O2i0y|GvdL^G-E!X3x^}^xsnse#YBklQJM8*XM?l~- zkc*pFS0_7@CTKqdz=I<|U!?Db9D>f9g1vpl_q`5=wbn=Y+#U09n>uW8%z@!Vo%H17 z9>ez&S(So({l1*Hdwf26vN`~btmIX$=|eg%->eXAigaew#$!m( zkJ~O(MCrrzPZzE(4CXo%)u0PL^!;AI{44rq72F;$n+C8)fMJp>!f(~zfinwMaHq)z z`H0l-UDG^dQTOc+2ZS2S9L@zudsS@Hgta#Z(PlT@3##--NSchH2wj;RFFkihj09ey zznQNEz}|a4jQ?^?@vb)E3C%IjA@y$FQLm4!${vsGl)`LC2Sv(-I^QNhm43B)5JJ~s z%{1y00>n{6@2dpeAFitjEMEouyWa!!j<@=r-g5L1lTKi!v^fWm^xn126+TO)ObxJZ z-kHtl(9|mXKrZi^66EXwE6-I;dS1!Jb zZ1Fqiq+qYI*zVp2kXIc*jV#tZx8^xrsA2uL#(Bqlh!SJr;3ryl4xz1|mD5eT2=^96 z7&;w3f3~M#P`YuZQDKsGopQFgpsPmXVC?s?!?tgcEDh;pdP4!4LS>6Ljm$`;wN$s; zOvUfdc0JH?Gx}#2Tq?hYYp0SghmdKvIytSW8$mkfy5o!RFd$H&;Jn9Dhph!^iM*1a zx50kl=EKkPy}G6O6}0xI&Ij>>eR7*Mv)+FW>YSzfoLT2Ms?!Kkn4yTTUC#zEbN0}m zi1XlJI)yt9!{wSJ*`7!+AZQo&m9(?zsbC^agRfO((QyA2M)yT2$@Vt9Idy0imn2w6 z`CI^h(_sIS_gfW8Qbuv`wHy%-8i^G9l{nG%PAy4e(g?FnX6uYt28DLdOdcl^zYGd{)2z?%S2Inh5}Je+!DJ5^=X%H`JQ2x%Vn? zGa8`gw&DR^TF{<&L6LtmVs1BcKa{J{gxHZ7)uflxkk+bdJr_DzuHp_rJ=xu!m3$}p z=7ipCVuxgkt6UCNw}aPDxEUmDqH?NqM|dgz*+XNeu@oPsZ*6??-^T(hv$()cfA3OA zKm|i4(WC@n!9jgaPt(1EXB3qo!wLw?s5J{IhLGK^wTuZ(g+FPjs!Gv{Oui6kdd2YZ0}y+(kLM*j&dUEw(k(MEfOC3Vru ze#L8VIo`4ZeowvvA~Y0NnD0s5y>??@V`*>OD^l@;5o_snd-PvZd*AY-DXd^@7AaHN zc3lZU{?XRN{>S}KJ)(Iv)?0%G2gw*TdoOgjzb#8lD0W9YF+oEk!;}D-kR|xCzZQuS zyR!#tp=w7l;2$j#f#T9{4uOa^9sfTErE&->-aR%T75CHbe_*|77x&YDdr&PI_}8b> zH#*(tz;B?b(cRViXH-j$`V1Eyw{Sm=`(z!@8FW2Gi+gip$)DA*+ypqL8>#(q@4*$M z%s*-w{{#_nJEsA{K%Eg+_t7bDf&o=9xJMPEr^c5~o0$i1ej_6mj$mCeOE|02`7nvI zE&DrArLj4KKeZ?v$}kF4hb`z~w`k z*9}#wh5Jz1UkHVYgfGD#W0HV`&Q*3Nkv-K2tP#Tf-OZ!baGv1B|^umYX zNN}Hny*TJ?2mUGxJ;D3iLN+(*J?a2Nnj}=`{T;wt4BVDKU`eZiyVxigcwkOC3!02P zyss{=KX+58VwKac02?6-P+i$yfd0Syws|WEd%o+n^)ESh9UzAEeFsd=VJT(|v--x~6WxXDi4gdYUf z$EbYpTlszi=rY##TV*oE%v zT4f9M#6|Glr2RzPbgf2$P8@i-aj9setHFArm^Hd=8H8Nzd&`#_0p~hfx&YSw+nXO} zl^+;qI6nCIP z+{`z=8jLa~n7qBt?H(iW=v*HI;16!wCt}YuMW@6;7U7k8@QjpU^UOY>H~!z1L4f39 z0*LY`SPAJq$~w5Sqfn*;#0ZGtH+-qXQqw;PNK@Q1fKDsh;#HnqO1dlc#f@!N6O!9p znjQR8Dxc5M7iBBI`(ah|pM#tYKL|kx?CP4E+r<9}N8U)*OCfAc20&m)kQdl1&(1#o zdU^JB*@bgO;RX$tR?m;FohOvO;32aqr2?kXIqC;z?KVY1EeuMF2K$#t_w~GUYIOaA zzR?Bo6PhBLji8A6SO9HcThwcrhn_Hp-hXjy_{IQAb5w6fr*b+vOpY{GpV3-|{Fb~+ zcZNskx-awq@^CxImE`mNSvdglKCD$~nyqnM9Tx(E?{O!uFW`5-umdfDTJ@VM z0Aj8T1bC4Da};AD50w6uWZr(}2G5ZKwCcH6eQ1L9DgY=za&Q81pwnIPTqewE+}F#u zP{c5INNZb#Nyu@A&Tdsy%+FxTXKMcHP!pQ%MfWs7AOUNH- z15^pRZM;^rjbJ!tT_bYnEIr+pgva@6@>TMc)z<=5DqZPwollV%;nVfRku(5b124nB z3sKwzUVjDeI_H)5T5pUX@ELLk(U{}Y!9+rSQh?^hx>+JyAt!(tU->y2R!dO6Hsof{ zMD?8-kjJI62i}JHFlSZs*OwsFF19)!AU`Gt1E&fI?x?(IfK|OoyO8DuxEYi6k%=h> zhlmfCLlhx`j(0G!%q(Ov;(S138o;h1^VaLq9(~Y22;dQW)93%q0))-PZzTcDlTX{{ zlDdr9J1{r)f4II}p&FGhgOF+KclNTp#?CPRJ9Aa$&Ffb{@L|K=tBrFC{|y{0yv~&@ zT&CQS-nkFm_xmjo?{aM+Q=ksBkSkwUUfwfgV;_81@NGE98P$S}sQrKgGsIV-W%anU z$ybjpF7CoDL6gW#o3!wlNK^?7WgvTQKl}VjI2I{4d6KPxW{Db*Z4{H08j_}l-hs$cVp`Ox%x(sFEQ79cb^SMaLu2I6LG zlBH%5*Wd3;|F#_?Y+FjE1}x?gCh+^FNv=aST_!+C8Qb@BVcbQ0Y3qB{{SkrBE=Hv; zSKs{C*Igm=)O*&$Q3ewGE%3q4YOp_5;~)RVySQCf*}bD=h&m^_09J7p0C9Lv zwyzys{c=Rn0X2PfFnb74&&{sHRm5a)4@S%^pqZLMkO10LJ?DHRbq=y?-9` zm;?3p4yC1ofnb7iY56Q>9MK57HD>WxwjR#6biboaVg|?~Z$Xs4GRIzr?oTcp#=$D4 zTAv!u9CpADZe%9f*GZuVn*0#kh3~4zj(QGqcJy)KTiSM6UvNBQK}=TDKS~f?a)%}Erhps*vn$Fc)Gns$N|siY0T9@zm!uCwky5fCwpH@dz;#}P zWb^r{*A}EF$QKDPT%a*$Qg@wqj9XdU!;s2biC6n}H$%+3SfD;@rrUYmf3pM-b`%9! zQ*I$u3L`09`{g-2k~%n%%dAeu*ahBPH08 zhqM^E$zm{AnREdC$!_2i83@0MEhG*XZeTPgt8(6!w5oL$8FD!>-WheNMVu%PDgu7K zKfqKd@<0Ll;xm!B0FX?}I474=Tz7`#a1p@77jtf#(a@v6-DSK&OcxAVd|==)b1vMF z;jplRk3gxL%$yW>Id64avN@7$_je$z63?Dx-AaW5hHA^rcw_;o*TXSBy!wO69oLnW z+7bROWq5vcY2xI>;rWSgcU`K#5?!wYWmsQCmt`RMLZuC8mm9!y$p(3B;*xt9a_FQq<*}m~HW_V6ee{Sy8=8XV2 zD5*5|duQ5nL%#ARKq}QG1ip5FILPvHZZCoxlDI+h6Kkl$w;RBpa5I737iL+7TTdeJaZYcWP-qujhI3U0APaKHy#9(_&Lod@0wKA)Y+#MLfq0IUWTq zaNUzd*1SLZxyWxBcv>+ySsQbreXK69Qsch!yYfxA|H<1Td+~+0MJx-8xkW{7m>d`| zhyFwIk?saR{^|I^pAKqzqp4f4KuER;gQXRiL}MOEx;9Wb{g zU!e#D-TZh%PUfpgA%KEUg1@&o&&WKAP+PtQ(6Udk?ESfYzUMaULH=T8;Ry_Qt6e*6}OvHhrzdlU-M#ldMx6I&RBh|z31=dTBpI>|Z zg1smF$(JiGStM-}5LQQzmoHX6p8Hk|XMl-9K}sJYC#9#uhMQDce&XwCq#(Wfjig9| zw)4=~<&C%QEi8sKmqX9`d&WVJ=$-8y0mQ`TCx69An~A1^oKR^OJI~A!mX%fl$=l_c zJOalHeY1VDz5#2dColnkF8m~}wg`ro1=jx}xNyOXDJlCvXER4xA z+XBC>HibpJ>5BQgFD-I;gdIK~fz&g35)%Q^G$!`~>_Z>l4Q`C|~KNyoJmzT?0WV^`^`GJMRLY zra%ZaeAUG52cBQ5=_g~?)!aF7DMCLALQQFF)vie;iaj0gc&T8v1cRHDSC zDF+2ZblI;mMN$U{?@vC#NCqa>kHt7Qi%7NfUS57-~M8z#No z*;vxOlH+6$+u|orI=*Q!3ue3}kGE^RWaOegtzI z!1J}m6$-=DY83$dDpGIVF0IkyHbBT+=Y^p0eZl-|K+t4flTmc(_1?1FCk7K^85OcU zM_E@Cvz3AGO&7V|BuFi}GaQI*KUp;Aw$bU%oTZB@J2BqZ3`F^mQ97En`HK@wBg`3E zRs>`Hm1e1c{<1xuE0SW5Jis6$J+;xf{!* z=|iaiYT3)RM)Ks%O8Z_DK-Ar7V_mX&Vbs(~6QEGM^5P!l9+zK)Q0%(v)JpScz4s7s z_-19LJ<9nDa5WQb_Rnu8JMc4WOQpFHT9CCfCT)?_<(Va=(AoqWvfc&rTD_Ky_KCw1 zmBK%^e*w{|8n2nc0KC(cgBMJpKtQSutPqgTyaQ054);*z!l(kofi@(zQn+zNaz*g| zEXlM|x$o~I+htSMlcqzijbwa~8l#Yn9H@jMd^nEO_Gu%Wr|yZ<6}t>b*qsjw2?qRe z>Dnk|sAs?egs2pCF;-}Jn1muqmA@;8yK(Fu>3*knah#my7$tAZh zV@d+s^q%3;5sb+I#l5zvd*r7JZgK|A+Gh(xi-7tk=lh;0eS5fu9hd(ZSXb5pkd*n6 zl*!SnMB_pA1v7mc3;sHHvUz&&z5Q$COcB#cklACQuMC4MNAmlDn*>@?)ovbZPa`Z; z-&%YwClHG^*~OzcPaubkzh-fsi}_$meJK(ggu zar8~WX-4N)bOMH5a)P}iA=fPZtm+-BjSlrmuP@m zB|c3xUS*wRi4dT~&`vQzkpdT5ZBeTqIu$`wBr+?#Tib?*^aF$A&$D2e6ivKxsj6sI zLraA3L+tN}#rFW=W(tKjwuAc`F_}uKCO}8z(5(0{Rq#xxI^DY~SIC<29|j1@vtRoa z@)PiP&j+r6A-;!sg?a`gpDffq;aB9gR9vE(y11e|@}`R7B>^=BCo?`DD1COSYjSZ) zym$4rUd9&0@Cu*SQGy_N@a6OgYD2tcDr{U7vAiYuUq9TIDFsM_X3qwK{Oo zJdKQ$4~dPs=hTD-b2jRUO3yE4KGm(@HLef6dxj4c`R3vUWf=_YKV6X0GSLUf`l5%F|%TZPI38L%F?r*A;?-dNRKq$pC z29y9|+rqO@nqg95opq0LwtCaVga0%z#VuIh4Sm=H>ZgU>3Os-S6QhE>zOy$TUQSOh zrkVZe@x_F+?J`7o@v%e#c}9KJ5Redll?|cE`{@BMr;4Z=Kzy2|6?z?D z(U0J3q{Tk&D>QC-hPHbyqVNG(@UZsnk)g;_+tEDl((MRWr4d?p{kqqEu2nS?E@I`A zlTp#?bw1w!RKl$`POE4Y`%Af6cT+wG>@p$6u1lvRX=%#&v>ztzN&nYlhsEV9rntGU zt&dMp+E4+gwmk?d{RzOp7Kg~;2rx+A9N73Az^KS1d&%ro2^gZss&v``&5ooV0PP+x zbt{RJR8xZlq?lc&7fx5`WSyhT%+Ai{RWVMxqD|*$BO#m^PuWH^6XYzH#H$&bL5vq# z(r9RLna$iW>Y(Xp(kB9bqDR_gis+mpUY>$jK%7L=h96&90AF3cg?=F)k-19*%|hR% z?Y=PjZk_2k|Jpl0*VoWpx(%5%!2hX4qDDqN$WYp;!0XApAuPZw3edf5fz?GN8o5IK zfs69nEH9Q{12^a!4Z*;mUPKba5;eYM3@Y>J8mlKwocKTILx_wIUBBlrH;llhwjO=y z^%h9ZT@47mY2|G;YeoN^9@8cSMac5{>Kt?bw_j8D0-=(V*rD-=ORiEEpq=EO0_2Tz z@^$+{E%bYflD57f9$xtJ=C5)cu5j3|O3s9ZAAu_ybsUf|^0_7(PtjQo;o@c)8$Ug6 z=2Y28bMKTAB&t4boW_!C6J!O}9sdA=!mkP-u4SwDq|a-A&KT@knlmdX>g!*S1EY+Q zy)Q63X7}vj;r&!S*ueix?nhhnK#%l+><^z8M+j}$euHUtpAG%U$MQJn z)#oRSjZbq5b^D3)rwsGa36tzx^&lzh%P+quZEZE;)Iq53b^ldK4DNe7QKt}u?Y2sn z;oD+Jb5I$Ls6jeiX)l+WajN_N9nUjHx|x}S^g(~SrR;~JOLr*@0Dn00lFx2V|I`Dv zKcW_`5(G5px$v<(z5D=0l`==XvHE>SaxsDgys@pd zeK&8GVhGW?1Igum1m6VxMw?b9T~W60N?Hau1vs3902 zlDq4s4v+-N5PDPY``z?bw9EUdXGEf}kv~+k^{1btT4wCGyFiG`lk7|D>cUD23FOw*sVvTn|CVAA6k^NXGmmOr6`F2gv8- z>h|)6x$J!tB_8GW!h3KBVmW#Yck^l;1Cj)9p2WwzgBruF@V?h1uTuMrU&Gty`CfJ! z76LYAbqtA<=ChKB{|Q4D2r;G^v0qK>HUt}Eh_XZ^9zM(V9qa+33|8A;IC!5rBSw4Po0jHRU zGPJ8YK>od2wwc2CqT@G)2+JHQfoLQvzS*t*SmS>5>C&Ck*M!SffqnH0V=joSw>s+C z==^cse5Zl^hV))w%ybF3g^5VH@aN5}a^1bhS48Lnhkw{V5IrMz=0pM#G}A7vG8(x| z;iO)kJ`_dj$9|Wh6+vOx5pXuOZ2}j)p_HuVn7H?59|)ZwnnojcukFf!3K%mc8(i&F z(0nl9Fa9&(fd;FPub9W^pM%#U1j!@Yb9Tuin7j?cnUXfV6=g^zFx*R}s6@uJg*R5O~OT93bgkorap8aMic07gk+*;*0BJ zOsw@eIUKdzb%l}Zf3U87l?%fsyQ4?KAo%H|APXOVbq2JA0?X}#$;K9R{YqwiMGO5~ zejs;oB)RnDq_~@;2SAs>#C@0f>uu-69VV-gbNdihzmsn+w$5Qvbp4#aP&30+ctB$e zK(or!zQ$xmq<$CmuLPnrU;;?FJ|sQ%DCC*^`rGcq;Mvs3N9>G9Fr@!yp1a|v{1Mxp z)B4n8OT@9~{>of!AZ`N+0WuB#BoaRROFnoXN#2O))Of{@=VxF8AG|>oAwbx1BQ{wO zG085g;uCR*crf#$?PVgKAzfZrFS=7dy#S<)8s@*vnF=Va9~`qoWQFP|WwZIUWKlzA zJEaGMN36wy09E&U#yjQ_gKVWr_9Vy-(k&tYdB6p&)P%FyX zUEN#VD}DLCNEf$bw!De)rz>~f5t%=YU}AHLkx)A?58^QHY!iLwOx_Sr#skTKx~rgm zv-&xU@LNXpS4#IKSlVrSifs&q$E4aOq{iUP^=VU2s^4Q@h?HrZGNkUqGRSQUJWUgw z5`z9tqnJNr!8bZ@B9J-d_}WM)>j7!3%(}YH(&)W@Q^WVGTVp%CbxU8vEZ8D9CDAdWXTq zO`)HH8gaS)oJHO3fIs!KW=|37Mc35v(vv}{mNF-jL*=G;4@E%ql7(bHi!?i+$XTvZ zkgMOz7p7Q+mFG|yAP=WZdCGlWEl?IlR#9Vwwmy5@mA*te;UDlk&$LSxg+!svz=rVZ zv*^+fRm1r2f3R~N9d2zy)~ab%r1)-ao^77whk3_(zI>}F{#8_5np$n;=Qlg2V@QTVa(M6vmAyaLD+-zftMPTqht_g3t_nztGLMS5g2a>~yM(Y*rIePL?( zB4=|&_+5Nhnr=zB;f>39bHNa0{uuxXLTo<-M;gE;hW$W~Sb&zkfDs6|^D}E)2U&vK zcaHj;r`pSIOQl$<41`(aj%^u~6xmqy9B*x~b<_^-p1fhKvR|#JU+^JE?Skhn7z-=l ztriBhlB>paK6-mN0-sgbvYlLFb8_yH$v)n@-$G%eSTD5mZHUB~KPdI35_K470E`>a zBj9TXTLN+*-668l@2DIQce~HO7#!?>)yrzPZ8b5Xmc>{87$qcHzzp&EATrf5`Ah?}oSU-ekYBKYVEKBZ{nhvI3oHvd?mY z*#0$D{sGP`_CbC-Zf|zR0wn0V%dzA!$$CD9d)D7(A1#aSd^q^&y;n-(hY%!-$cO89m615*b>v-rORM~xQ; ztrv8&-l%!&%wLRLbp1puN(vlqExl}~O6HKkW9*DDbu*rp@o9EEOYb)60I@u^gXME$ zK?xDmRHN^T)eJfE0>F1)0YmNvb$(dxmcc?%ufkf-Pkp)* zBGo1N@5T|>J!RTNCg2j4*Gc9iavkB0aDxNxv$8d^Q>s9dEctaJ8Y4!4SV@$2Sm$XM zIHc?7$YIu@$R;@1Jr0;uI$1d$J*rjsXB6x}TZ0xq?<_I>RBGdhh7LXy^x&hHziN!; zMW}jtjOqJ=B(L?!Xs%@Z@<34HfdFIu8HLo7Nlu#OT#7kLfdAV95ak}xBb;Na*OwgV z@=XY;+wmUVkw2GD*7sbYyf)@Qy}b6tj}M5Bk0N(IWc_ZWzpLOHyi7dIF`a(H^kcyv zx~lUdQbd(f<0{~H>44dJz~(+TQB+9vn<_wY+`!8OV2;Vw%D$dO zY}PAi8&|?oE&(tW`xwgRU1$u1L1(MDLe(*lt0?|TuDx$#%PX?u{Iv&Q;~BKKy?7H2 zut$qcU)Xtb@GB+r$?b{M21=hRhxc~HSFfxCD3{j~%83e?Vj6ZPXD}&ywGpg4W+52F4jIgA)E9EJFqNi z`6|Yd71#YXbLsMcl-c-H+tBeXQpK#!hQ+cdpK%^ThO5&AavzE;}T^Y~e$*Q1`#Hg|>V zyt)ADv~_LwEUCYugMh*V8z37&{K%!G!q7NUYWCVwMhUWdT!mBMwjY3q+Y6V{Vdkay zZ{d!V#0S=0U8wS`23Qa6cZXLiE#xBnuZqCZQ$bC?vP01$K;HchK;5n01Jr+5_`Nk9 zu;~vVXFa#7_e~rR%8!P8P9q!e5#MD8fpf(?12lG_?@I|V4BmM)dZy~nXE|KnRj3cw zzbd~f${D_8FJ78pL=MX|RK^b}5Z3iuv${Lko;~$B^SWEvp^A5N0(9%M5g^ArLWJp-3-?c#BV?_jpKqk<@jKrr9zqpKu$x!&uk*ar1pwi zIJKLwaXz6(JV)p~#Rov)&uZ#FrSB=@-Jy5*G=f#+(^#|->+*Y8FUp$5!-q5ck_x?a z2BsF?$YoZrctse)+D!TIg}`Tg%(pS0QpdS(=_K#IjnsG^EH9Ci_Ewbi=9QSOG*qA4 zu@AZ!@`g#qiN5nY6y(o;x4rlcjBrOyPRLFH=+KX1p?GTy&^IifOLT?mF#fDkiBZ;149Cfim*RSWSdDE7xR@iU@9gYkzEL2_S>z zM7;!^$)99z`4Ts4Jr<=ZvN>9?(%pzEqa8Imy9lqA~Qv50xrcEDu5i|;uT1o^u&~<9A ziC}h)035e|V$1*4xD7nJ@6`oQa9(1`^$2nTe|mR5dRQ!I=zp4SE63nlSvx#Rj@!Su zNng5n0QtGPzjI~XzQ6eWZ%EyPvqkh(?a*m|9f0Wm$(D{j{ z2X@NOu>|oGo6^(}RwbEe7I2BJNC2TfY?f>x0bFmJ8Rze`IGU!${u^H-?fj&1MZ~y` zdY+{3xIF8ZY2{|dQUdek`V~Ovf$b{Tmr?=z;3#59J+7KgVU9SRFD4(cc40!c!I!4t zC?Uf+sm-0SGx90>d4H`g;Ld5T1!eVB5A)3%UwqD=y8ux9G!Ct#aYfcl8P#x1%to%K zN%3e7x#ni|>e%vf_r%VtxgZ;P;0eBUM0d1@c8KE^;G*Iid(3+ji+Ihe9-H2*{TXA3 zm*+o*%m1nq0a>Q?rV|BgeSW3zHJ!jaxkhu8z~*awo~6S5nQv{ui9a_u1>u8gvU=Ub zouA>m-XnA1<7z$UCk{YfZy~qWAg}%eLLS;40Y5#Wj-LaV#;K`wCwG-LO@LsE0aA%o z1&|I!rTv4X%{Lx?EId=VQ3SMmRh^9T5)jPD?(UpqygIhZ?(hQ;_f_<83 z^cNdSUp|4b@Q$bC$C1de06^ItJ+HdOzN>r4>q8si5CsJMcn)9$Ohf?!p@*MZY2F*P zUY`HE+N z2=@#RAfIUfFvQ_obB!w|5UPO7B+k3IxY8FfuK+X%PacjZR|*Wp(2@l-o|v!vp0MLR zI60Y#2VD(fc)zYnHfXb@QI@J{3tEJdw`-<)Uqtqk}ibaMXUz;tq@7#tqBE-L;F; z!pF0U2R}EZM>nLkz`9(;*vVrH(ZX{_&s=#lo1@o#4k|#3%iLG|sRSntajpj1k&U{A z8Fz&2T+CB73H0Jae$SuY6CAHM=-;f-|5ab)*rq~GuGP_XXUJ^H+q0HN7!jH?oS#!s zjv#0PpVR6*tA2U1w8zdgJJ-X;#q2F@7YMWL*IRKGg|s$!a+R1h}*Z# z+~{_nmpXl0Ws&6vC_s1jd&!%JZKu_uG1PFL0wLhOaCM!@{k4>GxPGE^8?zO~Y2Oj@ z^(yJ^w!uNJ_t~`4bf6xLdj3%zM5u9F@)@3}uPyZZQ;}4V{=2o!PoE1tvs4FBbx+Ep@1I@Legt!-ZK@ z=`61MJNv^6t_2~y!`V-BI?1k&KCdD3CNZSQ3+Yurm{hqqZ`^_!uOu2vR2C!5eqtbh z*_Py~c9d(bWbb(rt_{uUE`w+5fv$p^wcqrPj(afSf{K-%6Ng~8WoF7l$73&+j z7wAmJ;^aQL-Z&K@Bjjzle=}3?Yx7@T^OPG$j9a$dA&DWb%p>mfxv*6Az+tdyROryN zLTBQ{RQNDMF4DK?iskOkrWH7Z(qknYbI?;&(_U|{y@gvMLs^M^k5gYsIxNk>>dS+h zSGJB{Ob=fRD$74r1n`6Uo&x~|u>dVBv5P`XzJgje^9A+J_4%92d#qeeI8Nm#zN;HbH!Y~As`$b!JPzHw` zkIPTXhNC3PkZAUngGZpb*mH9~;jVb=-!x`Q4kLwH!TS!qzWWknKIaZac9(pYH;A`t zjZQ>mTS#;>uhV90f%JkD;{SfRU#sEUySg&h&UkW?`%iYOruNaHzKpJn?iB%2_br;~ zKxi!7>4x~nI`@8n;WT3ZOfcmP-D=*to_mfI_eShqvzJy4geZ+0Y_-E!(iMgEqhnC% zay$sT=&!1S_`Q#8i-j32jC&uRZ;hT--C*Zdj{VqtTk+wryMliqd{@O^GKW-T;=Qiz zal_S)PMU}ixWvmc7j^Hhx5rE>sArYic9%@DW@K&abwSFqxyyx|1NuXOsSqC7n@BsXh}Jp6hea)x?|wgb zdj*g+_9qreT8Ub;wI?KtU)VhM@U523{ZMW{T@eSaT0s-199b5tFuo;GQIG*DR0%Ts zQxcYM{PgnB)*s^w!&_%?J@#TSzE>~;bPc9)M7)m$&^G2JUk2#u8w8%e47TL|XAp@=IP z1^6+3REUMoE`KF%@}~R%0~n>#re^rkrhm;SN<#*}t8&QmCG!9;gAnjiB8@m4biY3* z!3#RwOTg`b5q5e**j8;2DyxXhvP#?1-v*us$fE;^F+|@=27fM%KSSny0UPL~h76!w z2@`V(Or@ioYs5zrC~z0dghRddwxz;i(uqkLnuKpD0It{s-fD>WI1*x8yKaz@tEK0c zZd8#TxPb*&c5NZQo>m)6Vd|!w?fVCxz3Fw7U33UGUAKVxd@FEk;9sLOn(DB(w6d=J z>cm&C*7op3*Z&( z^k(MX{zmWX(KaWZG2;glHecfpbiVycsfALL^B1aa+mz@c*>vBR@=j856BJ=Q_v+PH z+3STemV(H>Mq5Ad+QXNERgw=2IE(EE(br?AL-cD_!B z-G%dYdY>RE@iv)9T>>#NC@gAf1hecuQP3%XUn!WVX_kaA|HZ=Gs(i))i>(-+CIPL-B$ zr;TT(+o9C-CM};{?%gk`yGEb__;$lRuM=5b+kD}^coJNA@=@oTnI^u&EmF~1Jv}MD zB-#)mf8brjB6~F}h)VmLvlf%=3Sl%Q}(JOLk5e8HHWV!cb9(I$m$)~&Wy{Z)Djby zy8y>AFTERGA)2M)CAujsXIq+`HCJH z-*QfL4l8cKL@`^FH8YM?&Ywzjg(`tD}ZgC zbzhT4xl=S!_`aRhqczV*=mhnRC zG-p@M6s)FFCpA$ofW~m7;84PPHzvv)f+oM;WS3_icYq~%;th$sP;&3oqTlj5mh@nt zdK}8yN)}1L<{AeE5}PIM8LGoW{3JX+gWWx5y!nQ#2YsbhmJ|B#C~Ly&0DmY`L~MTZ z4}jM39fIz-%K8hgiVeugBtgla0bhHaxZ9i%`VrhplsJx`KP*_{6C z8?QW5_2eM(H%#;3R8&{locQu-*?&lrqXKV=&^N83X2~$qR2pxa)4V_PH&;D2%$1Ro zN>n;#wl4wc?SkWH=du|p0G|0)$9QxZ_D#|yW+W|>h`c?CvI4XziGO8#Id)d^;X>|T z;68EimGi8J`_6I$d$B9ADM<=7fLmw^=Ry|LCKmj@WNN$%;HsuZuP)(Y)W#{rC$dkj zymqegt$#Gj6w%E7U;B%D0D_&8xqp&jtFTSaGyKdnu>D#kj zYZOb@8$v!23QEjbq)aa+1n(#=1>K4Kz0(5aSR_AZAM1ddC__rSpfIkV@e7v>$2K07 z4Kx+K29`yFR1d>a71VaOAqb(gC06YN;;UvUc@&=>4?y@b?YCrz7gnzp1U;SVJl)cfy&7<)JGooYG1F{s4wY7nmzjL zdtKl6;iB@N?ZKGesDW)!CD!9g?Z+Qlf&iQd?I#E8}No8u5VP~daWWu067$%?r->$=g$|| zr3IvPrwYJ2(trf5C>~_~%kWu6(;#DoG|fO^4>B)R0KD|CUwu960EzL5cU38b1|CHX zqx4|Tk%bZsx=7)~w|Mj|Ltlfct>KtMT^OKD{-pXShlwxTy&I!8@%htYtRLXOzJAWG z9-TNGV9r6U^0A5T4+!!N3Mi|`btm6vleUrv0^)TK$i$8m-ZM9lCKtRbo~*S=ug?bH zd&iLUo8b(oF383|v0x>?b{@*t%W3{=cT(jMEnqsexb@~(bYSO%%1n?tz z$P35e&Gn? zR?kEq@I43ua4-!a(iz&oEvn_PeFgU*x-j5F1)KHL!9=7(I7BI{x9E!@Pc==z4(=TJ z5A4J1S{daY!NB7WfK0{{fIxIR`JJjnI@rC#uT625Sbc{DZdX-}74ed3r6>USde=}~ z4llOg%oCBJX6vo{?`Zt5W5Y47L+m-Dlq$6*?{43!v6~jQr&W?jc_+Sof5|5XrE#Tb z3Pr=XG=(Pc3t~;)vHL8Hy}-T*$bf8-kqtj+?(i6MG3(8sDDFOi`^N_u83ho;rSBp3 zAOp;-wrpCD=s)|7|A@X8$m)J5M!()FgZr{$s9~jIqHaO>iunQGi^+eL2exun&{r-D z#|_JXSbmxM?NJffg6C?v-3Iv2?b3S7A=&FeX`MPiqC}fTIEbah5Fv^1g5^T_P7b0; z5E6xQ*-OjAxtE8i%9x|h_pcu6RT}`G#u{2)Pejs9prMQ*N~uqQ5Are@2o1#F5cwm( zW!Gm1HH&I+Gp=KuiLzJL#N9NO_)oGJAPW8gnLl;`qf@`%M{8>35j=5U9(Oe-+Jp99|AAj?FAkASOMp3to0QhnoLSO(j0M6)pm}D)-lbahN$_2M_#kl(gQ^sFRB1GIN2od0O~!q@UTWC`Gcoxy z2ol_Qr@w{Oh0V0u%h@3Qup&HyN17KQruPLCse7cmhW0BSl>KElx(5(7CqPU~N_EG% z5Z+oB|D8THz3w?-j3@2Ju?X6GBM=qJ!hAEZiYR9WV6L{8Vx zvQOFHm5%Sf0l1S?`z7K8L!CXBd>Hrod1O9k$Q&eG#_VZ{YdAKkw;7- zLp^T=ed>%7d3)kkLge56yA45m7xe`?z0JRKlBi9Q_ErZ-l21|qneFUjO%Gp>Xn;II zj!2B@&(t|xgNqBujMTBg2j9zUh`EL6qn;;l#Ci@B^=k5N@|LEWdT1JUUB8NPL0z`$RD<8OwkF|s%Wp~^R{-gCI0!*H=8vs(%)49qG{&8q$fE2 zAl-vWj*Z{=BpLxf1s8FE-O@4u4&O4#(=by8!oudcsLYr%%r ze8rndQ9Jqbc`qMgZg!yv8YRM}=cf1gZX-QX06M4+cY~y~N`I=*4!y>r-V}hn`>8sP z8^Q1epxm^cbt&W-`C{`}8Lsb!B(<#)no1-jFoj{S6J%UH+L_0yXTHX+j)P0 zBnQ{vB@MS@cw>QP&X*KrpJ3HaT-CA*+bvVU)iO6VRa6~H3V7;AUnmT9UhAU~7CSh4 z`ESa&s{_&wqq=Vm;UzLRE>w3;_+jNfZw;F ziS?~pM+SQ?5L4o^z;QXmH+PGJ?v;$R_&P~fufOm4ENBG78u?)v;I^(&rj;Fns_pBl zzkBdschZ$}nr?2R?gtq1|Glr{97YZ8;}OriwC6u@PztzAiyCUTUb?_9NBusuBt)fN z74D&UX_39R6E7xDQM4(%rH(`rfhoU!a;!-%0hlep%@^HKU+kS{Wl2~gJ)SsXtp0J ze;S}AEDLnK`r@DM%F|%GZq&c`<#YAhdUz-|b5}e1xgA73Dfj6xTLw(y@z7w!{nEvE z)1RXa_stFS?WoQ^dY-W)i>*tiI>WCg@T1jziF>jns3K7$~(|5OAH(PKe-ymn7I zbN~Exa;>dvavKEptK%XKhj}(A8{U#gkE-cQy}FbzTQY&8C#$t+6l($G@Vhz^pih$s zN&>)4tiye3g+8hXL4?J%K3!&0^-W?TWlNPrj{<=I*oK&{j*Gn`;&6_w?R*{)*eSRC z)fDV=kbaym1^6@-NK4XZ;ugF1mV;P=mUaP091#fe;^bhi&xZk>7jBGK&q6kGD07DJ zBGGdx`mST7o}r>0?B|mWu#R5`tCc>U$llUKcl*O5`j6-g_%tWy{v5bdp*+d5jqZQB zLyhv9@&v9fg)n_)Kv~GcK~&^b_+g_c&b%fe%11kI=`4h!To5=|n2OC%(a7e=Dtcm= zP({{F4$9jwmqxpa;tYwquWR7=_%{E&|B*^urV5Gh)<1i-9w+nC4&afO8&JQ`g16Oh zkWhcm-DqDNrv!p@e%#9=R*e}WphBHZaPx96D-c1zf)Vi`0l>Wp%SoO}0c74k0^nrZ zkfy>{V4fLuJFrv20n`Z(+(Q98HtFlHuD?kD>v_t&cOMk2!1O72RVLfB)-Cj1}Ut{Q^S^ z&Ymmi+%GI*S94q}NWwsG5^q(Hy^1#tnj@8B;9)mQY%2BUSUGtlZ07l0%$j|oJ z>WkjCnI>w4&Z~9ar$kaKr!{jwk9ie6eIQg+4Hn> zMW*-OiYm0(VS`v(%OKhKUp7OZIP`HkNWSp#vn_QXLW$&u_T4@%z$7B#e1i)Fr=<(YkZcaGUwx7CFdnM(~wGViyXiJ>jrj%`Rpatc6b zQ1zwgmH!U|lcJK3?IMv5OmoN>##c(z5&G=kR4wR4oo5m@d!J)#LZ!ddg|E4$I;Fx>$h9Ltlr+3`KOAkz1EUw5Y5WHV*cZD<)jiX6O+dNqC#mIsJq#HS4pRY^30;CTB=Ll$bEzGo7a4ca{`tn+G z&iFyus#zcYyx#+@)VqE4rpek9`LCa`#lrOX@=P_GS^k%J)^GH+PS#bXTpNg?+Q}sx z#GWFRd2N{EP3L!x9zysisY5~^{S4CQYcPG^{1zvi7zljM zquVtiKlnKgVgJJc;KloBMh;PCCFW{~1t}M$qxzeLE+qXJ@1+Cfb(pv!;k}Hj5zb1; z((>ZY@0^>Qr6A31>z%s!(@3F5qsW6#03N0q9B3YRsCaT`1_NyTXV;TeKu`D*x2E+R z&6>mJX*U2ByshjQZ52+|n~FCR*wU#6N&`je=iv`9o~azhu5mSat_U&=KM+#u!SINB z*pZ6)1Ias&kIYiZ&+-Eatm*e)?m6{Zv$(-Ukn~0f?6?jxulkn#JNXCxPK7==vcSyRuy{{ws{#$Ue{W{WlD?1=*HBhn~UfT+-URBZE3{BDK{w*pI$btm|aa zwlgnB?khzim(j|jo#IjWoAiz{2?BWRP*_S)^>cn|6=0v#cbM(aodJwOxsw0%I$DaBM#UClX2%Ua zUWf17K}fvV&r}cT)D?4?he;Q%j`0dHn9+eIu-jWs>6^5(Quhxb6q%^>w8?VduKh(eK z&DD1PZTMc)AI}KpD~oAh_V=GF7lI0sCqMa?|FnMD63} z><=^-Tj^GC`GFff%L)uG``<;P0Y11WvMYEuJ48CE@aZUX>Nh$ks zKFG{I{0tDaD=snblcEW?zh~KuEL24BiviRXaS-YC!nZo&{!_zXHT1){QCZzfSD6}X z;BLH_#peWPw1{PA$<+gVV?%mPx)&P9vGXduIv{b2wKH>rYeE?)eiwlkP>zX=C1qun!();aZ zM(s+8pkU0Kmc*7h9oB-VXSj#YAL{nOSM?!|4sQX>-#MqZ7@*mMNtz%O6^j3gnIk1e zRfS#sGlyafa~9c4{G*eN#*ww1j>~D_`Gws-p2lU=wzqE?gv5vc>gB~FwA2NGdy4|4 z26{Y&lnA;gBIQ8o>naA^%&$9KbGkoDT25OrT-wTC>X&h=+iL)%(l1f65IzvT6;_sh zy~4ow76HIQ{aa-g5qU0z#BR(b5xVVMO?t1ng(>|FG(hbsrd?o_+!Wfsh69h)6D+SP zNy9Wk3#j>e*I^$(UlfFB9(+$FRRz3}fQV9s3P3i;o&W_c`&SrF@@!+F1R(qlFW%l4r=j~0shw2NGqU1W z1$CPQv`hf{{He!hUEJo3_`X+%IZ`!XsL%dsztPOd3_e+RUpPLLA%iVo-(ADMs1U^S z8309a9kfv*(r3Ac8ta(|egS|ii+m7w9TVzYSRsf=iv-X>>)Nb6@m0LkN_g;_nsRyl z3~ti&H^ib|{P0=)`rB?h3sYdgLB*1FNwq8Giv-~XEkqjHLsyWUWp)o=dML|zcj|HB z3E5gKSQ>prwN%~i5IKkbgZiYW#-UYaWb~P#u3Z@4nTNceKPW8sj68lcdE1)gFExOx zc*d~qlO+`+`TWdr-N&rr!YDt_WY~5% zN)bcd33^I%AMe7@QX{8q*&p<0W1E&MPGxQnAY5WWT6y#306^-N+~)oq$*eg)$*D?_ zgV+Ag=|?iL=TCM|CW5Z(3t;WS6Zb{=*iO(=+JD9Mv?vJ(%c#O>~X5 z12_?W&kc)t#<0#MA@U0zuHT2~&=N&aJ~c@*J%24UP4C|%yj*tl6mRx3Q4;G?gOfWQM?f{Kj4UyZ|dGC21VqDFOKzzZOQkTnA~^dHq|bWrw*h z%Ch5I6Q^}-g$jC+)gvxbc8Lkx>uKJPrrUT~J0`0qQ{ zx;nZF2}qNkb>V#-IdQjI z4GuBH0hN0)tT~PpHS`sj(daZUOKC-FJ%b}B@7yObHarW%6 zU`;*IvB+3Zl*r*fc%LI)C186s8Jf%64THARMjiNqpu3mzn%d^XYOb9~i9^|ZS z|*TCEILJ6jsVUPQHbk(a);M2*{B5`HR3E@MbZ^ zh*uvZAMjQ5*d&bz<5Q|VfAD5c-f;(lltuwQr6LnaTTe+usR3N6JOBQ)6Dvv!ztR%^ zsyFu1D8%JM#H}bJgF4#5rFow7(7*4((_RW)Js)K&mVS$*qptqPy zzxH4J<2(I)2KX7y743{-8&*CuY?yZyPdjBBi?Qt#dbALwTN=Y12Y_K3>4NN$L7U*N z7OsH$_^W#)$hh6OL1oqblBfX`f}}~@g6`YrNX}g)3Wa1f8=dRW#31y~2UxVc8oz{$ zhJ>1x6sARtzy63@TBcz7k9CmD8uuo=3f-=;%4CZ8YpA*c2S&ybL^}4Fek>zT zJmnL7zi&VF{}dwom%nz&#rYo+uQLov1-y~HZpq#4I|AUgVU?{0%u(%!3-8}Fh?ah- zETk~S1Oe%a>&%o{!=*GjzYulhTy>@*)k#x5j68{yPeVSGTaXsMv zu7@2WW0=m_tK{F2y`X zCJK6u;e%Axq4yQ2Xs6?8oy|-~q0+_ca&g81CP0>|L$l+~oE0GbQUSnH(p3TczV+*` zan~czRy`MzQcBC^@0ix@%V!jHay#WdaqdiiV(11uj%=Aaw z>F?Afkb7T%Q3re%RPF;3q+;Po3{^D1j5qGXBWBq9<=Z2t4nlT&(Ko+>rBMGGzvz_T2U0* z!k0Sy1<2zRK!j=ob?-xU03e-Z5Bvp}Y#66CY2VYnqlk8ouqhI$0o;M}jFU$@b%%@Y zaIsXh70qSewg&tw5ER`CUoJIdEJYSLb(yciYLedqy+;Xpm z_oa{-z*xftY*z0a;3219i%j)kRmK>o@W3}nkAmLI-(ta=hYCk*JY6t-SBko#*Yf)ZHLj}1ecswEN)L>EsX2uUe`VH_kr%k94f z?q^l2IKgPm<*VHrR!VuMO>=&n7O?RqKrp{&h zh6RtF@Tbjtt^in9VUToDu!@Noi`;B?X{qUX4y7T;MxK9~)?JbuP!%;12mE}h0TGT* z860@Gw(gA^mC|MvWCJo{naLWxLGE;O#6K83rGobAMdl*VJ7%`(CR_zEN3j9_f4%@3 zOEpCLw076|&njY;8Ne7Wfgn}iW{`7q#k}ein8#5RmE~MFv@583Hswbx{L4abdKFYI zg$%->`s5R&(%a)u&FfsMNba2(;{7&AhLpvnDS!w?OXWA%&UmL$hrHS4;aG*zJ^3bS zx5JK`UJyA`P5=7);)D?b5N1Ux(479dDwQIDeqj>o_!KmbFjS~PkWU0U z0*s!%6Pg&oq-hvm`>nwHGf!8o;r+(5_C{gUwvGZEbrGiB$Qhq z5T6arySLlLPH|RK~Dkm>o{`G{#-QA2j=m{#b0g)6*12bBegJ836U*%5d7lm>v(sWD+NgRiCb{| z>_yV?SAbC|?J*#?kkBF+Yb)+F*9fKMZ79WgSD zs@U|%3vna15`eqNccZkBjQ+{G&rscfhiL9~FMv!0LI&~u0dS|H4uW{&wQ$yQL_*x^ zzlX5eu6So4fisE+_$^^~5Jxdco0|d%Ob`AR%tS*qifvk(?F%Hp*0_3`~GFwF{Sry;h=41Y^h?<7V4s$9lU)n{}hEMSMiLsip<}>R^xJErgQrL>30?z>6zhCLe!{GT1f;cwYY8wwH3B}56 z&UH(3hy+MmzAaAdy?)Vt)D&pX141?91YkAS(YH7z zbU(yBEBTB+)O`eg?ya}wFr*Pt9|>+)4hPQf15QCgpMj4Rn%3EaD#0uZHzgkGjXD6< z$ur3A*dY+mz66*@BCJB8h6!ng%GeoBW*elbR&!M)g$oWnPt?&@>crZzA%IVcxWtlv#p<)a#)z3b*YlhiHJDMN-u>`IKs@XWznI zP>+$z{6o`^F5q#f;UVo2AoJ<*o4Z8TmxE{7M;NcZmFrIs>?tmWw=%$sN=9`z@$Fl} zYDi6mzaEJLx)y&l~CIa%)pYp>LX+ng+S(JEZ({ z?*MSKt~Yx0R?RrI67V`NAx-?C)%ChZxz1(-b>*?Wm+YKkYei2G%W?PaCo)YHawpsL z3>Ia1We(TK2y+#VMD}V%Mr90@PgxnhgYqh0_h@=6R#zF$3ym$l`!t?=r>>q|=&p)y zCV%Ub^eEXenCmDe*Q*^$h$agbG1|a z;rY&$3@TkJ$nba3f=)V-OD=|Yu*pIkEN%a88hV$0uT%P+We)6@K~zj1k*I8dH7KOz z(E^itl!~UZ-`u3bb~RR+;ufg~VvXu8fp{kZ^X6_?-EKt3ZWsSjwsALJ{v>TdiF9_4}Se9LO$%ZA?cEq?DJ}KI1Q=XoNTJf zhb?b7pi>cRD!k|oDebEU;;`PA>26VYbfB|@hDP!W%oDi=*8S@6!~F#dbd)mD5_+bU zjrMSBwG?_qw>EEv|G9djH^y<7H9M=RZU!(yxBBTq|K?kb{`3>dTMI;Q0&C=?xduN~ zFp=2)HYlUKh=xc@WY7(KhOL4plIW-3iO&_M-`hW|PQ5TPFCk{8?oj$yH}KxJp>mc? zoAkKIy!kZoKWmx^Z(kBo3x>+@NyX+uJJ6{sSI(gy!yN_F*=B;Ay3Mq0N*ZGunL+li z5)O=dUB%{nC3@*rKl`s`4?NC{Q-K-l#jRD@Z&uZ(1zZvadffT@rUpC4>%T3*S7~T= zHNwwniSmjdWJ;#q4ghh6uN8tuxXLhxER(~6Q3xUe)i@##3-XPxK>fPw|`}a{LGFS z00b)bT(w0@!qm6^jJj-ocUgAnomu_se4>nG$DnG0wR86ZSm%t8pxAH#8|-8CZD41F zuQ8t~Ileuu)%5OE`x>eDu@BGrsEvCp&;3+?ap`DbMnleC_PBa87PDloqG6N5WLs^c90A zMq8dHOd1@Q@-<_@_c@`H)Ab+Q)*1;h=XsBBpNIII?={+-5+CV;UB`)Ch7AWA)Gzr1 zb#ZZV^JvPSVYVd&V@jol!ILoF#simBapH@iOQ6|s1r#&*I(-Eg_2LWxITooX zh7RnTeCp%7kaV75N*jEcWY%6XOPQt6cIrsMC9F5EH1xG89e-8PR?U}N^}^Z-ASB+TK@DemE0c&%@{t_q8Zz1>6w=h$p_&S4S_z%n|7r#`)^p!tj=i%R`?y9u zAedo^^eG1fPHitMuO`hxzi_qSm7x!-fIVz74*wXLPDEDOrT@JDJcfE8G$Y)Ggvst- z_8mH4paq=ONh6EFZ*t5{KbL0lbjhPUUfR%xkb0n9cshXa_X{Tf>#M;C1)A-VKH{5%<(7S(M? z#M6s?12>*}N@+h#+=N_m`vB}`{`oS`%ENFslp%;O!LMFY-zwzR(=R3C_!>Y~PS||? z^A4lium@l)V*?b}JZgC%GJLG@WKYnXGsFgxIil%64v(g59?RR+-oBJH2?lws0qy%A zlC4zlv*SII`1J19Hu7`>u(>%&lhiUfJzB!!xGFxaTQF0qL0K<0LiJJ%(b{}`!oU|o zwd#nZ1efi`#Y(VACGolB{so=4}vU%Moa>CM!l;4*0~5+-y1*x(rg_cTc;h(Mt$Z02EWMWc2gEA zuyB9RobnYQvog?~nV{HwU1*8C3Fs_I8SAyh{*>eP2|KS%D?EoDyD@35XXjn0Oi=>Z zK*oBTjzKqH@jYkcVbQ%7)lVt6Byd4yjHZ^U(S^#U*B_AyuUD0&*%&wHAaaEsKwW+BcaQ0Zf9dBbjQ>#F)O|+O3OZY^sOD-` zsZ4Ob@>!O?jF~6f*iHZCPego%Z_++D>_bBm(J1EQd}T3juDZetgB>!Sk$B;VhD(G? z_*l+f2!6ngntTkDBsFu-bBF8Vl4DrJ$$w7b+W_xM9FyvB5}2sagYfx&hP_!r)^vwG86cn#xO-4I(--O z5nhIH?^~A~XQWw4*+2(MYItA0OOB`c`WdC`d^~c2`M2UH#^RRP8ua%J4dJuc`^T%> zeN)8CY_Un&_EDJP|CTTJz1>Se8nqFJ$IA)wu2dXWm0-;b>E9R>#M%#F1GbrC3MKHP z`w;6IzD8l-+J0Ch-88kU?kLHlxC}+o08jNJSM@(#~$(D7_2FtNe5sFXb=*2rhWM(+@RN? z048WLo!B6Niq>a6BI)Zw1Mf0Fg$vuPx*;Yn3RmKSQJ#gcawa=wAO8AJF zf42ZSv3wTEAmtq{jO`pxVtUzf?4Zacq;SPo!qcG(>#O?{{S4rd0h6lwvte5i#>*Hg zRt1@UQL8)mvG~;qZecX1toOdP^z%vpsHu8FEfl_)(X>@<7#M26O?T%mwZYKC9 z0hCdQ2O#Y3STT1NU};nW>&fVNR~ozFem+VFor$roAI8TnK|-GZzmiXloLBjJY#3s2 zRbMUGUpWYgH3VkyBf((>gZO}t*dI)hZwX^TgTxWahaj0N`@1GO;YG2xZX*}R^<>1& zOQT=rI$+(N5GBZJi6{CrzZveL-k1(JgH2Ea{{W;Lak3NQdFuJXc>tcl&mnR5@2j2qim65*J%}K3e3W zk=wSlG0{4w8El5Nyu-$15j?aO97pq zLNx`@u0C#z@~{fvcbE@w_UGGZgd(=U%@x>+9Y58f_ z0&fVTh7dqePYY>UGdtuzLuz&8Eonz>rmo+G%qQ;v#Kx{Abz^kh0SSEMWW!{}CcpN6 z{`)<^uh@2nj(O9VRk!1r6QdUkfN7;DG3k4j1+Yx8%sbL?-9NUjval5n3Q!8dgz5w3 zr;yHH0Ltsr0DRQZwnpf=F?M&Ah2b}zn!p)wO}uM(%5y6f&`N+Q4D~$+SPePeugJ(tgI!Ey?ZD~#A&`vwcu6ACowl=4%`Fr4d z@@n45u#JsSLd*JD@y^-&@f+}B(*&ipSSs%ZdsG3!R6=2i3Qw(v!@ENO4BMQ_p-J2o zW9O3E+cCkQS%+y{WCHL-6#+b_sXPDZHpm!vn2-@z2z=Go)VJfHk-2vQeW&q zqz5RB24qTdb%(iROF8szaYv2GxFE%)>0sW&;b$8CJA(kaSB9iU8crT7Bpqa*7|!dw zDX4jdaIl#juFoS$rU&k=qV4r9rnN~0F6@Lf@?Oz*rkMP_a9VwgjN%`Qx9$FLQS{I7 zpjsB{Ia()f0wKpD1&M-W8GXwu*~m$Wx9o!}{@MN6`K5uHMrt}gCZAF)pP(8QdK zm+ITy=MNp`Km%GxRf`V6Mc2E&H3J2@Tez8lRHoBl40r@(M- zsGWU|>Jpz{oqF&dyTO0<4{=ur3dF)$9HQj>QExbRM(TABjNuvb!G1pMT zk!usnk2J~vpwZ0J z=8TO(B%ZDTRvb62;y91>entgvuJAd>ixCW3{@3>;4fkcR9@7`;EHi-l=DDKu;ncT> z{e6Rg-)SqLP@8J){Td*!$FBCDLUa1KOwdJ*)hYymUXIX*sW%8*uqH5_Eo;9`>l3vW zKup2YZ~U_+u^GUKUhRFqKYhfQNQr~7N$K?j7rQNo&}z~_&%cOU%8|F!*{Yw|Cp=er z3lU{|agmcX)P5Ox&U}LE4L%wAcidR?q3-ry;~HA0`a8UB{yURiV}I-3sUPL%>ppA1 zv+>b6|2CN>GqL_ECoY9(ip##FrhzHONavmY#4Df6qeNGm**y20#;f{W$=vJgcwap2 zboA5A3ymv|@&me8dF9&rc;1$c-{z=Wm={R*f}RKBZl*Xkir8LUt-EFz=K;903J#go zk=#vk++-mwO!{*l&TAIT-;|3|Yd?CX4WEWKrr9RkW5CSas%!+VfXqt#_XT!!HLGD_ za<30;_rG>*W-W02Sm;`HmO626OpdElgjQ$OK^p0>L3*+7SivUaIQ?tlD*x)9sTI5E zG_8laK-`wM6%HlAYVC^|lE0P#t?!muA*O`3dUD5}N7(27m(AvzY|Hl`IK>c{OUidu zqrhnt;fdVskl!!)PxDL8I48X9uUn^iRwZVk-vfmg8%6g@*!#3g0PWRznksoT#w<08}z%_XBd~h`{LG8uK;*wHY7c) zU%`sGsp@rCRTGstfdJP3q7cR{Cjq~*PQ6!!=qM%#$>k%T0h7Od9FJpIJIQv#&lE2+ z+mQcxqlbgf6JW)^mKQRBmw?b1*2l&!N0s6FOxrl8f zz#1u$-w&C&bl%+Jjr@Ch9)%A_>H8CHdn#AvQc9Go%Isa!&%%mHnP0QClyjm~N!$hZEtZ~&?yp3OgxBM~%8$*{`H$wNs<`&b zbt#%T?an`WbgWID!s^ml+1e}0=XU@CFhpAB`~)?^K#h7#h-xfJqrH;*(27d4mER$4 zP&~W`N4t35Aq0_r#d*LrU)jHla%TNR{yVsFpzXzVF67nO!IdHF$4_5ha>(mG0(@_} zR({Om|3JQt2FTmhmUH&CNFGoC@ZiT}aV+=H4vZnVt=!_ZYfBl?j628mQwR2OC)p%1 zx6?=f*vo=(&Z;Q5`A6xA?xTcF!7=~q&~o(5M2((YtOP@WYIFNY}$shK6$l5FG3Y(cQ{F2O<>}>FIFA##WvuIrCs1`Jc&n1vQfT zFkfNu#WxdtoUa6g_}FNp!#X0~2->%P7>_OEGSmGzkgr%kUxepAv;TeB#lL$Oa8&w{ z>?!t7pk=BJ`1RE~@ISgltN|OyeA+SqkFtAc%&se$EvU%aZezNt^A*T}rV z2r{N_5O~kZ5fcB0W`G);f;q0>y0dSP^a|Zc zu5Fp?cmDRUOTIlOBUS(&+7<>hr)>7RtorGsQ&_>v(X<>&Ko?wBfYV3*&==(z8Bcx- zP;_ZyE;6)Ah5ATGPdv2{Ng#CT&2?5t5u6XhaJb{P2wR$ob2XXuGQC;fxgHuyacq*B zXV_(|dH~#+9-9H08#{pD*K)Pj1=H&KP-Dg)^&+`Sq7lExpcwZks%ZCW<3zWyk%p*9 ztYW2~W|znvRG;sz+;vFZU%A`=?Q!3|hjmK+pU0+c{|aGWM-H-(|N7hidguRU0e)g} zm!#_U6<{04hggx~coP6I%2+QloW|p+qV`7)Ag_MPN=qYImP0~*|6W)yK|`xwYgoJd z{PnEQ57xQORb4V&LM7m%n~Hf@xlVkIw*6ylx`U88DLms$alLxvETQi>$8Y-b4fg0TC9q|0^%<=)o z*B8$WbHT+cB9*i+$Wq!NU8J8j;wgRbEd@O05C0!s_Zd(1|HqI2;MjYwWbaV+J`R$V z9c33nWtN?tk&ui~#zBS5NcK3Nkd>8{jFX+cH|O_y^Zos<{BM8vOI^@~GT!gk>-l^< zY(c@&?@4>3`)NJt{@i;S%j6Z2Z^{Q$>TLk_AyP;SVj5sq=O55|mN=SCJCa$x{=y66 zwJGn*WZ+!W$Luy$ZrP?l0vr~&$gU5n;lNEasmtce_Wf__W#(PO3Y?6W8I#p zoYfXnmH@AVGoV7$+==NRMct(%kwW7k!DTwxzeluLh`)ZaV>`Be;Yw&N@KQy7(~%+b z-ZQ>U0=LabU6|;SX@3do{SzJ~*%eH2cqNA+KR^iW77Hb?WB_C{d>%}LydIi#Gc;5jIKh=IRtj`dgmi{ z7kLe!vG~o;6$5RKn|1@K z*yw>hg<0Ki{C|>OYiUE5n_<32ih^0mEfM9^@k*=r`)N<;xBW%^L zb1~sOct6JX4Qaq9K%0!?0S!;#pI-@%M-XNdWdir7wNCWLeP|A=PR)Zv%AwD@gK5o3 zqs1Fg{YoVgV&<1(hMt^r^^^%^G30&(r^xWee8tO09>?x7|C2ziuh-SDtVhPp%e-%JPXtuQd{@34xyBM3>)FzPI@HxWNStTFR17*tCMT0Hq9{=9or}@0*o0uz^}=y54ZP3Cj$OgNZ7^;G9KKI% zbp`hW1}wJmX7>|aY~dQ4{JqnNM3BK%;0n_WsweDoI{VQZf-HUr zEHwW;I~(%-oLQV%d`7aw)qEYGiXnjn9o1Z>a)FkdKD?(zwZju60~a5IhwENYuslbd zJiwwZVyH8O%P0QkCDnUc0I%yNgu|La>{TkdXdUzkgpV7!6n=a0dGt9QB5Y}4#e zcrLJ_Ct2LMOE(m6lH!>{Klw}}gyV}G!2BQ+(z3C5uycY8YCDZNqDNossfYU40}7Xm zh?-W3bv$0g9~M6Wsu;K)CS=6)aZy!7$IhEY?!NGoHvn~ijOo`fs7!p!-5^pBbfpa% z(DUUoS{XmPJs?G;L^lFkbWuAFPl;m1b+8ETGVC}{Dr{NW|OHPz|inQ^83;^-{FJQEO!o9SFk z?BmT2cRB!koQsKBht=#{i3ln#7HlyhyA1xMoL&~o--cYapUdRGGyYj9J|HWZz<-Mm zP}S?scq=EuSs@IN&fJ~_IHmXjLJH;J&7<(XZh!L|^u{+j`AC?-x>x(%ik&N$RfigZ zc}<4w#U3NFkFTh=Lqa@i0lDAyw@z3fw%~Vy=%}%{jDu^}1RPrDHOhK2ldx9;tlc1J z9Y_c4lP2uWAZX`*U!R$W)tFcciAF3b4Fu#KXwKeocLU0FJ;_&s1G1F*vIwCKCGr2w z1-2AG$8tJq;b#qiqAY7>T(5=!sMHxQrJ?$?Zt7E1k9KvduKp9AEA%-x4AH~BK*>$| zL|lW3JC+*rbMv9E#GF@){{TP@1;*QvI?-3fnBU}3eL>{w=nsTd_WfR5#dB$pwr165 zD5nd1w5{BABCx@&c})wzsr&+#aLMS5b-(DUki~sJHasf`qMKNQmVG3jLxIxP9OM+} z7F*lv2EB+qPk*__D`RSFIs5%~>)H2J$MoB!T+*abPet1bzk#zbl40@G^|ru)du>#=64}oa$&FtP zltX@BdS7{2zX0jJUgIOgBo>U{M4yPP?8d$w5PxSWR>@*cUJ^-_!2l3M^&y_0|J~s& zZ)IPm+>260%i%B5W#Anf1QsaM(U8&t=%8tUT^%u?zl#@Kj2K}jO@9lq)vw_Hoz!ws zBtiLL#STDPa*0x>s`wiKRB4Op0CK9gA=6Lc?}YN=zFak>(?yxu;kUMGktP?Mll4iT zjivxjXP&qZIDWG`?Tc|B+6kb#e(@|^VJO>h6>2H{B(M717T~CfDXJkUxHBa5h~C*f zWLIW4WkT_FQ|J}!#}KC=|NIAzi%wSB1{Q1bG6MKsm_Jg9XdLbmCOydH zKv_;WhBqf~O_ckT9TL9u6_6BAE3`+!gRe)GtXlrhA;>do@hF#&5}%_jsFq%vWrIZjusF))&Xc%5QwiSK{|GS0+)$VyrD|> z)Fvq$qAKuWs_EPWr*PX5altHD_`D&+;DNU8%g{gLE^FT+GyZtGcGunxGspzLQ}XGT zNO$p%af#~iC&OGZjeh~08Sbq&heXhnUi2x<++63ebNNGaiIQ|G?6vcIrxKc$DK$bK z^w*Pf$WnHS`tPRTCsBaZ@{iP3X3uV#wG=Jf+4&sm3#H=X=QkNo%kg+l%~fAS)*&T%Qx>CnkM7Vvq8!~L&uv2=P$PTlMzUk zu$lzYTB_JO4XZrSG1|44`|7o#g^Hg50`!cnM>*3j{~o|OjsVy})h(Y}5}YR@618+N zu#q>dc3qN*g$)0!Jm@ZhYzq4RXYHZ=3C#O9gR<1eDJhYSR4Vq1;XhsNX*YH>%u;t?YIBek8lJjnIlFoP0vyf{Z%pL(EbKPDwi5xS`XiP-2CNv2K8Xxo3UcEb3 zTmJOEqq~qoN@kaBkTXD>eid>tIlW4}4-ddCsD^}G3=bx+^ksaP%fK7AfME3Z`A?GO zcR<>bOZ7M1mi_5%AWSn4;3j4wJuurnI}Qp&z#oTKq0RecmRa}W5@f|ZtY;LX`{IGf z#1-vQ;aZ9wmj&sktk=N{8xFraE1cs)B&?L`# zdn?puqOmQ2O0UA6+b$6D$Rv-Y;OUUu@|FI#PC8$CRcPP!tFJqzH}+UR6w@5l0|*+^ z!Q>XfR`+b`53#7cpYhTPlT&Vx*C=i8d1e7XZwYK-muiq7* zt!m4kG2SZFB{16;K1n&VC*PP+_sEqs3_CuCbCK4qB zcr5ZGyzUT*8}Wap9e&wjy)8No7dDCs~1{mG6tz6Wou9Mp}jNi*;gT+qi~H-Z$!oZphs8KiCd{C|LqB zckbjwM1~W{sVPuDJ;l95y$fr8Io;}p`{;31)i}%P9>}>@iVkRNoUyJ5!QE;+w0=%G zBfOPzNYW~MLoXI@kr~oI@_40c5A%BK$Dth$2Sn;Eqn3j??5V$RM4x_;Bi_VmVcAYIPE_=D&aQm zFEm4y5EZtZc!OIZJGGDoF+aP;FH?6bPU4rZdA*eX!o9H=t^zY3R14%iU~y+qi-l9%xy>7EgWQ26_w&c zv+$m0cWUne%%}R0%OO9_7QI8iwmoPaPO>cu{Yj+{9W4fz!XHpzclVMxxg{VB99y`pHe8tr>fErR?i12x_zKKSoj; zxLb|P1S`cp@&pw~m0PB6^RfwdeGif#!R4slOVsf^`AA@gn(21jCk@C1B7o31ao)gkwxHMwk zJovC$O)`3tRFVjAq(PB1s;+tf#TB-|XS)LfsB;Lc?boY(M*URVGIu5ZjC|+(M?hDT za!Jw1ofVRG2?$Ehl)oqmUGp1YrifFL-0#0z@U3cm-fSbH`=jPfs=W_tTFT zvw7$5lWV1(K3))m+b83~{=Y+eACKA2szYGs;52W@25j%H@$`YB4NCIrVAH8#$o6y) zeRGV>O=(mC{cy~qo13i1*@7A=_mEFsCf<#lz~kFMwFNw4Em zq&~FKn%^i>2|SDROXlbQOt{IC|z6JfGH{p09yQ)YZ{= zt*lcKDizAAsPWm2aG1~!NJU6MSSNZ8v%$0$L;*j1>vqI2_S4lnJRk?){N0|M;7-+) zwf_x}uFzsx8&cwGSY2Szq0vd08QzO@tcYv6|2^TNh&NfcRGM8Jz}1^m*MnQn@LDIv zarztSFKfAj3FHY*TTw~IccjP$0c$$3uyI|NPtr-`F8&UU71sCoTx-p00F{UVdJQus z@_!@{)ZU=Kb7Q<#i0mE29R&Sqm$yT``2VW9=GHp?ys74Fln2aNjJAd5?{pQxUwT1o zgB$?-@f3(H;~2hosN#CNx?S!K>S7jC@}fvZeYLZDpsZ)ujTsxB!NK2gG(U}X3xx%h zCi3#?XurLJmF*REOs!n;xw^6Z%&YEv&m(wj?|Uh`H_|nKLa#QnZ)zJhf%epQ58TY+EUVL5lesQ7J4@LjDZG2ku z3K$#q*Vg|>_4I+>s@VdwH)(yuByQ|{yQkeznWFV{soQ8O`8j&m*8e(NgSoXx*<1LD zJuP0axP}m03P?9~jwYk!QJb}0axyd(5KgA2G9eMdPqEKqHG3*$7G81lckYu=%sk-W z{9+utcV2c7OkVgIg6VnoP+kI=98F`0>q=Yw@((<%?b<^vZtuf-A8A?E404)l_7{uJ z7|a>r2ErFn(>>v^F7A}*47^!%Yj6cbpI2a#@UyRlj7vQpEw++iT~&MH0D%9&re5Er z*r?vaW-6*pi}v8)oaTNTB5lHt;oEMS($Dm~0HudPM>e^K`CIz4*{U-Wt+g+of~mU! zOG(C`ubrdou+re{bnCk7?~uY()zl3z0ka*86{dHE!P2?3%=`C0gO6&~mrK{R@f>^+q~zUl=^46u1hMJu zx^{d_60ywfWaXt*K*WTP=X7V_tr6!V+HL+heOTkGshbzQsH3QB9DwB|0U&96girT2Bl#5p*P2vFZP30W`&nrP*lMRl(0~x%&Ub1WI zFZ?lw3;y$km+D=&o1ZlRRZkOuu0R4>{Y^(Xh*ZA4*R292PCUeObSH2OxmfduReuCE zbAm~p$)(z6ABAOiGW>cKH)Rf4PsuqxzkHO-B9NCd(BB~_8@KJzG+zGIfy@Z zf|Do7eXpD9y2~uA_6!q6$Wf039{wH1(^}9jp$}Qky$JlwWB->hTrI0mQ$d8cW69 z(zo~Y%(DO168A1OM%wFr-EE}$O%ruqf&ROW#S$Z-dwBr2I>9X<{F|voQAq@d*BXq^ zAUx?ln?LvL2$0?Q+YrTRi~!h&9EX9>FR>2Sq6yo=XONl{IzUppPgTyifeTS7_&%Zl z>Ha$Ci}^Yg>5NFN?NIu=q4*PRRulNV>~Ejn-Of3k=w)$?t0YJs?t0`PWsq7oltLVb zj6$jP<4E2#mc&nXOaYJ^r9PweYBQ6q^)G#pWo4tIE8Q>Li^{+jHz`<{Oc~K;sg(jX zx^Yhe|GI5eA6nSs+Re>&{CM*kJq|h=_f?++017qw5SWXT8f$;u)SR5I>s%_ECWFqTh@1&13FSjnW8{1Hh+4xCcmHblF{A8XhR(lvMy&8)zE=-j<%` zVSrv;f53P*xpTMcxkHmUd#1qvR>B>qS zq=8s^acV0qa5I3v{vLu_8vy+!Dr=?QX7xJZW;H>~8;k%U`UFDtn*ksgp?Dlsg(r|3 z&2`i?Q#1>3`srS1|Ej+g(<_)j7EyBy|sIG2gr36C-WvNwE??c+2*$sMN! z!+x=00RM|dG4*4f%@G0Vn79Y--L>-*o>Z@X%zTlJ_Gwj^VXN(BVPQ`y9D;gcA}z$~pd`c+6Pe5Djwj=eXFt{5km^V2$=(^rb3koS zY684i`U~8@zRwa6*NCC;imFrNEVH(5Z16WQs{Y`rWtHBrc6;ZO-!GnMnLyX$iQU@m zI#hEZKs;^=w)W|b*gq-j1`5*`i!o}rv~;pla9g!W1PXCzW`1r z7D@7VxS(v)c=M6JRO34oWk2B(9tv|Fc0#&NSYK*2T1wib;(!vT68{e2Xu2KY`1k+L z0?0MVHQieujab1hM?t6pIQLao@oU{!2;8DzEI#oHKQg(|1bRyOS;qP-3nG2n*C=ye z-(-KKOfbR?LA^EXE^y$$YM#G2<)+c4Te|{~JtV9Q|BXY!${>C1iNK2E$pZ*rl9j)SDbjdFE9H|QF0sM&fBr^1_VH2jcC7u?@%`=@{hD#EI0@iX;ZLK} zCE>%#TvF#Z&@%%FZMNub-k{uq*|jp=AV}`)vUd>g z&)WZrc*wTSZyQ`w##-w3O01P}=9OLS#{+lDgAjQ=kavi;QQ$MAK=R<#7}qx#xwEEP z?bP3c?SP}kxf5cvFS-}(n$iwI$&>__tuzJ-1#CkU_A4^YpKN}W5qAYbIL2eX<%-;E zA*`KCB#nJ2nTNbxKrDr`PUjP&fIk%c8Eb+SL=ykqGSM>v!ch17uR94GG>3OX&`Q4m z+82Vl_qz_*zd|{b$Y=CcH_eD+cl$Phgp>a`4_nLrj&45gIG`_`#U~FVK;luo>wm!) zcl5U|HJ~D(;v{%1V5f$)`)myxX#MNm=$dr$*h|$9T;wzn1p+R)x)I`cG_{z$6~6JM z3u`f}z0`iAEh)(LqJ-x~fqHv@`FANq@Tuj>?&tk#lK{lY!Sjt-_Ohz=D$&O^BYxJ4 zi>FsM@<^P(9^?4)%V0GO=xskrncFKcUZRtaKn0iAA~S*5NN7U4;N@ix$jIqmtkMJg*Xmv?zLGgOImyrkOy%4l0!{ao_nus&o-_> zwT8$eYv5|eh~DFTDS^CX!!CjTuE+CL+Za&cCab3Mgo?G5fcW8@+i6^L=*3uZhPj?d z{#*F9oV>hnEHSIBVq{q+9%^~)1?OyFMtr_03Qvp9V#%xyxqupP>bV9Y6Ai}^?e1I1A<#nnwy$Nnq#)9ZVz7PQ?X#qXsT>%N^WNS91{xNY;g66+EfTw)+RMB>2S+N=}& z_Al0^kPg0yE%epf%9xp^QrQZ&_{Rs>jNLjeOmu;qpOx_&47|&gy7^cIoN1WKgkMY> z!*AT`p?=CSat+Y6b`!WrsU}Jx1@MBS5v}aF7dt34#otHnuUxm^cK|{M4V()kUyOYK zc&@uj0`SVB-@~gUIsYIAidDXkwoHgN$bl4&N>sK0Gy_n_7(3AJWcL+*%P8J68IQM+ zCxz$m@u}1~OL=JpfP2GAm+=?6c@nT9V2!XLZ)ORi@2UI=%qvGN7sM~C6dM7FaM(R5 z=$s-t4@C=yQ$VN0=AScTf7|E=BbotTio1peRt?f+ZFU6xrwkmGhRE9eg%23JI4CwBBk z4ucaTu`11f4ucitxDukGeh{<%zBs<_?_PG;tH3bSMY!hZ8twOO0XTsln~ZFTp@@b* z#;yW{1WG<7^&?iKQxDv}R5K0rL0S~r0Q`m~Yn!q%o^3)cc68)7sBNzVcNPzFROiWh zHk-25<*QX%4b7snr>_PnhH6PN#ND*B71X&$;;+z{IYpreddb*s#W1HhS& ze9LO?TA*w6s)5>%dz+wjxeY*1_&r_xnMr8%$H!&5O6f50R5^&fe`RHF@7Px48-v9w zlIq3!WVmaxL%vHZ2=Y{?;!AT;4f{bI5!e}h}7K% zEKb9=RzIL&AUdHxV?mN|YQbfSFV&q2##*3t`%#$jufl&r@CAwNBaGNy>ak8IZ-D$o z(V6E<9z7TExX7w5HlVZ1H7fAkJyPPz-9G=3a6||D93^huK%DCw3&E*sbH5n;_OQwA zlum{bn#V7z;29cv-1*c_7wwC`(`HQEg=FdNzkkWzO$wr!FoyzIB;k?kWRuKwv>7

      }a^XeBFmd^+T3(l0KHX2!dn&gb@7ph8_U>Kl%Fr8BD?G0XH#4@uq%U z@-jkXw9#R%Zrk2}ylHdpXnV0`3CN@7@1o^MU1=io_9~1>V|1B)8lZu6@F(QN@!Phs?vJl5B zK=FmsCr5zGs?Y|2&&%%QdIi@Q8GP4@FD^L3Gif|wVFWOdJe7UFvoCtV8^K|v~( zLD>@?x>ILFSm5MNPNp5ZPO9igw%imc;aKoR)3BKOUQk6$LARzQn>Sa>+j-Z)puoK= zI#oAZ63W1Gw*g3d>o{Gr+cY{cCSn@^Fzlv>@Zi)TZq9=LO!)aP=#EmHqPbg zV@ziZAlS1GI2xhn0TX~_uPDzRxwj=R^zA&7iV~lC2#^x*JeYsljDD;Onm=`zA`S0w zm@_f_VgzIbhrx;UhOWnxOSZkj&YX7pmx5oY<^SgWP$-Dj-q&yDHKF9eIH83UQC0vE zDm#F4Z{WKt{tG5;wsK8_0#Z#pE#QN<@803k-^It5k@O+!1!KzjX>zZ0fw%mN8R$bH zt1>v;1b|MsofAUQ>9v_XuV6avxkW%#DNmy1d62!307k)f@`zw1V$n zJ%{YF`=mB2!D1Ej$5_{|4g-CqU5J_@=DwS?L2{{azhnG&6ZuEr)-=mqUwXu-=YpwM zwAq_sr&`Ml4{Cv+@w*VSxF(e>*xlvIQ;^v#@t9~V!RXyRkGW*pPwO>pFS65q$PU*V zD_z&YIPio#8BzwcVq<^RLl(!OiW{=r`xrmYYA&B&bHX&AFv`YIEO&X2=1c-u*TV~E z;yyCE-qJWU8nMOQ+Lr8Ao7O<0de->b=E2b!tPF1wbF-I4n3{zK2%Xn(E)v#0iX2@x z7lyKeQ_MRIph;>OCpCa@ngE0cqu0$7CA(g|yH*KeJ`LJKE+H{%TYi~1@~rDYf|0h! zk?R~;kU6g4FiL2LU5k#pX#3t72*Qs%Sa0+ErZ#=&=o}P=w2a-OY)8S8`S8q+lsbW< zFBPFA!<~SKK&uRY{=LlH%)}bN{9eZ?5rX+1hSvLT+DcoE!i3Dp&|P2nEndU$L%hjH2=v ztFR}-rNQ4iqrI)kTFJFNjCqfGQ{;xy&;ntg=~Jvulmji^Lzcy7)c&W z@WBm!ez6KsfK7vqexH#(Plnz36p$GU&m&NvVfZZokR00h3basplYk>g3|>X*`>~0) ztE(D!GUEGs5SFk@zEe;Y>O$i5O*PoxNQ#>tyXmv>)aTO4!r~e&+rr`S&J2LsC5*%9 z!zznK=rn_n%oh(pF!D=YxgFlj&DUbxu7Nifg9$B990dn@YhXD9ja$@I1dv%x9K8ST zac+M)yJbmCNKzM5v@&^UU>hLqP16!PuNWB*ePJW{AvjJDl$#WSjx7sMzNQ3qPBj%} zAk++sFds1`8q1|8Bqx zj4>lnZEH0WJopJl)u>XlciYh;S%fNNW-O8+X?r%k9*?5%As=r+3Iw_KnZEZV4 z6%zqzKQbCQl0oVNl>KojbZp{itCA1|Nu+2yDq%1(3!sH214)9gs#R-%XW`Y!hX6w( zKS1mz=niy<&H&Ft==YZ=$3_Ia0=Ca*kJ>HBYbZNGv8Ah|erkEYuC<`^(?JzL;@aaU z@*jIa%8%vK3*^Imq_n^((u9hF8Ys!h?tw5Kd2j5EFT+GR+;kC~DR;Mu%xBrZyeYR> z447XF;B9*dXdjhp4*<%T{CGP9WLl7fGtPtOs{&6D#0`%KHDe*;5(`1|z`d-Q;g_~w z__w^pq3ZX_jps*YzGg3lztH^dLvN5@ws(3AMEr`tll^{%v66oz{ErrbV}m6S`VLl1 z4q#PRY;j!3*#`nr`Zr^QkvGFV4QLYuERc{gMu%Q%*g%(CRn{+O7f;cqEMwfobZq)m zD;W-NW_B_~r*cy{+vH;|)^Y~6GdC_Tz}$(=c{nhT1E{~j@< z(}Sc{`K_vH%c`E->*XW*3ZzJ7tm8{`q3Xogn^M}{$7jGDiFR}enR}OAgr2)JpMQc| zzfScidgOsz*u~5TKFO@0Xz@5G}5m}jSU`{lGC1+W8gL4lAF)gaVf zQ^#q<899OF-i0rI-+ScG*a|ac2v_i&J;`KB&cx(rac#|hgG z#jFecCF?jk@)JOB&~ZvN)Ujv+QJ)Adw6j`&11SQKkK>Qo_<^QTR*KEUGkMNR7*-0> zJgE;IAmiuaS!umF2=#pyUVEy#7y~H%?G#gc}F+?V>_S%5?xE3)0Gv&~Bn zTw3Z!@Fy@vBA0}&YJKw1b?(OK?Tu!F3yRBtYpEdm$l52-4{u{)LT+NsH5C6;zGt=V zd+tWQo_REMZj%~JOFi}dgbps>42laY$YD%Mq@9#}iZQ5(B%+DvVn5#v+hD#wj6mnV?s^c~z$(+Wx`S^W=IxWXwW*3?A^j*r+{pB~OO8!i(nhR-s zqm*{|607H;_O(PIIf_4?P(MvrUhx*aCpfH|N1PgbAewU^>s%&0NmIJnrEgxwt6LPn z3DU6o7D3)bC=z>AY8=3@*G$e}?-N~Hoz23VH-@mk6PwjTt{yl`Ay?gtezn?Pl>GYu z0<%jT6V=BFQJ-&zLClT?FERoc&n))45Yf2-WsphRYqOwAY5fpSa6*R_fNsZC3&KSs z#~~Uy@l)*%i-N&FDwNx}uc(PJqu`HFBS9hWlEsrrB>*j;uvKf}PGOw1$7S*I2e%Rc z*Yn=2kIR~Df^%Oz!f+Avh&K8$O8y5dt(`0cfit)xKd=Bgvm3;g=JwY)XwLKp5B0VD z6%h^cU`^F|#_%}YPpWY(-%m<2KHgcf_2_gGc|J9FjQGM*FIoI4V�{nZ7jsFb)uW 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⪙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

      Fy8i+M$H6nwu~qP*{Qf;R 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 z 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¬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 z z%1wWgmn@GvZ`QIAR{ps4{a?~T>Qxqi8*AU-J-C&fJYxPdE zWbQ&UMCroma`d!#-_UI?)~mq@g<)pL;VctJ-!O_S+(nOevnAAJ4$bI>x{+_+nMO$^ zKn&3yAMQK-;G?;e84W5T*7w@z5qBG|&FH%%&ODFKnjCdD?Dt_L4}&NjT0TG2rG&Dm zQ$k}+!T)!rovnj)fG&MYp-A=8WIXm{E90c<9Py7pv7&|NMF*Wnc0Q*X3R6Wd>}`h_$n)@X`e;|Z3 z`_xJboT112soCXf2+E8K%0U2SY_rdc<;;#VAIV#7nnjZocJwKhwCvP0ddZmlsk1Sf)C^luDW)+kG9{MdlM7$#NKg8&KXu zd*9mv(eka{x?2}@hR5qhB>b?rfEKsvZM&H%ve$F~Au1A^872{w*x}67@4-;!X1?7! zP2kE}|6!_A0H*^Pj;28m3SiVfW2v2Y?pS^g8~^pWip+=i%;*3y;Q6|-!hnnp`VbDD zL6TdqjE)1QNL_<_I|P{fy(bmuc=YsYY8?1Xg*xq`rdlSDwHZ!N7vKBOwgL#U)7yrh zEDK!ek%!k4ST7C>Jhj9*Ug(w781ZGcL;RWyXNtFj8lQ+I#3Sj)(a&<)kn4RSdI(rXzw;uvHAfZ{0ev7tGr&F5B-!T**XybmTPf?G5 z+wf`Ad+*JW+FlEY)OD*c-mv5d!1DS|L?&jtJ2d8RUGfSXJrTKz)FI;aLEecwFR40 z1NCeAhec6p_hQuk6_q#0=?U#VLuv!m2dZZrJ`|rCn>Q}awvYRS%z{5Ls=4CJdOZOU zu0tDN#}pgq(;Ku5?iZunmBiSSu`gi|vf~i1HgN;ioQW@%$7Nn)jZ*7hU54sVb;#GmH4=|8KI2QbQ0#`-s4!CQ~tjHcDY$L<1nPIU`! zx>m6U(=Ami@aMoJMYtq>SL=UD)ldI_7ND!Os}){EIr`4}nGi+2oCw$i9@Zhez7ckB zCmAuQ)ZRqkv%JOdifrtd#%^tbL|H`xGIT0mHwVE+Q45_hacPjBYaBqENtFele1icP zjXf=Z8tk*Qs0es55191l?0WSi8!MM)W7LoR+=32OAB((DmcxgM(=~Kp=m*j*p^pA3RmT(!%wgRmg<{D`U)#@VaO5?`8vcUn*K=NuoP@1QU)3NHbcQ-i(61+Nai zBFS8}>TEmZDUzmp0GhnO@s|r!B=ARJGs`v9x5i-}FyWZgsL6GRrWX42#;LcB>s2ih^(zO>Z@FSUx;6J2MI`_)e%-Md0cC5L& z)YmaeTgw3d;#WwFeIW1#QD8!WZX|X^;egFxCrY%Kvgj5tkNH$z#@1U7!0WVFEZ@@^ zfXZehajZ)O|IpnCwIJ`mlZ!OvE zVz+ya7thIh3C(fK<>{k;g7tD|DtYzzUpOYvf-}YvzjIve4Yk-z?q~W~XBa+y5*RCT zLUkTjZlgwA&?SdxNbryEbFT)h*8~sa;clIbPO!GvAApAuVl;L2hzNE?b)q|KPv&+1 zNNa!MGR;I{j))b?T=^&RcFF(@ zU3=wxxr{ZlLp+0FxW{IQMeTq|{fQ=}-heuB6$|q{ABUog2BYTFUtMcYVKudA0BRC!22yc@pF2kI1mDVc&nYzo%K&FCxNANzUS zHN%Qdt^u{f?t%sp$Khpr3a42YA0I{`hA9M}C^pQORIe3!Vu!tGyKO|E@IvjI5xU4- zyJ4O7OD@7_?P2Gj?H@O+0Q4=gNYAcNZU}*|B#E?Ul0=^-Pqm)8a-Z77ZhB-A|fJGScmcLr=P7z zQ$PN*JqCC@J1ols5e6Tx{?-S19g7*+R#v^#MbKwN47R%mnYsD?BG!u@>obz>*6n>)gK^L5-mykto(iS^FvuvKow-OrVo&^Of21;+ zzdmx9`g6eCQb4Sw`nTqKp37nQp)u+OoC?DSj2%WTntA9j(R9hnVJTWl-y#d*eT#X0 zm{ErV&!C}6H_wZ+y2}f-q*p51s!udr_EUW2#g&yDR6fA|H%aW2$#Czf|MR@e=l&A1 z%;}_F?~@m)w*Tm2G%o$G=9Hz4( zMl`X`eAxDLPJ>kIPwht~m8rWDCMH0nywm{l3XgFyThMIfj3C?E9=>F(o6Q(b2AFmh z&-Z*z|E->gu{P@VKbwlGV{yT5v+4k3pb*n^m5Lfm$3f$qGl!Aje2E)fSr9TtDgZC- zT;@1<3l@`Ara?t>kJT)*W!%)Z?2(5=c7cITW0@zySPsBjmB21f8ym2}k5jggNIHEe zTXtLL!voT`Rw(|1>}TZC(|st3XaO&>|CX27k^9E3Ne#)>k3|Mo647AgLyjxq=YC)Qe>!2^(f7H`=2YevfKb56yxM6Jo2ZKTwSBzkcfw$hJx<0K!21>SGKbzyPr z)>Q@t&Q1poCPVQq+MO6(r1WW5vW^#sGD-f!shNA#>51Gv_nMg@YF&ho)w8=QZ!leN z7dbWR@r-&!L=`&eE>=Ch8Pu0C^_u$r4jK#1vx8P@IrGgTDSTY9Hh_e`ve4=;NcMQJ zFg^bXSqGefE7r;T$KBDdK8eXCam+WPebDDu$1H;)z-e2=wuKY>pD^}3{V}M*%RX|$ zyKLk^wT@l68mmjLZ^o6x(Y6U%g6fgm_~dKnZ0OOB5DY+XeZQPqxQlg>J}DcD_i$FY4~d}EK;WvT zGbp292O3a%YOXA@-MZA6u{kmSE`-Jv+iB(mm&X!!KhvSnG-riyzvv=k86=0$C;Dz& zQJdgR-WP$O+ERX;w{ZKH+iHCaomoVg9O`;-fMi7x8vQCUtOj6E0nhsGIWamr2%WO_ znYEgsb`iffhd1L}xCsX4g;qv$zHESOKpRpRN#)A9q49?xkv<7v5q<#NI9P_jE4cvT zf1AS#T)nzqs>#BIB7oLpBjplyKQWnPmVS)$XONxZV<31TyGuDb#h-8Fi`9R)Xs@f| zi*3Z#+T=)WJ_}S8EkOU#IvQy8=!YoyxkWpNquQlR;5cWvfJe}4v@v7{xq$9O-<0is z3Itd_pbKkfN;4P|)E{EGjwryA9)iHnY!1d&$_>ch>vR>EYWWWkr_oCbNxgXrz-S0q zU)_`hk<9?Z&p`(HDg_|mPfuyA36EFM`D_`$ zztgzxHG0gwidXurF3^Q&UHWzmSZ-DMY8_W(R_7U!WA{z<)#$gPK>ajm?3lAJ;5$8u zy>J621DNZ-)qPRkE7@~#%RQ{xy+`0T^#iUKFH0!+bxo@}Z7^%qow65{FfZ>zLPEcU z5R|~i0yYq29+G>$3qCo+4Ql((e=0N}QB6{Y7-{bzWVCbuA<6;HfFA&c+32r?;AheY zfh$CC>aHhFH#@b;Vr+2bxH3Mg_9#5K7jFPoKkG(0Xll8g^cNlvFpU7XCN+GMG$c@i z)+6e@u^;8;MSZ)J6Jj-xYB_bd7A*(ffIz)lytnjbza*a7H zF}YH4rMT34hWUAPI@atDtIwkC-a3EEV8A_++(eF}57zG4egDe+CXGnmJLN=TSNu*r zI}p&MW|&)i@KNpK1SHkL?(gKc+Nd$^a(#1Ad*4SM>U&=o6pfPXfGxpfGp*i&FFH3# zBE`h^cI1mo1-uc+!n-4@ z^#njQsTk();MjhCq>zC7gqhk$?||=)o&01}4QB7Sxo!EQl|aul1ND^?vL#F?tNZZus?(I@o_Eav8JB4gV0>^ZsQ$dRx@neGJ z*8W!6i7EcIJcN83yvw~rAbWyYya+cq_4=O}a{3i)KIVPh;*n&5{_1Q=)%!WG-^c1|YN ziZ~10iHAsKamUnYtYMuF?Po75!?JUShF=r94v>r^@C})pB)rAH1pI7WGAdTpejhu( z=q~Iu_#y1Q9?lX}w!?JWO>QfEl3+;%OfOJ4Q7>`#>f?8*LS`R0eil}cvdHy4U$*D9E-z1OFZ6s#_QX$K$+i=sW8*J174?{zP9%^pG8gG_|g@YAxLv&zxrn#Vy+3wO|J$N8T zJwqwt`8vzns$f8-b%yXtYo{7KcO;u9Gv(G_0@{A#%AY6Sj#s=|rRZst{8ZhkyTH{v z<7t8pxnw;e#rLJVczCk9T|FILC{+yz$@eM)k|P#?pT$3E3bM{jJ0bOl& zi7H>XD}T~Z9#OxfCVTsZbtz<~^-tP$be;IT*~afbg{8W!D<%hgXHsi(!#{Gv#AWhC zelfg$k25b0!PkKJ{h==9F*fv*P)*5EKEMe3O$#AQqyg}kydbH^170iQeo%+hontlt z<(v=PH_f++DTLE1%0;UVe6>`sxCdYE6mfbl#2i2Nu>7^T`gL>4710It36Edr8Q_Uu z3Bg#lfsiRaQ6Hpe`;Sk(7YC%?>dtJ^hD@F&$)W+|FIhgJ)=|N{yhW?pmn2O>KK5tR zIF$%n6?&KQ0s2JS1esQTTbfnyzeMP@ zo9X!r_R(2HV1v+)4vEkE(blsPaxt$Bzxu=-MK#|?YF}}ug2b_K*z81y#L)+(qGj9Z zCEJFk?KzLcgL8d&*#vC)F@-+HJ0fz9WS-~L&)3yc&e%R9A6BN~a=pLw0{2h26e@n& z%UpO*uOnjoVeZMDvUmNvwNE)`6wX{*8D6&_N_P{%co096QHxKb`;}V7OYQPXj z(U+!@C8A?V8%oJHUxri9|8W16ss^%_A+#30Ewem>zn)4D*Ao`5{4?Um_Ii}>^tE>(r$+r$slbVsx*DS629PacCxw3;h& zYWeskQp>`Z`M*RpC}LBvX>shHJfLXjdYJ8dMDA3=eymSjHj zO8Mc~nT^V5j`gshk)$0!GR_WZVOZjY2`7|`OyrB|9KQhk4iuUXyq0fL-%0J$Ue4b~ zjA#gID$cS>%(12l7QQA{8U{%%1O2}Mtedy^Zekz0K}x9q5N+V5eg=P4_g0zxolyX0 zr?^w(q&k+EuiRev0xc5<=b_nJ&v2|!FW(Z4bHld%q!mE8WD9|ViH$NssElF{(}7Af zEa^w;rS5sP)|_|tbs2|PN#xXzEn_##!gMXweEi%hNEDc<@{n_eNB_s)x@GQGUXSX$ z<#D^e{ym6UEX%u*%L1A9m=YQQ$TVm*P)$m8bU(#$^aR4e+T0 z9{(Gr{l@P74c6{tQd`R44z^VoZjZ16EPS^CtU3C5pf%C9?~#SfY;B7(YFSF-7U=E@ z8GR4jB`!HJjCI!&<9?37e;qgx1V}g713bdiqChkr?rGDm&-^)F_)r9ZaM9G)93?kO zw*V~^sXIo0TfYUs+uxNMKX^+8@$(4)utSQ{^H&JfqT`1fq@+(jc|VuH?ULe;y5Wb6 z2k1gZj4NLduW`G?*7fY0)wo=R2lF#^yN5i?>9H~vERC1i`?-+NCB*WG4Z!7hhQJNj z0hoU-JQy*VuS!#$oicn5JqezvyEZBmypNRxloY0dZF+?Ic zp(Zrps%K`(=mVPXQpXPysiD%c*$&yRZc+n7NF0~hJT-6(ZFVAj6+*0&emF*X*4Qr_ zg6n}zkBN25cC@eQKQnT6=4DU7ByHC*C zn#K1TzaGTTiCZ!&rdfmA%_|IIwyei|k4?sDhx)$YNg5o@n@JkD<~>!iQ5 z`IWjLSrBwYJ8of_qApHYQd9xp_{4#>7Vzh=jX%7&Lxoz)e4IP~`lKOHSC|0qr*>(< z=<&Cc=&1pQ^;^MjbeQpAoT}yZ>_Z1SsZ=kZ-r~#0j0Fx6!fer*>B08yNB-PrL1M2d9)C*TFFLmtZ*Grc@pt92>=1m3rAN2EL}GP zKv<^>4#xX2mYcZtP8j6kLZ;D46A)yRKK3%Kk2H~VjqUKGC&9tAr+uT)m;QJ_`snQj z!Pu=9J9DA(1VqkDfKJvve43{5=0QHB#r->gUC^gxkuPwP0=<;b6_ghOELYDiqEFaW z91L51aF0FS&dt^Vk9lKq|68Oz9~c;rf?^q3495W4Z{iR!tlIpU__ohFJmm)F;_`L? zQ}9hg(6?97FmH%l9O6vTI(_)7?X=9|vv~PNT#E^4xmEEoKa3l(_9YzUzyu?f$z}2>-$nM~qtr`(rB8!1Bc#ih z4%4K|G45$64HxQWn%#MyGzny@I;qA|n;{r;a*i1_H-~Z8uv{=1>NW>#gYB@vdWPZD zHm!}oXR`-AFYrS1$+g*vus*Pr$x^KbF>h)?cD4^863dU8zHIionv3#?u+KZR{|)~> z?IX1}z0la@g;J>fq`)%&H#}H?3D3H@a%P~T$6Tbia8^zoox!l1r9}zCZKkfI0YRH)Gg*CK3zU{esH=f-AhXv`M}>a3t$^?KGYMZcIsLF+|NZCC&M3XN`mQ=D51m*8+Wy>uVOUrF#%X4ZUb2U zF#$lMEJk^_PWyv-wg!u-L>K4ZKMh!|a;$;-IVFVoyc+I}-_|J&f?r$$J{*&(H5m>t z9CjEG-L$R9?ngmCI?}UdcF2!Ij|(77WdR)Fj3jW^)GzFl)04&>T<0g!nrNi76JBpO zA8##1VnYOAFY7@{$~PW}5+x!<&`wvlzvZnn1gmt>+`t}izps>J3gjAW5D+;M-lL%!`>w)6cP zDUsyCjo;=j<#jrY;a(9yBaU79d$8*=FKB++e1zOY(-|MPZ$(TIy)-E-{Y~Qy^8p(1 zzW-?fq;?{XfS`p7zYuz4%~$tlnJ)s6eiyR7wVqltfbD#O^L&kA~0*{cTj2(a- zh@Ua}kgf*(3Lm2_7cdWSR};IJ{C34;up>PZwU%*~BcU=}l%uaI>QDsn3uhMa?LD~} zZZ0Q~L7VvqB9-R>h~#XK9Itr|Y>xoA9)S(g2AEG6!yZ$)y!}_0A+Piw@V2ELkRuZc z1#L`GZr0O<9@Wx_2DkwkY*68Vys;&2wfBv=bo);DU)t}j-roQ${tmPEJq*jZ^*Xl- z2!7*q*72`*7u;_}entO>j*Fs80Z5m4oxh0Ouo^AUFLzaxFH{1!F>6X~daC^BYd_Gp zN`42h`IpRkd%i3S4tzO|13ch-U|S8~A^7h)WG0G2NB`aCTf z%bA?om&5yMNjFT{MOi8ZfLs58AwW+*g5%TYZ>W-}Q5bX7Z9E}{4uo2IdEgPRoUJ%&TW2@qqH=s#S3G)&tt@PVG(BgX zU`9F1r3joQnmp6G4C^5f#$=zJ;<@P0|MO+;?tjS~S!bDmpZ#axcc|{xZnxlz`k?h0 zpG$?LtUk3UTQl9UqhmufPnU!Za}}wV+$YJfk7=eHv{=Yt=0j#u)Dce}k*?vNvv0qr z(OeG-$dT3D6#$M;Qj?P5ad{-O{!?sB3i|b5a)0JWcu*McQgpjmf)h;)6E#gKb)F=* zuDc&vBQTJzjKpNK&!L^U(W|4w+F2c>3q<~UM-69Q2U22K3E-xz3iy1rc;Ng}q%cuy zHem}OQF@Y{u6}bPY!hfje?+sP6%3rprk`x5yY1d^Rk~g;^RjazcF&!HOgBW8w!JWZ zup557M&%M#hij^WXGZo>JQ_gQeN0%mOX~i?^X}n)YqUlpJvv(>>_5m$WgqO`@Zt{X zV=yA&g}DcPhkhNjyyzcTH&C9;bX-O!qMffu)zUOLD6!5ZAo#ry3@>PnlN4&es$uk= zfV6r0^Vu@x?&=GOnu0yrT6%+Bpaut^sM z=1oQD)0;p}DmIwFAg`C2$+I7+mR7AzcY3neP#0i*KpFhwl_QP!z7K#O1Ht}M{mgDum>E3?z z7(^N+znT>61H)I@hUnz&Qzp_I4iuY~RT*RN%~dQElLTFUGkmA!QhG>j(niDAt{|0t zn=&`Vt$EpZd+t>ASU6Ltag})O-r*wuDcSy_Ftc}AXzYQ+0p6Ti1o5k<6 zf8?i1b7o3UU&)U?4HiiJ>ptsmZ1RQ}n~r+Dun z8ndR=>`|87@nK8w@vx(GabayyAo`JS*zu3^IiF(gS-Qlb(1qgM(P3-&7Ul6fug2}a zbdyQTkY}SlU)mpj_1HhyYDglYc*b0P_wHQ|FujW{{zUxD7La^+zbJIC3TyA6VW#(;h0hr`9`hLIT9dU z8C?ZDo-LK77jWG7A8K8leY4}2aocbq%-ddKvI{z=By+q;?Kt36smE2_=F5?s?Rx&A zO{-MX2Dkp5{*R)$BtyNO54|z9{M3n1g)hJG^;3Uf>lc7!kqr90VRI(Cr6)A9(7NYN zRr7U=DBMZ*eJ6_#a_%VmD*{9Ghf?XS>-%=hnCv|brjY+W+~Y^xukpVxkImp7?B?Dv zVP6)#aYyt+(~KjcYfj8DS(r32qEF5u!;LA6NPlH+6M2X_lk&m%UrLo*m%dXhOs=GQ zY+}PU`PFc|onrM@uj9b7F&sDE(47XqKcU!fbB zdR#_VfS2D2Pk_31wB2T(B`-WvA&5~S__xywukNySO3=2aVErM__e)_%$q?pR62O?c zmh(98y@keq@1Fsfp1-1#uk%Hdw2>~vo1O~bN8(q$`q}hR>Xfo;%87BHjKroFJ7h z2QLo=>l9?-16r}eD>Q92b;+tq0yk0b;`+Up0$yhP&JiRF!AnPR+<{U-zxpGy0roov ziVgAZl+x!i0E^&l;2XAKZ3}z#dn!6I0OQEpt4W->Vi#mbi{UK8052C(>!ixQmoVcR z8t$L~=R$z1?e`A=k)s7r-Kk~=0H&zmo4dZ?jj>6vNw~oN$(m>tXP5v4I43|xNmX|X-dSjh5fzkBR(*@|Uv%ngw$s5IYF-M%cL-$O=25;&eOyewxZws9iGatP4E><-w5&XdGYb+TBP{}k7UtB&E7oR;!WR5qWXaFo6G6-V}s`7SoHMu z9j^%n7K7rFGf?b4duFKZDP769Y3T;NRcGV|8ORi;ecu`e(8iz6@~!5+h9=y#!?IEd zpi8aF;j$uvelCUIFRW+Wqru1X#|&XJ4t+7##sj96n0wWbFk!cv5^j2qdOJo2N1 zDssuZB~H9|JmjH!O~0{j8?!1b=akz1N!Xg-<5Utq@nI$_Qrt#pc76M1dZo+wV_U}6 zZ!cySTY6Bj2rn(*x4>DgoO^6)veHKmUlNi@>KYyg<{a2C_8Mjh><{(^=B(rtvJU+w zqzbYVGEIxkk7s%VV@%Wa5~}a6Nw}`>*0&yyKEL}({*&xuPBk^ou7L+@0hw`kpJxq^ ze){y4^y7e(ESp&lM-~}zkW)yMd=MW0)I8H~gYTfc+qt-LYi2c(H2#gmvhU@*Bahd% z%ckJ=`lYY9;okEBJS*%u1_=af+L2OFsG)@JSamtnX6mqdwLrCX$rFt7o!4MvCdc`ynhUbBWIZpSm zh9}dvp#`}_s)ZZnFQMwM5J@s5{0gJS!!9|2`fjx4e&y-7w*!bR5Ffby4m5k6;Kwq4 z4Jwd-9BMxUV5OjhK8P4qO*u_k-1_A4!{MTA zCrtbW<-U|eN!q>qW$pfAl3hzNy2zlwy#P%oRp4e@UqlkU=<)0fbEnt{a5&nGHq4!< zup6pVykDJ43MQS3FlDXt1V`dOP85l7ncY+9V!K7UDwH`BEuV zbAw?I-Yc}=VX+hj^7F1_R27um1-pC(fxa~=aksLSaRB)ICXg1!SrP}Bp9CT$RT;zW ztLRV?!Pz3@6}BJ9qF5llEp#)jv9Pi5GU(fdz2Jp46rQ;=X%V)XR zWuv}WNB4{JZ+AAZ9-~D(WcGpJLwff~3UzSM={RZ(7UVx4zRea!eDroN!XvGwF zul4|1x5Vp@H>RkpxB?Cip;R=P)xBSfSv@RH zo(l(^tMJ?4^Vd1nTeFGN5SM4}Ndx}B@|OV<&;KF=&qcgsj)FFbqnhs`6|d+xZ1u;UM?-h68BRNt%ul7IAc%GY#pB00K4kAv<2U6Ek_Hnq{1=O<_m+72CH%{tE|i zs>3FJY+@bV@Cp*gE*mv1?lQpMV?2HD&HkUmbM~RGH{`biAgQKmU6~)BrLl;+Uv)m{ z1#m9OfsZ@KrUNxw<3*d}3(48hhY*%C&4c_EZ5949Q`0Vad9fIG&RvR=$Ws6@UDx2^ zvECxl0l;oY$}vTV5!&%o$4(Hvv*WI-T`_keZV22bT&C;`u#5(7{hQ!@``_c}zRcFh zQ$9(&vFnc!n1A}B*dpEy)&cH@4;Lqy_a|n59(^czXz+@r|0%IzW0v zJwN&7p~kI{g=a!`KYO4 zH!Fe%C9Ix!uMfwoL42Btv`ZWkr5_IvJ|PaHqY`|3P`Ii)R4r|;2>FsjO@o{G2)rm0 zhd}M`xMd$~?$8JNj3cWmq9Ioohuv&Wp?c(4L-#e(kWaZh-3IH!rUM`8PT1I%AF4!t zl}2kZ{(I zJM%Dc`LZ!f@Hd@xMC*AsV1+K`$<+=M0=iDA=mg5K%Yc?Y#x{Iaej*d#HVeC}zVC0WRFKtQ%B)ce*cURgb) z#lWJtd=&A<3E)3*xvcZmcQ~%`niO9okA;~7(nsqXqhr|5qCoLj%|=UPzGW;xU4kqF zu$qHszHeiW*F&U~J=OZ;=RrQ+nJA){s{Dry8K@i^By^Q?0|+oVnD_aZZ#^=_^IIsp z^2hiSmtUVL|KYZU(bdoKRub1w=k?f(D;RmT;KCT&Ij%>~scRLKqj|#;yK@r>6T9LP zpK-^h=Sxs~jR2c#d;zD40hSOh(4Z;oHAGcYGrbQKn&V6@GXxB*{4Y4=tU)Gduv} zfr{4hBJuPr@%7+1!>8Q;%&^v9bkyAoc2fBJ1+oiD%+j$!f}& z(Q&<|Dqs|?GMwS>1KyV~3A}%!(<#OMqssx;-9d!Q>e%1wuJ>?o>|?6Cb#cMyXM-ry z0*Kx|<<6aqCAL83QAY`{K~v>(hrPP|B0t>~pYD7!|f? zTuY;&@kEnC!*E3V5O?eaXpd|~_5-B@7WK`Dda((W1A+wqPDCw8?29BFSqI*kTmyimoHCI`Vo|Hso^M@6~4Zv&@?4(S{a zX(gn4NRdWBN@)c|LX@rnq@+u_Ra%fnT0oEnK{}*My7RXm&i8%!tmQvvtrM=}%=7Gh z-`CYnu!KN$N~2@zOhA7Q;^&^X$-C~=oj&s-oW!o_~?keHem+TJI-52u2^eE6?Kj-GS+v0Ew`nT zzw1LR9Rlw{#SjUN6XC!gAH=PaE#cj&adNE{pQg{6`d%^>J(CX5(>O&m)A|ZuGi<|e zQ_E<5=CXX1n^@*z9sHnIvoVyK)TzFISm&#d`HU3+>mf+0Biv8{;~IA=ISt86aBE%b zfdG-GbX<{`&4nhTrMMG@kQT=vembaAj}Ui2IEI8e1_yOPX8w_89xg)O7*-lEhI(67 z2pdHRY7!v8=Ke@dStb{XEXGMH%37(~*caR1t#p=P-!E`A)v(}cVM6rd7f+JO^6|js zn19($&pWlTcQT)K4L{3F<=72XzaNW(ZnWbZf{>?5Q-IN6BJ}U6IbH$6ZZ*0#)5b(g z-|FWnNk{uIULn>p&7}^KiCz{My!se)r7a`vbDX>NXd>#zxv^vBw-kM~V%F%{6aZK8 zMQ*v4C+EUG?hMf93C zv^9Q1?bhZ3sL3(Z$v8JAU^$tU@yK~&b7V~OU+yco?ge&3Pb1JO`5PdGYQJc~w-(v_35J1Vw__A9dEX>X1S;%vGbiu7sSGOl&l_CbwW!~yo)zfC zh^#qU>|Hn>TKD9{Q3$;Ou*y3sD{L0DnuFaz-4%jQlqEt9AA@s}+%;>QY4V#vms|HT|D?P}}+s5ktOkfSgl z;PB1*;&5jS*IHdoE%5&F&iB%b??gWZEK>LgMw~aqoarrHtbl-t)-6*P6cFy9_#FM4 zzrIW{%CH6G2iC_HM)*2CK(O%iO;IiRaLI2#F4qT9M%Xnnb>DU@dS6FPBo*W~4rS@P2@ zHrG}94(8j|=~!nBjX>zh$HA;co?XgQycT_nV!l6!!{fDoLsLvwZ_if`2eQCp-r93n z^Y63z4#mPjsuH9F?QQaR+?ym!GKg+tbcJ5G zxhcTXmKJFmQ$MklQc?>Ead&|H`z^K!jq*(7H1kQ9r0H!SdfQc2b0L5mBhC!wS24!G z2MvZrJYP2z=EMqQ9=cwyXtlN$5TNmQ(`sNhe%~va{Py8$G{09zLlWgd3x~6E`jbJ} zX24Oa+0{76BI)-2rt=T5WB(Ozsr)e7*ZA5U)MdMd0*}XA;%Y_Syjd{MKYa5!ipyIy zNyIU_`xxTC#ys>WCyMU!B7M2v$x8HZLpRfKw1M19g5;x~<=Z*7Yp1i7b_iVhD+2uC z^d-9DB5uhn$=YL9()mlm@HeJRM&G2Q^p9S^bu92?yexMPBKOtor|o*xq2V2&=&SC7 z!;^=X@Zw{u-J8ax*DgZhsjcD=)Gg3oTK^zK0gSg`gua0M^$88D4Z+jY$Y&cNjrMqW zWV!K+m%8ro+i<5coGa1NIbKAWj(qke!uzL`1>DlOuOY>qyf+(60kd1yyafC`KLPjT zI~4#wz2D$A0v}bLT6)pSD}=HgZviu#X|(9y=<%z7i?0B8SKE@=KCj~kP%_K@TD6BE zLsG(1#QM#HuN|!=>wn(a%HHLPN$d(3wzMf1z?qDI5EqaF=nHgjB1K@+PijUU5Rkg& zL@B}}q;QiD_*bp^iD;1l@*i>*!y&5f0E1D*9=ek|A$H`sTfs0ZgYdy8Ezz zY})VH0aqaawsj*EG~K1z4-m%H%iC!gjS#M`LLcD2C7I664?EVvG!LH)sVMOHy{!X8 z|LcVMG0WR97cVvii)9iCm*Y`wja)lgZ{v>Dn-8Aa785 z2takH7M@C_XZ=ArazEcdlQgMQVkPj`{o7C8P_vxqbgR_~_xZjfFy<}uLigzlChEtE zu_Q`*>OfEzUyQ}wPQ-pSv{~NbISWW(2*~q9K#^{$ibSz*Za>oqEORHUg$%drR3EdD z$M>=)Ydu8YhpiIz!|^#{?r@+MH0T&}@?a>~u-O8^ow=@`0TwC^8bG%25daJEis9MM zKK;8890n)M%=KSNm_D#9vM#db8q635{D<+BdDt6Kl#Myv3zk@TeI5d6Z^A_s>CpH7 zLCnf^_ToA;D5M{M-5b2E+@Lo1wg6heX>C=oY_%MKE)NfrqVUGw%BQc&)hx?1)o5i< z5>N+%w$3IFDpmu8dudk)0uG}A;t**%Uy*Caq^)>2_C3u7rrm)f0MnrY+&JNbqK9uy zR5>;B4xzJXe||$4$9_3G(XX9s0RF$**8d(NmEUsq6$rqV5Tcrd__PNB?;lhoPV{VH z&bmV8H=DLM&D>Q8K*Rd==44!+QlqN!|Et zUR5mXI2VfPwvO9w3Ho&YqwMl-^KQFhYvuX&64LyPp|>dCbrh`d{}9ue@FBe8a&>SC zAixdrh-;8DuR{>%xIi_J8fQL6UKIc~NzeXqze%iBX*nGPcvUw>K&JZ9gz1buKsXD7 z%wIuJHW-|vzQd-AAT3i+eJkSiJ3zp)xz{K8>W%>D&cS=A4M8M+9|0lOh0PmqwBi3E zenkT~7#JAxS-=Y-T1*gxDW9>C2OzSHxgV>L&D0OVj1OT!ihYL<){Ta1kiLNcW>R`z z|4XYfwn@@|q08q*w&Q|ZG)v)Qep=cDn&=}aO0F6J?7tGIpI#PCeDKQ(2tp`E&61Qj zD&$c+Y|)4K|IGq0&(p60FzBMSf+Rfsr@95(C)zwfuG$Eo)z>X4e5%_e&BdiJs@*%t-&RMS@kkvx_P#HoCx1ifPIq)Xw(GNwp3Xwrr;QI(EL%-xUDEt_sl z1RKG@U%3*V;^!x+bj;1~rVailW3sw;Gde)@!Vl$Qlsc`IdMUQ{3`ul~0@jI*)NkXh;R zN+uG>LM1@Z=SFIEB5NN{-?K+^ju%s=C;y|}A;71miY_Pv<^z!MvlzGxK1D!>sndlx zuf*y(MGvCkTFLj5^c{KEq37?2&^erNw*CIr_aYvghx+80h-N92`F2Z1ZRq5Q4f<15 zq6ixGJ*{Z7yvVvyl>EY=9TkJl4g2-aFJ^LXacA%3{gj+BJ5M~NzjQx*H444z(LXIu z*~Kg<+4sS`^cJ8>Sjlu7${+(~|8;GNWwDulEUG|5>bZlarQlBY6#W~ho!cJW$ORJ$KT_}`Zq0qcaSZo?PE zt5Cn!e8wU`>K}X+2Wf>;?Z?pYK-NcemE{8iyh=qw<`OM^D@~QrCskx_>0|En4R{a) zv>0?sTt-ZFc6IIJ+bo?;a)S;brVPPr$22pER?dH~j2vgJ4z**{NXYBfmU;e_TQ4!d zLs2p}0~OSkv6}5musNc!A@lDRhHz$qTl7MUq}On&pQ6ceqSQ;cb+TWvqxf&jyois5 z&nm7auD6Iaw+8lBPv0VZIGW>4{7=$=XV^=}O-H~3m%(6c4pV z3YygbcX#lO6@w-`*XMfBw)jv4ju!CB^pLQrl+<-Woi02$0+3Np1es~3oZ89C+f8er zr_L}-Z3wK?AYPLgwNsdqrjC=LVgDBlQinoP_uM{lsx6D~wlEg^BBAF_eTNR8t}13} z(b(uFZqvW1CW70`Dh@`YoU9_z{)SSur>K_T!rrL@Zt(n_WJqn0iVY5Pa^Z0<6{N2A$FzxjlFA3(b; z)YBtW(p@ncKDYL+l+u)_a(lI>GwA$$%(-i;2MAc}2h>CUgaW8LY7pL8At1=@1aMW- zcnqM9Y6|KQ$cW1VcO|w17%!u?9^WR?2*bYSTaF1(vJd4qP z&nlK5XN0>-<)8nsgK{&+71qLBdvmBS`s_W2Sm97Q$1aaifc!m&s+s@vec_(I`NjnR zZG95L$Uqqt*2#4Ie5-!k)%5nUNai*(9$_v6pnl>}G5OepfA_xvli5ZHu>%Ew^$RbK zl9lIuS5=HH^O(PvtQ1owvLWvvqu-O}IDDMnd;q)4Hermjl$>mfeO#*y{camGz+}J! z!6ySnW4R?mrl11OP_5Mn8rAj}QKw^z4B(jrakyc}&C`*6O%BK26;7>TT(3&=8y8%6 zPcF9$Q7|t#uXK^9-oD!xZ|5>`F5;oL?JKkM(Z5@$#93$&o@>Y=dkbmr8mDNPoHs0BUu{wa>(Pu)~o#? zIg)#QpzHi-lwS7+E$})(_qzDf;H)AmUt23LN8R`Oys-!(Ez2cD@M${x_r7=V>;Dk$6Q0NlwBeltfRf1=Cm3w?pN~q#b#^sjb;Ff|BvxzWzEwH za^lLjORMOkP$yCIvtrP3!KK1HJ)8hSivq{x2+#WaV^kkm7~JW8UY zk(TuFxI8RtiF=j^zR9jGqpBfv2)w zsI$KzjGMna${FMzK|gYnDxNk(mG*|hB}PfuHedP2k~dqb?WU@G1k;|~+fci--;+DrWYsRwfd$t*T;ZaX{Q2RdGvseHQ;A^*9loqs1m&_K-V zR9=oJx0!#kOA}ocF;=Y;f43Z6P(U&KRGDM(ZTxA=`ugEJ5C3GL-!D_1$w*I#0@VA) z{hp#bFUn3PF1Eb0K(oy&ZzgBGjjtomv*sWu*F+GrwvUAcuL@I$k8+Gh&_`v!?p8NR zpYMv54;J_Y>ox@iPoUyy-`c%Wf<~u+Q}^@yQ|F@Zx~+yUA5?twb3;flGN6=H{4vJW^CJqGLwvQ0WC{N}>vV1h9^Wg~FFM_{QVpPiU@ncpD zAZEjP6CGRTE;ykVGX9~rS!V+6JCSqr&9vcfA&kx%8yO>##B=lj!SNH%f<}Q$hR_tq z{L#_5hqsLL({$Zc;^@CkJAg^#nu+50oOk!Owo4}3FF#1MVJv{=6i&z7iCE6$ywN#h z3%SGML7W)qt8=`t)iDv)I&HHp;L31$!TcNI+lF$Smlb_MbguXF263dknec}zuq!GC z&MbYsIaX5ASbaP>r>R*0?)5!iwfGX8mZIJqt(NduBL1{E?-_$IhkuH|<92|3npyIO@8*HvXU$@?!8Dd$u4 z--(>3&W={&BWJgbkvw(p4MrMF-;&;!FZnB;$=RYb;2?OeuORbt+W_Hu6J&nuWb@+a zmmq$JXFCwjuT-l3RsCy_a+Iz|@vud-m-v~>{=aBm2YX)OBwEA><&lE-?nlp_#^rez z7xDV^*0}|Ty&9x=Yx=x8Hr~(M=3#01d1P~Aom#;Ak;(aBm(f(u$aFGq%&oGc6omSYs>q;_S3PD`ko|P^)V;PB>HF&LY|z=rCr_krGGJhxq;y{m z2pr!2Jfl({+^lk}J}2(I^R8^R9Pr=T0A4xaJob~35@Lm@4wiq^2N}b}>Er-r2mJ?e zGFRjejzDePJf!Yxa-$B-bDeeV&l)mA`8iq&xh>bz09|-n1n^6+Yoi7d)RMz!)&c_g zj|ziAAIg+#M+iIR3w0XduWVX@E7jBkt`cKY zhG=~P5?w0>2JK!cMQQ*r?!R}q{T3)X9(*uD-VTrubA*t|<03$Q^Vpx@P={ZJ5Yy|K z%lb1{UdiA5lDp71V$AKe3M0s?cjC0%>6uMzBw7$|cLgbIWz#j@=AJb7~Vd1lS*mcH@xp%Bu`LseIoM3*6~C z?gj8^P253t1($>mzZxXl`t{Iw&Ns6~gTc-VE8A8aJav6Xv}Y41-A#JOR|jLwcFWZX zQ%`08eXKJ2b8V6#$8|_cF3>xc%i!yWF?ahd{@j~?HC1%3*UxYy=TA06uL&0B0w_YiYssi|N&AADXp1zB1 zuzAtC^~y!C-k<+B*et;(IDq!)Y8ZOaDq8L{Cf5E_cVVlKlX2Fb(E(epYqW<1ngxcR zUnLa!c~=1Zb@$vBRe@e!84=!RJ<6c?S)N!A>RMiI~wpB z0U2RuZDFQ^$18EYY%S|){p(o+BUT&yJ$*%u_5dN+2Ky>O8T%a4GPPlMRPFC2*Tgi3 zvcn9KU0l5;yXOwiYG|D`b>Ia>o{kFEmV_wT<_%OlKLf;|m@FP)xMVMUg@{?0D24yi z$rs_qo)S~|#W+kpgqUe-jIe79m5~tz9V~9o`bA}$f8fCK7z{vvZ2ce=z5NZoD&x~kDvow!%;prPTiXE9>@4FeTQ3*=dBlIzqoxdAPHrq@Ee z3z()+^Ad4mzc!bgvnGp<3nioPDtt)$oBC29m-;mKYUtXUxHNRE-8Q?`AdOp{GB4n^ zH>gFtp-tTEp>y=Rbbf(E>h!li_scQdfAVMSwalH;`r@_rY`i_HJC~R)&MD02EcCxU zfLS`H^&ilJ7ZQyI|Cg>BlG!n^V71$P0HCw-`r#}gQR{r79%>@>A3O~kZGqbE{+{UY z6jF|cwP?|GXqi3t!@O^b3U>5&73)@!P(D4ut471pKj=`dU62npm@Uu1uuG^`Ho`QP zEX~j>rK|nRu>F^TcrL`DU3mG}DEaU62Ig6k9VAWB&%$qvUVrhVF>3$UKg8dm%11g) z0Q!&6*V2!`#*b$GsC|{Vz+@4)_DsRdSar{UO?Nz>CO>vx!f(H=ELpPI7jQSkR{m4r z@pJ%fk*ZTflYazXka=1|6#d5DrGi!@yiFvWZcsM;lll|3KqRbx<#j*S(4#{V?`~A| zeff+obl+m>KX9Y%OLp-AU65RHgh4{CMMBU?B9VxBFrQOk&6(nF%{&<*lm&*pruyI#Y8@%HRVz944e;Kh0mERJgA4Pj8Nn+f_uEf_zzRMGz zX_LyF7rUp|o#4b$8)%vF4cY5 znn~~VzE9?D+m!q614t!l@xS`$Fkc6TUGSd>LS!S6;{Eiik?0445XW5mk%*wNUoG(X zvhC|%G)6*ptsl0Ti^%l!Hy43~$qVNEk?p_G|V6`!;X(O7K!lqX|jXJ;$j!g3y7fP_3We1=C2h8Iw;6Cq~N+UFC873)@VjM2~TQ}%R3-@Li* zJcG9dA49HdieiL@f8N~rv?8CLe_%v|c4MuJL<0k64yK6yQ0AF9#?&U6=g4v8%DKcb+O?{1~>pFh)iQj^c5zrV1uE zUKJIUVAX$~8Mdd6r2<*L3|>fN#;50k=jP8w7ta7`xYPfG-Ab|9QC3Lc+D*C zl_1#;%?`~Co-e| z%<;+ai{Y1RT!M=i@3$DwPEI}w>ChGuJkYb|i5q7D{drlpA$tg8R-U*-KM;BG$^kRC zXlQf|_tj@G=iy(`F|qI(6%;>cd3TZD9c8V0Y=>6SJTbRL^!g=#DpR!pK-OSv%u`Ak z@~9(sL5tTx5Wutz1dTALKJ?9zCTs#3o%SI!#Pz69d1WbP2>8K16}+VJA(%JbUN%-D zPyx_gv+D<+Q~7AveixicAzU|vEMrgFb{Kx6xQoXOv@+O4RX*~6&7In_GXHPi#l0Re z%d`{iicDf>{Sa#UG3E118~rt$JLEawPtNz~GqD5b72Cm|))tj~(d&r-Z1MuaXw*ef zuApDG>|(#_5~33Z1T6VOc+CWJ6e>d$xeeM*>-St2cT8_X?%MACKzcpci2+>)Ezqpp zMlcR_A@mazc%2nZOSV1oPVl)J?8FLKCFYIxmb&mdb}t)#I;k8?pmR(Oi5`wB)j&i|7GWJgcNVGvLAR9T(1&=4{hP4IJfhnEX0K{8CJucW++*t9-gDRkH`P+rX zN#{1q>T|`g0nYv__o@c5X{mlrtAq;9G-687@;XEwz8L|?wXs3*oSIxCxK(I5skwmM zVCGRa!1QVI3lJ26i#joVduc8!maP6I&eXR0rLCENv2!CJndIHq^wIBytfHK ziq6tGM8fR+su4ygvk?%+g}dAf*)qJ0HDNta_r&gZx91Jqrd|#JQMfr-Zr16ig}4tI z{y9@&_B`L|UF_znyvJMy&uy=&u8B>^0E|#p!0A99R!C2|Q|s2*p=sw>)jCR;^NlU~ zIswofZ#l5C^#$+c&M!xkb*=vJkUnQlxSMbnHXPz6(fL-Q_r~-Zb|8IPm0L2H`8lS8 zIqVU|jr%4Z{+Zw2ocIJlT|D~dmF;bR18y9nQ>f_+OCs;mCcQbl^ZVW(rSJ}+a|KDW zMg589|7yvzY`=f8&EA^>&n)}h=&Llt(LpyoNME+Lo6HAS&cM;G0~~&n*}%=%C9a)b z(62+R(thU~MjAmsmX+LiEg4zbXAU(R|IzMOFRIWs??aRXRRDBb=*F4|G~8y^5Dou^ zF!DiAI2)g?S1FguoF5%-u8(DZ(tey5tInj!c42)yw3WMzKQ-`cb?Gg!B&&z&VG{2* zrZL7k<*%_tjLs$-O(Wh}1cO-C=>Ih^qJX+M{VsX_Ayu;5l_FX}QD zOo@=~b)j!bS7lcgdpnb(+Lp?p?1Z?JJFF#MIUqpm{bTCm1Bhul1O>EzRLzLJKIO93 z8qCSU9Dgis!^Skw#lMfQB=i_Sy?6z2q!EosQ;a^7I`Ce(AU@Rfuv$<5?CO6L2auA@ z>3do1MG!kcP@cXmsvD(?y~`1cRve#D{sbXDIYgKQ@}XqQy#Y!6MbKg0dnT@0EP%3+e&*2Xxw(83;-d8Sv)9K-}z^f2`9)Q^AY=s?zysvAThP{ zFX{pQZ}Ivch)|{(L4E{%*y5Y8DDR9{=}P{jHq7c*^T%kj1QP_B{|-u5ap9h*!{8h! zk|^Dm=;|)+Rqh(;0q|(+%#9!|%{>5K_#JR;=@)yVJj>FbRARAm+XP< z;+Dsv9Bi22(JzbUeW&fxR98)mgUrzr5L(q$l&&XUD)gx`{^M}VhSgEUIjSD`ObUK% zGpS=&C`8^1gCL-Va4VU^t+k1vidLUafDOYk#9ZtC2N~~Tsi*MZ=CMm3AL(XzQcvIV ziqme>KH#4+1ZXL#s{rU$W&GpR_yzttGKI*p>}8GNjKveW=GD_O--Cfa;UxTuy;P`d zGv329;1_JHU3d;72Rq6XIPJcPOfhlwnK^UjB3#71@_e=YoNLF>os#a&GKn6;o8@eV zzHGhg{>$_;@$7s>t%w|xnD(p8FI!a;wiRRkq8(}G3?TOm&eA;2a~vkK@=L;<7pviB zao@$WzHufC%J;pwA9@w_#9+ZOn(T5X=e%^(x8&Luw)>;JeZ8e+8!DUeHO-m52C?Pb z-ib{`(+wucKK$6GzLTKu2SufRbY^3_RP?%gLtyI#4=l#AS(+FLeZ^M6JToK*uIV@X z$j{+62O#XXftc6!woy+;iW{C7g$}Ah)ii~nXlmjeG63Uq!LW`EZaX%gY&gn48X%>t z$(m3Y1cETd_1@$EHE5dV&Uv7-!cn$g;>87Tclq}GH7qX}OfZnJ(t5f=;!-JzKEi&@ zOw!mzRAYT&re8-`x&T6s(kE}FKNWrk0<$(>|Az4X72-9m@n&91^G z%{h8}e$V?!-TQ-w0VNWTGMEQY-E$4P@>()6m1M@LJr_uk$5dnF;Y(fB|Yo_olZDegVX&B=u8oYAoDSzgrxK z!MF?!LilN%zSrpL!&^ZF_{O8IqxRWD zbj=g=72Kpg9$8`h^b#8iRcDNfe$>U>g^JQ{w;=S!2pffhC=8^sGcw#E3Jpfg6m9FC zpoxizfen#xD$?Ts46IW+lmdKJ`qw6cT539^I1x=RaQlOwnb)&P{PnwO0(_FP=;_8# zTM#%b@r=bPr$#vczat=lx?Vx{p1l9GSKdt|pk6!U|J{G1@O$C@RmcmR{fA7X4^gkH zAdDWN#yOOlN=$(*j97f^0zYAkarMjgb+ng{Ac$uiU&-`h>!Z5&oEqrhG<{c{5I>rc zEUb{yjw31XLr&0cBtW-C_rUtb^q;|JGO_G9Ju}@OX{^`B}Ee! zD)S@AhAWK!pb*N>9MRZd)5I)9kiTyUoFHIvq%wq}I6QMI68A;r|`^CHo& z;Wtq?l&n=SnP-ODB?W)TrW3Z6U0Fcg`F)%VsU=W6?#>^Arp1Wcg{tywU0E+^%nxOn z1eu}0JftLm#wXWH%#ZNmlp@azni{zJ0iYdf9|6BmtEWxWoWjZU$lU&~HLw-lLq{M&~HmyKMVGY!K%Zz(<2Re5~u>8bhOut1)mBfI9n zxgQRw6O`pVmL^E0RDiZiy$3+IN(ZaMunx%&o@6H|xA}%R|Ls`8e8n%Dzib&z)Ra5i z-dx9fF`p^!6Y$0=4lDUrYflyY!s~qKOTQ17x@pRFzwuHOt|8U>XVWeuMzZ*rBuRv$tJ`~Lt~HMvtm|FDmtl|w!Z`-EvdCzD^^rqx15 zsU@xOEuv$XoTWNMzclKzd4WD|ELR+meHc5eqRfN3C<7T6_MN-*K4^uqiS>d{R^Q!C zS7Kw_w_lp+s-M?8=DJAm3#&^CV>)`bu|D$KEb}qSJv%pxHd@-*)6Sj5(x+Zk3q|C< zmmWS9V3fQ$?3#pX_wvPn$?@fjV0#JjLd`%Q7)pyYC%ENBqFke5?8>bK_Y!4^rsRq) z`4HP?+5oLLowLcEGdkNlH{PXhhz2yjsK$H)ODLc3eR!uHq-;W#5`vFr@Ndi>dFEl@$MmA@mAvl#?D1(+-~9xJgb;+RlKp;x88m zb+d_YssW+XuRG`5<91s@F0_LnF6gMy(eZby8cet~R4>DAIaKd@@q~=#TJB0`(bxKv z=tw2v2E^(ncOPmeh)BKhT5wZ}p3gjU2@|5U7Svpc(`CLmcwN3=Z9{=xv#rPB{YhO-(ffNaG=Gd9)z zc#xW3$K)~N_6xvyc*PIM2)~mP&hc0DP=HwKkU}@jxFg;hQqFKHHd^3O;LsrQ%h8~R zwPY7fO@rSo!hz9^gJ=0O;=l7o!LbzEzQ9BJb@5?W#7j>=+*%ldyr~03Cw?@PCzQMn z84U$c>pwp4`HFeX0@0F`yjNAIGQzTPhxe-h@E%;XiD=_1gOZV!i$4HGEP5Qk#Lo%f z_Fh0*jOHKgQpmseyz+tUe(}(5EHI@=?Rd#&ner0wubY{+w}<`XfRtnQJIYShjn$2D z=yuh(7>bvqldvPeP|dQ-E`>YT5dSanmeKj;M(;@Se{bDPT50U+WC13vrSp0yP+DyX z5qK^8jSLj9_?)+2Cg1!v=Ct=p9a>w-`Kn@d`tL){_Y3|-5CO0+!_FwWe6@5gc z;-m60lH4Y(xqPDJM1CGCmp8v%7 z>(@e&*wg>LtOxfd0aSyLqX4FBLH)>cWtY1Ko>~CO^x_QgzhJ?K>HGjwvzO1=<$kn! z-tYByI$0V75ZKV;cX!f}XT4TZNg64@N6zqz;Y6t<;S|6>jc2vzEGq$8;8J1HJrVLu zZIrn%1X8+)z2e@)y&?V7tn8a`jax}QiEoFM4?XH*e`AFZOOODl^~YP26}B29`eZ`b zIN!aq6zSk@73s20nq}UiMwT^nE*$PwXjm?6u{-YkMwu zl`?;Fa&d9Rtt# z4kl411Fhh8t+9NEJj8^&nbU_nUgGJ#{x1v7Y~w%=@(sWGzL^z!bcbZHCk?h-#fD=d zF(zcIqaS2hI{(^;9gWUgwsAKkyZ?#ccaTjR;`Xtt%OtZ|%2)EgGt2r1cRtNMZbm;> z^8O?hyY;5v!O%x*6~;Vo^^3IQd9Wo#8$9E>)8u(F6RpG=8+z|kzjAtl7@kwpuQS$F zTK1;;)9r=&*3+Ury~Wb#jSPSg$}$h~Kgt3ajT-y7d3U?rjLwJwP=A%inXoknO{W2LO7y8>LeBRw>;kG~jPj*Rt}D+!hqDKtQ~C;% z=Y7!b-~geXVEX!NW~I;Y`D4w$2e_GfBKSw053f86C`a%%Fo{<`yzQua(isXOdj__3Ed1D76}F$a@_}o zhC1X<%{^D#C-uz2k-MTl@-0UAlv$d4YL=(=?FOMb0iR9`Y1gRw&KYzUmipM|>z#== z4!Xs*0G9}V8g)Ou^4x4>(RG|Ko$|&-A}&G3jhWaMBl5v(Gd#^O!;y3H z#dAL57N%&~q;N3W6Uc~!|BmuQX%_{1DCzEyJS)cQncUcGoCVEa(O556IvLijH55SKBn~b8-`;MebzxKaE46uK-FC%d zj4D=X*|ku;#uvgumy(jQH12MQcgMNiQKAp|W?oE%cP$6W`dn4{5zDrqYQ&Ic6h{ud zs9JZb&<<1M0(OZeSwg9#!8)$hXm zIb{;EaBI_N`t7aCHVi=9Var9sz=c+3S`6W9TF10`AhX-TrYBL zU~}~d{l7Gq^1Lk$PgzYWGOWNDlBqS*cf4Xqs0O0NkpVHlzglK0%MQgeucU?f8z1e|E8#hF4NwA0C1PK zx+Y>O&_C#rmvS0o;=~Z+pc=cD){oJ+GO=&GsqnT90iDXd0RbyE0r|n|1n`kqU zV%y-LS>8IM5fW#4dg9xawlxGyOy1N}P%%Qw0s*Z^%WFpHT8t*WZj=<54O-pgC3${N zUiKc+vo_ch0XDgp2yfqcFm;-`_0AYMKYYkB#}G0VuAg}Rs`+F79bH+=Qz=V!GTU~V zZ>$g1i)u!vHvZ)|F@fK)unIp#fgF*|6d!B0#CGGI1+gkkVD#tCCowo3B>qUs5V zeAfhd>7&@;FMd9>Fo+*vpxNzs0P0Hd99i_7SU|Q@*yNLqi=D?B9ZZQl__ zEM=o+Kr#6F&_xH$kxl;DtELn<^~WQUb8K%6gIr(hOQNk7!q>bmwDl1)^TKv~9F0&mK)}vgj#hJV zL`0Bq1S)Fe&Ih&M8+ah&hdJjY*jarq;Z)g+{AzZ@Xyd`rQ_J~8WzGU+>O3NEpT9U7 zZY|s{--_b-uDQ1tzOKzVUP~m=s1kfpL?!?0E?d{FYtMnwPUupGe)#L$()(cuJ-B(6 zsU9+fs?!jgpO1z;VoH9WL+fsc(n7t_A~aB~9+;o0FhVRSPoVivM|_mfEl|%5v(jc# zz>cQtu~Tds#-t6T#T1L5>T>zo$yao341&CEN*_Av73l{EFLAChd}S?Pj}1Uz$*~;C z{#izY57rbZ=-~bi;dv22EA39i$xrm>;9!6^0}|r@{2iF!rWa{JB}7DH-;wbz&NhaB zB^nEUwCcUd0Tkq`t9&5iC`W|N{{Uop;R3*W)0e#bNjNeRA+R@H0>1!MP}kFkYLUj* zPetix-d?p}_~yZXi80qwzM0KL;U5$ga_>^jL~JXbu!ku6A^?=7v3=V!L5v+tK*2PF zn34Ic6574j}v9Sz~X z?sMMtl?R<@O-J?J)yufZm)78zeK#Vd=d z0wP+dlfxcTzTp1wRplJR+g}Pb4H_J|a%eW$(2DYqwm2gQq{S7!jP&D>HhPhT%>49l z(HFe^b`F`rP~PLppk(_zAfA^d$I#q&{ME)n6tH$*EUZ5Zt3c)zF>mN&RkR^(ut>oq z$N}IS5}adsqfdl>G<{UYJdO$lQVqhI?2hb;9E=p^RIVp4tIlk5o1^0Qe1A`>*$S8R zq0#o}fC9XAy`sy?{omah0sHjbuIzKDmtN9y1Hp}XJCfcz>q8i-`8quilO{>qZ&l-* zwkW@1HQHe9b4LAMR!#hHb9#u+`9HSe#k)|m6^u>fvVY|(H z04li1P~hv*TQ1ty9Ry82Rmoa%U@kqIXDo5EC-RG6k)Ct{{FS_mI_}?ttYl3Pl zqtFDIwplYm^T;@Q*g_O zrKksn1<3th%2Z?-$nO%83RSvR0nE|z)qj_wQTw4zj17Mf8&WhGosk4!e@oL>zYjb0 z=Q%|i2OTalgDh)z-Z2?j6XG=+%9Uh4-4G!p)v!n~2U==}fN$}wd&KJ*sQ9KR&!D>66@BTHP=IN*@c7l)zE=f5Ekk5 z6cxUU3P*Ye0a%};)VTt(?Y|E+Qp7SR?JLnzlM2cHV(|f z%A1OLHWSfEy;!B=GX3;fKZd@rgwMC#djX>KJ~rkmMr3(tO6C(%Gh0~V|JRcfki(&% z{oxC8Xx7@HGWgvlB>x-YJ{ewzEU$QSdat@EsJx*rX-Qu0b$Th&nunQ5;f3pjq+^63 zXSKj8LAXDk&sSV-j@nQ2ci5Z1UvBId`L^Q9j)I0xU$1W_g*oI3TpylZE^dCC*0iI}uj^zRa14GO2z_H+_`63zKpHWiZfyab@1@g-M(kY*@C zzP}|QJ`j|Hs(}6h3;DJH;BX`I1On=yfGx}wz9@Io`wuCo!&=tt4uw4AUcUrbt@|op z8uGJm=#7--!^a=|`{<&=KCN3@PxC)iUVA*C0-*CLhLc#_ zMLzlB42fSVzX`iC*}6f~fvzbq)LuP_)4X)r>*?T;Yw& zq7K9{6T&!UO^r{81q)!JqQNH!^4GE^qY2d9fBMUa#X*697u1$;e)m7l02tgdLFRjA zz-{Jk&^|$r@clXB2Af#{2b$U|kek=co_$|6CGoa?i@29)1$H1K!43kWWLJuM^^!|- zE;67ISzZ+uR|Yf-@8;u+s=3lYw>J$U#`rL}M%D0n#wd&8=LMVqV6#~mOxuke*3xZjxt63eRcyB_lo_O%YA6B zVf7s|XgTHi_c;U79$58EMAx&rs%_Jhc^H5(wt4U@dneo#!g%Jsf3UQw)s~UO{UvOD z=uI{V6W_3HEwmY}eC6L{FjwpllqEOFw1)Dh4w6MM6l5)zr5wmfUZ{gS+yGt;mJS1V zRj@81M3Q{A~sFki?E_P!s%yYWQKH2ABIlM)lbsvVdvl#)_z;e5k zc7wGMW_ImtoFHGAL#b>tbw|XqwHXuJim+uB|_?Sp3qz164s- z{Ml)~%5oo+uqM0~^G$CiJfwsmxMNh7?hH;re-h@QtFH<~FD2;3y3IWzzJv;gh5pOi zq)g+1v}{=%^IgbisXCW@fBGEnHqv9_wu4F9z@kEQD9u{^JtO%ie;o`*z0DD^D#CE6 zC)*i=+Z8m{rLhnn5_-TIW#CyvgE0BfX%D={z*#i#q-vw^GoAQ8G0pmI6Od7Sxc$GX zV?$3Fa9r^cqf$6HNv@ZPSOAv>Goq!o1Hf!po^^5%)gLne{9Fgc*XZB()i-TDv0cpM^WPULnw-opz*gChPA7u^BS3RblT z@-kqePa@-)Th9jp;wKi`Kx=(BfE&vn2QcY!1BCly%cVUgFonLb6iPuDsO2?Cy(IPF z4aU!s)-`)R*)Rc!Dwk70kqm>L81^?pj7rx7}Px%L8J~-VbXvHO}`uA|d9Gvn#Iu3Mw$KeVi*%u_i*tArVoFVL+ ziCA$46TuoivNwCd*OSz6Y4Y^Yem@W}b|<$B+{r#OJCSknDnn8hhI}AbR~;fh%#@}a zR0K_GtndaasHbbtT@>?HC&vQ$9v&&*BZ5KJGlQ^k=yts9kmuWvzxvk1dpM^77wC@+ z)OCiicB|d=KjCNJx{e>u<}p}>{Q>W7(n|&3LFOT=3cYXG>PBFrNvqssEsO?VL*XrA*^J^iFA$FB8)U9K|5#*Dr! z!>`0AUL^ZC#@mb;^u<}Czcr;Fm*vwW7=Ad=@CU$fhYpCIVp`Dj*#`xr4Ul`Vg1Auc zqJwM>DM3XVwg|GBk=^wZXIV)@fC(8M0Qf_ZaGf3?(45*IzpMiU&2_jAI=p!R!Miet zWE_rwnYgSgyi(|xSMC8f6J?YlI-5xXn9xL@1aoL#V0{cD)Hu`_K z?XMx~m!g=e?;FEOZ{Pa+vbiR{6Lg7@v|`Mm@5+9!bw~nePaI^nI^;GeJ=+X3{9yRX zb-tCLiBqZL%UeFMRgGAnbysAv4EQcL2JgJ!+pp@KZuII01SIS%WgvdNAKisX4nz-u zrf+Lt1rmAr1u(`8>qBOPfQt)u^^8C;U26M0_}L_2P$D&6E;YdX7r<^Pm>%AyqYaRk zeI~|Ks!~Y4E-Uam{D8HrpMBQ(@0i_Y)lt9%cUAYd8Q(PkzbP0(+92iQdEuf4Ro2Df zPB`F}kWb-+g2=u(XVOUp*Fi>TM3F<8v?}No=%FTqPc)1G)P+l6u1p-W3JZ`EWKX>H z4E@po5?!#s{eyeW_2cWV@`aab_v$UZ22XOg7+{vo`e;8?iaxGqCH;+f@V`u%Bq(UqdqI`3N+{of`OL;?lcSzt|hkHa7=mq!$6it7c$e zRMC%YHyc#H;LWK*)OPfmtg(va`U=F0mum6zQXvSH`y9z1ZnT z{wru5z3Dh$y&`fzXVxDj<8|IrCF4cV76fqxZKdN=pT=x$0T+!53aDU5;P^%0jOwTiA^do{mbr4ha0N1n`-cOY+$n6-Y2B#X@2<`Ol!OfNBX3kqqj(6-r866F{MW3wB9UkVmsBWbuOWS**p96eDfhT#7Iti-%2w35ImZbPZ zb6?a)uSe3A+K+pmCnXDu`b#S^XGNi3dO&dXu=xVw5e()4CHwn){kVd6O;$D_CO_ch zp%+U%+Br9nZ#j`iph5kWA9MaWWWalJ#Cw2b4d*aG9X(Fe{i7(G{3myRKX(@G(b8^v>D_g zzas&9UO&V%O^(`ah#m!$cI%oKA~U=Pq%BG2e88R`^TPg~`{{$+@}ZY&yd}1!fPaR; z06%A(8<{>WfLHn)LfT8TgzYGIy`H2Lcvhl*yP6BYGl?_>d zvfMEhz9T2ztxjC>dAJZ;NF{=N9`56Mv2`*Totq9JD(R<61ml7aYz&c{=BZw!ErvIJIg<+>70K~?0V zz;&}0Kwb?rP7mp13=e}#E;#{EtrXiS%efTlZo)L``Va7D;12Hoaua9Wne^^!3SQ|) zQ;rT5>}@ef2+0Q^sCNcHl*DTPR#pu1s#6mfB4DYO0O$|RS_QHUQH5iY|#F!T_p zqt?A16777}4IpPu0Jo6C2nZefKK3F}H$4Tdavii_prbkZSHnYDRqm?+9RT`l3 zH`fa>e!ek(=P-iXc!}~FU^6)7erzmATrn=%KYoY2I)J~i6mES5OtH7I_Q}m zv#NA_)P}Is88X8#56IuAZBKmNdv}RU% zRg%-6Chd79Tc2dNlx+5q`^7H^To<~C4lo8|y>fD?NC_-w_+KG_?0UWm_PU{b`X7nh zdWQ1=otgMcmG}VU1fVaLzpO45wf3ZvOcm_!{KamW8b6wv#yb{1U16O_)9naptMNV1wPkjKTrr zpFl6X)^*4uqPBJq)4Eb=6nG++9M#xMmrbu|jvE$1I2i-tH;6n0^vSPy#29}vWre*~Jo&1l>6$gX`H;>c6Y zJb!qc;W;3MYY4?e2=XMw^(w2+69>?=!bcPS0sggL+~xO!nn}cE7A~U6H&L+`?7x&h zE8wvtok8IJAD6rKWyinT{HgT6`j%m=!633 z>qL;9{{+187W=qdRem@&ZZ5dIll1@h_pNnhAR(==A2j8x;(xMovf`H4+Mc@US~>mi zs!DndC6-^6Kb7xMP=+pNeinJ4by%G5tHtz{HLQ~7qFmv-$4sExh%_pl zli$bw^4HFw!TIv9QE7cT=e!7H=jZ92pQ_1f zLd38dGK~g{Pw3yGj8?$UTu*Z|O}GL^>Isz{qox}|GgC{zQP0T!Q}YxH0J|O3`l)m4 zD&w&akqKgl{>`kgBm(USU(v^CAsOIHJccI8u>2v~byANdt`$y2z!>5peHZMepoi%!y~SF3Eu z9zqlWydMh4!_gplxY0TqT1wso1+aNz^xFLbx{ii#LjM9Hx)LM&C&#yJjgPg@df z%;l89GGjkEKsXwrRw4lC-MTE$=|K0GOEvW4-FeA_W5%{V)@a>+vi=m{G3Ns8lmsKk} zO!hmajlwHdv=+f2A;L#SgE|N71lc+uV@(8(uR_Wk8r7;~7P*j*%+KI{C>R)xc`EnXdVZy@oGUIcx%Ca^%C6U$g6D(V3?&-CvQ%ab`Wu>KTrf=P9Lq4`X znY%qBQ8X{12HJ0i#|O6ttgI_4#>gJS33W-8IluTp7qFey3nF`T8Q3DZ=-mIk;HLBs z83xlBhYvB+aGTJ+I7nDOV1{Fdpp)LrA&xQFe7KK;G;S(E(5&WP^lh&dXyK6I;#lj`3BU@5=; zr7(KS7*A>%@)gJH1boi?n#+|@mkm&S6UF4T%=)fA#u;5_Ch(77LGOol5mr{bdQUD^ zQv^a$FyJjxf}fwi)1oZtE%xXCUVf&GlzD(Eu*grcqC)Q<5?Z5ieuil{OPe;Elq;ZU zkXNLsgY@|T5WmF8b9?xJB@OL58-a>3J-+}io-)`zI+VD?b@ zLE3_#_%mV*?^^x=_h(LXpGRhQCm;kUKJ z;!N020xsmP;5!NDJ(r7cqmRX1BaQfljrg)qY>83XaTBzbQo;Cp9FmDfT>5H*>Sxzc zPa@8*fF-#yIg2DpNFzkcDu# z2?C@;)@ve%bTr*+L1Ba)SE&$n17T;!wWXn7hzKE&M3PyPa$N(OVfaEIFTu|t!c?Dv z;bXP9gX5fqeVPN{e-ge+JuiTCtplXYx?ckUxR2n?Rl99qtd6oFmpfK#&YZ?B7tMJD2=!Hy2crs@ z$l?GX%bmKeU`lHnUvhanrNL1;<@<4V9mnQn$2P~ki{P_w5vXLte+S)PbwciJ-Q3)g z^}h%8WAga z(4CF`tF@l*%>G$WfZToonuj(bfSu%Zd!?L;?K_wa5fdQ$cpzrvasebrKz2Ll_|Lfl zUafJacOvFSd^Nl66V1*6{a?cqxico$ac)gAT>##~n8*mRbuld=;k}PJ+4bh z*LpLZkQo0ai3*b(iPwZlD)oqDkWIK~-S-dbD~jlz!5$s5nH zZx*IPa`~Z<0dq{fp6lY6+ph$P(-SuIT=;%cU2mkAwL|<)QvilUp}Q9Cop*jpQcD1e zPr9JIN2`EN${(zvRvVo|kPt#^_AF(^xCoegYORVPHLcU3$QhkCQ75#QLKR~sFYjD( zN0+?NAK@Y>nMl-R3Q?a|8W3M$a0=3WQg~Y%HU^co&>>$z8YPASO5t4)sEuk*_DA@inZqLw z&pNiU;zTZsu%sFNSpa>{!@aIn8s7zXnY>WpFRL{fCOwj<2^;qa+cTh!^g1BUX$J~_ z{EC3q1b(tqO9N>emv72m0~{xDm)$<*175#IymqYIL~7~O-vu7!1KiL?>|8`=V&3M+ zk@b1gb+n4&KE1Jt|MeI*HnjQs-z`FZjf6ZfV9v2cejLMhdt4rxD=*>gDdWX0!Utg2 zsUY4N(rV1OXO0lkA$%*WipKiC0F~P(C3lLwt?r*Z+x%r%zceEOqJiZV#{+RhiZwvM z4y|Fy&#p8N24=BX(%d7YQw+WH!_)D2>FT3uIv76$*aQi{3=>vK|92oF-cj^N^2GBQ=6L|46vvdLo$3A1 z8erAf+KM?|$~bS@+b;MJ<+_2~ZW*!7+rdBk!gz@mGL7cV~ACIX+I2)N|Hxcb>z zG!5pj^X(4nhtIWxLnZHQCA!h1mQL~8CFsym(A~oEoLr3|F46@ocR3J@6YIl$3CetO$?gooA;K=}>8pVM_Q{8B*?dEQX#un% zr{86o;J2j)$CUI9b{F-#YCg|Sg%&%a>zE~SnTJT$5WIp^Gz5*4E4EIe4==u)$nOTT z3dW55T3>R;03|8YQSHkqD**19lXs1D>IRV?DiFY;A&S6O#CTknLvJ-+c|`N`^?W!QE~5CKi5NCq>T;xmZb7uvCabYOX?xTXp7mIthCK48sKl!}qNk zp*goy6%f;cUEHq5Tg?-J(YY}II*u#Tgu6Y5<AW)gXOq z0k6F5RxFSZC};Lbz$Glz1jpnX1a9|gs5ZmO&e}(^8t&E!1C1VC9$jam=yw_t z%)an`3LJCNdXLlNJcN*;8R@i)6eYx=(CBWP< z4L!9QvpVZ4U1qHq(V|SrAz2OK^#W)0E9cV=h+w}GP{ZzDiDtswDjnjD)~*DJG1daz zZf2C%8BI{W?DNX0Z{AQDD(-dc8Hh)!#qes=@uH+%l^1ly{Yug=0EX$_lu-13wa_T% z>ik^xwUBnW{1FFO9zntxvjgsRn!iiZSEQm*10R&`JhhZl_&Ym0e%DcrB&BA&v`-(- zvIRy_NW+#i9rML0e-A@uf?xZ%Ed{@ZAFodoJ2qUcj=wrNYaXGlC*I_@b#?fePQKvC z>BnNdLGr}Z_}#^0Md8@Dtll(msJbVhaMmD#3JmC!bufbG1OZZmgoYV{`Vd*hIWdP6 zG2$WO3i(Ym_iwe@h6EFxkrOnuc`e6XUGK_L2*;q^HtGdl@uz(-A!V?^-gzYY9_}SQ zOD>JBrJ$v**>5ijG`Z9w-Hd7lrf{w!H2r!&)l^91Xs|4Su`kl)GeDOMQa1AyD?i*}j*042 zQnpzp6_e9vFS@1U5A8QiVO}}_yPSCX6L)OMtDseyTx_#*tec+YzGbhz;F(RprYz`W z$BPR4V<*94;NHWsP`o|A2XGR<>(J;7o8d~US6~RAZ;0yQfWQj%0oyo=4BO`YCDG8= z`xSBx5ElIVgg&?cn(d;tExV*K{Sp29ONBKr=XwblVTUa^2JTxXPZGUsbR3P!@W@Zgf1Ou9 zBQG1g<7myr_uqfAuL`~m|Bc<$!3&UWWt$`0#T^J>IzYSWh?@Lrs{#JC1t1YCW>8|I zSlxP9uOj}fua>`;~V4Vz7N7hOsnc#0|}NhIpUw!nxcGME2H+L}72 z;_&*rzNH$89Mj$l_q^JB!h6_YhEgt_6VcXxynpFccFf2k=124vfpHRW*>r_avmTI9dNqR;Mq#*yGjo97@Pw1=v$DflTtQw~i*36{A%E?}`?pZZMF( z-G97{5kT9E5d4{F(95r${tD`2xodCV)x?gI@W@$nn+0NT{i9++FXMRle9c?VHa>aL zVn^G9r!Fqqp4_%MFw-%tk4s|twLYrbN%ubxK759E$tP~=*uE5Tx!FO^JtYk=)f?6S6$kHmrJsHmi-NT^R6Z^!~@iRnpzg0p9Z2AH7!vf`hK6UKyg zQ%wJWEsd<-Z&CNdqTlD7r95}F+FCdF-FGEvRls#FLK@Dh6h!SpYgebuNba2hz*t>X z11OH%wW+?ZPfwhgWO?VaKPUxV7hc~$$*1#Oe{k=3+(=0eUFOI;nss_hbh+J%bRvOSxDBH4E z-Krjka#seVe*>_~{KTUy6D&+*4p^ zc=+zXb$78Xf!c_e@vBSXnDJWwB?b7rR@L}5ZarnV@1iT}J9*)}4~}uKTo07)UZLuI zxNzYvIvYi!2GLWA04^s5{%?+K)yL^*bG#1mVg$lb=1e^gu)P{_ywGlfr$8Gk9zEH9bQlZi}@NGKpG&ZM^RCA`yW2$*PxCa`+k^PBpB$1 zX|iN;DyxTOz{uiQ@s-iqY;U7y=fmj~$gr^JwQx;jAFaM%^}*moaw2g}SZ~P%$Wdh5 zO((tT-;SE@(>GKP7>zu?s4920=W zu?lVyD-_$`OulseoBD+0)AjQcN3McZj2?wSh&hq9F2?LXNMlcJZx7t)lR!7MTxG(h zx#y1IK7et3oQMNvIs@xrZcy!$auIc4rWyr|+EIvF{yK$8;5M{6OdpV+4HhOcMpi^T zh*~8eephO~xiS%S%XeR!_jRXG5{<4rdo7{VWUJzv)9{D+rZ_Asc(7%KOk{Lj{w!J= zv;DSdtPmarz5)elf-<%$p3w_M(Y}ReeVEWAI2f8B|I_;267@v%zl1wg>m7&lXAUJ} zFEUcvw6-Jvl?>bp<4m{7KE}0TFdbyT9tsM4=vCn^s z(15>Xt|S=`VBqQKF3lKOtMK6KBurwtE2{}rDBhgmMGJA5s05E5J zAPAfC%9rD^E*~e&L^)-CTrBK;{IU=S9lM}kCi*;+!KUobbyIA+D+{7eVwN9ai&AO` zQDQ*T+MDQLK(%6+u6N18vE2O=uRdQPl{SH#c^+>ZB_6(+#y`#bST~o3Q~GvAqSObs zrJkt5K-Gno=@&D(E@Uj$jNOswdGZq+Tj?duh(c0U|=rM zTXrFYAqL|i9=j$5#Vu`ug1})}!`lL})C!TfH%pF|te->fG=d+lfOCg;XA0{End@R# zJ5K)C(q~0)yg5KhQv4c&_tzRiN{o*a7y$3Y6-GvIo*Hb$c`i~X0__ZnA04`#(Qy-ejU>S=2TSvVcx zixCVkx}@_f@;#0ZeM96l_7IfYiq~q@4k*IL;Z&_inwZ@T&Cyuf9ZpJoTE__Sc7~a^ zeM=jrm3CmME19?{ZF4uCVm%nKKE1+MgE^A=~7!=HFdC=Lz&o1LPIDD zj2VB6x4L{rCD;CSpd`-(tw=UKeFRZ^(Bl#<_eYClaZ0jHzpzB9CkQ>FnX+*dFt*uJ zqnxCF(?T(=hqNK`bJ1d$O8nCAc4NYutV~2oKl{~9PuXn;XZ{S|;;*4^g~}o#=_WrG zKv;_H45w@B)#XE~W%c3wAxIZxi@09yB&>FCh&q~|R#QGg3$64KFWJ*Z$sT~9dAS9U zTLeQD1c6HUQ4~z*9q)KMU_S#Vn{Cl;3916eVGCS)6z=$90+K+0R!6?+uz%*TLP5B; zyzzWv&(dH8lzk!ap^*6LLO1Tj*&KI$wB zR)$&`qQOMUViuy-1c1GqFKaiC#E_EjAGq6?Z>ja28+jgj9_sllz~rj&!v7SbVLo|| zTK1Qgh|aJ+mOIB{>ZfC#cOfI6b*)Xlg_f*`8yIbz@ppV9&$ic{EonAZvvv5n2d`&ilU1)!*cp2o0KgUN217*d!37RjuimOrlE)KoZ&Na{~ zvQeqQs@K}Oif+3#q~jvRDt;W4qcD`uI()`AO*R2k;J7n7L8ZOA7Q7hHI2%e}J7MVX z`}K_e2LY7f^=6Vk(-)-`GLHHW%)Gd8El$lbzq4#4?!?7CRh)$}OS3ss|jK9QBU-Cv{yt=y&fPS%rpRabdB8to*3=e}DY zY~om>c&EZ6YdCMo$vd)M(Fnt&e3bV-hO0e}Yqag-j^<`oW#Q-SX9@R{ zbDS7VK91hLA48?`^-u`9|7B0KLgds zaHc&vP4#DY`^b@K5hGN?!^q) ze&ml9qWxI4nmp=9{xj}WW~34nYPg@@}Ap}2DceIhzalIAfr}QKw|#Z7ta-@ z82`J`{)D$zv+IYh%pyeE=}cJ)X|xG>kRMhPKahFb(ze2}70wM3X)S`11}`FY+~ahv z^ROP{yv;`SYd*BeQ#aJ49#(M1#d(j>j1CV6y;osrIS0$1ejg|0=d9&m+?1JRlSS62PJ7tom$})q9(ZNo)e3ybrD^W}^#Msno>CMIXT{<&r zg)KunKhBChX14Zv-kd^BR!;LaIR#FeoDfY89T3a^{xQ}odvt1h^pN_@;+3akmg)HT zPgdP-Rvb%`CpV<;2o@cj#0fWk4bywkgp&tjIOc{3K5M!63^zDPzU51H!0zQ&AB_gC z&iiGNZ!u~ri@sUQU&oYXCzl44HjN_QX8RIsL)Z-7eg)~M`IML+1G<_PRt}Z1CWTU0 zpG6_3R^>=M{M=M)Ii@gtYh)(ViE9eB@_!<0pn{CxlLf$Rr)Up=?L*`9ZqE>n-w}F( zM8ZX#)vWXQkM&bQXugQsX5EqDIVT#+KUN5S+VLF^^19H${Um&SRb4zDh~?isPuqnHP?LkQLYUN7v#<#K%>(#X;3(e z{dPPD5U`&CASj$>4;;_LFEi&O2S-+{53pYQmp8sdE3GoIYx^L?kFr`-5b(Gh3P14( zv*oGzwo*B7NBxQhIGIElrp3Kpe5tPX=xXxRb$Oado3bEG3oDF+N|iSaH?EA^T&p|G z=`9F4tW}r(-G=ol;9Jw*&Y5%x0ZyGC-GOY@QH4@vRM0tW7J4gG+L?)D@=UGkGo)S> zzw2VY(LIWV^_<`{)xE%*Zco3v{YlHcY~Ki;P})L=W~Aq6w}#0976;Y2v{tF;^j_5^ z4wiZufH|y^%7$+YpEk<;LHsVw3ZF;#6s#)<664dfxdGZQHV^6ETJF4EY;MEY{8r98t_)M>p zg~Z)2GjT{Ad_(`wPp$dCxj)P5BLUlv=Ul!ri`zM$*vAvp6=`LBCmvP}@IAxPy_#Vd zbwd2{C#MaGH`Kk7_@M8!kjX~vy&uez@J4dlxgTn!bREM*6vU1!UM zOossv!Fmm;liyA)WCfOUEV=DEwJm%6=h8_A0fOKe*#mN7i!?A^QtCKR2Je&ucLl*+ zp26=hlqPHW+Bc7asf^+gFkUH_o~`KRQJZppYPGS0aBMcqxHkCbrs z4J0FwO3!cWo9Frz=@8x;rn4;Ayw@ba-9y&GNg|rs5vKN^WP3Rkg~AT7bjqQ=Us;dF zcsk1;%QXNJx(#nP%0&N~c>7N16Zmn@rCt!+j}UnT zOrfbjsU27g=6k~Kv^0wm?-a#%lFxr#F2VaKz;sSllfeL|CB;1$be6b{`v z1ZTOtI3G4gKM>84KoC=J0YYP!L`DmxC(WRXxyFOB`GavsiRo(2cby3#Ibi>`@T0wy?}b+v6s(^^z^&?pS!-txL+#&ZV@%3Q>E{ zikUXYm4-~YFK+X0%

      H45J}^x_=u7x}d7!5#DN3&~L?Zqjm=r6dzcpSM-ljvs?Y# zpFG|2n&F$8<3q3zyu@8|g{bd5DpUu^pfF@9H{XM+l}obb>vpGmf+OXJZ>8vK2?bhu z(5|}(;cv++@x~t!5u9f2DJ@39mbd$+Qyb*3cU;jyD!MKyRiJ_~+2|saUi};I?4}Dk z>?f5g-xfaTVzgTdu;kJUi_ehx&Ab}bDA5Jr4WT>BGTt2D(qpN;7YzcCgl2Gz=pVv5 zOGv1IFDnLJoR>JfWiFTYCaKk*h8H`$Y4B>}x(7;5MC-ZMAIpp+I+}JZ{Wh(GA0wN~ zM~>$T=$ghqOAJPdZz^Di+$!74MbfaYSEb6_^qC~`&U`>l9 zf_{87{x3${?$iIiv#q1RT`HxKE0Cze=n6TeA%*KR$I}c*aU?=6+aTfFMUNo+Esa z8^B*+{qdL|=9?zdpN`YUOzEq6p?+}s*ZU7ZJ^_vB^Ss{`WNK$AB-O^{@p}uW@5Ii4 z2B5ep7`Y`hop3MKA#fV<2)uT`>z+MQLXseymM_&74!`C;4=%HxW_YPd6nskWuV zr1VKfT38AcwId7ZGOqHj@;;CueEZv+WIVYODSPqnP^_C66#A|WU+ieQWjC`?GWpM` zhRg6>9po53r=1qv-f(~2FX=h6@uyFEbK}p425(w(FLE=Ee@|Rk`QGzoMF@AF6m8Jg z+nv!D6jnR*r^_i{@i4t2P?UQJbwJEMbpgIM4PryPkebxFaC7+abvWZmm&Izli^O z)0Yr{){WM9(hCq?Kn_7Wop_!Bb*VPXZj|E520 zi{mzKS%QuTWO?_?#fu2!dPBu-!>5#P@i<3r`K{TBmLI{sJBwHS@R6RwcT%g^%feTp zC;iwb=|ul2j?aG?U%6jH6auE{m0)o5}-@Gz^!rkExH)G5!lOx-7lY z^(E{zW!isCpWV_myI?Qe8NS%IXYw0+dM6OTB0X>ODNT1GL%Jz~BX|~k{u8J~K_@$$ zQ1U%vGjRs}T2Kwks(XT$tTdb%Zd0gC+p5vjYHX}aLk06)EWU_yl6$Bp@Y2fbZvu2l z1MleBefI#9Eg+_;lM^1~ym6DPk3_Q<)?7t$Q5L04d7?T>sbwGIZ+y5HS<9Hpr!x!2F?7& z)M`o~VdwVmoFeLOth;nq3=Nm#?{86Po)o>FP|R|dpjE;#9C;Hg_V{%8E|#p^E6XJ zlb9xGA6T?4`EZ342>H>YIW8VZ#cY%_r24vX9b-jw|iW#Dp2}poHS4hF<{RZ;}7% z?cD2^J$=6Wenq0aP$c(7$~2{;DTb<>e0qe=3{9jG8*i4l=+a+D#D+&K&v84%RpUEB zwMSTFA+nh2rSH@Jd%gN{CUUpk%{0@wXL)gd?{vjc1A*g$P?8`!tn_$Q$4F_PePAg! znPIC&J=C#gdMK2*-s`+1LHe`Jwv-+Oyx5Z?ZbxRvJXpG{)aOs=VPkx*ER*n={M`CN zUiJ(>RIE0fa8GOnX3Kq)6K@S34mckX56vYYoKjZ#GX87m zx_W+Ohd>=&jvw3M6vTm^0IVhqNVK|4mXD(M&iR@5WqpRQW>9xXABh4%7!?Iy2)-ZE zyr~R9I}l-UFC6CkE@+AH7cIVrzhMTo-*B&$g-Cdxyoy0ikp^||nuT+@1Vx&*o8Ii3 zL5Gg?_5Q~+Seo>~!IvBoM&F;p-JJ8wJ^gpkW@MgV!7kngped7!L!nrZ~kU;@+ec0E;1 z^@9Le>@ml->J-Ua6Y}In=^lU}Wf=lrp*XM2h2Lqj(<;)j zGD-SW>plzD^IaFl37nnUQD1E~HyGgl3n;@eCxKPPzUumhx%+Cas@2XvB9fN=?)`^7 z)_R72_CBZEPBzf^^w^#9t$y7S?iM2hpP~V?=nWH(f`9ufm^cCVR?*|H!$v>AYMm6o zLURON;U(i0v9Hn)uBy!0AW1}jBp^qmi7_mTs}!8oGDyk`lG=NkYP$fuW`Y(#Zumuo zCf`oa`QqiC`a6&6JNo2B=%CL@Q;Ox;`%ppjr5?!4@`<<)afo(ioF!IS>04g<0P&F& z>%PF5-@psC1}z}4#7bAB5P#{mW2`tHGBbmd6LuXxN7Viw1aZ-F61+M7&BwXHwht zM4WVL_t2`rL_Ry+vs|dW6#r%~5>fvK!0W?+z=_^G#+cJ-Ee?|7GpQ*`nmvG1-F)=p-j^sQ$YkBsIdVeGlzqkaK7soz)e!XN!`U-?Z!1~G%uorJ;x&(x~&#)oVgTORbb z%$R#58Q#&gdj$kY%cpNdZO@KKb(xM^wc^-V_I zM-lzSwSF(cYUMNHx*~bN2#5Yn0`EtH0i}SR10NoF+U^wxX!g>?x-or8bw4MD>dyPP zmTqHnL4F9D-N&k~aZI23^zCK&r4PM~Ns^5=^OX+ckEs7%f{vXAY%#VJvOe4a)%Bdi zKhY`Bi|~pbf@uF$O&b+~GD)G~X!p)a6-{fwZpg8H9<^}TX-jz zemHVX@psqh6t`Vm6*nF4Cjo9F&3fF6giCp7mG9lf~OU-pA{+6&1zb zylpm*k6lqCv^s)C2>mA2I()T{L${p^NeeYe&C_iG;y$C)1_@s*ko@u)0V10IT{d1n zeMZ}w?Vx5*O(={}yKz9iH-uIQqmw0=;W650LwWrF zEI^aGg!uOZB1%HMAWZoWFOS7UR3guJ({f&cv;6hHdV=oz3%@>!`uawBTK0Vr4_;z$ zlxL$GT~j4`olvpm*ik(Og6E#JeGKD}``cHT`cl$gyw{lc zy(&c3O9ddleSQacX#W&Kv5^HeV*O;fCx7?e>iEb5{FH4<8kmZcb-pWXzBX8+n-S5wxK)B&?<%krrt z&e#>Qd};)6=+VXkeS4388}?%%mO#ZWr|J)V>-e0_?)}_KkZDD58nqn{!jQ7JT@Xp?C{bIcFvtYzPi?|mhE`5Yj+4$i}Gr;Ok^Av^xV{CO|3N0fh>CTxn! zBWEQw-9tp?0VT1vnC>imA)#L&-RSD(@d;;{DaF&?_UxXPBJDKE)0f@9=k2r=Y0W?F znmQh=3}z`sJ!}i3Mf#mokZ+*!8 z(;k-54whQ#nkH&BewP0o^^fpII=jfKc6oaxprgvSwwM66^XiQ6G9K|(_&zPi3$I;fE-qt1h@ ztAn17*(cXuVn(9cwM`3l9q&mbsJE-iy4`+o>ni1z-qYmCKVI^a5j5=JyJsV6*Y|?i zUPQ-HWEJi=RC{l7Kw9e=rH0(a69DgE^32v-6r9*;q6uk7P@1AgDh4nWcdYOFMMbF& z?MxaSP+!Wa4v-&UUdK+<)bbbid{ki?xlWCTGslzk1c$x+Ix4?}n#*>Z>@Yrx%tm%pr_t0EGUvP9lH7>l3@7B?sG zPxBi%PAB?1w3TBphftTR=5M8$MHds(z-RM@U^W$!v88idaGuox&5sY6$6UcDm_W3f z5_(hKeqajEa`%snk@Z6lsm}8S?>%W;>h}cASQ#Cw4jv3|yu+Nb*-|+Llb}l?lCqjY z{sN^y|La0THvGTT(DJw>x5+^9>d1k0M$rqMyaL%*W52aEabrAcH4%PdoWx-PjmfoL z$r(JW$~Ct-&p?D3$ytVUF3Bw{?b=3yS~O$DL^2CMaG$hl+t_eIje=dz?!hN++2U0( z+!cMR>N$o%p4f;zR3qhbhr6HxKtR9+%Kr{a)4Gs{YtHwUmQl)-T4V_&8{fn5Oolp2CSC(tDo>B)f=DUc67y2oO3pi2D`TITYDMvI_b zFX^4zs(ZKJpBnols!BA%DFtJNhjNfYt&fFXL|_iT1V!Wij2j500~9HTN{Z8r5*$W` zi|c|Zi3HQMG|j2AefAuQ-o4Tm%mZ=G<_5Gw8f#pK6xBJ9=(LWn$fcY7{uNe(>~Pt8 z)V~z=J4Zf#HnrCIIfgYUD>^{b_!ioEQ93VAxy{k_gtV3dz!a9Z=!~#Li7qGY_qu18 zN_;g%kW>VZ$!E>yjtMqP-D4nw>OxN zNY3SVoPc||pug1WnI4JRv@JmFk(QRTtWcBI>=L+%KQ34M6d(w3$xOAx*`jfcki%SxGhNi3+_nrF<*5X=1fl-k(#j(Ja(FF6x>rH?qjl4f} z+0W;p%$Ib(6kGAhcQtaX95Ej|(V?)Q2gG}K+&|Xh6$XOhB9>0xB=&N+ox)UDEu~t$ z>FI|>$%nI_n?(YxGfaHiF2YV{qINq@OyT8v78Si#(Vfa>>}BvonrDP}kT=OR3st># zNz=j-szIqOea5eEmM9O@q%=t)KgfeZp{j97ZVzSe^rwu><;A`A!sp75pQ!>-PE;>N zEhZD4*=|oguT6G4{@Eb?-w#Ejo*;Jm__rst)ZP~_PV$f#-4Q78+q|Kr|2`UAfg2az zCQ5{P(u73o<^Te8*|kHp5JSRNv=y0;3ZGZKtug<@H&Eu%Gsb7FWb_?`eJH&3zrOyn zD+wM2+bN_p{$w;6V9(MD|D>6^-VZL>NnFOV!hAq-ru01R`j{U%{cC&4HDHvjRLLYt zR+uB{W3PW5!7=~DPtwntZ(jV@B}CoaATW=T^qyMXS79zOtN^60j=*dL_~h{tQQ!;H zqo@dh+4h{cm%q9CdYZiCd+Nf||9>>yWmJ`U*9LI98|gZPA}t`@T}mol14uU#(jf{0 z0+K2zNT(p(AfQMo-5}lFaNhrYc;5M~H6O+`AI4d7&VBE_uj^OU;llC&tG8r5KkbfJ z_4Kf_`DpE?(TNQGhqud&5dsjTH8LQHlwtca{~QP|;RJa`!)x#1EDoMynTdg58B7CwP8LUVP)^O*shr<@UX*pz1<28$nTjJ~;Ei4K zaqNl10~X&0zz6y`s+}0nwlV~|d`=Q_Ne6Xg-#^Q#HD=W7C0mF+>$&8mtBDf?VMXx5!->l`@V zu!?&kx&EJTDm}(ZQDU)n8O}La00=aRfRfhus1wmXhxNBx#|izSS&0FUN9>ejZGI!b zW9nR=7*K?rV+*q|F$ak7r}(H}JpN^S?>>WHxM{W?mZ-+shB%fKE`VCqI61pb5cwQp zF33moG3HCiN0Gj?7Xv7u4qb0lMxr?5`Cw?u%8OS9S&00}HinhhLnVbRf^r-n)K#gD zc?S7b0+Lk*RilNxd7R6*A>(f!Y>mhNhN`oTW-I2T8wF~F4i)Dl?CT_&y9c>nTr61> zyXoa&>Feq* zSwo?Vet|c?gKTcaj^?w3He-A(tr9iTTRRT_yQmN^;4X^VL}?#huyuW`I;Bok^+UJv zxg&Z|n$!RT#eFM3MD^jm8Jh)0AhK(EgPBX%qrC+P2Y^@)FEJ%Y`U?qZ+G_Yd6S1-+3%Jr=v9yBXl^ zi2SqqW&~-fc?O{EVqGFVz}|T6nDa$zxBv^x9{6PX^^QjUv63;=!oI>deyV;W=_2d~ zWc|$m2E?)Amn~*zquSDG@{aEy@{8*pJ)5|;4~wtFEb=arw=^hbAFN!P@Msg62N;f{ zE){N=gu$CW?p}QNuoKJXlJTfz6P1QS>=fm(Bl%+qP$ZZeuaBRu?s(q^$>q=a}F2fu3!HU z#a)l}FgH%tCrR%@z~q+7XQ#~p)AWk0)#qKl&!&>u0QNuV%e+9_oXuX7Z!%6nKNoDaH-^P(ZZ|{@b2>7$;IV-{xN$` zj*sp^$&vvK&IlmO{L6A1qPzxY1wpPX)qjIV0d%mZ*duiWy z?s4jOO60Me^w{_LRjm_$BLx*njb>5{yw44t)b4Q7`8+kUV7dWdix2!0C$I?7hmlMF zT>mh9Kd0T)nx`ry^&gNkdU z!_fP6Mjt+aq=R=c)fErTBdosNxI$N-ql9b$6e?UkXPlthCh!VFEbnMO(+9Aq^sJ2I z-OwXsEaE8d1!VlnNR(jnBe}=LWoTG^?=Jb0RasPpbwhgf`uD}hqa5ktdxf({YqDRv zlc@FVX*Vc>xJK@QeEj&a*yIB#MXj?hy9%@IhBl>DEgk!sid3w!L!!2H)nJbd`hZD1 zxTy*nxz)N-Qn*aw3#7#vPS|Wmg@y*PK_lixl0Q#>+BZ>`->MM>`zV98 zI1~xl*db>1>%ALu86;3WqGQfsbiu87{0|*DH#!7lr3pPczYGt|Hp5a(j(_3*_AKD; z_W%2Hr|0vFa5b7+9sl`mxb{C2^_Vnj5dqlQ&CHp{Jp6PEnr^j7&JsPG_>G#eYM1f;B~sz4w}fi!pPakez0g3D)-p59Vg1MCF)B2( z3K}4)8x6WJ!o1Od+|_a9;!j!>P_n-X&B)8&u!EVBmPd}iH_(Gt@-TSSev?!wZ_yu< zG|TfKPbz=`Dbv3))3TJU6?xRuks}@7Yp@yzGAh1CiVaomq@_0qVboGWl-#UNhn$Cs(Dd5GA7Bm%)CN+K%_$ z^lX0^(9*0e0Q)goNH62?KFIL#{n^4jM!!V)qj>YI{WT)D6$5MtKlfnnY~JSb>zivU zo%vOorML0imki77yaV%YFa2yp!gJ6P@A7N=r;WT*+IVL7;1r+86lw2K6HmQ3(iM3T z;*N~}1}j)MzTAVJs*IFr1~=pwF6Cp^*_i9VAUe`83o&bvcGCSky4oA@k#8N-A?$m* z;ShHE5cUG+z!E1Sv4pOJq7zWrvO`o0iXe*1T!}%6Q3R-ZT>6hFK%QavZM7uxHq9yi zmE!bIqh+qc5g7GKz7; zR`TIAc5<&QssEm*O2__LAb|1-O%S1-l%Ni_2SYiL{K@*~bHge}cP8077# zH~4KqzTVPMzDq-+s}6!;uE+rDe=9lS*RgZZ73d^mgI|Tcr*x(B!(|+;bz1r0EhYluO<-HgJ8>p0ogNksD}2>VLoBwsIbrNvo&A z5xeL0a2x6Rqtua&Ia%@fyWmnYy06IWt%5UQyE11mAFd|yIbO1pF=>Y^0iwH-Gaqk= zyy)8sS$#0k-yk|?g)e6=m}~=h_4#WV8GfQ&$vr^A?KLwP8@NA;10}z4-d=N)uWaP% zb^6i`cb~a}I)wCtxbLhE8e{Yi4fU$aZ0ULn!Soe}O2bAx{opZ+i}GAt6Y{s|7qxxP znBaYQUP_2We}=UNv&sImZ*^8~KP@Ug=|3%bupqtypi>RL5KlRvrIk2Z|EM&GCZhX3 z$x`MqX}>&wT=9y1J+-@8UjWycz+J?S`SWk=21!f-$`@7u1EVll`dojBGF?7VYcc;W zKx)E0&@;`}wQa;u$Kh$|NoQ$3v=p#$K8cBR%~~iO%piufuwJO7A>qqTSxW=RebWOd z5`%KDnO7K)^S}Q6V~1VoZMoMyhklZMsTqJJ(+I-+2)6CL1RAM@JHg}ney?l0vsV=j zV&b3B-aHOaZ1?Q|?Lh+oK`0f7oxzA$v8dN4xC@=W8&Z}C>e3XqgW#hYzfMp)aygVw z*lstgzU5_DyMA$A(+&4-Y@NQD-DSPBPl7(aXfq}1{oK!%Lp?`C?dfg`^^W>h)(>;~ zV!1IrV(WXZ$rUsC0yCCRf9@nqvmW-*#y(qGO>u_9Z@HRMngJQMuZiz4@C&Wfb1K1< zlU9J&8fqy!F?-EeXeIK`3bOBg)p#@8d1And}_;;Wx;b6F5VT9X0Vd-s#<3%Ea;@-a!XFVXgi1t1e*` zb`y^sasErMP}j#iHf+`{kHOn4#7$ikfDFTUB-T}$dDLRQL#J!4ynI83_$3&+s1Y}U zr_&QIGIW}lBgj~m|8Yhm(`_g#MG(dS;rqD|+r~sUq0ws&@<;^>V#I0c+6zd8(>nkq zk2l5+Rz|KDRh(l@d}a--_PVY=KLgbT*;al(Pe1JBqDxO!RoU1Kz6s^W8F(m+x{V2e z)$u@7B?YHHIrZ0M6&0`-;RsWR05YzI0QGBdV)364k#~ex7aa`o-sOu-T4Vd{f-{oe zJBc3|DBl{lxf{d2|1x}08oH3#E)^Ced;TB57@_e49NJV!)&g($cLC=LqY18U@`ab) z4PvwHoR4w)WwFRHqr!e@JqqoGB5^H(-hr%C)_sp_S}9gh?kzUocNr+%nK4o{K^T_# zm47F&BY!|(+{7snYRass)5Y7*Pua0DZ~!K{$Bc+^khIWvzvt1zNU1pifGnCn24EE7 z0B}26Uk72sQQBWXp!?+_80P}OIJ z5WH0+k6;m)Dxb#A_-+EkT*?u^Yp;SVfKBy_QdkW;fOFTRw*ILhuME2yL@L8PUacPf zUWvPM-R-O=44cZUDReSF`{p;<{AKk;&&wx0Xy8Q5RGiShe5&|Vc0yvC-s|neH-OJo z(i_0EOyvDVi7u0pr8b1#)M9E@&hy$O90;N0Qj8kbihBdq9G4BdNl*Pr7ECPRG%)x^ zVnGIhA+|0oF}k5O7%BS)Llm31C*ed})BsLeJ5?I;A_e5`)I@eFwZvseXq~35cy07( zGXxPD92-g=3ig)GIVe428Wc?;cpylVN~iGwFfaS`AgUL$F(Nk?c0wLgGp1GXy6ILR@j1G$7 zo*+4Ml1rA_7` zI!~op;_aWOR(|gHg0(BE&F$K?D{3coY3kcprK_PHGQA?EE%UA0Tr46Agdp9IQYBB~MEUy&|F3Y~LCdqOAD+fNo(qW6W9)i5 z53yCR*Cj~?996oZN0k6?!4LaNL%dB5$U@mmy#@~E_PgFj!Fy}ufb2kO8n1}um!rI! z*8rNZXBy~;zKg}pLOf408q<{#=!G@O%`xsplzBuUZZ}+`W|(Rp;;gC!%so=1$%z>@ zH+BXHCK+A?CEgIHI{g;3rojTGjG?A+^~@ehtM8SSlMm#(NvSlDH1^Rn+D^%*jT~Lv znrtqvSpAewz}ynYYHY&-bYLE-S(b?8Pf~@`830ukOV==RK)MZ*U|zG5cR>*G8R(mU~f9^`$!^DnbYDl!Nq zvH>y=_nmV*x9$|8k)5{>C_X7Yy^*?wiwdlbrs;Xi3C&9)whOOax7hxrD7Z@lNL_i5 zv^Kg}_rx4&1$OO&w}!KWnBMV?y(Va5&mleYw>~mRg|E^PJ9uRMQS)FI&WHAYi+HyT zem3+Eb#CDBo-0Rw?^S1GA*(B^a{1(M3itiSVtfDOAAV&@`g$+vo#Y3cuU}q2`}Rid zLpqBrNhHqCmN$*RXAA~jwFbdwK6(UYZswfiyr75AirK6-tpyCE?VR{ZX6CmIRP*or z-fO*0xQK~C66b=znmC&{uTf>cPFz80QCDxHk#JsrQEZ8KSw`&=O1r3GFE0-;7p0t_9g`S)zsNMWlCAW@#lQ%r|_A+0rh) ze`%g+fNhR00X%R5dx``iA5+3?Ii}v#Al~D?LJ%YK3dV-9I!&t>Y?b?JPuAFJ1s~gRP zQ7Zu|c_<_pMX)mRX<3ML$^28WLpPe=AZv1xbg3Gk&?HHZi$esSuCxe_6)u?q;-?9j z-bXMmVHMzjs6`}4YyQtN*5ED|+4n<6E^EjP4_JE7dODnEt7Dvl(#`wctxk0Y%9q{O zxcw<5${W)jWu>7Hw|nx5kOzgTPU{cPmTS`IE3|}g%!S*t1f&Diz6D`rHGT_UPKLL9O6jH zN^MfRhGp(8CB-)exA($I(r{&<_o-;?eUC!WBU*$!H4Q1N;3MBAmI@LT77o7@z$gl_ zhed!jlO=9Vjl%p99T@lo|H6tWy5D@z*>gE>5jkq8jBCdTr-qMiV55ybM3#MMaTZK$S$YECG*! zxTjGN*srL=FaC_}fl%xV3I<j&5weL~E4MprpL2{e?dVn7w6$npLudhG^FDr5Osrr=RSyJb-qvw!8VjGob-HZFs=e<}u~JXt!?R z3Zd!GJN+uV=icpghG>Eyf82@pK}HXbd`#8Mu&IIA~EmZJ03o# zh6GDM6K6~V!{p?zjC1FL|?)l5=Kht65_NJpvMRD%jE5^S> zdh3PPmeQiy5u=6?0rN%S9+6$@__WV{&b#&Xaaw#iR*EV_xLqifNTGvhnb?x3c71=7 z^SR#gV-C`adk|?;#>SO&WX_KdWf>v*x?<%*U(0@hiNNI`sq4)MQ_kp z!sBGnCnI&?tqK;Ll;wQuD4!oGf|wsA!c9^x*vuZy^)#|dBP{^sn(PK(d@KY|d{M{& z+CQ#8dHFy#mP?}McmgE~Jp3EKmAjFExJtSK$TxzJ3XbWdonO27QMNGZ2n^?M>4>;@ zPnuSVw~$D&n@Q;I%V&t+Z-uVX@*h~u|9}rnf^H3Kzf7GtAoaLn{R!|=jgMAA+4t{1NNUX(P z`Ne@qfysVP;b^j~KsKsA{$v|Y*4-yGesMt!vm0Ld(>K?ze~i2;Jknm1iN{f3zgLKK z3Imy91w$y6D0-a#Ezs{S(wmD-PwsLjx9|tpT&iQ8;Q?r%_|U9{@Z#+u;R-zEp(_05 z_Uh)0)O+GRaSNlr+&Mr)>;b8Uclb@$r7S zZK4+c=o5jzPPBKM4ZB-x3fk{-?_FGE((rFy<`Cbu?t`>6!e|$Wv?8d_3{H9VF@>?v zTDw2@6A>FRfV^l8F%Pr`6#e1Dh$sMOZNb_SFk}8tWq97lX$KXK9m8_@6W8(_j}OzsQLo3=gIqAi$>C1dVQnr`x483y=O!d zds9GzEN}7K(aud|Yl^C}%oX3@a1 z+B*^S4ui!KSMu}n6SJ*W@-KP{BO0tNw03t{^vvDp4S6dF*d@uC2V8I>KAXTrdu0 zwpM_P`fbrTF;;K&UD|!s@?+IFjbE%Q2}E|J0BWJ9&Q{)7_<9W>SOJplw*`YkLXb^c z$M;U;&X@LoEJn%vCOzsBuSK$@<$X`7)TZM7C;jEn*2c-PuQ?(i0!O5Wf>P$Z?9gPT z5oep~6wmLC-#p#TgUhGKG;y!^G*(0Y4uAr%u=PKHc12V2_+e;Z4!~?%XjqhtlLuBE zQ297J`JOa|z|v?2@Yfnz8FI?ODJm{v(~^nkkF23G>OTv}(g2*dGiD;7+F!1PaXxr| z8*q%Hd!aN*9L*5}wDWfWC>?&CfQ&L@_{$g)3l)@0uYkrDI(hIHT3Reb8Z;OW2?i%a zZ>-9yT9d!NurpYI{`dTlhDv+&oLC+=KvY1$fx0pdT6U%l1#Fld)yn2f%NYcuoMZ%UInF!f2ns^0 zeUx_Z3C;ub*`5EugZX5CTj9bpSN7oi&j8K&*ac9JLCXGxi5=y%4`MFJ`#JTgv{8QP z-?0$>zaKY#za-7;uLN!LoOff?F@J{^0fuKDAbR6%u1137)60AAhRfBxcF3UbjI}33 zG+VuZ)YYOtQh;@=ZE=gxEa=?#;R**3c1*BA_eV_nw)SFvH3(O?CduiAoNXW=nQQXF zOJ(Z*?g7(S8|ap8MuSUrOL1IRbx3h^p;8A5m`Ls(x~0Ur(Ztt$ODf&nx)g$h&uPZ( z$1UXFog_z4a9ef+<>&wXyMdiCE>Z4h>P@P$G+v30uamt4S(se{P%?PL&3syr;#oe( zlN`L+9NNkrmn#qRE&(_X))F(GXymab)FpiM2m??LR5NcQfL`>pER;Z(MR*}yzE>JM zCnb-P$ghw^e*ZUw-=u!sKD=Va%ESlIwN>tu4SW|KUoyrOGU#lDpss_X=n!zfWuY6w z|9QYsvz*G%CRX?_4Lvz8MBX7b#oLc)n=&(n5*5QOmCE z4$P)Eem)OepxXwXG-dZU_5xVfXBT@%^O!A#5a*nf3|RX_dUeYh0bql!id86F?OKC^$G;%{^R?~`!qxioG%U5`Sy1Y zfcl{vl{i>?kY(RLBl`J6;m5Bke?~nuZMyr%gq1t*oxB|zbB3gFNT|#tZZ{9~Vp*e+ z0@uZA+L>x-wXt z{Gm@oCXcR#ybhuY>Ox-_nCPaAh6Ek(+^*nEtuVe)rblV6oYQxCaxGq#sI3}ukOt5S zLqDIzZuKp`pX>W`N_KO#z5L2yBEtgW9`L~2r7D7k#1((s72h_`+Wx@-3~epT1Ed^N zKlvL%@Diy~6BM6D;?`Tr9!;FSzu(qJvy6X;vEU)O=COov$ZLt%q$!(YvX1y~#u32t z;%H2o#pxme5jbw%tdn}DNddDLNy*i@=wDjbc`n1C>&w#&hu-Y@65vUbb3P)Dp}@}m z(LOj8X6iXY=o_gbOn5p7?xpFeV?3i#J5kQ&hJJhCnt~akLNjbi$S+`0KZ_KOI@hQ zE`J3HMx5gz-}Pd+`ig-VF!PhDOM@F}(LeD75!B$^Z}ButeoYYwO;}qNd9@n|EimFQ z6V%J?B0(Wn?#7*H7cLMGG7Tbk7LHwgg(Yz4ygQgUJHk)5KvbsSItWm?lpMEZAwQ>@ z=2@;fG`QegN6b@Qnbf-?gK0Uz+{k>V+RIR^{o~GWFY7S3UU2z{G77yx2tFyXX>Lr{ ze3(c>Y0+c}puTr~%?xuF1sXK>*SVlFc{DSE7FvI*rcOv()fi;9wLbQ$j_??fioHD8 zn;9>K+7t$XwFU%UU7wa6gmd!r^&Jw;Pys44L!E&mz&&lrrx%Y`bg)VZ0nEmz*&n+o zAeHg$80!C0?;OB_|5Rp>=yfqM6%F8*t>m^ioWJq+*e*^;+{I_k6|0HVhjpLeV2jEj z@_UydO1G8eH(sg_UsQ&3A1*@?W2R>}Qu2}v0nV4X1_8)+}Npli& ziIK*d4zwd;1bbZ)=O4Bb+p6k(LK%JPsWaOK^_^3Pou&emwqPbaWnSy@DBn?iGVNPj z4VRPAlwfahvL07CwLSwR*p_E1>NJj@%|?5GMY$}^SfrkB85BOIv=StiI=%=qnJ;r0 z$JF45L?p%nZ(Xg0`O~mN4j^S(?|A!CU;J(uGTIsc>#u#J($9Kxc*fJ}agp8!@4m6Z zUJL?HA`G|H7)WrH-$Vx;NoE|a zelMVmC4>!x#J1e5Psg@|i*9)S*~$$=q^a(r*QPt!OiwPb?E(ZL#E=E2MF4rxuk-B9 z9=czC^WQmai%NY?@nVJt#VLUkW@xVc+i3n!WTNK2UIWw-3$iX@8EXM`uhnPWIqDDlXvRmF6j?pqKv5noppG^2gYhr4` zw~TC?bt>~9djMx@3zEgHOHmxfSg5QWpUXr<5H7b!v<}4)m_#H)kaiRy3s_3RC>ahC z-@>=m&`mdFq-*02nuY=45j&FVs5?UBy0Hfhv_*R%YHawcgf4X8%%LJk?Yg&~K6~uxaM8*)L3^E9!NaDEo1Yo?hKOS8# zHutUp%~|b!NoVYP&xz_;+*OuI?h2XP{v+_9tR^wUE=3zk%zKQEm?p|RTKjy|e*v3{ z^!h>vzN+7gd&XY)Oq;DjZ@PGAv@FZ0U&~{JmI%~BR#Mbzn!*r&zC>Q|FSn+_-EaFA zK5qkfAjFkMI*_q7&aAGR6fyP^ATpo<)MoT$5s|vci0TGRM9?DUZ4$&h$O=HqP=#c@ zDg4i#viH7wq%q1R+f8C14sBm0EpC^V+cR2pzXFL7dK^2OzXN&c;n%K#!cuqx`Zgu} zV`SAmI5ES&Ah6_jUoF^J^q!QZ8WVT@Sh8^Am7h`oWNeK98r!34P~FyB9%shbijsS* zzLEZi2IU7T&@OIE|Clf|{|$g~7ysv~D)u$~&#q^*k3tiZDKcVNlG=676F~2@^uZ(S zjdcH#hUJCX7&eRi`^74s2US7rD7dm6D*p?Ft;Ykz`(CGj7rHni^_&j6530!1*C}B$ zAFpgenGmhg%@To;({4NDM5Oj9@iChn$%KJd zayt4?xrDb52t5;u{_;F+eSD)GAxRqW;1W+bDotU439Ez0_dCma%FI4?7H6U-1=k41|1wBDHAW<~DAakxoA-}pAJ&vie6#4w zvhw=5{bAC4@0<5zBg{|wG+D0kZG5QV-OAFFbrBsg+rvaecG8a<=-i^Dn*zh5c_bdT2p zZ`HU3q5rPtcKmAh!ryI>{pH9rTOVdQ?;}!Mx_VcBz9~!i0DAFequ%7Pluo)Qeen6+ z{Il!4Bc46P*6q5T@23o}+ZCRBnXjad0$0OlYCYx$xLyV&G(CQ0cc`sgmT4?iFS+dW zdpb4c5z6^rrbBsf>WOO-q!sLSx+{QK6FXZwT|xR<(#7RngJ%E}t(&G-M6FSUQEu_CUBwE5pjg)e27 z&Jx?f$VCj&wz1gw06OyzaB9*5Z#YN?=!VjFuY-xD9b1+L2YHs5xKSDlXGfe3l{Ix? zwEQTFZCJr>L&CQAicqi1!{Hy3_&8qZhU)mK?}#Klx>k-`@cw$yy-M@hevc>GFT%ENLA)JjhCzSnI-9v54eHm)+4f z(QD!~CFi-@`;Dz!3<>$l>c#OngN3vL1hQ6mbQ zOiSI%Q|wMjH8{&Eue37|?e=XTOZRnMe0>R{Loam}G|lI>#jQr43YA3;cIcw6#2BIS zR7^+qs*Ey`=6$Dy2cCgmgnY`jE}+U17@@WgUwuA8{$0Vz)k~x?%_OTe2hdT*GJ|Es zo}8?|J?XssPsm)_`=yfijJ(edDr7uWcPr;)_%gUf-7LQx)fcqQ?0UtWSV3Ck4&V1qC2xdH!wmgn4BL6bZbR)@>s5}a^|At>0 z;JhS4U+J#ntpUYi1vqWm$=^n1GZCjq$fFu3Iyc7IwT5{hkvhx$+52B^Va_Aw0{ZwE z7>|OHvpyAqhO6l{;w}Dn*gclxjJ%9h1w5Nkmu<5%{j+7f;XYbT4^3Z&Uww&w$oz{) z$R|RH?hK?mgkZjk!weCt3lozreGUTJiRc%J>1QO<5iQ%A9HXk=NucfJAtpols9;Cd z>7QOO!N{i;q<51um~vd!=Pr7Fya?=@e;DNG^Fm{_L~>%q>7xUoZd1ZeX&7JRBOAJj z-3yJ`Q$kN804xwe%k17ZXW>#=8@&40{}Um|XsQXGx$phc#GHjnMUey%*8vJA6INzK z^WEBn&1sRqW=0Lss|SZqmZ^ryhXG_>Gtd#=4niyWlS5|vcdflWu7;|APFXqe$r~yH zp@I1T>xAUA&DBgG-%UiIyc7yFL2PgN31E*?ereO}JgQl98k{CFp#U(Urjg<49q)*Z zK#Oj&;pv=OB^S(&*VtiADswC@?qM7y|Hj<5>Ka>rTqbV6_fl$PrtF7q$RmtN>mRt| z`xHZhIq$3e)Xqxzqqgz2E${~re(sq&I%n_l{q1_^@Y@_hxq_zvzRyw9t2uG3dEypk ze@y72HMUaepQ_-WF;U z4Dg0~i3-!D5iFQ&0NC|99{H>4=-1~5VX2JP5ma%%;%Y}cdku9d2qSoz*kJqRbVyFh^VI>wBianH2Duw~}ryP(y7L(>_pp zwBsMgyrL{ZqWw8f@Tn6{wgF@T_d>RX2yG90j*Ijcv;|Y`kFRrRoUnKov_q<)XwPkq? z$0oVHIq$POuuw$emATtk4_uJhj-^7Df3F0DRe$Ajsu(lcDm`)L%gwI`M9{3HF>22X1gjQiJNM`V&mNsCLZr{@_dOQZX1X|XQil81S289nh3MbUABY83TtZE@ zUFk^ajSv~cNV0*zHX~m`!!P5_PzZp$PkRJ}xi$h~LpsOzB+yZ~Am(RejpY*o;bMe~ zw!+l!8-n2Z`%=lz3|(6h(cCXui!tg+Rw80!kk-I}_s}i| zxE@^bA4=KkJ6XxP{R*IiDgM_M5~g&>U7Ve(y{JI?r>xR35OgggQAV#98+Py&xL*J! z|C>6snna|@e&nx!kh3^|D1!Az!jcM6fP&dD1(PMDZQbG}Z$mKu4Am|k=G+4Q98&W) zQ-gB6cqOJ-dHRroh<61@dtMN|{S?Ih6g$>q9027bXTpnb4liL~(fgZ_W{mwa)aOuU zKwE7ufOUAbwg;9MTRuX}1OEdS$+g4&LfVhstl{TP;6XoeLjvkc=j8 zG^|_giBEHvZt9b9BEI#C{B8-t$M6*p;;$-sKhqueMf(oq?%>N9b3fHhc6YqqY%LIf zP84Fknkr(gzBz&J@&CI3*|OtE0@C=d_{g#$ny`C!l?}#>c5}?HVwWXQe&&DBxStui zo-?eJ6Wf5|^p69AwerSYuAb-^JwS#*o(58faZlHzxa>K_%huiT8`$3$4NovV;_G{j z(b}Iw5N)a@kz?`>OzS^RmVDi6A7#u4);qZyEs#4elGie}*Flg`@F8tJT>#qelT}|2 z2{Z?EAjFoFI;uO1Zv4GNPkVv$GohleKj3-t5mdVCnPsX~UZ96V#`O35OD?+F&^SeE zJEAfwV1s-rU00nWpKLwPdDEH^^-ZW1B_cT-b(8TV&KE1Kf56(N%E%{%Y+(ga&Ik^+ ztmxNgkDYymhLWM?B_c$>6E>5YRV3$K+XgK5SI*(X2_Z;ugVAj1?t@*t@~3|u*d?@W z+nn-W)lbVf-lO@UcveS3TGstu=x)EDq<_rXfqz10r||TdGJTvl>=n{$GwfE9K=k#e zF20RdPdO)*)ITIFvqT_v*I+#HDZOfKLel`v;pNIn-`1Mw;ML_hP&fbA-tK#~VWjhU?NM>ox)wADr(bsYHJ{jujfi3k)v3>S z*I1F=4V^)+$Av+;1$-{ZnS*Ob7clL|K%$S#^z9#jMEptuV4Q#;i+={far`nqKw59b zPaJ-(rw@zeoWY#~crB4`XaH79ILkS_QqbUY30xaSum`~yB!|?RmxCZF-{k3D2P^82 ziVqMmtVa7y|6cVR5m25)`zlJzVC12oK5tAk`NfTnSi1_7G-fCx#LSQU+hr%)G|ZAL z-wAex@Q!OwYEN)soD2<4>owWa=Fj@I1e9*jEUP@sGOsRYg6yOpwFtHd2FiworbAzV zh(u@rT(G8DwEWy{(1ABB&Abm#Q|3t4y`S6> ziONclChU5&S5R`x8p!Yh%@ZPJybCAeHF% zxT?3X*M@Hl-vr9euFG0NnJ!X9+g}_S@*Ln-2iFfh3*_jGL$pHSvHI@$Cf(eY@D!^{ zGgT{RfLlMkbU=44^S0%P3Yn5MCZSuUg6A7>dArp*fwkbD)`JDp<*DG`c_Ma{Qog!I zjjS1|`mBR&>;}u%ySZ_W4l3$d!nuO~2ZDq^CiJ4TFcN6u$*&{5W`@kb*ldbHNF)xZ zRF-Q;G^W>Q!u@dJ>1S!cOsm?A;nEmMZO4I7Z0oD*emI|0kViCfH^y-z!4>t9Blqnw)zjim36Rm(}3=2q@!bo58*V%kY zC^`;#8IE{e*;3ru5CKUFP3ol}&c`0DB0k2k%hQmHvK0})+LciB91656LHMTSRyFnt_{)! z#Wlq{_G165xQzm#jab!~-vOE5_xOK2iOX4jD1uY{77{^I(=*2KSqKqSB2yOcuuNU+ z@__t2>sQgYq7n|*=RAceBWlj@_lO1Oa1@!j<)?Em6Y5`3fV(c_gEu~MO~}yZ`nynN z5*4P%x&^UhEN;Y|=z8M`2+k1t&$Lk=pad~`@^r{tN`1rb(#!9RYgKGOa6A!*^9HuE3H z%Ns*;>2|1wISYRX!xlAy^?h+1P9YI^d)k4Fh-Z+-BL%TsnhZsRqi^d}wu`|oE%k_| zz%zVL^o`BT&CH^qQ;OQi=`JT2H$_TRpA1-7dSN%@W!G43(k3y}Dd9{~t*y$2z9i|E zSvNSVUU?)+R;a9Cyci@C+H9B&!e3#6QT-PDZj3Gb?H?DOAO#eGSienblCD)bKSO{z z6?7>#v}WqxJew}u8S!fHlw0MEeYJa=XZ969A9!igz&}goRrT(92~%KmnN%r&|1Hvy z>2t84*5`t!uh%PpM`!-sFbrO-YBI1xgWg;At#}(}GfT99AT%%mAe|uHi9D4b65C2Y z8OS1s{wrzLVecX>zEJKXGwdTrv|ChA;+?*Q?E3etDj=3BDp)5IwpDg-orOW=Zrdp6 zLtOw97_lnc9YXW~dnh=ik}S<~fOjpG17=Otr@uEeWO#}wMxz>JSnlNu|B#XRnxUOIv>{U%y6!kXj;MPKbEltAX^!FtHg7@|N`4Io0 z7ODBYK$kUY$bLG+m2|iY&T|F-1}ALlfk;p1I{gtO_SW@=MpQ(EoDu2evfqKomj9TF znE{^Thuq@X?vMp32-4DPVMg`fgheZ1s;rGqWgA)0W`~H+-u~QTGb&RKGtgfD6TsGn z=5<6LAqyDR24)a4zR(Rtp@xv=F;j=~@N2)ry`Qa^A8J`$H0B6w1T!c7t*dB85@xvT zP29z>@bQ4x(!+q3@>E8(gq@g`)W;jE(}aZ>&>8SB;#oYqcKZ`vo!|F*x8lYb%Tdp_ zAkybw_th3tVDRSav%`5*uyQf~iLgH1Lu}0pBd2kAcAWq^w3zJ2=e*?JYAo6N1}oJu z%&%6b@GZW%h@9<)>vE>nm`{b;wJu`bV&2Vs%x>K=ka)#oB!KKc4XRu0r5 z|E;2_E9K|>B?d3Q{BhFWsVn3&`LO!|VP#tlWnt+S`4eogx4*L8ANu6^0djRN01vd= zIYm1j-`hA1Nq-B!cdL_mIf5zs8tbNInjL!8r_oY+?)1ZjqhaujJ z&Z@3Qas4QnzY-xNsI|iKp1?b5h4%Vc2v_O>*Zd*ZLVFly^cAG7b_^iz_yKAAI|L9x z$=L?IBBC3!x!wtL;rn%f@FQzV{%9&9ZhC;A2+E2IyVMRSY~g%qrqxqsIgYGW^;iwn zGrd9G1T%vULc~rF?BZPXcdq_-RPmW|>)7p5I6xYF);u^Dgb;aG3>0SSNaagLaQsMG zQdOo(;}d@IXqmoW;*;OKrle-TB-=I16A(B+G5C!oGmvn!EPmE*?V}Bl=wFotj7j#U zXNpOAOXjvDT&i!1nSV8~)1~gkTt+=a)?3(e+64$gOd!r5DiJ$p=t)J|&)FwxoTdfc zvU4t<1msDg_7CCpBjtP^?qA2S_^AINxt`#Nmvw4=7|^=Axor9ifmQGUBp=)%(ujUW zWK5A>nF{w(V-AW#j5YiL8oap;h&fLM#RRUjSrN}@imdkcTzi#KScL#UR=sKHS=z9* zO}{|~D2S_Qa+D^GsiOW(?S8DuQ$R6-+jb;AcocUm{RdTrFql2(R{>vE>~PPzrSY1P zQ+kcM5hmD4$iujZU6aay3!k?f2W(uCxM%hU2%Z_#@=EU}imj;E5|u+G31YK5BqgK( zs(TfPMV3=7Pc&s~h82BbFOoL*Gqh=-w&)wtFYzC6@U;^rShC{;l_08^z+ zsXOI+We?8&w^!jE?A-!LzGj6;SK9;Z2g_)dZ!0?|kbmWf|3ZznVqtE#wXEiy3f^Y( z`<0Ppk`G`GKE5%a?iH7!m)5@#9Bl4k?mSgnh8dIZk{G|Yp z8OQKPBR5l73YjYNg@5t^RRIWN+!Vx$!2@3JA1$tR4$AFr)t9fe5QukMierq4Y^8Y; zbU1VZGA*q0346$A?mTCqTHOyV6Oj=;M92fpkpGRQFB%WMSN2e#M^Mq%d${uyErSws zKWZ!ow$mm>s@nOx0JIXaF&u~Rt>e3zs|BMIkV-7`QSFzp_A1Fk(dPBzFMr!j9eHXf z!c3p=jv++&HroZk-0JkXn!{X@G+lrsih#UYmNQsrI~*K>VUsZ3qQk% z?|0Ku%)zf2Y7!~3K3;$z1zN2vHeA;c);F+A2DL%n$D0msIY%Db?tIQIKJJ zA|B74oTa&+#y?h&9aI7s+xnNLj|~t$t~Pr(z`74FeQ4I=e{s0Ncxb-d-W%p>-S!dL z1|zsO9w5%O`3i(c%4B9ykSH?z7EX10^zV#eK341K`=|0zfBY7D_{n*Bk6E2tVxeB1 z=||s+#+BXVMmSnWjFc!9DnEub-s^3{$?xAt@dblKe&MqV70kedg?ARJ!~WiSZ^anX z)C;S&8^b;(i6Rnq;Oo?de}k%ZPQVUW=`xE$VI;rL_7nZF zV+>Wi1AOGR@aE{MeCr?dL(&yP6g54h)nB5uo>*F@!BP~VCX@p z&+{gB(;GKtq$?fBBM_t%ZRkG;(!4FtDzAc-DK?nsWTzo*1rA_OQ+A=W%_yX{&ExGF z!604Puy+a1U%Rbp$iE@2B=M$=kL5H5x^cMA!}I2OZ&TfSN3wNUKI&&&K2Xn%RJ z#xD~({~^4Y;?#74W=g|Zs{UsAhzFkk&%XnnsU~@`jEanc7W@fpvO#UN_NX9Lg9QVz z=UbhP?-Z=^#Db*Y#=dn*qbXkf39(Msy`^rHgWDvqxR!Pmh=_s4ZI*=2Dcru-85-jk zg@Ny&!Jl#;6smNQ4qKl1BXVJ7n%L&Ky_SP1stPEo2uisW-maA9lCwkRF+`yLylkX zzI9y*%KHtQR%4c?f!8TYO#^gl6S`p|FafM;*6)B!qZz>PtU*-|q|1fcmwhT;g)t-& z{=$@LR07`C@uF_zCJN6z=Lnk7fXkhNcm__%8!0xT|Hj!8tfzT`CWawwx(B3f6 zF0n_Rrm+kI-2^D0zk>*KrVaJ`6E2-T9Q2^v531~lZGwQ17HKmiT9D7zUOxyB{{CRC zQpF-nC;||dK)ffe=W;HcVH7o;uS=ic^4oM2?V5-4B2@7zSp z-xfh7+|^?9`j7KlSFVs+bU);M~s5hnWe|CqY#s3^DhZQug~3?0&fbV(!99Ri9HN=PFi92%rM zq?85`kVd6jx&{OVq(o8>5b5rYcR$1Tx7ItK|IS+Htg}wcJkQ?ueO+pW&q80V0nz@Flf|g&8Sgy4@hcVs={HY28n(>Hv{bhhZ zKkZq6p)Bs*kAV*BwGJW1>gD<4a4)6Icq>^{-{FwVDByPfPEqjZK|I`q=Z36|SnpdWaALbf)!)YA6&dY}}N{eJw%`eM7-7Oh82$e7%Ewwsfi z%FJJg>8ve)7oVi^h$YlB>v1#RU3c27Zbgve)*<>L9oAAjqrHtA-wt7bUV-mh_kVe* zFF5~=%L>{S3vz4&WE3-_C272p>+cD_9Fo&*945~_R^E=CA(A5@lS6A2fW#%d12B~y z=6%$>rS+e-{=2Y?qEqet;^50xKsv(DENeo!nSN(m?P==Adk@<}oTsy*O}_#PqEm-< zJ8Hr9E*CBCi~mj78lJMt(k1{xe&h zVQDp~7q@5D`}Qth$Lh~~e ztjBZCbj!{|jW$L#WyG1c0o=1_NH+Zt(Fy`NP$9U1zw)K<*Jrg44C{(xktL)Rg$JL9 zKRi;%NOgNTmWuOD6%u;e9M2)pO#Uim=lin`06jf^K*fs1lkP}z!)wCcx~{Djz%nlr z7*A1c9x~mo^_XgEH~9*{J5K*zI7wUULS*Mwk-viS+x6{BYjGu%$R$mWcp$v4|I$!9 zKeyCoJommOiUikm>s#CgoIk=_1g$0a{OqG4_DZFqAr z^HdeAb3M85bh-8ajjm0DKi|3X$l$#6a`w9I*N@f3gR`saeTTs&scm-^f9ccHg=NMa zjkz48LfJp(lE5X~6#%<|-9>#N(dUX+|83rPUOqt0sST`7lL$Q;c`sJ-DNm}(s;9Qi{^#e$1VrNSwPq3Nov zDCa^<<|=?J&cMln*JQC=yqiH9x>L?m`p9j{AT0&l z8Q%Ul`>+i@;|F0FX5ty1LuEg-m;W2zT@O611%$ha7Q^=xc9hRSj=yP5mA+nS_ReNU z9o}r%f^JWFf=Li+;np-00{ffkq+X9m;DInW>dcfh>oGJ&@aEzrxpA&*jp5v4jZ9E{ zXhF98zrkk1p#p}4S;94o!nw@%zlZ+oa9&85DkTAt;uus?QFKbNA-C|MK#(~Qq}NE=UgQX} z7(-f`8!ha@FIH(A6k!GTw8dgQ3^k|EYB_h!~FsFvZlt%Og{jU#<@z;e?^= zgdyseF0Gaofy~g$1PD*7_pBBN(aS%K_peisFD3j*1bX6ozK;G~a}s(EUfFd1Shwo` zD6t%?3c(#}S$*Qje?)yA<+q^nJ2!lV(OcH(1;F@PsN?nvf;i=#yai27h4kw(fVZ1y z0kH>nqH_gan;KN`OkmBpI5yPL?m6@{v2Ii3E`-9l>Y=yD@nBSXB*Qi|UzOM4pUh2r z(>H`IO#p<>r2^DLu`9|4%r`%i?WaA!|Kfx(`a_oFUR7*Y1Ms>}Q^WQTd4uFK*#{Gs zA4Gfj3$~@s;#)LuzhBI@UH{#9B=`Lv?5`x=ME6K9fNoUs)=i*$sj9(_@XX+{^h)>< zUAHjR3KS+!!AfdD+Bxd8CUr3U8=dK;iHx=oKt4bIy*$>0=w_5Foio3;aBjfGs-c?U=;_9%3Dr4nk7S7-jNAmO zU!TUI3WwsR;{mh*NvljjzDH{_wWd?S_ISCkD=!#ix`~j|0{|iJ>|NjdojW_IU~5E1 z{=O?+w^CKS-9ho6G0p=SPV+YcT`9LNKVT9zpsLz~U*!Od^{ft&2I!Su5E4(8_Y3a4 zAR{v6KSBG?L0#N0os&k0zYzUKY)0OqF8VOqzcv@;swB?b9^K?DLWqThMO;fT6=vW5 z+=g2y`6dwrVV)^4m~xyYqjr7wU)x~?u;X|weyzfOAeJ+T<7Zma_SwkjlWMjIEd6KXmAyfkDQ%u29)m^L(rRI|9syfy}VkMg_(T;p(P=$3bQ%e zCxg+)R&p>NYdJiZu*Lub894e7l$u(4(|PJohY|P8Z|xaqt z1Tr_^Zq-!XelY|PcTl`|TY=fRXXaHY$=@mnyp{bud1fTcC{+H!_-k_*vZ?t;6R|Ok zF%2CC`blZ@bq=m}L2j1qjK+Rgng}umM}lo5W#?K{n!HFO)L&=weT~VO|0LgRtV5~6 z`WWIeSE%$qf_b6cG*1H0)c0Q0ijf>7tP8i^pQe?c-i8jb!@8~gitDwfaqTRaY4VWp z-Aqu4iEz!M`4hOvZFMR){sSIn;_K@>_kwQe#Sq@1d<*eJJE1%6{Y<6Ycxy$%f&`&P ztHjM}Q%~nyQO$Ift=1fHSY4RUL>$8!6y1lKzRJQtf{`#*VyoNYD=C4I|cMW=z7uHNBKYBn@RzEMb?8pte#yD_{ z40*wwgYv_pNoll7gAIzNcF|uzqTy_;H6u9T%#IyXUe619CK~!IcN{86jjqgY8#Y-j zm+b^iay_hhG`iG45M2pky?p`sM=$SH?Y1&>Y=#S^9Q~9jdTWpm30eCLDh3wLc)(Nk zYEa`-(4UQw_eQg;;1>1!YNeNl8E0yKl!wQtl_5;C!sndH397+^cf#S38}n$pfu68F zkA8r$o(CX^LVZ)`ee{ts864l2LybNw?%&7D?7sc0dY^SFApVKnSl$7L6mF-efEw*c z);lRLG3nuaIWB8Q6=E3b_eb zC-XeXE_MoiDu5RK-(&NkR|m9Gh>@u^`$OS~@~-jubq+CUZoD5IRozbN?BYLhT+RPH z7YWN&(_k-v9~DDLR9I+C|3=G03C4x3p#WRJz?F@;-TR?A^%SOh)_tilhN0$Zk z1bISwfpdlNzk%#A0g&6tut9!=>l0Kr3jUTuhj2@W(0e)Z@S|Mvra1;PK7(Bl>VYWi zlpIvi0!tVx5ag}hQe+&eRSgJo=o^1&wic`Z-T**-xRi==v`ZwAIXh@7zx{FyNT#i4 z^7-SY+?4m{=g(&0;xz64qB#eTx~8diee=@FD>bKI*J;h0GwzP(Idok)x+RVPAImZu z5G?iw^kIZ2J?=?*9n6Q@%5j1o%qEwZjgwNgn#S9i87)QQL(vKDws&1eOwv5;XKK90 zm9CnbrM!Ihjsj8r-=>)s0ERzb+xuC(n>04L<#pc-q9UlHE*LcyNnD0E9=eXaZB6h6 zE13Qyh+fgZ<9RGV#9^e}Sma8sRrIv*(I-x%MDtfUzZc)+&2uVmx;N1a{*5@ViOvbo z{S&BAkocnDlASzK0&r`9{qRvzi>GXsx2D-4guCH7IkSebe=aBf#QyOsP}T%rge%9{ zpeRFDCjbwSH0)Lj5{$4{W(564S=St{fBem#!JU$*Sa)}!;^+acov{+k=)17Rl< z!1EnI$zW|BQ%4hwLK%jB%`xREj zj6_7MwU1j1s29d=BLWbpz&KwGvwwuP;WhA!On>#Z<(!Mx&@b9$x%HnYH^H&~z=@Vh zAM<0nwVxN}e$_`GYGzA9zluf$Fv;f02jubO+lg8JxXUmbzuoOYcxZj)`P=9FjKt9l z3H2i9!FL^~7(Ul5Xv^x*2NUh0H0nRlVtIRGy}5k9b>QcAwbFrI4$llXfNuexlof_S z8L0-$!S3#8_Y5ZD!9QwbXJb(+nK}f;VcH?Ia=Nwg_7*hQ2BD=LI@zC#3TXlXl<`XHo&!XP$l_QRdbmgke+wf>2X-9G^OL#}-C_jBHc3zSpUNii?0HwojPU z*UWfEk(v7d*~R3QU4SrZ0S}d{*FB;qtDlUY8I%8S)zgAs{ooP6#K})TF_3AaUXvd@ z+G%4Z6dCnj%^pe9UTfyf5K{`pWvHe-^}GxsNx zLJJYcUfWA8AC7rHNIZuRB-{a-f~zbwY8&B>kw%{sV1kX0a2b@q?%pJ`AW?7xC{oWM>cp z+b0BK3g&K0(?h5aTZCqAI}%Wd+y;VC&uapr@5O*1k5qtK6k042blP$SFm{tXA4y`S zTCk-)ln2F@@$X@_X+r&JSdo^HxJ>9nIRD7`Q~f;~i(7n=pjF3IqSjnu&g3tEcC)t9 zEBxM`cM5;E1tLr2Jp{k0IO}|5##(ucqgYR;x`Zv|Yu}5diU=p(u{Skl_DP-@Pc(Yi zhJHv_#cse+lk*vK4$gJ;21rysqrzuLfUh$)lAcrsD`A^u_F*f$Qq}BzCvT+6V`}S zgYG}RsUJtgzNC=&$m$-fZxRsMD5}bcxU7uW$uJm{qeL<%Yf=tcjzcE+j^1A0gntQZ_BL4IBb)Ia67CZxr6T_A6qc7@IEn2tG|ENbkPA> zxlHoa+q3L>uOVIH`}~xj*o#Sh;m*i}b2dXCl*T^X{|jh;D2l_5Hb86@A&AlJ2w@l# z07wed+=@a_QM+OFG3)hM`<{@SKr_>^d$y@Hrs_>nn@3+lM*IrTpB~F?p4KdnXA=3# zv}Mf_DO&y1bB!6$EzcSsTtA+g9d|jSsX8OEkFkEG_~CkPU3W#~o$eqA*n|7LZRwhE zi6gm&3Zf;QC?wuybj?Zs0~9P4OkVN|zK^#Z!sWz#7yL*O93sQGCJ(#0=N29Blr24j z5D(ykd$=Cfz6InX>H*Z6#kwzPLc(CZp=)vR=n~G4CraU7np^*F;^r zy;&z4zZ+(6XFkO@`=_lG>+5ZNTYh~1^s9dd^!fB1L9|SFj()!=zjJhZL(FdQg%2l1 z)RhzGhQ>rr1w84HdtFaQlc;cr-Y|6w!VurBAe921qvgqqhT2LN@_W=1v*eA7n{~WO z!M7-3i+gM1{wSDWh|U!99y?)g&A)8=cHO3pi9L5*+7TLxhevs}KV=oINPae+g!%Bg z)Wy#>fb0&xn(lqi3)?d>;=qO<)0SJo+1?sb1y=#r0jRv}n841qG=D4%(=B0-4^4~( z6k2#im*;%u-24<&cnlk~?t~K8=ESmNrng3jKrvT4tplM*xWZCcA3-WjH?^brTQh(m zh2k;Z=O8_^S6< zmJlQ3m!sW8$J9HT-g2FY>P0 zo0L89FybUNk3TSnZ%X7dp)f%FD1qgnOIVem(Fsgc7K%dCa(Os8`SE=ExC9=#ccy%q zcSWKY@YCb~0R^BfAkn>BjLXO2sFiqB+c8ovy-P2<{MY#EdN*tGvvBbdw4eH4C`yC4 z>VvstACvy-yl=`Tn2MwS-zV~jZ@HD$_}-PqC6pmE`Nyk%H*uP>CB$5vxEkTb;1GjB z72JAYLg{Qsuk`O;vf#7j&DGT7P(@QvX;X3=59A8u<+ak@)QueEQnut;xU0>xsG+0! zF*CqMI8D@-c;R6r{!4zitL`6d4^}H~B6HgmxT!_=h74;)cd(b|7xy#Zli^+6 zVAN&{gG@60k631AABw>E3=fdkTzrlWW~1l>C;RMP3d1jRt~3I$!L3-{??6=1Big7u zs8dIJjsX;%1oK$Va1D@%AC_$cdL(d{d?3W&3Gu|V^#y>2N)-#9U_XlVW2o!qaZyd` z%-r1WJ+ikLv^s=#wv@{F?cS-XD>f!d!co<3jAK7Ey4&P}tzG#lsGEs}dB;q^sQ zpN`-HNpu0*QuD}fBHb`L;`O0S0aZRrl1?=B1k+dyP(v+j`w^s~X$mY>WP@_VBDMn6 z5mt~E2F70QUXV7l#@Qj?{Q9}N;`-Xuj9(yyDnmIpt$?j49xhdYuAPlbc$Vp#%{QQO z`yn%Ri(2iq()9xXvt#VVdWF#Qccr~LmT{mCdy;ic^(lP;(FkI$#8pR}tLIS8@|X*( z66N~48ZXE8&?m}ZjX-6wtjCv{^&RBA7(YT5+g&uW3e-o~P5Y}}>Q&2vdJt_lY-vIu zY+@LAiXDps1np^g6-i>AQZAdM2MC;uUV`BSr&@7?j8bBJTrA9x?$bQbR;qL_As)3v zJ*)~K5UE$OoZ}vcGG#koA=pWYn3JL&5`e2tU#OLC11C@az)EyA@lN%GS?!kqZ9@#KiDdn&Gu(GmX9;}alv z@%QBGZa8zGLG7S0p8p{Fy@X2$gR|m%L?=m{N5IUb*Kvr!QgVakocbR7X(H12MR|p; z?CQvH;iqSL3?|S@%({}xEPNORnUMU2g^Y{>kUy>8b6)(1^!WqasXdq-4p6;TxGdCO zsT)RSVO`y?VA9Nkeh%c$vd~}_?=aC`w|t#>;mD6g6B6C-gz660qkm&dKF(Q&`RM_q z!e@7@tBEpXaufttW15#&j!)p-RB%iSfSx7%iHr?3cXp>cU?6plI`c2J)3Dm_hYI6D zM&qtV@VCas2Yb2ibN)@<8Qk&|PKiwgDS^TIateD5EnfDtwRX3ly?7~FqNfJ zswURAN9La@Z*{1D1%gDp5=Gh_tVO=i1fPEbSa0$pB1B>Vgjb5>V>+d>UEwwt|HX^m zY-8Q>;&Gxyc5UbwN&Y&mc5Fi5+%_7U;l$@xvO(>1)gpz8Cl24=JK%+5_lw)YSiFI9 za1B!5RGa1R<*(n>u7kr;s_nm_7&iK~pIR&9PY)lAQfixE_?&NSR@V&yfc_Y)oa8|J@YXGM!GI1Dy>Xf%u21eJ!$p>B<_x9|asbsJ!fBVPZB7U^gw_JJj; z`b2hcNbn$vBgbHT{LsyhUzqws)DwoV2u3sP2)s_rd355s2!l?Z>^-ol1wVfTA#U9X zRUepJ^IHTkKU?a5CLe9Nh`dq^U?SPow<%;T2p>^cV;tH)kd)%%?DjHhDKpk3wtryo zlOiheo1(dyVlJUKq9tS|PE_34b>4btc76NsIQyyupe0XBe+!XKX9kNMfqta`Pkr9B z<`zfAb`206@%x;8GwVyhQ;P-d_eH9spXNYNT~nzX*q7__#l{Wk$R;++>XLrzhxJX? zJX?UDDFm?@>@Fwaq+8E5O&-@K2wHR0Oo>CNFjl#Sbw8FfF#Rwo;MJlGc5VTrL`5Wk z5K--PPPNbp+sbjX@&_zq+{BD-&TI1{U79b3n>zp|PV1NJuO}}p68kJ2Ck>9UP?d~q zE||M^9iDp8RktmL7_JO28ctrt{g(n@??ywi9fw6$Kgf;{3n>!JiN^dBRWZtJlynnY zFi8r~ym~;KNdlmq30|gN;g684VY^`z2-!sI!`nZbKC8fa+W!n-{3#94alY5(EjJ`& zHF#8;WEXU?d-`wxdm?<5yoS?8dj$7se!iM|2H_bxxc`SewS5M(>s#}Dp^&%pgJ_BN z3X_RJXI{G4GDHBPQic20+gyxOZYpFe1Xf~D3baH2a?V0fbq^R`4b6tegnR0cIg?cY z=j^s$bSqXmG{G2lZ~}PpLvzyI3zi^OgM?AilN~^mR6_zK8WJVswi22a$|BM;rA(?Z zZ2z$X`60Ls2wbPheI1cs{jP%8XNb#?D^qg)P#wl@bUg+VdKz80njrU9{{cUBXfc%7KJ%t#5qannSGyvYx<5!=>NJn1Q=-J2M3QT^3 zfxD;Lx9y;>em6~a0vZd59aFEuIB|Lc+K1sFKdFEs7^=JMi@7aTg2XL>*}O^1{R~6B zaAr5Fd1dU0$4#dL_^JE%mMsTDZdRpKBojPYcCkO+&IdvcYXCPb2KT9^%|Az`OQ~Kj zja_{epJ+ZCiNa0V&7W8A$_nmF0jMIbiLV*2;4BDMp#5xrJge=>*ZODcgL8__7u#?j z`iXNGR02Owo}KRE9~x$PZUd~Dv}Vmd*30v(Wn6T;K3~}ZR$6s)0@Nol3U}fGk~tdi zF2_$n^ESF`PVH5G!!IQD3cf3reAPn$r;|6vh_;F9o)jb(D{|vvP}uw3Aa9nDG>w@~ z-y1y=Q3gBeT6_cfo#nZ~_N;b88(yLJ3AWb#tp0bb4KLNHudbh+fj5q}+BAJAhLtRC zudV2|o9#%crU>rq;-MVPPsLnDMyobE#)p8^NFKO@xRSD;u5+IK=GP#-_`kP`>$I6A z`x&p5k3URH6d-eG@{V{k)<;fu19#q)9)+QqA)OW)09Tbb+qsZ^gn zsin+Wf5~fmTye~dV6|{>GV-&$UY{NSXG7YZ{yh84c|gU@$kWL4Pg~oy$sLS1BTC6P zd7^8SQS0EMVlp&~SuBD1dZ1ngTN+y$_A00Wc_G07GjA05lS0^Y1c{ID@kIi#zG%>e z#?10I;Xw}*zoP(vrl~$cdWgJudrG;_7YEX4bo_a;=`U9h>4T@~M3p{f$DLb@h?Rae zxv(c4Y%fTi9;M&P#|UnMATNqfb@$6JOtRn3{yxbnmax1I2oyk4!DP09yzB2+0dUxf@-47!AwYTnKSR5e9RcU!*#kit z)i{4Qt(7HQ9{v)mKn8VNgX=qRCw$ytd@)sC$c zc#;T^-qha^f94N;SSI}hAr2NhcXk4GJwtV6vr5#**l&7?S*_A_)C<^0NEO4jHqNQL zWwDfS7T1*A@)}7z;}BlN(6pl)O~aMXZuE(gFZ|5Lucq~O=kolkU9p0zqP8`ns>BTz ziJ(SklMWMF!e9U$sb*UDw`e_0qn|U61wLmVi*z&X6Ir6!mjessS~A2q@x(aTGZ2Pl zzBu)s{Do(xEp`BYd!Ok`e!+W>mu0aL__K`}4*64PpnF>ZTjKSd4#EW_ksfp1m3}}e z7>kIn?0$|h{}L?tQ+I4b0^in0yp@&Y%cL9(0db7B2doG}Q*Lu=JZRIPHJ&yl>o2~Q zXHrtx_OQollkDJd^#Qkwn?iMhUQY?e%wxyTB7*m<-=YeD@l9cHSpp6C2#i?YI;RJX zd4v;ehr9`9T@V#hi+Q_cm0M`dnT8$>rn89QU9tki9fJ_0=Q!}*5Q+BPh5I|Yw6ydN zN9-O)#CF&5ypPMJ<{GVAjCi==(^qBjYcOmnyzIEyUdP3{pUY+At8UO#^=FRJ(T zGnohDmjl7bSp@6P3!)iZ0G-*PGg>qPI!(oNNls_Ax^r+g8MXo?Y+0)s{1#ui^thFw zm~Wl=GP-DTUl@U3A5YUjG9tJ}eTX0Nq4UW+8?jYnb*CP}@9J_@Js>V`(OOLWEWJ7? zxnchV={|41TX}Ml?M%P&3 z+xCRSflj-{{-4f*Y}6o&g&5oH7&*_lG0OA91yFI9U+lJyXebJdOsgM(!V=!It>H&(D94OV_hQ zWKly7PY#YTnQ@iKqF_scS*NBTa+_v7@3g}dOOR>;i6tz%mOdg@_$pU6+sRH;m=^D@ zgk`=RzjA6`pXS`)fz_E{J5(s279!9=^&%=zDt|-Fa`3K(m-pi8yL^S2>}ENy5ZOMG zSDm!kbcY29vjniG6%@0Y67xXr5i0tBV|m;0dNbkQqNf;iN$aS4ipn9CO?vZG6ZacC zWKMg($ZOQ}8s}VnA^;t=SJ;9*om)PlyT&C)UdW`4(M|-3s~2~6o41*0^SR!-Y|0B{ zt!|r~-5?q;NpBMkKy&*du78JM3%Wta#i_~XUUh;0{ez< z9wq=+eB7yse`{A!k_3Tz^U66`A1+sI3%h7N_1i!1*vfLh{?gPzb!AeF`!4{xsSfyf zEe4ZSL)?D5pSC2_Z;RVg1JPJM6fYn5x^t9Sf85!^E{2Ym^l0K#nB!?MvPo$v_CM7yWx8KV~s*GTbA7kiKW9Z@AUbli%#%HsQZ>+ykN4@qw5bljM@*C&6yv zO<(`~o#TF$EcOE_)dgT4m>dGo-f#uG?ApLcMxjJI*=PO-igRDoY5>f(_*sy9XF#L~ z5*)kacLw%=H!+Fc>Mi**Atz$HujZF!>sbtM@dknDx3^un3z|2RDX1G-aGh(D91N;3 zKp6&$2P9BZHIsEP_`+v@yT6U{p3F=Cz6s{GfnrvZJ}aGhtxg`;GiZ|gkqf`7|xW($j%KN@3L%3J}k zW8Ok@WQo+EcNN%Ih13-NsTccNH&!YhY>x;C1dicV2oaX@J_F!jGO6Z}0&7J}() zQn?r}C^H%_v%R*F{%Z0>j~Iy>Jly_(`b*6f02~p~kU%ZxB2jI8XF-Q=Pf(%B0*_p3 zz4fI^Gv^4Qiy672gcb|FXW`~H|2GQ|kw0JPiK~*xM$ik&NZYqpJPss+-O_;D4K)8j zCp9HuPHy$$h6Do~R!M@mBWyJf?a}Xkj6)y!2dV)@U#mmnnBCcH*#LQOYk=b;ovKu_ zH}|8k{g$Nx?tsLi*GXdEEoteZ&yy76a-2YphV7Gfr&w z!5mgfyYi9ZGR+ECCO%ZcWVE1yo=5 z%Yrq39S;Q!GBV5u8s6@!lb@`Vv5q=JBk@QnJFfnohi}spV*bEQCg+B)OF{VAKP2|| z%$4rxcoj1UaRX6?!I5ArzNjItC<(wowcb*6KwWj@ROJxGP|oVY$q_r;zo^fg?r!mk zb~g!T6{enZbiI-x{K(&@t%V*}hq8qCIe{hK4~k@-*NP8wSv1jCA3#j&DnXPt(rW-9 zv{0DT5PqHe<1H^=BW=PIgkk^1($~IljUC_ieat~+%)=_8UTKbV*v2447WzMjFVHO! zASEl~Fx0F^zo%O<=AO9EN$rMN<>S zs5kC4_3^%q=xVoz5Xazre{GIT%sgOu4xJ>Y`-CCYoeu3khwajo}T%uxBHdV!|o$GpV$_J;a^-`MPx{NyZGI|Sk+(>y2D>ny;eIB29F&{*R*hGjx`?;Dv3bp9;(TnT?x+=0f^yUF%PW$JZAhSo zJPu}V(+Y26$Ylc{*6@w|*c|v*ki%EW48VKo`2w0RocZfMO!aThdF)A?W*|2l+(nv{ zBUemxF00nwYyU0SQg)Lmk~mpD1L#IX_tkq*Dd!g#?lSqzziEFiMF_X~%8;M=^`J64 zSiEQ0AG{%Zy&MjN{FnCmKlu|I$d|JBPuK)vAwhE+fSn5gTy5pG8uqDLYvQ(|QUIrB z3syb4cnDq)+zRU<{8b56*-ktyUmWD5Eez)u2Tdvzo{*|15nyYUgnaJ*y zEa>%AgG)N-X-fS=*6hW_(sGXe4;!B18cEd4IOoB!)@8%mpmxBP$#qkQ6t86`(!9F(gioOg0$-3xxK_Dh){t)Y^*nW&_~oyDF14A%sVz3)c%m8vBWDO~ zD-Reux%SbffSoD7VIWD%D39>Y9~|O+cf$V;J7$GA z*+|r6{3bRg1>j&8Wi1JPv_MHHmt|Z1G)cYP(2iG_QaSAF^!Wu5_4TU&8Rm47fxtAP z5#Q`3_`;cx$HBx;^Y7)N0Rh{+Y$D+9FhKog0+CwGd`TujcIUcY@^W81o>VM;`j8WW z-*Y>QXe7J}r+WV3?nlpC9Jvv>)*@$Km(Bikoo@5u&UaRf8{cnXf==zo6AV{WH7+VY z4%7?>wVKS9ZzJgD8R^hbi2=A4-EoZLDM?S<$M+9?rDT4`imK7F$G{zy-5n58kBNSL zm8H**{q;TG2S(ig;MGss5uP;)H#`#AIoYRPV-Y1`#eZ!?8(Qs8Q+yvwV>O04PT{BV*0&nePlv@_@iKObb0L+vB(>muIQV{&6UQ+vNAmHbh`ZSLC&cFb-};U-8D~a zbs_-qPZ+2z7-V`J*29l8&%7Idf~`pUQ}I69A45>{$4E;agRA`DU$RLr-{N~>e0(e{ zxSTOhd9rTEm3%->8*I{0_^1`47EZzg z0zhQcxZc-tLk7xj%!RE0y*z(m7}HdKuEeTZBk2k`xTQpc8rI1bJXHZa3?Zl*JVf?z zvT>pAFOUuWrirciH)d@ihToOB291`y6mmj%I3c>lTw>DUhF#i*@TQFot{IkRQ#g{-Q4QQHx zwaaR-eB)A@2AjE8F_i-@r1wN8QSN~9@StNUsBS4NOIE|XK-Tkaid6LUOA6h3eB{Le~ckYM$1S1z4fjeo8 z-!o&R2v{FLZbF-~dy_d0itK`!>Ci2C4@N4tC~>7b z8X4MFqts>w5dX>2?KZhoF$g%^3^!h*bBk?69H24{l1ljWOseQ^aY1C;%4f&7Lne`S zroyn@)RV`)6o)u3&ovfp_k>PwpL{<9+B%U%$tSPvjv>lg4W4%DRS@rZA4xHL`kBKB1w92w8V z^IZwaXic1a+jlie-e^|_=L$WreKRKOoCnp=%Yp#psDWQ4M4WDqp#m3;d*v3!J(BzZ z_kgpuOHl{My1H|E!?x0)^8Y&l$ojQC8FKoeH^sb9U@6Xr_{VzE_}y~SdYMK*e&49y zLueM$L7^^Zir*Wl{wJ}K-Hm7g%p|(b{6ZQZRZ#{TK$u+O&XWNOsCwqLhiqS@m;fTd z2r}34kW#JD>1omiMJqLcQ|Sze!+rLG^K}usj#TAZBrzdDc$fm?q0U-55NY#Ls5&hO zOhcQ2!Pz>$sqndZz-&kPjQKJ?8{`2Nu|^zsozMGKBxdr?7vCd38s+*431ti zd(Df)wA293DkmhnSG$1|VOw4^{u|G%nTqe50@QCm7VM(Q+lxtNsO6;D{vgigJ%HF{ z{-^vc7DLQnAi0{cRvf}~whJw}zpe`hLZEPCRDCz%!WP01V06`Z;Wk%u{M%=f(f#p8 z%7g&18a{g%X}j+fK-26tBkp)-#pAH)%qZdxjfAi}x95L+o1Yj(*#Ioml9_)}6m@{q zmG^~P_iS35PyiQ(jwvR^if=~wKI4_qMbn7~u|FvQ_f7-d?m<#LnHK7AW&&pPysQ>8 zFhM70m(|5%xFVqlp667cLRLx0CG>--1^+!N zoSRCSzOt9P)m$m?KC~s6%QsQbo1PIU3(n2w?3{!}X^<0kcEZAm@F(5TV9uF}L>RTo zwgGK42!eLnARE|B4}|35&*lMu5DJb8I?e$Y3&?Fk_0h)6A;itMfkzHO!(y`ly_U(S z?qTR$10Z%2LRd07W@9VlL@MG;+UfBPK<^@ZhJQs3S%@e+iiKno*jqEB3tI$Hg6-)y zBA6xN5ajfKTlYQCWp>~)ip!zXY;`^Mao{AigB`)GLZk}7K^;S!1XIY9lmCFbpd2LP zHhOy@gm{V!!m9PnqZ5#QxSTM+n$g}o1_+~TCYc!c+n?5$`o07xsNbf80G)h+*Ih51 zpVRU@wxrCQU-cBv4D0)s`du(q!G9E5H0>dwuvB_!ft5}PVF<9e>b{7-p7iOF$&20; zuAQ3LI>wWJF6Oj|dl`l17UAvydeL0lLgA4 z^I!ly0;C(IP*Gd-tG#5eCKbJt5u>KO^Udd9%kDx#+#zUT_j{O>M1xO=g$QZq5PB3n z%pt&JYdt9JiyBEdjq_EJ#%S*O(2O&-49SMZTyQWFLwed5u&0xF?7Z%@#29~%aDpb+ zK70+5KFA^B_>}aNLAOWSg`Daxv*kx*(+}WnI-{@z;j%wu$9NZrj3~UvNO}(qR00AOZ7_;fLV~dn?OwHOmgCpn0UadDA zBDbKScm*h3|E1_njd5iIL_;{oPJZ%rK|H&vO-z3jfN@L*srUvB(8sm$1Q=WitN5j! z-8*C@E8%-?Qb89S3qhusJr?*JDAArVrxy5p6wuy*25|}D{|F#Xjvhd`lc^{_EjH#L zg`~j_w*_y%VOj$jM|NOvK?P|m1tcirrUfmcu4`)Een{egum%47+r4DDPd_+~bXM;wyw8F+fV)Ki zL}PDWtwJ<*Oxr^+iGo30Nm2Y<>F$`PE%GLru~+F`G$#$_x2NWXmG`~NELpkqsHrEO ztwWfHQX~~J83!XWzgOd}geu^LQxIZ0mWhmiz>{;2-I6;IDu0`M2O~imgD!o7+5!h7gO71|-q)Xht#{1*`(lHj{>LwHt1`jyRJ>j=>LQDZVeCHW10*991E4*$ z2vh?v_869JNX^{zD)6ujc6MFqk?H(YYjvtst&8w$6iYk{t_nX4ovDfgJwcI-yhk(1 zR39mO>p{{-7C1*PlZuk8R$Oxg`Ykfzc$S9=3;e$d8;b_c|7NVEwY_jNB6s)L;@e-} z0_&{r2E_*b{zQ6^ZnMo``Xx)NW?@z(ftcYS)HyBIO;O34(up^l>YYBA#Cx~ABAYuA z1lEWz@ZV?^s4|T!46`a(0Jd^@;O{N-6qDg*4boViFXuh1DcR^p8Rj1IY5YYu;$?wu zArQoUSG6}m440BwG2#Rhv3KV*#uwrFTG_L6mXC=em=0|S{w;=JjqiW!bfhO8lV0_NPAu~5%s;);^(9y&mLNl&%=uji^8QQzsD(S zp#_l9Zn@U~`l}XK%V@9g8>{<~1#8tUQ)vf)@UJ+8xQ*Fg`GW9TbUbqyKsQei=t;r2 zNt?Zu2tgVx@VZdSoz<<*eh$Dx(2JfR+YxhXe{{E7y+thi-X9u`4Jy9!i6m|49o_yJ zo0y$Gqvn_|Qh?e#z4r6TmHL^9z3cIB``c_N(l%%uy*%DUWAdigpm=I@b1j>E2-g}@ zg*>Ti{Tm=}ss<3UV6g$gIx1Wr$(h{l?En5Z;$kCKBYUX@kfndm0Oalz#%L*Dy)#&u z{gq{Zaqal*Z(e9Dg*0wBE-j}MhX^D0C&}pj`vbqIa(N)UuC`a_2ZxI$CRc}xA7R~v z7#SP#?Mcl+nH$R+^u@!h?|2Jcd(>wKN3Y+Fm-p@;O9l+?ALIQ=GhAGgQMJ*lDbXJz znrM3dZn;oWebI|kC_O$+<|4A{+&Q4;Q6uZ01m3$lT93#Jy9cRU2}`BFoDHqD6}f?b zE&=)JuRtRuZ2`4SSlaH?_4Y)VIZcdxp!sFYp~M)`unIE)HXk8yMZgfqikVFI9Nk^0 zDb0w75+km7mR%?|O}T%6>izhUwa*u+0ArskZPqjvz%Y=n?2&fSJUh-xo-&$p_YM& zTLpcsPSmiq2mvgR@;<uUmeJ45(Y{Yipa_3DUYFD^CJ~tmr=5fO!}Mx%crh({=qTSoi3zD%*{SJJ z?+pVq6T{YB=~6=bRwh$CKJsyAn?nFtUsJZZ(AIgUZK>@W((qm@!3e=8Xc5*2I}HQz z8h_c}zx`uYH$iZ(t&ea2{F?=lze~D7Pk^mSMe3?U@mt z4g_kKn2{HHV;xFCoWRvUI_DgPJ6=<$pGIIpjs*vGwqzl&8bZ*?R{79wFZ#ImwqG^5YW<+8XCzhMiTT%s1LCH&zyskNZ{Eg2vN}s zu^)PbXBK`{(y3Z6N~XFt=iSj-GC@=bV(htXiO?8=!!syw=IAhZX8Pe4i^nanM~iEN zsWF^%pEX)bBU559V|ifzJtd|hnkH-kUrb>DX7xqzH}xhvyU($JrcM&M<*SYFx?b;e zu=dsl|=@VGsxx{qF8{jS-_c_#XaKH7f4SpvgKC6J?31dt9m25oRPv3+O(8pp8?Ng&r}Ebfs;W|Z~k(|%jh z`~<)F2_hU~fUtvit6aZy&%*xWqe9|!YHeu%u$xh#G7H@*F1fki$eJKqKhuX_Gyvj{ zJgNrCwfOgxEn|9VG3O&hnPOxwoB;lau-qJL?9&8@Q|qr&wPi3hqx+|LD|Dw2xcd}F z@&Y_lWY;-6Ty*RG$IgziM@8I&41ZW3hq$SQatX0n0Ha~oE zWOyaJ6xfFrcl7kP>VJGe&-(5zk-^KBY|5}C9KLUgIz^e&!s}WMW=n~B^C70tjkP_a zFcW~jQRc4O#I;bEk?)@QJFZ^B*<;>eHjDf>4S-j92SO}C3cyjj8w7puCA57Q#t$qY z7}PI0@P&7pM}EH*8>BtW=|FzGtlWYeKIz~6@J}Sf8|;A4VboO_OqSv^3VjUIir9z* zf>c5QOd0DwIA`e8YXJGzH+=ujz_B0=|G8IJqP|IK`PlVacjGeuI+y6{hF%`IQyI+M>;07BF?_M>R%^the>n;-7{MBK>hYP2FAK^YB% z-W)Y&aZ{WLAK0%LL>S*`5%(6_VRPJLD-0GA>3{O-m+#j$=R| z7S9@upo9h@d#(l$cJd26#t-qV1O!ypQ^y2L^BvQ%G2rd8#OXK#7*^;UJnxbpsjAdI z1cID40s9DwNC53-9jo}G_AqAf; zO97sh_p3kQbtXQ4C zpj;z-=qI3Ak!1!FdY)+t z|6v;@b%1DveiaCUqI$~1hoFx}L|F`gbrav8Lk(d7k$gSJNO8M6wS?z574uP|%mZ<^ zRqzcd>bae$6@`_75U4z$hE*u=mI_uv5R1i~0r7M4jReEmD6F*@O7 zB;2*a0EMEMrdkqwUk)+^HA>CTjl2Ra%}DPb0NxkqQj)JCiaw@7H zMUmHjXEnxEIe7Z6M{fp0?f;|cE~BFQ-ZlW!1JWQNjewMdAYDTvDjm|OAPUmbIh3Gu zBPr4$NJ!TYloXI|knZl9cOUq_bFJlPak-d%&VHWz4(57=yXtl*?oKDAH!{g{E(2QJ zh!&+F&1`S)KE5O4U;t24VuqqApqAc*{$zOO18c0d1AgQczH_AjZ+g)Vs(3wO#7u{e zGYPZh2gJ0=3|K4~V^=OsMpg~-C! zG2zce1#znQ&$a%47U08&L)_^^B*U+E=(9q3+B@tMxKDi+c8T?veKPBPOj+sMf0==w z$&FWauC#2Js-h-4R40~k(&j>F+N>4r@3yPbo#0i{wTL;ZZl;Y%WTZk5YQ8~_vl!b% ze*p-Q*%aGem`A)scN(U?ba94GKkK8yzC6Hp^6%EFGe-80ffw)aZsQeuy8i%-kNAKA zAtF{zX5duL%sh)v;~vhkq2qTE3aD)MtPg)%)Fri!;I@9Qx^?R1Ht%d=_iGR?*$jpn z$a**-48%$pB&ZoYUTe4$Hr7=?spl;q42MRmb^R_3gx#(CymFFZo>XUdD{jIsr4UwH z`~~-h;WwL_eonanE6B3LL%jG1!0bRS$MiUn!Ce63pEHC=j08X{%LbPfem$%Qou1w; zDtQV3R$Es);J;rFcoGb_3F?VI<_896y_e-2Gew9q@xK9#%(8sUjDNWR{2u7Q&BZ*U zTp#C(+w*Suu_IOfN{s6X;F8|FJ@I{Of&nTF{qGwDP8a=gkumro1O+t8ZzC$y^x3#D zj(I&2CGaw>zXAVi`FeHr8elwkKHOTJ{9l+Y*aIVl>lHlIj{mPFWaU9xGWHv&RimG7 z0N4+kQt@VOilLVy{40Ct8`=Xrv->G*kisR|!ESdS@Y8w;Up(sAh#HliV&A^&A~XLM zV9VlpViMhmF_i$h-0FZXenX%Ce(;(!?@K{G6*E((65qT(Nl(rj&GLLHbt*Ap0QHkr z)_rNC9B$17>Bmf8i2tBmaX?IoKfl0mH)trHA&)&)_Q;la%L&DGn@Vix?f5ek73gRe zats<41et^%{*#+@N#`m3u_A&7C1B2;sr!Hah6u#S? zYym%@InneP?*n+XE3Tl5=0DeCzbx$7%<(d=RM{5{gWEj&XxaowDa}OIGrFN; zP(k4P>x;vkh0<;^fS=ZUAguHtnynsZl*a_Qf5c<*(V?)bn4_wzX*QUrjbi?@)Pl+} zQoBgu2h}gjOSg@_;a@C-!E5)BsdXs;Jhh}(cg0`uX>#@-H0x-=C&`Nx-`$y=oXcWT zO({xo$H0TVom;0dJMT-uu@0KI1dm~Uj&T54K0&c#Il!Nno)0X&opb(KPMdN8&;)kP zR1c>Y|BC{MS82Ba@WhVP4MYACq?j~(&rf6MZnxHwO;Ic0({Lw++pe~GZRj;AVD)9 zo`!s!|84m1`dd49QHfNLV{>lBfO4S#@u}a{t&H&6Y!ynoHg-D@tQ-6F-Ng7=%$FhN zF_#Iz&+!|CK7*8=82AV47$X*YrO4nT3{aAIkOD1JZ*3k6ooB$ds3E0;n~%lt4;3NJ z#^xnux(K83@9%Yk?D$gfSfyjhv*q8F>W*=4k~I={8(Z>JCisEzaxUHmkiS?zfRe`|p7pdtP`4x&(lMmP6P0J<6L19lis^}tzu1`Sy z90E7{Jaxn6`|KIdY3BRZvfNmE5wT$9v^a|;J)&Yc&c7TV5wqwRW-xm-+chs?Of_zh$Sv#NHZ25vAhk~d(-*^3L!Oh=u9rV3;*QfQE4j-o&U3|gC za#u~pR55_h$L7zs+DDzcU1basfv?JStGFe}=|4wYEjkja6^E)RurXblS%Ugcm3J^G z`bFq`b_MgRo5E`zgz?Sf(k$<)vrApww6r7#eO$zO3p#tVwDT^)qLc#cLEPDwbW5*~ z(DDtsndv*;(5tUyv^DO%ZidXJ&qoR~6Chl*#5w2!&HMp$HKF|Eq30RzwFEh+TlAK} zfG9#kJwH$D5FIbJR@o?Dg{qXiXOgmU)t)RE*&$2@X^ z+=PE~e~fbTO0XKW34&Qxz_ttqJDU&B0XU&q2r*hx(+Jt6i@YCam+p0$)0@6|?$TGieJ{S@svuPJH~Rv7JI-Ut z*sj%P4FBS{&rQ$99xADeJ%tNmLfJa|=l;$PooR~)L3Da&-=amck^@KdwZSc26#C z?O*R3OL#jN0ko@Jhve?Kkqcncfj};&<8G2^RjI)kmoMR|FQL+zK|O;k;b9b-I^{rQ z5dFi|;RKPJY+bu>Xx^*Yb2)|yHJKkI{<8N6>mtAY`Mdnq@luq+t)br7IQ`ppF7@;( z)^-eJPI4ZIMz4?EqE_>_RKq{VdU=2k$-rP?Lk&?RiD0HfEiWG*-^4q9?D0hcfAj3v z(?gQoKN?CzEW)bFFzDyP?&N})LQ!iL&2IkzXq$Y__v-N20^|Nuekmo)?8*xe&4(=j z(pn^Oax6r%!M1HeL=Lhx9hj9+NF)LHcaOEdb7%Wub@`l1q-qDKA|%=*1!7v8)YQmh zF&$}4o+QOS(P(63dL4*satZOrJ#>Gd9S$W6}%H-@EMNT!}mQM2{U)t4fp5zGRQxK8>= zNo1HWmoLYT{T>H^`r>D+53#_sG0qERR(E!ogS6QF^}>Zj}eR zFl9`i063mUe{^R(kMI*O{#-442YZs8aqN=?R0RTO3O+o0#^VL=wSS&>PEO!i2MM;S zimC>X{*xO+dV9~oym!U!x0pk+u=F*t(vtrGEv|n6{GuiUpQ>wuH}vHZMA8!~+-9)-WP2ObHNrGgd;A}4txbqcMgm0GyH z>7qXCm+ZVJNf$j{8Ak)|?;7CZY;<=C{qzPNzKahCru)kz8mylgpNA#uZ-2d z^H`H#fOJU3lC_fbg^)fVGZFSqC}&!!fMH_7)Vfp~O0tuMd7M;AENgege4gE<<%`P#^FM(%VK%%*{u~lpc6_C;7k`mWy@zPu0m4>JRle zoVKsj$Dw&9KSLI9RXexs;8Fwj`34~A)%F*)Uek?@2(Uf*h;x~+4bue!I9+jCGz4e@ z;vxU5(|em*37QF-{Qq(7&`RN12)8mmVg@jV*495biQcxC60x@7*rQb#R03Xe@~>P0 z;l!0c2g_$P=qcl7+8|_^?6q|F5MSl9*=kBEA^>IkmCKL1#JkcO)>(oY)Mr8Bl?fA1 zw=jF@EF#L=)2r`@-*si%C1RG70cDaBGrj={YDKDpxod-$i(1xSf2tW^>qGC9A_L7| z>QPRWK$H;VQ_0hSbPt*1FGIDbh1tUc-tFy@@6sz&{UqAcUiTqRllO!cY-M!56)EV2 zT_WB@7<%MQe|7#iafY5m_qHWjZ4hkH9U6&XHJ9O3w-EZ%V@U;6{CSr=D2TjXxab?u z)ov`<*Cr#vZY$yOZmC!amvGsvVH!5+8@3(#(Hp8L1OT#)1fTYNx7?1|DQvq}PfJ3nM zCjd=>*N@m#;x({M5hn4v=kIT~kA=lIHfeh=>pH`DC_B8GGo|%rDU1M=SIHmvIeg2oh-fDiN zt$0py9YUQwoxQE$!oG`XvWv-l{s541UpV}|7WM?SkVKmlkRJcGsebG$3a8B=*p)W# z%7!!&>w&Nvc`G%-!jHqPruDCZg`E|%Bfts!m=IvabXPjkOnwJ4&#&7O^i_*{oY% z1yZO~@a=9B`@M>QXP@xi^OPrycVFVXR@VG7kWrrpV2gM7i(_w7Lo#UphQC#8-dc8c ztV3uh=6@Sv6!^iA^C|xo$890{Z4N$*(=3^_9Q9u;GdDfs_}c(KJe&WXSL4`4R4Yy~ z%|ZRd-w=;L`Y#)8EP*mC0|k=}rOO(^0P8??@Rj;O(j994n~$+y97xfU`j21?RSX3o z2$|cqKdJU;#!F)4$2eVdy^&9L-WKX zbybeFbOK5~H$8lGPU*!!6{3(yOtkUK{Rf@g)4v)O0f(;c;t~WF1HDO zHcM&?jq3MFVB!v*->)U|eRPrEm!G}jR#yMC?3(IDyGK$|QB6KNZ%Y3oVoY(D)9RCE z%6vxg-;uXg493g=2AU!|z&Ilg(4ZYb9Ey-6-2bA}A6CWNOBb^@AJLE2$R*3#q}ynwHvO_kHK>xvQwi(7eF2@IUMb~q6;EN(^G_V$}0zH}+&strMLT7@QCeX~w?)CEgzr)W&*jE;vjnlxDOx1r0U`Ozk zZcTsj>BeH1#iab^{bMB2>DnlW4u^!iGo@S!UDzJap0Z;z zcueun2moaN8(ZMajT`Jb!|G|915A0F1c9K?3J6W}PW+pv11 z)Oa5#FZEyi3NT6$PoQJCdXK;(0K)$5Q2^$YT>E?)Ynj(EQ3OxwoltA19UmO}wzEV) z+h7D(l_e9pTev!mg^}9Wp_R~B)GUE2Mb|0vsYA5Nz!RC<7V5m(g2LLJ*=}&X9&=F=?eOUfFij!^z} z%Qs8vKfNE5RbK2=dQA^xB6zW^Lnc zzi=rMi;rbAD!R-0OPOc^r0e#Ur0*{Oilc}Hd_N34f!!2@fL%HB0zNXzW)!Sbgq^X( z_W}8}%ny4d8^*gq`zZhon^-Ju7lB=F-Qe`v_4NVX65Z|$-Fw2Huo%8FkApv5HyF}L zR6}x`Zx(HQ_rC&+Y(fy<$=}usKll9Qr|`G2T+rD{*nudHp`qVUwbL9_xv8l%yt7IO z@tq#res_XlG$>$%emf&4#n8`RkV_Ljj^%A0%cp#Asqey(Yt(@&|DvgGc6w(UW*sT0 zM2*qwYEjQm7kg7FYAOL)z&^X$Ih$9kN@t7wb5GkAq+|%7=Y2#@ElLG;h z1$3^m(T$lMfKXW|J9z-VO?IAfkEmnGp~g^!Be*3w;)rDB7uP(wJ#PNFS&8=@Qc`{x z5!;31kq2aU=O2O&nu9~^=K*iSo3pPEbDIcNB2n)}qW1S%T2z)ZBy^fPB!Q!_M8DZ= zvpI|26P^3oqnS4W)6F*}8K>R^w#NErANL8D=x@`~r32)Y0^ohQD}x6J(7y5QtmOf; zx34}*m{qa!13(oh3L579-?r7yC!o3z?Y>;FZ<&f-ZV@_kKi;dZn%pq0(IOd``k%^6 zwb8;T*r4CgGsf9^hGj(=c$<7h!q?IN1s4 zItug~j{>mlq=9Geu=dO$8HD|?RdfemrggQCqFHdxy%@;#QQyt}vhReU^>@LOjn!$* zZT6G9FCz2-zYUP<=(}G5JZ8py0LWxI0{p?BGBfkACrGSAezws|4S+JW!$%o{I@E<> zSLY0S&=&3DDD4}YuBq4>oZb)OgL}^uiPA&*+AJ8{LyR+Z!>_*34kak5X0Z-<@jhR7 zMbalUbkCS0NqxtWpQ4|~04*w2gIga=F*#rSgBjF_O{Z?F%#lj|Bkgb$?OPMiy=tbj z6>m+n1@RWGNhf{vKFeOSqh!Jqz{)J^Rw?bz)+}FJu@6m1(r8%58m@;@O?>Z3q^4Q^wI)@|)uo*^f`~3Il)|qYOFmvNvQP8L;yRLT z6oiw2SGFe{6ezn)*>{w8<_NZZLpk}s_f(Vg6#fBPw4M)ZwQ!p!ls#?fRTop-qQOMe zK(5`z(OygiQ`@7vh9tP+{KxmOm4qY?!qCqF+_{|xUQ9}`Fivwb{qtk_g=6#h%BJHn zs*nSdklzH<-V!9IaGxnky1+kADhI$q2tXne(*S~b&At57AyqS%S}41j!KKs4fue00 z0xxv{_%L)}fd9?NkST2?xGL~MZyf#c>24Sh2;C3GVr}1diK@dM(p!J%6mJsz8f0}D z)JaPfrVsa>EBM{iaWm`?y7_cmpto&DOw-rVoB52J9J9(3;PyfMi^%o3%Jh93RZMbA z(91vR{VGEHs{qMp$^~G@F%Y6WQeeS_XuwAa$#?||76=6bQiV3_U#{Rcw~F`lF^j0h ze7T%zKID;Do$5@TN?LGo-WNa0Q*21rn;8`T{fN7LLmKZ@zm%S&2b?3Do><&1P}g-S z{SpakYYr@COj@Z%7G1A6O7<D}T@_2vz*LH{W zUty}r)}>`GQu3@rQ4;CmN~`3NB{4vU^G3V8KyO$z;2X9)8`}Car<^YfE}LHNJA)qS zSfKcpI0H<|@hPHjfF4V5xaGf2f1gfYC^o&e-SqH4K8dHx^PlR6G5)Qj<7XLQjRrTf zF^^|m*3}B&lyiaj<|o(Y`@diy55_b#c?qEQx?41q(^Yg=0*ph#0A)%`uc-xZR)i9L zl%$_l`~5xn`Oj?>b14ogBDqTVZ0nOpTj$RGxlm|L7M5MK7zEB!m@wQeQ|}3gvsFQS z#|Jmx9b?=!gazAv0`~F!Z}Vz4Pqu)TDN`F>A>X5L2-3T2teUTeuZHAVcf~W@!wGlm z20`Xy765Ub3EXElg}+q-f^8G`u*YtyHp!-*fz+$Ruvc_rtrHeo<;RGZ_u^k7y!|1n zMcHU%c_`U>x-q96OZ&2pZc3?D|RFWmHdTWe92Jhn&H_ zp)_5T;v%uyf~8@Y|3NHpclG0;>^WmFeF%VBmuS?(jb-7UvSy#77=FO!VXBZqvGU8! zj328oC?ze{4TG zX<1!Trif);%f6PS(3ENR2_~qLoI1C&!sa35Av9@wLPU|g2_5@I*k8Z;eoZ-DzM3X~ z^3bmae?>5563je`4Mc@sf+M632l4rA?2n!oZyp|;R5>&N5+Gnl;G8Nr^fTZ;cMiDE zMs7*yvbwMU2tJdflAe>!mE-#!Q4Jk1)Q|wB-~ePzv`J^lBCIONptTrPAGbJg1TD5q zSugux2bn{lA?jY;f=l~OP_rXq1+DLllr@SSLgdQ2t1?GRAA8rG^H67%%LncEdow{k zYD7cljF~Ok3IT)&6kE3$5sA?O+Y~t+?h6XMk^esnP?lB%%gkfr_=E;lDufV);4~+b z=Lv|Ljr=J})}sgo_2CQ5%vKKozX6SR`4t!!@(`bSRr>6R0Yzy$7eL62u1`G8jV5~Z zLCJGt+;sy8(GD?yx@--Z^IQZlbT|v+hVO)0g#lg+2Cv=$>=@8XV@27^;nTuBUFkYy z;7&@s%F|qy#K1rQy?L3gW-S+%M;sV@?-A1jHuN||7aW_NktOSYBg?ydJO_Lj^9WZ4 zg3gza45%l^poP*5j}Hs+kQujAhG>Hdxby1U7@OdEpR_YQ=<$G|ZJ+}!Yl|NoL=j#? zl9u#=kyIM89CF4X^(1b;X1R58;@+A2&1l&c2w@)BLxMv?0L0ui;BB`o>X=${y`u(h zjfelt{hmssMn5a{d?ATv<5pE~Fasm1_MdLqHnj^E1y%5--Y)^vo1|m(LppcD1{m`l z7C^ep3y=uT28|JSCSVYeUV3eHGBVfTkFMC8{>Rc63}dug;4w1NA2jH7z!aFfA*Wl< z-aiG&1EcWXm)G(k!opW1|U|#;?=py_i%m;Nr?QH+8W0-HH@X?)d_U_4u+x zU2|jsVLY?kA6_iXI2i(MH&-k0BPgO68+3M0p}(qp!KLHx(J!$|hjGFO!7jQ3_$|%= z#`K{}#9hA{=8f%n@^Nf0-a$07TqE9>fIIpEZN?gLU`k3g&aF$_oK6@wHLzEve|8i& zLEOIyYNH87|Bbrf>mxovy9u%@`qPF1OzUqy)hAae8r38H?jE9&Z7aKE*A1`^6tWJ- ztUsZLQ}$5+uyysLJome|9dsVq4Fkq&$Z#!$iJ#Bio!h-;nqJ;FzS3;? z8We{4mUrnb741jx)EI!GOlhvK@oGzO1si{+~t?@RjP z_oeNaF%}QIxMMqqO_+APcgP}L1HaCkeo08256gY~^Np2Yn?XAuYpMm@9UF!C{*<50 zwB8$Cx%aSsBeQ05%6j`4k=tap>#{Bis){qXbrT9HN|BGm`2e(rR><`Q#pgY#*V4cJ zLNO_7$taA^I2TJIo6u-x>|9&_;e*@qn)7c%rmp_~@Pii66;&L+3|_C)6>JyO7On?c zPB)e8M0olvUNB|dneLr+yY4-3F+QEN|L$;9qEtaPbuIV^HG&f((UxWN>1IHTFO`@W|9yL3@R)@hU#4ws$N66yTwt^ zZX`eyeE1o-*np!XIr6W(=?$#^wNKt{uxWxcLT)kmf=BW`?eE+iZdZyWbZb6ZGpAMd z>A>ucNgp)F{yKo7X#ev*-m`J6a39^MVhB+qx2Mr*tq+L0?NY-aXeBXk*)9}30Uac#wnNpA$_M)qZaX1VV zpc!LWs(;pR7GHiucpD`B$mkixp!7{~qbXV83(QykV+?{Qj4}bfBNaIU!K}Yx=AT4T zFJjf8R;O*$&^1X4J&DdjUPvsksqSK^M)KWtq^`10MouJ;9)}(oU*%nd0|b(K%pPeY z=yz^51+k%Sw4eTo_j7{T8~4U9e0Z>14OB*A1VeE3EN=JAOgPwhFOg}g}IFejRz5m_b!MNyh=-CT}Fix_ii$*r&Yrf(z{fb zax=UOfeo1KTibU4!m9-0Bc-0hrWwmVr}KfcmQ0$yBx1DvLi)~4BQ$1gLLBhq-r+B$ zM;f64iyoaP(K`tDFaTeeC51!uRy#)O8h1mQ12|*W;s2v zNm=VMQzJH3Rh72YIZU)`N?jeri`x4fZcm0&yGIwnrnILNm^BFCA5YqRhUJuAt2zyH zNS|UoS<0j5WLN$a%|Oxp%i+;&wn>vsi{46+;|SvXCm`4nU6%C_r#ArtH(J-A00DUS zit#$=%06!X8~y0EQc0zTZi%uAc0+ynyY4N8q7_$zzRGPFv+G=@7K)Kzo^)D#?$R2~ z%8KJQa2wIx@`!fukr&+mCV=XHsk1kQB6f;3AWhfX>mx-#4BEGcrl`1Zkt`Ywg0mKZ z|1B_pxxR-G63zw5mIVX1;D=Ls1N4h z+?G)vYM*m>k*zWvMV%}4>sxYF#?J{lf`~l$2a0KV7rUo5*;5)>elJ6F!+@(f#ialT z84=W1fiD*4pK}0%)lTo2Q!DbELDst8li$Qy{0;yn!f^iiI#X(u^eE(9E_f>xz$pK&H(Io@6H!i> z=C!-&Z`WD#wAaXifR8CDss}p}3VyoEkSqyjrwR}H_7Z!RxRJ>dX2#W{pIAu*vN*6U z+H9*!t`eRWe;ZNXFkIC!bT!}Vok*>u9=f*<(sBr+)n~K;%)%eTW0rU~<((ZBe8taj z_lvs9Ir=#IZ3hAW{tDnRwkiP-v{>G05z}|>P1{$MP@>oP=Io2~{a9=k8HO*x4>EDG zXqChwol*Fb%>+B&qs=SWf2$_GZ_Wg?bXYA4?Ekk{++IaDdk3@j?y5!xu9-RXK{%+1 z*lGQhJ^imxHGr|DnRDq3l6~}7T2H-zEx@~pB zLRP(J!Kvymj=%r-bgSEfyVo$K=CseM&!_f(^YPb4OK2$G((COI)0vk5YC(==0oEDT zB6XxKik4ehSB!QVv$ikN=+BO&w=U_X0c7q{Y-LsiNf2O*GfUEl8BQ0#zD^S1LUr2=(qf^C2|*JfB1I}u0UP*;&3 zL@HDCRf=hB&8T@a(8lZ}i zmA;#gmRX%WNft8l8XOifN_`D~FquITjQI*dnfG}}e*M0ZZQ=}X10$%;&DM_7F{KlV zNN#U&Z3a++Nm%ZL=#rE$8>8O5P{wHsCib6WZBg}0KMmv`QG}Gf><;3h{^_f4P+UBM z1qK||sIfy{K}_SJ5X`G1R|UQ;b|9Z-lGR|{(y6lcJfZ61`+8l$PC>Yo+CO%WtEK{a ze==_zxO(ck7L4v6G2PxQHz^z7J68<|`!IBP_X9*zWj1C`DAQlCumkDC}lYcU4%M)GpzAaFqdU)u|xlRo+-70l{A=cd3 z1K@>vD@c8#=Y{ISv$Hfb*l{vT*&g1xK!3jcz%ix<=g`?*tbtZ7L|MzvwHV;)KUjA= zs&6hA?=B~*mHObb>a8TG3c#Sj=IzZGf+KEsiU!=ax?cd|rjZ#X7dpto{{DkxVTqgT zj%z!!2$;rEQJR2N+-NlSw_w{({}It>$VQt}BzSUn3m|mI-of9&H)-okGI2St9UM(% z@VpPq%Tz7rp1;`@@^8AgNsZ-rH2LAxb;ud(@`7pysPl_fEc!Ey)IHexQzbM@P~O$Y zAys%;!h?Lx&L5Z5)kn$kXZ?*+`MIr0gyJgR5Cmgp4u1wEw?cD*9lvE8;=Nye+z3cA zhqC~P<4Az0t?L(XcA+Q9lb+D$&nKJowFkv1OH_jvr#BlCnF4+AUgc481o@qP1sLU| zLcJ-khyN}UYXYI&mLUxcNH@9FU4#B+_s ztx#GZ4@{bVewatb$-SZ*+ zPXfa56M}MRbk6NX@dAwai@rccH1J1MSxzBOFZ5cCJ%nXx?{mn+YJ`w*)XK!j#pK_Y z^k-G3qA3(~?rFT1J`raipK>nI>m=_@0 z6gj5xAgETX0TA}(fMdSGTbJ^>aoW%z1=(+mS=12U$^rd%#TWumOmMT?Bw!%M2*dA# zcYt+j;LgAA5L4)&r1|wUWS;d?y6!VcwusYjG_d4Q7JA6HSh&Er0p#p+3FgyrI8{OQ;O3l#kM8Iwq zS5d)4KH1SlwNNkhO4wld?u-~@RnC{hA946?O>r>7?*+Tgr#PYldVny038LR&)$|fT zEqFmz`06&pI0FO@SZ3KghP8hqQD#G3)`nz+YquA?Zdrc|Qh5EU`VCgOFe#G9oF)H@FkgYSXBq2c^OP2Ctqlo!dx ze@5QyuADkviexP3yIIn8)RuiOdiwiq^X)dzQ5i(=?&tRrz{mNmUz4A!T7MwLkJH<) zNd6#m1{+NW~(fn`2zM>vLOigS7LV1DDmgK_$MR)Yb$~fTX<%bq) zeGF$W_gfb~nyT=!CXzN2fb-m;$;{$4u2zxG5B*=3O*8x5yX`?DJv46!1_#R;-t$cQ z5B~S=Uj@pz0yx?>*G&P2)E+_U_)^r~UKX4Is=KcCoJpkz=pfzLS=CgEVj$`7Z`(b9<&1GeJ)%`6_ zkH9jOBmQPy`M2J1QK?Jg1l3y4fhE#JeILuKe4qPFC@Xpp2_xP*Q|FfV5)B0l1>uFt zIQ&%fgQtnV+b^9LI9t<65swTaAL<10T~e0mnwNB4M+FS=UGia{C!lgPXs)Fy@2tM# z?CUDO{*BhgcZm!xf!xLs`_FnjmZJZtL$B}kwlb~PGI5x!)v~l!g~SoF9Lq;2o@plb&>=0kD{+l zURqZO>QnoiEqT-Dyrjz6+bGG!^RdMU2>{PctVpSrHPyM?P?Y*=ij#R$BjAcv0R^FM zhXeMogN>-`1f99sav_(&#Bdz?N0hq#y7QFb|0wzXJ7EwR;XJ(4AX7@E7gnSYDZpc8 zJR(li90r5UF$| zE9P|*QJcj)|K7dQFzfe&;_^;uqN=Gd%K)mc3X%V!uiHAin=re-SjTd~M5qELe{>I8 zYG(m@HdVJS{~|7{?g<8)yC8+HWoOgnSS*Iv5cZoJF{f(Cz)eK4x)H87Tx6+(X(${PAwMqUQA{qq_9V8Klmk23d1F6%oU?QHEFyIj<@ zbO<cOj;XxO&)c;*-qZ zL=j7V24mRs)RBctmNiszhHdgRJ)&=D%L(#uhcMUCp!F!ZAbPr81yDDw?+d-X|CF(> z-PkoM{>4{_6#I<-GU}+vqCs*-n|@gF=x>W70yVH&$&i`*{%f5dyhf1QhkH9SR^MoB zQc@zw*Rd;n=Z{RenhETt57{XmAWvEe@!e@1nY?xMgti z4z#PQ)jxlezX{3KngH~!0`*kJ_@y`Z^rl=t;$J+4OJvb$5Pn5}@Dxv7rX!wo($qgwjsQ`xBUs_57sB*SpGgJ-QFrJ(eWfPDQxnr^L0kWG6O>EB*?!(Uf zo8MYK7Wm@ls#pKe7;7&Ml(u2M@d3H?^qV|ez}K;df}fw;QHg}5C=hvzU%H;!+x0mD z=->L;9^Vnz>9kz~DYkw$`HDo;RKT6C&tH8fXTtXGV`B3@%p-qK_M?+QPSjjXPhI}i6kDlKRcx4 zRecNuTuz)-9$5L0as2#LY)UaM?@TQB{j(uO4Z)%qNTDGBg=61+wE_XmKR%zsApWsR zA+f%jHRF!uD>ApYJCqk;SHHcLd}6QJu80$>k^ywpeP&ge79&g-vMJ1KRHUyDio-r6 zBg0&}+b@3ZyCaD9W#D50AA~=r!R=MB_*PCl{|5q>8 zI6p`kboc?%MT32=Gx8VIMff9Fb{jQEQ|@LYe;u}aYWP=FBB2zKdqwX?9$QgC3zWU& zTUw`YwuG#j&X6KA@z|y47y+|zwhJ#aNuDSB-E)FA3xbhcX1L=rxXt{tR;-hq&Snp1 z{;WWrdKvFGWZ2QxpJE35Yu*#2EV&6w(8%9OV2;MZWP2E^tu9$eWuq z*z+!1QtBCr-tqzNBIZ6CFGV755B>S+=&s3CZq!g$hMz7p(}KCd z58?AGbmU0W+)MeCv0ivyAo=2^UPY-P$({e`K|pN~;Fs*6X>&(IOcP-IptD-kuP3TL zb$iD=-uC{LAgYLBZJ!9c0gR}>kn_`{FYeD9aw5GvkN3vgH)bCxd1`@h&>@4lhYsW-pPM-> z;>x=a0@Gh?o`3YS!u`%wO@5o*!$3puvGwI!&({lJS0gW#k-u#(uE>m~S`%7aO`S^P zzi%Pe3;tV_pCSO%$SP>#hsf*xx!fVn3!VBRSG`C2)#P_gmBZWNcI3hr=Ajr=gNeUI z8Dp4){g`}ZY37L%asLD^%S5hp9xS?Z6 zg~I9j?(o0DmdQ=)W5Erx#kc7Iy;54FIHMa{fP-w!SHnoo#XB`t1Vw=ewwG^1*<)7};rf<|EYdPC z-MuQG_Ypull?2_ad@kdJNczXI-n&T09-ty}$Y7ppFCN|&R!yucR5W#O8_xwx*hCEQ zcWVSBs~LqBgBT9qua5VZPpplJ`~omF95n&y6h^S~vl)Gvliy~?gX$Q~6!;ZD6LB>iUfMS3?S4zdFh!l0Jnzm{ok}?5+DVTgK z`AZ>##Jl1@RAoD@o!js$VHAA~+$AaObd&r4S%3plpcA|7583h^M@;6_te6iKyQ5>K z?|B7%!Cp&YW1wp{@RSc<%k68unlbioEs)wzR)5DBv&2uZzmqOaLfk_*Z=|5o68{(J zC)T^Fz8#4GC13AQL5=12FaGHpE9W%~$Dr7nP}mj%cX$TiwGI6E@DN`<^|L62Q&7Lb z*D4v?ce2!bsi!KQF!`g;>lDMIo%fgJAw+eY&bpi2)|;_ZsQ~`Xt_N%=Ze7`lg*g`j zhw9a{sH#(^du=Q_+@w~nQcf71KCG_}{f!h5va%U5+=9isnQ+wjiKjeM3}UFdKB8qsodh}>A=FaN1GSyYU_?`M|K@BbAhODF?n%I3djxU@N) z-mQzYNdRE`vS(i}iHZz4N4qd@Yw!MMzE!Wlj{XB_7H$RnpE*2_^d%JzE)*J0UVn~l zL{lsL;ZgNT9bl#C+_?C(5d&n6P#j1vchDrEubUs0x$8AWg!lvlt616N{qNrjG9T1i zNxcK|@v(a-Ak7}L0KE(?gyG8ieDbjBwhb?D5-P~r&2iPNXFsneelD;1S4+rO{$~gI z_}ufu2kxW-|C)F4XLnoHUmyKA_qEIc-Lj_mA z&@%zeKNt%nkX_?_V4(N%w=P5!l~svEiFL5^1BuK^Krc=z`fVzn#;^Q&tw(YR@&LkJ zw&Cjx!(ayf%mLc{rv*9y`55{Z;us#O2~95B=DNiLxLdn zzHyo&fm_gMnVMzQMKg%mRe9l^a8 zBu{|UXX0j69Av8_#OJhu(AlT-!hhN<_{}U2GX7sgpmnZ|nA2o_lgnapSvaR3od<)fnEHK@b(d*zi8r_Su&bg;<56rU&)r>*>b}P-?sbk@tYW2y_(JN zF4jh*Q->(Vzja9DCC8ceJ|~;LaYg-Gw0mW!T6mN-ncOgKnNT(ARN}0^DV& z8$LGS`%quUhj=@YvRmoqWX{f8I?lvv|G ze``~pXCoSx6Hvz&4jUB4zm&he??ap@lnkKr?2+&wZeDz>qWFIW#nX47!te@H3DRnv zeY&-qYO|*}n@{~(Z_m;bKqe1vbu-7J&zbK((uwhObrn_3L!xOT~XhubV)2_O!Q*6Ida;_hJK z9IKk5Xz&p<#eqsd%vULttiR*tOJXt9uxg1wGvQz|&et1X=()dqUe2r`&w@#RS@VLJ zPQL^4-BiEcd}<{v#7%*Wi}86w`|rY_91{XRBx#W2Ddi~x?jLxv-!#OJO+(cwAADco zn8*vpJvY~k{Iq5|#Fg-7!L48f(>1~kK(%mqU?EfO14v2nGOKS4yH_@9*)2GZ z0O#(OH&ughWA>6*T|bclns?zCj-?`FGB6?#H26 z6oPr6J74)_ECPD_W!4$SI_gFM9o(bAWC-JcBtRE!4aq3=czN>QHqi_*fLcSbVw~df z=yV{VacK0+uMT&cyPDcHY}6G$vlYTnAqCKr6hh!rJlhl}{w{HVHanfh6W*m+T0QhK zEVHW@DC@I$3Ij@1PiSfGQTm&O@{XKsTsjeLkpl|L5}f_-vaBHR&8z>T>AvH!eBVBR zTerP3vblwbWM%J}QTB?AP%1OB_aNryQ1u+0g(| zeU(+E{E?>JRebY0|CIOkX;tCHf9HUtojia!Mm7QXp8f{-1X2V6pV=Op)k?oJ_I>?@ zO7GfskTi>85m3>rhYYjAo**el_DU7+qr()$vAe(Y*qdFra%-xTI6Vg9`N8I9U#+QN zPTSV&=JZtXGSQ<)rT5e=?fIDz_)k9{Cl`<0=oPZ&)W4fP`(Em?+t?r4V687e;8b$8 zsJ&bBe=ESlOgoM0oL4LtrE8t(936FiOmPs&s`o&SBdx}>JdnCVXiWm3!RoPHNsk^J zqWs`zu~D6Y@7>H_|GC7VU~XxC9q@*&{2WiVb_>LmFwVS%sJDzyswkSF3RV`QOHG}Usof+XvHU)(HTji#Jb9GEt0 zp3krZ@doODyuY|(bKV8bMx#ip68?)xFxGs^N=e!zJ`2#b1T9GK)3@li0zMx80NR-7 zcCw>Nqy`ikije0{T7MqYVh~bGeCbQRSG~-QVqDbbkwmP zGx$unI_GW%F3Eo<5rV%zCZ?0VP_4?oj2>Y`J06q?B z06q1VQ}Jw*C!qlyP=v>%UJsFYeov!?WLqXtl*LW;1pcpvm2jE_K+Cz(^kk*86JBxb z+Q!s|<@stM4_FKW^xx<@BbKH2HCk0j#btjHzQN}T`YsJW*4wBUvbgY>$c3U5d@b4a zJ4aL-l+K?l*CIi~gwu1F(NF!ZY01s2vT6V+OHF{J-N7#D6$TVvrmv6FkD3uMwgG%# zDb#yaQN{Z7`>e62-}#)wVU5f5r+Mkegg7lIsyf+hL!>o*^#8SU*@cOTCDkY!WIefS zEjT{k*0f_4jBU(Y9zOUWnd=1bXHG&InRVRlTA6jcdB!NVaM8i+<=X)aSSqMb4N;!M zp?nH*nJWjW%uL61`OtSwAlxu4iw54=A4VI#+EP`g=+3Bh$P-m?Q%&2bI(b8XzII)c zCtPujaibnC({ZD*dOh<*mrzjmZPe{-tHIPyW|fiz108oRC8TE;gM!`>bG-a5b*gfkvTTfS`qUf%0Rx811&r764a!0^o z+D4+Rlh3kNoc>ya^|-V2u@Y5ARZ2CGhSSA#nuE$uTeaU94lg9p`OGG1rJXSRw%EP1 z(mlzHlDv5=0wVDaYT^?z)9T4h)S@t`y7qfLKJZ2}tN);;68{R?e?_ddk}R z7ChFj`U$ttEa3YP(tEb1P9vyUlXTZx6q&z$FuRtew~4L%tKXC`-@W&C?be*2gEm@J z1}6k{bwVZ&V8aZ@22jSI^Tl*G&hFTpR!U!Oo{jDo9oxU2Gp2nSICU3qT%0hyHPVxM z1D$VEgk^*SlA^gFn*W0zGdg#qkFonZ05eA!a#8=sqY*&bVmcvm!(zN-0(=Df6W=ML z2}&wQ5;y8J9FPiB3IV=CiZnmJpx9SePrbt5FmWiUAs?6=1dfkqK^5jva?Sra*qzWX5n*4g6K#~Xq68@dz{V=xfZXL8!4}`_*>Ap0+a^e91pC5>?R6{$ynWZb?$XHP*y zq7i<+vNm&GjJ0=`n3Bi03tV*!2z-PGApU$wcFM6s&}L#1=fJ7AekR8YqaO_<-2!Y1oLGq~ z;qh(HO&?~8zwr8T0~#F)0LjP1oh{sZI+uCZ!|+=s0M< z%0~>;4%8A|;XvBS<6)x-sZZ#!Wz$&DDkRudaXv9jQ$y_*etQ8N?t5&PvDbgiaJL2s zGU?>Skyacajhum8VPSJ(x?(!EFdd{>aPsl>!yHD(&-0}if|F|q+@hVb6usSPx%R-I z_`ZHuo;~J@t6_ zRH;X`O;cvp-26TwYRN1r(7Q9gl#&9f4BTiAr*ce26WjVgz6v?=5u4&m|U-n;6bt19}8-Hlx-{KKRo3e6Mnn<9ZV~T7#C7IFE_Gb+}JjN zDTZ78+k!oDQ-9J_e->)v&SZAC-&^zy#zOD=6#SGakJ#{_^OE@X>nEqRQ@e0MF@Uxz zK)(uBXJ;r_G-dQ3CcM$h0&~xt3#H28s360J2CrJKFzOOVju=DkCdkiSLJUrKwmfpG zBN<3`tRoqc`bFi;U&XV!^`RRxAbr-c7ct+_h1`g`cP&piq2vZ=S#-Hmy>!>1d5lLJ=kztP5J z_@Z7kcH19LiR{(5P1o>K-PtZKDBKf1%wl6eylEjf>Jq}Jca?%x+KsA!3+fuXk&CU;NmV7sN@3@ zu{z6IE(Tjg*bh%o+HsN za?vs{c=zrZC{ae{e$GwLO+Cj_m#3H9R&yJo<(7LGzaH)BK*&P6N6v$6$keO{@_qWh z%Rk&>94va`f`1Pr2)6#0`ZjO;179$IYr?_{?rTS~hCYD8J#^6MJpLo!kHbvsrIt2~vOievC)yZJ7_1GYdz5stg|7tfYQ)n5!ApJ} zek11vZL>b`@LyRb_Xrb{qw^p~3tV{1P!=_gNfT)sCLl+haf)!&7R^hB71fWa&oe?dU^iHa-j@^Cg5iyKt(Mn|n-@6C#5;9!!xI}*57%q_*cf}L&4F!lkqcsjj z;#9J|@2G$1cF7^d8+r}}HBb__GP6EU@_rb`-LfI2mF{bgcL3&xB)zN=pWAPc6(ckM z%~L91bNl43Wa-B&@m{E(L>GMR@m%~R=@qsojHcZ5Zhotx#OJPpkiqov1B<^uN*}gI zEIm75u-YRe=R#{UN9Jf*Gx@|-<1OAow?Kewn#k2do`r{u^4hlXKm6a~(~)7&+FtOA^6=7NUiS z2SNvdCiiv#6B;;)oR2k|$=g(ma3$QP0CHmbQE$R{M<^}AVV7?pm~@c7%Z|ISFd`Xs zMp>dQ z;WeJ7nq0Z$TJQlLK!Ym5#jj2hyi0?j6ReQ`h$EP3ZwYqHy*@6jF0U@%VqG>Np87T> z?vc%NG#g2{D+6Cvnp|!VZkDfc4thJqIc`OQyS@N{W2+^-rYRPGQu;E|o=HbY*~tOu zna_R#KC|7sD^94UStWyGSo3<2x!<-RR=u&V8^BAXX8x}Od7>|nFH%&%&Gy82uMpBF zB0ny{7m4>tLOZo`UdwPa58d4#=ud}KZfQc+W zQfZp$aAV$0%15=8X=o=qM{KGb2T9DC9^03kX4gO4zBamVOaAqL^9_2?d_%nL-Ih`0 zrR&aSb&>R$?;dO($D1_Y7}i1wY22{Rt1Z|;7arNstu-xB4le)oaxnk>oTHs^brO6v zKe5cN$JZARMupAieU~&Em}qa`(=8bHyou@GN+|pZaa>4eBefYmH-=Be_=Keux$}0O^Poc zvB63TAcTmAo-eK_ZSN-ONAN$LC_y5#z>v*AkB`rwiO{z%KTVD4N(sh;Bt~K#-WU`^ zYc|uyv^D_2%^Qeu51)BLS(C>!KqD0jkw|`^5|!n>d-i2lBJ%}+=R9usJFXz)q^ANx zC?@D`cV;F}8!N)Ia7@C zv&jvj9>QZ;lYpN~Ccrp$xqW@&$&I$Quo+s!(Lmefw<386|Bl7;`XSt1sGS_~Pc{mu_DUJQV<$Z9PvhlW2s5 zKk;SiWdSiCcW{Vk{V=Ret4pSI@ze9xSZjRmdU;@{G>~Gv$znWJw_(EyvThMG zZ=fwMVerMRxP9GGvD=s^+}yCIF41L95X`2kT9Qq+^2t!i0UO)c*w30At9EOE5A(cG zIdJ=vzra98XvwNcZ)>uj^CDmx90u`j77cL2K9x}3O`H*|ryphkFsFj1fesSgD_2iZ z1a0QYPhkC;lms&aCmnz{@BqX=p4tr5DcEDSO7E+_!jaEM$!lcwt|F~mxZk22kwhy@ zgY8Ok#IlAwFZ{8_->F;)T z`Gv(MH=obhR$?BNqr-3x??JeghkXbesqbQ^k8L(*M-Uw(-+ZO?BO9rnW9W*%yG}j! zYy8&|=^VrFQZ@vulsU5((6rI3e}DW-s9J#Yte9*vbh~vfX%oOXv4>m;Z6DdW3f8v^ zG@whdYGq?<(d+(xqyO8wv7>D1<-uc*X+91f05vaXc<2N6%qE1;Q{c+>?6v$CMSykr zmEl7Ek9#OD_L$Fz+XW(AWeuZrWPTBnKRrwAOahvwS9k1B*Eh|KzrL=3qF^PGSyf`Q zeD9`@Mkdz_p!+BKqfcw=eS>rL5Tu-!kU6LvHU{4L$>!bv&jQql0yIQ^5V#NzKwK9D zX#~^d`!#DQsi(;Rt?p|!%Ycd~C3v5@s3yTMs+s!3H$+Q657b?9?n}T{>&=}5&Al(b z0wha_xLd;;H~7luYLh2h4yQG42E}CKpZ6OBKrflAGapb~noOW>0PBSvB3V zly*_R;mdl@9-5oV)*9i_>FOP2+sFUe-FU0KspZ?ADBo21ih23WM}O{q6-;QY9QT&y z%dF$o@5M?ESY;k& zu1HDhGam&WNOEi7ZNXe7xa~Ge{09l@GNmqErnJsQkjVG%a+*FAQ{wiZnER9=eeNWS z<9I?)*LztSJfi@KocaM^ zpOir&J-M&VE);^T!T|rF7C>eW+K81G`R>fQ50|-Hy^=0<18N-|!!^GE=tU)?V;0Zl zbjb-ld@nVe?SZm~iIk?{AT$v31rC6^YX;f2Omr7Kw>x-Ke3#8{3^ua#44Mpfo;bz% zU4I2gzAtwlymhfk{9pJ-{q~Hb4d)IYfNtu|)kuyMa`!R5YbvAP?9S&eoAF=3f`&!D za?jOF0k5c5vfYO3Hw@+R6af@rv!Ja=Yk9%Rr0pKZ;8_}kuqXe&KvBqG%9eMtZQAIj4?<+6R%n3Iv3Ul5~H%$mIz~x9qUme-@|1k?g znDDn*hfQPdQ$Xg9Y+VIJ8x7VAKk1<4>9(>4i`;X0aDcWa(t9Y9nJh0Fu z`QGOMBLf=d3|*I3{4Mt_>~7h@YLBUhY&G;yvOd#Lox_K#kNh1j8YujuK)y%Jb#D;w z;3yctvm}+j5--b4lmA|wu-~o*!P`7^Lv~;Q8$(NJSiPdrwavBdf)uUq1&5{U z>p_I^gVz+E4;2e*-?Lf$WG@z-EUQ;fiK9M^XZ%W(fj_KQpdX7*$LnsS zqNve!3p9}?Vi9D`ETQ2JLLz}cQvq}LBvt^V#;aRQX)FVJjn zH#C0XiJ9!SFx!d<^*VKnSgDl0#lIFl+V%EqU_GariXaFY>w?@)VZtSrd1FU44egy7 zyq~0eI?wE6=B&6Gy3p9Xt<*p4Tm)Babod(lD$^q1ZgzIr{|WP_bFV~?FGg-x6N{r8 z+{ZQn*Acs3?zfAPhq66nf<{+?Y)_;qZd$%y?Jq?zd*PmhKpLO9w>IFgc+xnVy8<^e8E3@wRj)A|3dIG~%QOJ`AueEl z?=U{2OKl}vy`x5)So{szTx)$583xTAXneVhif9f*hj-riSzL~qcLmiA} z+%UTY+-!I40o2XMkam3Ypt3*zYK7n~N(bMT*aT4X6n*0}2juT~wkyqixKoh;By5+xs z#P$HYv{&-KW+;yWx@X?nlvUn8%BuMV_`3WC_}X`uoDPJ!rTSAjsQ1wQ8sm3&XS??I zFvxB&uo94c{Wp-7SH31_Sbs?td)4rQ;_u$<+(1;^m%2|&MF?6hl`i7Ln-mH~XFBl! zZ$uo{8O0y+HYAPj%_Q8-1F0&+XsUa-y?eNN-g*zbO|g`8rQ}!==Uu*`83dDpE%vm_ zM2a`s9S-u#xvygL!gq#)Hl&Z!R{mg&N+0{WO4cKpl#{c|`H2tEtw*4NgS^(cy9y+< zHn?dd7bY|_ym4F>$eT}ZZ*XXF#(PD1S2xlU3Khn$B%xugNvi4>Cn4KN-OVMbT4_=Z zqsx%>%YH(Jru66NHUXuT8wL>F{TZXFXnpj^A{wh1Cwjg9SskFbPiGN2kPKZ^`tSwIzl_gOE{DQLh&$2kkEW<@Xo`HL`JzV~wmV zfZY;#mmO04K)dC0Bo{8{Hz*qa2jZ>42S9H_XfNta-aWJO&s{a7FBsv>TM_c+z{Fg_ zX_&*IdHUc(h+g{rOtN2qFV76cZrJD~DY>T^F5lhEc)Q9H^8xWSbqnZG)T8CNNzJDAO>^6ROm9^0^9=i8~8o=E#h3L^`fYHEQ3jfX^ zK)N0KCA|`r2CRw7$9wEaY3SAi)vP=)O>PX8_Y61jyZ_;Dq_hdIY(oX5#8PwiVypI? zKgeH%J%sn%TMf2v3=#gwT=*X;e69ekH`b@bJIcz8YJ6_Q&Z4@a@u~;Ff1nTf7)MPWJYvG2QOZNmO z;uY_H@o?IzMNQ9uK3=PIn;hOmbU8-21(&~fCTn&%sv5y?6*%{%z42Br6DP}uUgH`; zClYTY^PyR?|5!Tk0E&3!ZKsOmXSE@*OsxDk)8<0xkghz`@9$LUGudc`)b9d;k9Hp0 ziTY1PQrV?dz4}XZ$ci-=otTLGUjdJxYNNt+Dd zYwPC~41Wt_NN}ikxCUL*J0JOmFK@j(N6feDPqsvP5-3`#VkzUKWj9n61eXZavzLe- z7_qYYe|^F-&5|Y~%ikfotX?DV$lw(bsba{K39kLP+X*;-K0d$RPpTNbQl3?Is9EDK z@)Fsqf7@+7qUW}K?BX?3w5o)ljHY82SN43KTlRP{In0fF2YJ&4QY;KTArlHw1Grsp zp4g`u>ot}8z9*ca0I+(*%u~t;xGT-9JEl;hs_tDI>U-D^3jlyUY`VYdN?kdL!Wov!M zDRG1}yl&+2mbDI_qO2x8qPf8L2(t0Foe;80`fdEm62NVHU>a3|ncp;GY{4mG$50*h zN`3@_1jp(uJ}Iv+guh;?;g8vUnKQOaJd$CG1`srYYL@-|rLnGQ(d`CGd^# zqi1z1CnWJvm2X1ee8K>grueYRF~e}9i6!rEO8q9$KL9GLnO1vlBrGJ0NQEgG<=@=< z#aoZEhU(|(_0O=`nPNX9LV$DhWzB&pC?&dw1MPp=dHDndK$=~~-*8rb-{zMAW!UDD zsZcqekpD>l;B!|*zFUNG)5fMxfpjV?@_+>0>% zy#MN*7~?}`K>9*_@HYNNMYR>Y2S{7W0q2{K*Xlwgz+j;!G0Q!WM06HFEGUm3?RVAY-djvtE8^&~W!Lv?1BB`r zs}wVj5nnZ%momPLe(X~a^ILgB2y1Kk#Li7n?4qpPc$tZG(saAzM3?i)Q{ZS9(enmU zY});WS9s)#j(_dZ^R&kld+t4}SG(5V^rHck^!RrVfB4u}1A^^?OYaY!rugTkWCNHW zAGUUcX6oaPfK%eG&fLr7<(KMM>^i|`P2eJD0z=WG6n4~MPd`h&H6~t=AYyFo8x(=I+p-98(&LtGXPCb zO6eU|WM#+Xl9lo5n4lwm)%5g^wUfMIT-_5F8b((pz^6fNHrvKOgX)X5Kn=2tTfbpB z1}I*Uw^$npdx9V*A!;!AW) z1c~RPtATymZaS6sA>}f9C}2Fj;DOpzR9tZcz`3 z%odr<+o2M0iidTmqb6x}=Drz5`M3R;F7q{*NWM@7;E#N>~}gnN&x#uPW%t79T!OEeg6U1%wzdYrt+{ChXtLg06Hy+K6gO7%dAn z3GB1HXiDa=VqUB^&cgK~&;&(zP5ORke;YckI#7{mp`b%YPJaVI_GyLOoJNh3$6g7Y zI~-Wpy48qICpSn+l-~ng1PIP#@&sTr<{bl>+>@|ZYgAkHt5(}76XF$KQVJQ-a!lb@ z=Py3SEIe#|ab}HrNhfRd?vK}NXGf4ncFOTw?{{GtfU0JoNj5B5P6T??QWCe&r&FoW zz$Wvs9X&agobSDVS@V%=-vLZX_G}n0-P#f_nzO>=9Uh2SAKN%TK-Ti0ME)^KeaVcj z%@#+obGZA?z0+Vfv_u#<1w+ok=uW-&)EB*K72^G^;Elz2D(QP!y?a$zwEzg%%ZdOI zN~q}}?;iZ{R@7N%rGdIbt}$~03@W6zRfQ#zvXwQNrBY=9SPMVo?3kEfN{#3VR-8Y* zfH*+cCA~s_NSI9>n_<^@_d?)1k;<2icY~56Izwv{fpHf(c}Azw@0E3XaHv`+9z;El z`OKTQ_lJ46-`Nge-6uW@ocj3CVwRfOcFaXL8S_KgNpJx^;J(ScuE70=Z{(GH6v@^@ zk7OfX3YOWueUti-H)kDHu-+wYl!d*r!^$qfXm=0e0+C{FbF=Fsm6WWklEvJYiOwCrmv3<3VpB7L;=fZ+Hm&>Y@@J zYx=T#E4Zx=v5l)znqm_7qBcxoi9I_+6`BF5h=0$FxYNv}I{bGVZZv$5K$Bs$XI+=z z3bj2x6bpXwJq3YST@?{uJr@*H?a^qKClBF9Ph1KEaJ`aAa%cd&l4*$e%_)uRQXfMQ ztq-eo9&Q15IW^jz#<4!dttidQk7lh=+~{M9qnb6p26zdXm8r)N=C{e$ZgZLWF{R2E zIHPQTk30Xi^Oc5g-7bd9J~p{0hMD>lGY$M1DGqf|5yI>sg6ej3>t&gFH*G3W>=_L* zlIQLKVh9kK$zT~RVuFUNW_M5Nu7;1L;YeJ{VZ@7n8D(xOS$SoCA*IctqWs&TnZy5t zQG+Tu`^#pq(r0?W`h6u@8T3T4g~4`rdcYD)3-Jb{JM#SU6vth-Jb$|2ZwQBZj-QJX zOWF9(VAiXllic_NXgRCG;JuD`y3u(OplVSpQO`d@l}|KJ0pS;S~ckdq_Kr(JDWendhKF2#W#H8 zIGoRYjf$u^edMWZ+lM+{o=EY^rQY4#e;-{6RJ7u`1f8#Owtx(?DOPk zjMUSaB3bqiQQY2HC>YVKInigSK2TW8U5ypahsucp$CwM+JqaXBbKyxzFy}OcLU=6e zp+-k{q)y4Q+^_1yF3GRip z4JcKhat?BG#%RGVk;+Gc(tF^fODi-wyi(z+3|DZ5yUfW>@^Dc<`<$lH^DZF&xlxVN zm6GJdhPO~E{u#OjIFZw`@L749RZX`yM^RhR04mWrs=BA%TJ!WZ3;}3R1?w~xsCHj$ z95$F9zDpixd^w+Qs~ySh*jcnZ3eqzO{@c_z?m<-IufcZT!}NT#C9nnNj{p0h@(%DO zhoc80&poyOA=v#l@swdBSO|q%XXWoJTdL~tDLJ@Yh?)t>+ToGQg-Ef|7Ex`>ts4ps zq;bN;s^s@vjI|OL$AS=89>j0KTR{JaS{&bPiGKXeRjFQJi*LqBGDtDx0Hrwb3g2alT{;NG3a#9?)@!fu)b5CVgVr-D7@K{c(Y@>$TU;L(|{yZHr^2WMWFqq3`D&b$GRP_n*Lwq!0F{@ zP@M7Bce2N7^*1W?ykxM6k?=?({_kUAkuq5;HT|mwQx0P}H+_IA@j+JmqX(pWbMEVq z)4?(yJWC|28a{)B9X|>)gO@rZFz6U{0-`E)rn7u+{zcEZ8dqklYKOqiW*6+FpK8E&l`sYQvn~K^1FxSfXJ0fOP6@G6a3= zHGx~>mZc+~uwR4hY`V?9QRQ9y0@_`|@-~Liz-R69gWgK}5CCf}1>${G3kd6i3>R$% zb#EB&ix(P$-qd#O$p1P|a>1Ulp6^`{FiJdwy&3-h0^ugtw~rj>mIPgtY0-?Z8%W%- z5}6^5P(CGny`$^)(L^M9G=S1n>*s{Ai_WWxr-@3hD-O&eZcO!_hrTBigCM;RfEYt> zMHY=h9RSu=5hQhKFj_@PETE+X;F3o?zAioLOkImj*ZFL?e@)<%fWi;6_H8K!I1v$9 zXU6+Y3x0&(iGjme&yH&s5?W$f;v3iq&CMDsxjJX2F=nQC?2YDyh9^9hA7RH|n=su? zSS4obG3RQFfOwnb0c_cDwsvfyDWz$ksbLU;C}JdI2K?@J0es3^--iy~_d6*8xXhB1 zU0hezZ&umkle(1OO514xq*ZuR=+>z6U=Ew}I#rzRiF?6bMf0e^t8M#I9xw0y+KdkR+=AY84u(EhBlSJcpfHQ}(ku#Q#@?%! zTtV%)yz_TD7Ux-t_{CNK>NSSPH6p!3=f?1^kXY)-MN6CI9th z`%9&%vY_dG`}XtAJhP-zsqlCb{LEo*b8eLIn)BlIk#q_R9XSoKO%;4hE&8l?pZLXK zS@gGEVewqSQ)JZ~b}1@_!-jppUQG6J&V{B2D=!`9s`*{t9}TSi^fdK^MhD7y7-tn4V%#x~s2~z2Q66S=;vsATj{)2T{{L*g z%;GL^?SFU1^`&SEGe(yO)1AK0V{^DkN%)>vz8WK6Vn4X=g0r@}4n#dLds~;h@7lI$ zJi@=3a4gvcooW^bjY)6O6N=sk&_kjigf1cn&PyMm)Ejx$_fJg~+rEZ9Qq`?3c6@CW z92O27lRY2cP(UzV6M0FkU*8SA z*i3AS+F$co1{9>=n-5Qa{MvK>c32e712XUY z$84Q{;opLpOt7*;KBWJ^jQRt)Y2kBwc~ZLdCUPwS*rej~mG%Q9dx!0hUj%LL$3@FPB({H0i zGJ*V13HR3kJz5H`7==60gFyzsL%lMac_YMCb>L^Fl0w>cOy&R20+3-&kyf$Uk}+OD zybV=~vPMy%QAbp(L_TFIj2FLn<44RW(X2722&<6)<(d1`4E-#;J;$}i2hcZhAo3^5 zKwyEnrKss9MWii}a`Qgk@yziLJ@{jGPPdNulX^%hC>2=GFm^KmP_iXptY>WpUlnm& za=b)iiS##<^md0_v!slb0Gu(Wali+9(;W(u2nX<3)^z(yQW^a70s&u8lpG>W_!s|8 zP^k}eQ{ef!^eD8IVIl`R*Ee_0Pqhnl1(rEdlv*0~>m0$H!i3vsP!CXCeCm)ieOOgt z#$Hwc-o+rKk$Qy_BaEUA*A!gL5ZtFG50Fb!!}QTdtwgtmU1C8Z zp<-N4Fs2yBl}fe-b46|;gLp&XNuwB0+#5se8C!4EYP&rgj>-*hx@re7GuaH*rPkyD z%;MzZe2haYNJ{wzDM~#osBs9;REN1+edd!*SfIL|W`oe%I?Qb}4yVqj?PfbQ8bYDt zF(@m}qiLcY$!01jAZf8X2R)!3+l}-D1=_;6kutw2zj}W@c-35_(>QXuetqO=d{=rU znUK>x^j3@SOUoEX3#vYp#?#QCxpG|RDC3>Kbz zBn##>3D?#5)t^ZMX9D3yCV987=0xMN?x)|TVv`1ZmXiI?jYQnw5mM~vyFF2Lo*`V` zMSiN0UFEyQlQZXtg);?FD74D&w~T%|`#zbkM(-%h(Z>LZHNTk^7c2

      Ry45S=jxm^>OzzFA0*Yx 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