diff --git a/.gitignore b/.gitignore
index 7efa14374..606f718e9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -136,8 +136,10 @@
!/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so
/.nb-gradle/
/sdk/ant-jme/nbproject/private/
+/sdk/nbi/stub/ext/engine/nbproject/private/
/sdk/nbi/stub/ext/components/products/jdk/nbproject/private/
/sdk/nbi/stub/ext/components/products/blender/nbproject/private/
+/sdk/nbi/stub/ext/components/products/helloworld/nbproject/private/
/sdk/BasicGameTemplate/nbproject/private/
/sdk/nbi/stub/ext/components/products/jdk/build/
/sdk/nbi/stub/ext/components/products/jdk/dist/
diff --git a/.travis.yml b/.travis.yml
index 25f23fcac..bdc1336f7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,17 +25,27 @@ install:
script:
- ./gradlew check
- ./gradlew createZipDistribution
+ - "[ $TRAVIS_BRANCH == 'master' ] && [ $TRAVIS_PULL_REQUEST == 'false' ] && ./gradlew uploadArchives;"
+
+before_deploy:
+ - export RELEASE_DIST=$(ls build/distributions/*.zip)
deploy:
provider: releases
api_key:
secure: PuEsJd6juXBH29ByITW3ntSAyrwWs0IeFvXJ5Y2YlhojhSMtTwkoWeB6YmDJWP4fhzbajk4TQ1HlOX2IxJXSW/8ShOEIUlGXz9fHiST0dkSM+iRAUgC5enCLW5ITPTiem7eY9ZhS9miIam7ngce9jHNMh75PTzZrEJtezoALT9w=
- file: build/distributions/jME3.1.0_snapshot-github_2015-08-02.zip
+ file_glob: true
+ file: "${RELEASE_DIST}"
skip_cleanup: true
on:
repo: jMonkeyEngine/jmonkeyengine
tags: true
+before_install:
+ - git fetch --unshallow
+ - openssl aes-256-cbc -K $encrypted_a1949b55824a_key -iv $encrypted_a1949b55824a_iv
+ -in private/www-updater.key.enc -out private/www-updater.key -d
+
# before_install:
# required libs for android build tools
# sudo apt-get update
diff --git a/build.gradle b/build.gradle
index 7cbe10525..192bc32d3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,6 +11,7 @@ buildscript {
apply plugin: 'base'
apply from: file('version.gradle')
+apply from: file('upload.gradle')
// This is applied to all sub projects
subprojects {
@@ -59,15 +60,14 @@ task libDist(dependsOn: subprojects.build) << {
}
}
-task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"Package the nightly zip distribution"){
- archiveName "jME"+jmeVersion+"_"+jmeVersionTag+"_"+new Date().format("yyyy-MM-dd")+".zip"
-
- into("/") {
- from {"./dist"}
- }
- into("/sources") {
- from {"$buildDir/libDist/sources"}
- }
+task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"Package the nightly zip distribution"){
+ archiveName "jME" + jmeFullVersion + ".zip"
+ into("/") {
+ from {"./dist"}
+ }
+ into("/sources") {
+ from {"$buildDir/libDist/sources"}
+ }
}
task copyLibs(type: Copy){
diff --git a/common.gradle b/common.gradle
index cda51dbed..69b695ecd 100644
--- a/common.gradle
+++ b/common.gradle
@@ -4,7 +4,6 @@
apply plugin: 'java'
apply plugin: 'maven'
-apply plugin: 'maven-publish'
group = 'com.jme3'
version = jmePomVersion
@@ -19,15 +18,20 @@ repositories {
}
}
+configurations {
+ deployerJars
+}
+
dependencies {
// Adding dependencies here will add the dependencies to each subproject.
testCompile group: 'junit', name: 'junit', version: '4.10'
+ deployerJars "org.apache.maven.wagon:wagon-ssh:2.9"
}
jar {
manifest {
attributes 'Implementation-Title': 'jMonkeyEngine',
- 'Implementation-Version': version
+ 'Implementation-Version': jmeFullVersion
}
}
@@ -63,41 +67,35 @@ artifacts {
}
}
-publishing {
- publications {
- maven(MavenPublication) {
- from components.java
- artifact sourcesJar
- artifact javadocJar
-
- pom.withXml {
- asNode().children().last() + {
- resolveStrategy = Closure.DELEGATE_FIRST
- name POM_NAME
- description POM_DESCRIPTION
- url POM_URL
- scm {
- url POM_SCM_URL
- connection POM_SCM_CONNECTION
- developerConnection POM_SCM_DEVELOPER_CONNECTION
- }
- licenses {
- license {
- name POM_LICENSE_NAME
- url POM_LICENSE_URL
- distribution POM_LICENSE_DISTRIBUTION
- }
- }
+uploadArchives {
+ repositories.mavenDeployer {
+ configuration = configurations.deployerJars
+
+ // disable this otherwise it will fill up the server with stale jars
+ uniqueVersion = false
+
+ repository(url: "scp://updates.jmonkeyengine.org/var/www/updates/maven") {
+ authentication(userName: "www-updater", privateKey: "private/www-updater.key")
+ }
+
+ pom.project {
+ name POM_NAME
+ description POM_DESCRIPTION
+ url POM_URL
+ scm {
+ url POM_SCM_URL
+ connection POM_SCM_CONNECTION
+ developerConnection POM_SCM_DEVELOPER_CONNECTION
+ }
+ licenses {
+ license {
+ name POM_LICENSE_NAME
+ url POM_LICENSE_URL
+ distribution POM_LICENSE_DISTRIBUTION
}
}
}
}
-
- repositories {
- maven {
- url "${rootProject.buildDir}/repo" // change to point to your repo, e.g. http://my.org/repo
- }
- }
}
task createFolders(description: 'Creates the source folders if they do not exist.') doLast {
diff --git a/jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java b/jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java
index 525e2e281..00ccdf74e 100644
--- a/jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java
+++ b/jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java
@@ -93,7 +93,9 @@ public class CapsuleCollisionShape extends CollisionShape{
*/
@Override
public void setScale(Vector3f scale) {
- Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "CapsuleCollisionShape cannot be scaled");
+ if (!scale.equals(Vector3f.UNIT_XYZ)) {
+ Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "CapsuleCollisionShape cannot be scaled");
+ }
}
public void write(JmeExporter ex) throws IOException {
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 a78b4b931..29c0f38e9 100644
--- a/jme3-core/src/main/java/com/jme3/animation/Bone.java
+++ b/jme3-core/src/main/java/com/jme3/animation/Bone.java
@@ -553,7 +553,6 @@ public final class Bone implements Savable {
Vector3f translate = modelPos.add(rotate.mult(scale.mult(modelBindInversePos, tmp2), tmp2), tmp2);
// Populating the matrix
- outTransform.loadIdentity();
outTransform.setTransform(translate, scale, rotate.toRotationMatrix(tmp4));
}
diff --git a/jme3-core/src/main/java/com/jme3/light/AmbientLight.java b/jme3-core/src/main/java/com/jme3/light/AmbientLight.java
index e147c6590..8dd5f9266 100644
--- a/jme3-core/src/main/java/com/jme3/light/AmbientLight.java
+++ b/jme3-core/src/main/java/com/jme3/light/AmbientLight.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,6 +32,7 @@
package com.jme3.light;
import com.jme3.bounding.BoundingBox;
+import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.Camera;
import com.jme3.scene.Spatial;
@@ -49,6 +50,13 @@ import com.jme3.util.TempVars;
*/
public class AmbientLight extends Light {
+ public AmbientLight() {
+ }
+
+ public AmbientLight(ColorRGBA color) {
+ super(color);
+ }
+
@Override
public boolean intersectsBox(BoundingBox box, TempVars vars) {
return true;
diff --git a/jme3-core/src/main/java/com/jme3/light/DirectionalLight.java b/jme3-core/src/main/java/com/jme3/light/DirectionalLight.java
index c4258a67f..87fbf695a 100644
--- a/jme3-core/src/main/java/com/jme3/light/DirectionalLight.java
+++ b/jme3-core/src/main/java/com/jme3/light/DirectionalLight.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@ import com.jme3.export.InputCapsule;
import com.jme3.export.JmeExporter;
import com.jme3.export.JmeImporter;
import com.jme3.export.OutputCapsule;
+import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.Camera;
import com.jme3.scene.Spatial;
@@ -53,6 +54,30 @@ public class DirectionalLight extends Light {
protected Vector3f direction = new Vector3f(0f, -1f, 0f);
+ /**
+ * Creates a DirectionalLight
+ */
+ public DirectionalLight() {
+ }
+
+ /**
+ * Creates a DirectionalLight with the given direction
+ * @param direction the light's direction
+ */
+ public DirectionalLight(Vector3f direction) {
+ setDirection(direction);
+ }
+
+ /**
+ * Creates a DirectionalLight with the given direction and the given color
+ * @param direction the light's direction
+ * @param color the light's color
+ */
+ public DirectionalLight(Vector3f direction, ColorRGBA color) {
+ super(color);
+ setDirection(direction);
+ }
+
@Override
public void computeLastDistance(Spatial owner) {
lastDistance = 0; // directional lights are always closest to their owner
@@ -77,7 +102,7 @@ public class DirectionalLight extends Light {
*
* @param dir the direction of the light.
*/
- public void setDirection(Vector3f dir){
+ public final void setDirection(Vector3f dir){
direction.set(dir);
if (!direction.isUnitVector()) {
direction.normalizeLocal();
diff --git a/jme3-core/src/main/java/com/jme3/light/Light.java b/jme3-core/src/main/java/com/jme3/light/Light.java
index ef4eae127..c0fc039a3 100644
--- a/jme3-core/src/main/java/com/jme3/light/Light.java
+++ b/jme3-core/src/main/java/com/jme3/light/Light.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -101,7 +101,7 @@ public abstract class Light implements Savable, Cloneable {
}
}
- protected ColorRGBA color = new ColorRGBA(1f,1f,1f,1f);
+ protected ColorRGBA color = new ColorRGBA(ColorRGBA.White);
/**
* Used in LightList for caching the distance
@@ -122,6 +122,13 @@ public abstract class Light implements Savable, Cloneable {
boolean frustumCheckNeeded = true;
boolean intersectsFrustum = false;
+ protected Light() {
+ }
+
+ protected Light(ColorRGBA color) {
+ setColor(color);
+ }
+
/**
* Returns the color of the light.
*
diff --git a/jme3-core/src/main/java/com/jme3/light/PointLight.java b/jme3-core/src/main/java/com/jme3/light/PointLight.java
index 55a129275..ff3b3295f 100644
--- a/jme3-core/src/main/java/com/jme3/light/PointLight.java
+++ b/jme3-core/src/main/java/com/jme3/light/PointLight.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,14 +32,13 @@
package com.jme3.light;
import com.jme3.bounding.BoundingBox;
-import com.jme3.bounding.BoundingSphere;
import com.jme3.bounding.BoundingVolume;
import com.jme3.export.InputCapsule;
import com.jme3.export.JmeExporter;
import com.jme3.export.JmeImporter;
import com.jme3.export.OutputCapsule;
+import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
-import com.jme3.math.Plane;
import com.jme3.math.Vector3f;
import com.jme3.renderer.Camera;
import com.jme3.scene.Spatial;
@@ -62,6 +61,52 @@ public class PointLight extends Light {
protected float radius = 0;
protected float invRadius = 0;
+ /**
+ * Creates a PointLight
+ */
+ public PointLight() {
+ }
+
+ /**
+ * Creates a PointLight at the given position
+ * @param position the position in world space
+ */
+ public PointLight(Vector3f position) {
+ setPosition(position);
+ }
+
+ /**
+ * Creates a PointLight at the given position and with the given color
+ * @param position the position in world space
+ * @param color the light color
+ */
+ public PointLight(Vector3f position, ColorRGBA color) {
+ super(color);
+ setPosition(position);
+ }
+
+ /**
+ * Creates a PointLight at the given position, with the given color and the
+ * given radius
+ * @param position the position in world space
+ * @param color the light color
+ * @param radius the light radius
+ */
+ public PointLight(Vector3f position, ColorRGBA color, float radius) {
+ this(position, color);
+ setRadius(radius);
+ }
+
+ /**
+ * Creates a PointLight at the given position, with the given radius
+ * @param position the position in world space
+ * @param radius the light radius
+ */
+ public PointLight(Vector3f position, float radius) {
+ this(position);
+ setRadius(radius);
+ }
+
@Override
public void computeLastDistance(Spatial owner) {
if (owner.getWorldBound() != null) {
@@ -88,7 +133,7 @@ public class PointLight extends Light {
*
* @param position the world space position of the light.
*/
- public void setPosition(Vector3f position) {
+ public final void setPosition(Vector3f position) {
this.position.set(position);
}
@@ -115,13 +160,13 @@ public class PointLight extends Light {
*
* @throws IllegalArgumentException If radius is negative
*/
- public void setRadius(float radius) {
+ public final void setRadius(float radius) {
if (radius < 0) {
throw new IllegalArgumentException("Light radius cannot be negative");
}
this.radius = radius;
- if (radius != 0) {
- this.invRadius = 1 / radius;
+ if (radius != 0f) {
+ this.invRadius = 1f / radius;
} else {
this.invRadius = 0;
}
diff --git a/jme3-core/src/main/java/com/jme3/light/SpotLight.java b/jme3-core/src/main/java/com/jme3/light/SpotLight.java
index e6443df7c..9b551d3d8 100644
--- a/jme3-core/src/main/java/com/jme3/light/SpotLight.java
+++ b/jme3-core/src/main/java/com/jme3/light/SpotLight.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,6 +34,7 @@ package com.jme3.light;
import com.jme3.bounding.BoundingBox;
import com.jme3.bounding.BoundingVolume;
import com.jme3.export.*;
+import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
import com.jme3.math.Plane;
import com.jme3.math.Vector3f;
@@ -44,36 +45,121 @@ import java.io.IOException;
/**
* Represents a spot light.
- * A spot light emmit a cone of light from a position and in a direction.
- * It can be used to fake torch lights or car's lights.
+ * A spot light emits a cone of light from a position and in a direction.
+ * It can be used to fake torch lights or cars' lights.
*
* In addition to a position and a direction, spot lights also have a range which
* can be used to attenuate the influence of the light depending on the
- * distance between the light and the effected object.
+ * distance between the light and the affected object.
* Also the angle of the cone can be tweaked by changing the spot inner angle and the spot outer angle.
- * the spot inner angle determin the cone of light where light has full influence.
- * the spot outer angle determin the cone global cone of light of the spot light.
- * the light intensity slowly decrease between the inner cone and the outer cone.
+ * the spot inner angle determines the cone of light where light has full influence.
+ * the spot outer angle determines the cone global cone of light of the spot light.
+ * the light intensity slowly decreases between the inner cone and the outer cone.
* @author Nehon
*/
public class SpotLight extends Light {
protected Vector3f position = new Vector3f();
- protected Vector3f direction = new Vector3f(0,-1,0);
+ protected Vector3f direction = new Vector3f(0, -1, 0);
protected float spotInnerAngle = FastMath.QUARTER_PI / 8;
protected float spotOuterAngle = FastMath.QUARTER_PI / 6;
protected float spotRange = 100;
protected float invSpotRange = 1f / 100;
- protected float packedAngleCos=0;
+ protected float packedAngleCos = 0;
protected float outerAngleCosSqr, outerAngleSinSqr;
protected float outerAngleSinRcp, outerAngleSin, outerAngleCos;
+ /**
+ * Creates a SpotLight.
+ */
public SpotLight() {
super();
computeAngleParameters();
}
+ /**
+ * Creates a SpotLight at the given position and with the given direction.
+ * @param position the position in world space.
+ * @param direction the direction of the light.
+ */
+ public SpotLight(Vector3f position, Vector3f direction) {
+ this();
+ setPosition(position);
+ setDirection(direction);
+ }
+
+ /**
+ * Creates a SpotLight at the given position, with the given direction, and the
+ * given range.
+ * @param position the position in world space.
+ * @param direction the direction of the light.
+ * @param range the spot light range
+ */
+ public SpotLight(Vector3f position, Vector3f direction, float range) {
+ this();
+ setPosition(position);
+ setDirection(direction);
+ this.spotRange = range;
+ }
+
+ /**
+ * Creates a SpotLight at the given position, with the given direction and
+ * the given color.
+ * @param position the position in world space.
+ * @param direction the direction of the light.
+ * @param color the light's color.
+ */
+ public SpotLight(Vector3f position, Vector3f direction, ColorRGBA color) {
+ super(color);
+ computeAngleParameters();
+ setPosition(position);
+ setDirection(direction);
+ }
+
+
+ /**
+ * Creates a SpotLight at the given position, with the given direction,
+ * the given range and the given color.
+ * @param position the position in world space.
+ * @param direction the direction of the light.
+ * @param range the spot light range
+ * @param color the light's color.
+ */
+ public SpotLight(Vector3f position, Vector3f direction, float range, ColorRGBA color) {
+ super(color);
+ computeAngleParameters();
+ setPosition(position);
+ setDirection(direction);
+ this.spotRange = range;
+ }
+
+ /**
+ * Creates a SpotLight at the given position, with the given direction,
+ * the given color and the given inner and outer angles
+ * (controls the falloff of the light)
+ *
+ * @param position the position in world space.
+ * @param direction the direction of the light.
+ * @param range the spot light range
+ * @param color the light's color.
+ * @param innerAngle the inner angle of the spot light.
+ * @param outerAngle the outer angle of the spot light.
+ *
+ * @see SpotLight#setSpotInnerAngle(float)
+ * @see SpotLight#setSpotOuterAngle(float)
+ */
+ public SpotLight(Vector3f position, Vector3f direction, float range, ColorRGBA color, float innerAngle, float outerAngle) {
+ super(color);
+ this.spotInnerAngle = innerAngle;
+ this.spotOuterAngle = outerAngle;
+ computeAngleParameters();
+ setPosition(position);
+ setDirection(direction);
+ this.spotRange = range;
+ }
+
+
private void computeAngleParameters() {
float innerCos = FastMath.cos(spotInnerAngle);
outerAngleCos = FastMath.cos(spotOuterAngle);
@@ -189,7 +275,7 @@ public class SpotLight extends Light {
return direction;
}
- public void setDirection(Vector3f direction) {
+ public final void setDirection(Vector3f direction) {
this.direction.set(direction);
}
@@ -197,7 +283,7 @@ public class SpotLight extends Light {
return position;
}
- public void setPosition(Vector3f position) {
+ public final void setPosition(Vector3f position) {
this.position.set(position);
}
diff --git a/jme3-core/src/main/java/com/jme3/math/Matrix4f.java b/jme3-core/src/main/java/com/jme3/math/Matrix4f.java
index c8dd3ef4a..159e39932 100644
--- a/jme3-core/src/main/java/com/jme3/math/Matrix4f.java
+++ b/jme3-core/src/main/java/com/jme3/math/Matrix4f.java
@@ -154,53 +154,34 @@ public final class Matrix4f implements Savable, Cloneable, java.io.Serializable
}
public void fromFrame(Vector3f location, Vector3f direction, Vector3f up, Vector3f left) {
- loadIdentity();
-
TempVars vars = TempVars.get();
-
- Vector3f f = vars.vect1.set(direction);
- Vector3f s = vars.vect2.set(f).crossLocal(up);
- Vector3f u = vars.vect3.set(s).crossLocal(f);
-// s.normalizeLocal();
-// u.normalizeLocal();
-
- m00 = s.x;
- m01 = s.y;
- m02 = s.z;
-
- m10 = u.x;
- m11 = u.y;
- m12 = u.z;
-
- m20 = -f.x;
- m21 = -f.y;
- m22 = -f.z;
-
-// m00 = -left.x;
-// m10 = -left.y;
-// m20 = -left.z;
-//
-// m01 = up.x;
-// m11 = up.y;
-// m21 = up.z;
-//
-// m02 = -direction.x;
-// m12 = -direction.y;
-// m22 = -direction.z;
-//
-
- Matrix4f transMatrix = vars.tempMat4;
- transMatrix.loadIdentity();
- transMatrix.m03 = -location.x;
- transMatrix.m13 = -location.y;
- transMatrix.m23 = -location.z;
- this.multLocal(transMatrix);
-
- vars.release();
-
-// transMatrix.multLocal(this);
-
-// set(transMatrix);
+ try {
+ Vector3f fwdVector = vars.vect1.set(direction);
+ Vector3f leftVector = vars.vect2.set(fwdVector).crossLocal(up);
+ Vector3f upVector = vars.vect3.set(leftVector).crossLocal(fwdVector);
+
+ m00 = leftVector.x;
+ m01 = leftVector.y;
+ m02 = leftVector.z;
+ m03 = -leftVector.dot(location);
+
+ m10 = upVector.x;
+ m11 = upVector.y;
+ m12 = upVector.z;
+ m13 = -upVector.dot(location);
+
+ m20 = -fwdVector.x;
+ m21 = -fwdVector.y;
+ m22 = -fwdVector.z;
+ m23 = fwdVector.dot(location);
+
+ m30 = 0f;
+ m31 = 0f;
+ m32 = 0f;
+ m33 = 1f;
+ } finally {
+ vars.release();
+ }
}
/**
diff --git a/jme3-core/src/main/java/com/jme3/math/Transform.java b/jme3-core/src/main/java/com/jme3/math/Transform.java
index ac7a324d0..9d8a72a1e 100644
--- a/jme3-core/src/main/java/com/jme3/math/Transform.java
+++ b/jme3-core/src/main/java/com/jme3/math/Transform.java
@@ -49,7 +49,7 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
private Quaternion rot = new Quaternion();
private Vector3f translation = new Vector3f();
- private Vector3f scale = new Vector3f(1,1,1);
+ private Vector3f scale = new Vector3f(1, 1, 1);
public Transform(Vector3f translation, Quaternion rot){
this.translation.set(translation);
@@ -283,9 +283,32 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
* Loads the identity. Equal to translation=0,0,0 scale=1,1,1 rot=0,0,0,1.
*/
public void loadIdentity() {
- translation.set(0,0,0);
- scale.set(1,1,1);
- rot.set(0,0,0,1);
+ translation.set(0, 0, 0);
+ scale.set(1, 1, 1);
+ rot.set(0, 0, 0, 1);
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 7;
+ hash = 89 * hash + rot.hashCode();
+ hash = 89 * hash + translation.hashCode();
+ hash = 89 * hash + scale.hashCode();
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Transform other = (Transform) obj;
+ return this.translation.equals(other.translation)
+ && this.scale.equals(other.scale)
+ && this.rot.equals(other.rot);
}
@Override
@@ -307,22 +330,21 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
return this;
}
+ @Override
public void write(JmeExporter e) throws IOException {
OutputCapsule capsule = e.getCapsule(this);
- capsule.write(rot, "rot", new Quaternion());
+ capsule.write(rot, "rot", Quaternion.IDENTITY);
capsule.write(translation, "translation", Vector3f.ZERO);
capsule.write(scale, "scale", Vector3f.UNIT_XYZ);
}
+ @Override
public void read(JmeImporter e) throws IOException {
InputCapsule capsule = e.getCapsule(this);
- rot = (Quaternion)capsule.readSavable("rot", new Quaternion());
- translation = (Vector3f)capsule.readSavable("translation", null);
- if( translation == null ) {
- translation = new Vector3f();
- }
- scale = (Vector3f)capsule.readSavable("scale", Vector3f.UNIT_XYZ);
+ rot.set((Quaternion)capsule.readSavable("rot", Quaternion.IDENTITY));
+ translation.set((Vector3f)capsule.readSavable("translation", Vector3f.ZERO));
+ scale.set((Vector3f)capsule.readSavable("scale", Vector3f.UNIT_XYZ));
}
@Override
diff --git a/jme3-core/src/main/java/com/jme3/system/AppSettings.java b/jme3-core/src/main/java/com/jme3/system/AppSettings.java
index 73b036f2f..484458929 100644
--- a/jme3-core/src/main/java/com/jme3/system/AppSettings.java
+++ b/jme3-core/src/main/java/com/jme3/system/AppSettings.java
@@ -54,6 +54,8 @@ import java.util.prefs.Preferences;
*/
public final class AppSettings extends HashMap {
+ private static final long serialVersionUID = 1L;
+
private static final AppSettings defaults = new AppSettings(false);
/**
diff --git a/jme3-core/src/main/java/com/jme3/util/BufferUtils.java b/jme3-core/src/main/java/com/jme3/util/BufferUtils.java
index 84c6f6743..6fc0c50f0 100644
--- a/jme3-core/src/main/java/com/jme3/util/BufferUtils.java
+++ b/jme3-core/src/main/java/com/jme3/util/BufferUtils.java
@@ -36,6 +36,7 @@ import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f;
import com.jme3.math.Vector4f;
+import java.io.UnsupportedEncodingException;
import java.lang.ref.PhantomReference;
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
@@ -1010,11 +1011,15 @@ public final class BufferUtils {
}
public static ByteBuffer createByteBuffer(String data) {
- byte[] bytes = data.getBytes();
- ByteBuffer bb = createByteBuffer(bytes.length);
- bb.put(bytes);
- bb.flip();
- return bb;
+ try {
+ byte[] bytes = data.getBytes("UTF-8");
+ ByteBuffer bb = createByteBuffer(bytes.length);
+ bb.put(bytes);
+ bb.flip();
+ return bb;
+ } catch (UnsupportedEncodingException ex) {
+ throw new UnsupportedOperationException(ex);
+ }
}
/**
diff --git a/jme3-core/src/main/java/com/jme3/util/LittleEndien.java b/jme3-core/src/main/java/com/jme3/util/LittleEndien.java
index 092f77018..6b15a7d45 100644
--- a/jme3-core/src/main/java/com/jme3/util/LittleEndien.java
+++ b/jme3-core/src/main/java/com/jme3/util/LittleEndien.java
@@ -42,7 +42,6 @@ import java.io.*;
public class LittleEndien extends InputStream implements DataInput {
protected BufferedInputStream in;
- protected BufferedReader inRead;
/**
* Creates a new LittleEndien reader from the given input stream. The
@@ -51,7 +50,6 @@ public class LittleEndien extends InputStream implements DataInput {
*/
public LittleEndien(InputStream in) {
this.in = new BufferedInputStream(in);
- inRead = new BufferedReader(new InputStreamReader(in));
}
public int read() throws IOException {
@@ -141,7 +139,7 @@ public class LittleEndien extends InputStream implements DataInput {
}
public String readLine() throws IOException {
- return inRead.readLine();
+ throw new IOException("Unsupported operation");
}
public String readUTF() throws IOException {
diff --git a/jme3-examples/build.gradle b/jme3-examples/build.gradle
index de1c3931c..9ddb9cf78 100644
--- a/jme3-examples/build.gradle
+++ b/jme3-examples/build.gradle
@@ -21,7 +21,6 @@ dependencies {
// compile project(':jme3-bullet-native')
compile project(':jme3-jbullet')
compile project(':jme3-jogg')
-// compile project(':jme3-jogl')
compile project(':jme3-lwjgl')
compile project(':jme3-networking')
compile project(':jme3-niftygui')
@@ -51,7 +50,9 @@ jar.doFirst{
}
}
-task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar']) << {
+task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar', \
+ ':jme3-android-native:jar', ':jme3-bullet-native-android:jar', \
+ ':jme3-bullet-native:jar']) << {
// Copy all dependencies to ../dist/lib, remove versions from jar files
configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact ->
copy {
@@ -97,23 +98,23 @@ task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-and
copy {
from project(':jme3-bullet-native').jar.archivePath
into '../dist/opt/native-bullet'
- rename {"jme3-bullet-natives.jar"}
+ rename {project(':jme3-bullet-native').name+".jar"}
}
// Copy android packages, remove version
copy {
from project(':jme3-android').jar.archivePath
into '../dist/opt/android'
- rename { project(':jme3-android').name + ".jar" }
+ rename {project(':jme3-android').name+".jar"}
}
copy {
from project(':jme3-android-native').jar.archivePath
into '../dist/opt/android'
- rename { project(':jme3-android-native').name + ".jar" }
+ rename {project(':jme3-android-native').name+".jar"}
}
copy {
from project(':jme3-bullet-native-android').jar.archivePath
into '../dist/opt/native-bullet'
- rename {"jme3-bullet-native-android.jar"}
+ rename {project(':jme3-bullet-native-android').name+".jar"}
}
}
diff --git a/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java b/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java
index a7f7fbfd7..2248e4b22 100644
--- a/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java
+++ b/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java
@@ -41,10 +41,12 @@ import com.jme3.renderer.jogl.JoglRenderer;
import com.jogamp.opengl.util.Animator;
import com.jogamp.opengl.util.AnimatorBase;
import com.jogamp.opengl.util.FPSAnimator;
+
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
+
import com.jogamp.opengl.DebugGL2;
import com.jogamp.opengl.DebugGL3;
import com.jogamp.opengl.DebugGL3bc;
@@ -52,6 +54,7 @@ import com.jogamp.opengl.DebugGL4;
import com.jogamp.opengl.DebugGL4bc;
import com.jogamp.opengl.DebugGLES1;
import com.jogamp.opengl.DebugGLES2;
+import com.jogamp.opengl.DebugGLES3;
import com.jogamp.opengl.GL;
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.GLCapabilities;
@@ -136,7 +139,9 @@ public abstract class JoglAbstractDisplay extends JoglContext implements GLEvent
if (gl.isGLES2()) {
glad.setGL(new DebugGLES2(gl.getGLES2()));
} else {
- // TODO ES3
+ if (gl.isGLES3()) {
+ glad.setGL(new DebugGLES3(gl.getGLES3()));
+ }
}
}
} else {
@@ -167,7 +172,12 @@ public abstract class JoglAbstractDisplay extends JoglContext implements GLEvent
renderer = new JoglRenderer();
- renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+ canvas.invoke(false, new GLRunnable() {
+ public boolean run(GLAutoDrawable glad) {
+ renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+ return true;
+ }
+ });
}
protected void startGLCanvas() {
diff --git a/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java b/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java
index cb75d5d37..f05c92b95 100644
--- a/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java
+++ b/jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java
@@ -42,8 +42,10 @@ import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.opengl.util.Animator;
import com.jogamp.opengl.util.AnimatorBase;
import com.jogamp.opengl.util.FPSAnimator;
+
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
+
import com.jogamp.opengl.DebugGL2;
import com.jogamp.opengl.DebugGL3;
import com.jogamp.opengl.DebugGL3bc;
@@ -51,6 +53,7 @@ import com.jogamp.opengl.DebugGL4;
import com.jogamp.opengl.DebugGL4bc;
import com.jogamp.opengl.DebugGLES1;
import com.jogamp.opengl.DebugGLES2;
+import com.jogamp.opengl.DebugGLES3;
import com.jogamp.opengl.GL;
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.GLCapabilities;
@@ -115,7 +118,9 @@ public abstract class JoglNewtAbstractDisplay extends JoglContext implements GLE
if (gl.isGLES2()) {
glad.setGL(new DebugGLES2(gl.getGLES2()));
} else {
- // TODO ES3
+ if (gl.isGLES3()) {
+ glad.setGL(new DebugGLES3(gl.getGLES3()));
+ }
}
}
} else {
@@ -146,7 +151,12 @@ public abstract class JoglNewtAbstractDisplay extends JoglContext implements GLE
renderer = new JoglRenderer();
- renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+ canvas.invoke(false, new GLRunnable() {
+ public boolean run(GLAutoDrawable glad) {
+ renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+ return true;
+ }
+ });
}
protected void startGLCanvas() {
diff --git a/private/known_hosts b/private/known_hosts
new file mode 100644
index 000000000..fdc45836f
--- /dev/null
+++ b/private/known_hosts
@@ -0,0 +1 @@
+updates.jmonkeyengine.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5bNOiZwU5dF62nBllxkjiSIfn0k6RVfprvO1aUypRmARD3/MKJKg7cGLezlLKaHZtVs84VpEqpmg5IzPAXWEmxUw1oke70uYMli7JV+4oPAeQRFwUdldP98I5h9VHwSjBqMycRLkxYaHF8edIPt1Zsa2dM3qrufy71ndQoFF6g7QxmT7gsTxwcNufDxymIgiAna/Qp2fr0YCLCiB8RQ7JTHfqA3dOWw0wz7AwfBTwwDCHkVxB5B4nz5iZxFr0scvqcae8vMncq8xKS7OMrLbn6asVaF6dDu+5Jc0mqxma5Qg7VC1xQXZsvlRISfrTFhQMhEx+j9w5snzihrlFnZ35
diff --git a/private/www-updater.key.enc b/private/www-updater.key.enc
new file mode 100644
index 000000000..63dcb3723
Binary files /dev/null and b/private/www-updater.key.enc differ
diff --git a/sdk/JME3TestsTemplate/build.xml b/sdk/JME3TestsTemplate/build.xml
index c1f098b99..d39b505e6 100644
--- a/sdk/JME3TestsTemplate/build.xml
+++ b/sdk/JME3TestsTemplate/build.xml
@@ -51,8 +51,7 @@
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
- -do-jar-with-manifest: JAR building (if you are using a manifest)
- -do-jar-without-manifest: JAR building (if you are not using a manifest)
+ -do-jar: JAR building
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
diff --git a/sdk/JME3TestsTemplate/nbproject/genfiles.properties b/sdk/JME3TestsTemplate/nbproject/genfiles.properties
index 6fb0f140e..eca6dafb7 100644
--- a/sdk/JME3TestsTemplate/nbproject/genfiles.properties
+++ b/sdk/JME3TestsTemplate/nbproject/genfiles.properties
@@ -1,8 +1,8 @@
-build.xml.data.CRC32=0f706f4a
-build.xml.script.CRC32=0b0b23c4
-build.xml.stylesheet.CRC32=28e38971@1.38.1.45
-# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
-# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=0f706f4a
-nbproject/build-impl.xml.script.CRC32=46d1a69a
-nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45
+build.xml.data.CRC32=0f706f4a
+build.xml.script.CRC32=82b8b23d
+build.xml.stylesheet.CRC32=8064a381@1.75.2.48
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=0f706f4a
+nbproject/build-impl.xml.script.CRC32=46d1a69a
+nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45
diff --git a/sdk/JME3TestsTemplate/nbproject/project.properties b/sdk/JME3TestsTemplate/nbproject/project.properties
index b502a6417..489a9c7d9 100644
--- a/sdk/JME3TestsTemplate/nbproject/project.properties
+++ b/sdk/JME3TestsTemplate/nbproject/project.properties
@@ -25,9 +25,17 @@ excludes=
includes=**
jar.compress=false
javac.classpath=\
- ${libs.jme3.classpath}:\
- ${libs.jme3-libraries.classpath}:\
- ${libs.jme3-libraries-blender.classpath}:\
+ ${libs.jme3-jogg.classpath}:\
+ ${libs.jme3-blender.classpath}:\
+ ${libs.jme3-networking.classpath}:\
+ ${libs.jme3-plugins.classpath}:\
+ ${libs.jme3-core.classpath}:\
+ ${libs.jme3-desktop.classpath}:\
+ ${libs.jme3-lwjgl.classpath}:\
+ ${libs.jme3-niftygui.classpath}:\
+ ${libs.jme3-effects.classpath}:\
+ ${libs.jme3-terrain.classpath}:\
+ ${libs.jme3-jbullet.classpath}:\
${libs.jme3-test-data.classpath}
# Space-separated list of extra javac options
javac.compilerargs=
@@ -36,9 +44,7 @@ javac.source=1.6
javac.target=1.6
javac.test.classpath=\
${javac.classpath}:\
- ${build.classes.dir}:\
- ${libs.junit.classpath}:\
- ${libs.junit_4.classpath}
+ ${build.classes.dir}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
diff --git a/sdk/jme3-angelfont/nbproject/project.properties b/sdk/jme3-angelfont/nbproject/project.properties
index 0411b6ff9..2cf7a410b 100644
--- a/sdk/jme3-angelfont/nbproject/project.properties
+++ b/sdk/jme3-angelfont/nbproject/project.properties
@@ -1,4 +1,6 @@
#Thu, 25 Aug 2011 20:26:50 +0200
javac.source=1.6
javac.compilerargs=-Xlint -Xlint\:-serial
+nbm.homepage=http\://www.jmonkeyengine.org
+nbm.module.author=Normen Hansen
spec.version.base=3.1.0
diff --git a/sdk/jme3-blender/nbproject/project.properties b/sdk/jme3-blender/nbproject/project.properties
index fa453f9a3..b47098087 100644
--- a/sdk/jme3-blender/nbproject/project.properties
+++ b/sdk/jme3-blender/nbproject/project.properties
@@ -1,6 +1,7 @@
#Thu, 25 Aug 2011 20:26:50 +0200
javac.source=1.6
javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
nbm.homepage=http\://www.jmonkeyengine.org
nbm.module.author=Kaelthas
nbm.needs.restart=true
diff --git a/sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java b/sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java
index 0211cae7a..1d55a6b35 100644
--- a/sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java
+++ b/sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java
@@ -164,6 +164,14 @@ public class BlenderTool {
return "../blender";
}
}
+
+ private static String getBlenderOsSettingsPath() {
+ if (Utilities.isMac()) {
+ return "../blender/blender.app/Contents/Resources";
+ } else {
+ return "../blender";
+ }
+ }
private static boolean checkBlenderFolders() {
String jmpDir = Places.getUserDirectory().getAbsolutePath();
@@ -251,9 +259,9 @@ public class BlenderTool {
}
private static File getBlenderSettingsFolder() {
- File blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath() + "/2.69", null, false);
+ File blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.75", null, false);
if (blender == null) {
- blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath() + "/2.67", null, false);
+ blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.69", null, false);
}
if (blender == null) {
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message("Error finding Blender settings"));
diff --git a/sdk/jme3-code-check/nbproject/project.properties b/sdk/jme3-code-check/nbproject/project.properties
index 0411b6ff9..6700898e0 100644
--- a/sdk/jme3-code-check/nbproject/project.properties
+++ b/sdk/jme3-code-check/nbproject/project.properties
@@ -1,4 +1,7 @@
#Thu, 25 Aug 2011 20:26:50 +0200
javac.source=1.6
javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
+nbm.homepage=http\://www.jmonkeyengine.org
+nbm.module.author=Normen Hansen
spec.version.base=3.1.0
diff --git a/sdk/jme3-core-baselibs/nbproject/genfiles.properties b/sdk/jme3-core-baselibs/nbproject/genfiles.properties
index 1b1c32b3b..c9714ad4e 100644
--- a/sdk/jme3-core-baselibs/nbproject/genfiles.properties
+++ b/sdk/jme3-core-baselibs/nbproject/genfiles.properties
@@ -1,8 +1,8 @@
-build.xml.data.CRC32=278ea45d
+build.xml.data.CRC32=d43b0890
build.xml.script.CRC32=cdae6a36
build.xml.stylesheet.CRC32=a56c6a5b@2.67.1
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=278ea45d
+nbproject/build-impl.xml.data.CRC32=d43b0890
nbproject/build-impl.xml.script.CRC32=246f9b81
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.67.1
diff --git a/sdk/jme3-core-baselibs/nbproject/project.xml b/sdk/jme3-core-baselibs/nbproject/project.xml
index df81e68ff..be7a3e038 100644
--- a/sdk/jme3-core-baselibs/nbproject/project.xml
+++ b/sdk/jme3-core-baselibs/nbproject/project.xml
@@ -1,15 +1,15 @@
-
-
+
+
org.netbeans.modules.apisupport.project
-
+
com.jme3.gde.core.baselibs
-
+
com.jme3.gde.core.libraries
-
-
+
+
1
3.1.0
@@ -19,133 +19,142 @@
com.jme3.asset
com.jme3.scene.plugins.blender
- com.jme3.scene.plugins.blender.animations
- com.jme3.scene.plugins.blender.cameras
+ com.jme3.scene.plugins.blender.math
com.jme3.scene.plugins.blender.constraints
com.jme3.scene.plugins.blender.constraints.definitions
com.jme3.scene.plugins.blender.curves
- com.jme3.scene.plugins.blender.file
- com.jme3.scene.plugins.blender.landscape
- com.jme3.scene.plugins.blender.lights
- com.jme3.scene.plugins.blender.materials
- com.jme3.scene.plugins.blender.math
com.jme3.scene.plugins.blender.meshes
- com.jme3.scene.plugins.blender.modifiers
- com.jme3.scene.plugins.blender.objects
com.jme3.scene.plugins.blender.particles
+ com.jme3.scene.plugins.blender.cameras
+ com.jme3.scene.plugins.blender.objects
+ com.jme3.scene.plugins.blender.landscape
+ com.jme3.scene.plugins.blender.modifiers
com.jme3.scene.plugins.blender.textures
+ com.jme3.scene.plugins.blender.textures.io
com.jme3.scene.plugins.blender.textures.blending
com.jme3.scene.plugins.blender.textures.generating
- com.jme3.scene.plugins.blender.textures.io
- checkers.quals
- com.jme3.animation
- com.jme3.app
- com.jme3.app.state
- com.jme3.asset.cache
- com.jme3.asset.plugins
- com.jme3.audio
- com.jme3.audio.openal
- com.jme3.audio.plugins
- com.jme3.bounding
- com.jme3.cinematic
- com.jme3.cinematic.events
- com.jme3.collision
- com.jme3.collision.bih
- com.jme3.cursors.plugins
- com.jme3.effect
- com.jme3.effect.influencers
- com.jme3.effect.shapes
+ com.jme3.scene.plugins.blender.animations
+ com.jme3.scene.plugins.blender.materials
+ com.jme3.scene.plugins.blender.file
+ com.jme3.scene.plugins.blender.lights
+ jme3tools.shader
+ jme3tools.savegame
+ jme3tools.shadercheck
+ jme3tools.optimize
+ jme3tools.converters
+ com.jme3.shader
+ com.jme3.shader.plugins
com.jme3.export
com.jme3.export.binary
- com.jme3.font
- com.jme3.font.plugins
+ com.jme3.cinematic
+ com.jme3.cinematic.events
+ com.jme3.math
+ com.jme3.util
+ com.jme3.util.blockparser
+ com.jme3.util.xml
+ com.jme3.post
com.jme3.input
- com.jme3.input.controls
com.jme3.input.dummy
+ com.jme3.input.controls
com.jme3.input.event
- com.jme3.light
+ com.jme3.profile
+ com.jme3.ui
+ com.jme3.audio
+ com.jme3.audio.openal
+ com.jme3.audio.plugins
+ com.jme3.cursors.plugins
+ com.jme3.bounding
+ com.jme3.shadow
+ com.jme3.texture
+ com.jme3.texture.image
+ com.jme3.texture.plugins
+ com.jme3.system
com.jme3.material
com.jme3.material.plugins
- com.jme3.math
- com.jme3.post
- com.jme3.profile
com.jme3.renderer
- com.jme3.renderer.opengl
com.jme3.renderer.queue
+ com.jme3.renderer.opengl
+ com.jme3.effect
+ com.jme3.effect.shapes
+ com.jme3.effect.influencers
+ com.jme3.app
+ com.jme3.app.state
+ com.jme3.asset.plugins
+ com.jme3.asset.cache
+ com.jme3.light
+ com.jme3.animation
+ com.jme3.collision
+ com.jme3.collision.bih
com.jme3.scene
- com.jme3.scene.control
+ com.jme3.scene.shape
+ com.jme3.scene.plugins
com.jme3.scene.debug
com.jme3.scene.instancing
+ com.jme3.scene.control
com.jme3.scene.mesh
- com.jme3.scene.plugins
- com.jme3.scene.shape
- com.jme3.shader
- com.jme3.shader.plugins
- com.jme3.shadow
- com.jme3.system
- com.jme3.texture
- com.jme3.texture.image
- com.jme3.texture.plugins
- com.jme3.ui
- com.jme3.util
- com.jme3.util.blockparser
- com.jme3.util.xml
- jme3tools.converters
- jme3tools.converters.model
- jme3tools.converters.model.strip
- jme3tools.optimize
- jme3tools.savegame
- jme3tools.shader
- jme3tools.shadercheck
+ com.jme3.font
+ com.jme3.font.plugins
+ checkers.quals
+ jme3tools.navigation
com.jme3.input.awt
com.jme3.system.awt
- jme3tools.navigation
- com.jme3.post.filters
com.jme3.post.ssao
+ com.jme3.post.filters
com.jme3.water
com.jme3.bullet
- com.jme3.bullet.collision
- com.jme3.bullet.collision.shapes
- com.jme3.bullet.collision.shapes.infos
- com.jme3.bullet.control
- com.jme3.bullet.control.ragdoll
- com.jme3.bullet.debug
+ com.jme3.bullet.util
com.jme3.bullet.joints
com.jme3.bullet.joints.motors
com.jme3.bullet.objects
com.jme3.bullet.objects.infos
- com.jme3.bullet.util
- com.jme3.audio.lwjgl
+ com.jme3.bullet.debug
+ com.jme3.bullet.control
+ com.jme3.bullet.control.ragdoll
+ com.jme3.bullet.collision
+ com.jme3.bullet.collision.shapes
+ com.jme3.bullet.collision.shapes.infos
com.jme3.input.lwjgl
- com.jme3.renderer.lwjgl
+ com.jme3.audio.lwjgl
com.jme3.system.lwjgl
+ com.jme3.renderer.lwjgl
com.jme3.network
- com.jme3.network.base
com.jme3.network.kernel
- com.jme3.network.kernel.tcp
com.jme3.network.kernel.udp
+ com.jme3.network.kernel.tcp
+ com.jme3.network.util
com.jme3.network.message
com.jme3.network.rmi
+ com.jme3.network.base
com.jme3.network.serializing
com.jme3.network.serializing.serializers
+ com.jme3.network.service
+ com.jme3.network.service.rpc
+ com.jme3.network.service.rpc.msg
+ com.jme3.network.service.serializer
com.jme3.niftygui
com.jme3.export.xml
com.jme3.scene.plugins.fbx
+ com.jme3.scene.plugins.fbx.obj
+ com.jme3.scene.plugins.fbx.anim
+ com.jme3.scene.plugins.fbx.node
+ com.jme3.scene.plugins.fbx.misc
+ com.jme3.scene.plugins.fbx.material
com.jme3.scene.plugins.fbx.file
+ com.jme3.scene.plugins.fbx.mesh
com.jme3.scene.plugins.ogre
com.jme3.scene.plugins.ogre.matext
com.jme3.terrain
+ com.jme3.terrain.heightmap
com.jme3.terrain.geomipmap
+ com.jme3.terrain.geomipmap.picking
com.jme3.terrain.geomipmap.grid
com.jme3.terrain.geomipmap.lodcalc
com.jme3.terrain.geomipmap.lodcalc.util
- com.jme3.terrain.geomipmap.picking
- com.jme3.terrain.heightmap
com.jme3.terrain.noise
- com.jme3.terrain.noise.basis
com.jme3.terrain.noise.filter
- com.jme3.terrain.noise.fractal
com.jme3.terrain.noise.modulator
+ com.jme3.terrain.noise.fractal
+ com.jme3.terrain.noise.basis
ext/jme3-blender-3.1.0-snapshot-github.jar
@@ -193,4 +202,4 @@
-
+
\ No newline at end of file
diff --git a/sdk/jme3-core-libraries/nbproject/project.xml b/sdk/jme3-core-libraries/nbproject/project.xml
index 19469cf8a..c7b1f70f9 100644
--- a/sdk/jme3-core-libraries/nbproject/project.xml
+++ b/sdk/jme3-core-libraries/nbproject/project.xml
@@ -6,6 +6,44 @@
+ org.ejml
+ org.ejml.interfaces.decomposition
+ org.ejml.interfaces.linsol
+ org.ejml.data
+ org.ejml.alg.dense.linsol
+ org.ejml.ops
+ org.ejml.factory
+ org.ejml.alg.fixed
+ org.ejml.alg.generic
+ org.ejml.alg.block
+ org.ejml.alg.block.decomposition.chol
+ org.ejml.alg.block.decomposition.qr
+ org.ejml.alg.block.decomposition.hessenberg
+ org.ejml.alg.block.decomposition.bidiagonal
+ org.ejml.alg.block.linsol.chol
+ org.ejml.alg.block.linsol.qr
+ org.ejml.alg.dense.decomposition
+ org.ejml.alg.dense.decomposition.chol
+ org.ejml.alg.dense.decomposition.lu
+ org.ejml.alg.dense.decomposition.qr
+ org.ejml.alg.dense.decomposition.hessenberg
+ org.ejml.alg.dense.decomposition.svd
+ org.ejml.alg.dense.decomposition.svd.implicitqr
+ org.ejml.alg.dense.decomposition.eig
+ org.ejml.alg.dense.decomposition.eig.watched
+ org.ejml.alg.dense.decomposition.eig.symm
+ org.ejml.alg.dense.decomposition.bidiagonal
+ org.ejml.alg.dense.mult
+ org.ejml.alg.dense.misc
+ org.ejml.alg.dense.linsol.chol
+ org.ejml.alg.dense.linsol.lu
+ org.ejml.alg.dense.linsol.qr
+ org.ejml.alg.dense.linsol.svd
+ org.ejml.simple
+ org.ejml.alg.dense.decompose
+ org.ejml.alg.dense.decompose.chol
+ org.ejml.alg.dense.decompose.lu
+ org.ejml.alg.dense.decompose.qr
com.bulletphysics
com.bulletphysics.collision.broadphase
com.bulletphysics.collision.dispatch
@@ -161,6 +199,22 @@
org.jglfont.impl.format.awt
org.jglfont.impl
+
+ ext/core-0.27.jar
+ release/modules/ext/core-0.27.jar
+
+
+ ext/dense64-0.27.jar
+ release/modules/ext/dense64-0.27.jar
+
+
+ ext/simple-0.27.jar
+ release/modules/ext/simple-0.27.jar
+
+
+ ext/denseC64-0.27.jar
+ release/modules/ext/denseC64-0.27.jar
+
ext/jbullet.jar
release/modules/ext/jbullet.jar
diff --git a/sdk/jme3-core-updatecenters/nbproject/genfiles.properties b/sdk/jme3-core-updatecenters/nbproject/genfiles.properties
index 0dd897993..6b53da996 100644
--- a/sdk/jme3-core-updatecenters/nbproject/genfiles.properties
+++ b/sdk/jme3-core-updatecenters/nbproject/genfiles.properties
@@ -1,8 +1,8 @@
-build.xml.data.CRC32=08468784
+build.xml.data.CRC32=e145fa2a
build.xml.script.CRC32=cfa8d5c5
build.xml.stylesheet.CRC32=a56c6a5b@2.67.1
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=08468784
+nbproject/build-impl.xml.data.CRC32=e145fa2a
nbproject/build-impl.xml.script.CRC32=270846fb
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.67.1
diff --git a/sdk/jme3-core-updatecenters/nbproject/project.xml b/sdk/jme3-core-updatecenters/nbproject/project.xml
index 3979d8b02..abc894aed 100644
--- a/sdk/jme3-core-updatecenters/nbproject/project.xml
+++ b/sdk/jme3-core-updatecenters/nbproject/project.xml
@@ -8,6 +8,8 @@
org.netbeans.modules.autoupdate.services
+
+
1.47.2
diff --git a/sdk/jme3-core-updatecenters/src/META-INF/services/org.netbeans.spi.autoupdate.KeyStoreProvider b/sdk/jme3-core-updatecenters/src/META-INF/services/org.netbeans.spi.autoupdate.KeyStoreProvider
new file mode 100644
index 000000000..1af1a906c
--- /dev/null
+++ b/sdk/jme3-core-updatecenters/src/META-INF/services/org.netbeans.spi.autoupdate.KeyStoreProvider
@@ -0,0 +1 @@
+com.jme3.gde.core.updatecenters.keystore.JmeKeyStoreProvider
diff --git a/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties
index dd627e347..eb84743c9 100644
--- a/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties
+++ b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties
@@ -1,7 +1,7 @@
#jMP update centers
com_jme3_gde_core_update_center_nightly=http://updates.jmonkeyengine.org/nightly/3.1/plugins/updates.xml
com_jme3_gde_core_update_center_stable=http://updates.jmonkeyengine.org/stable/3.1/plugins/updates.xml
-com_jme3_jmp_contributions_update_center=http://updates.jmonkeyengine.org/contributions/updates.xml
+com_jme3_jmp_contributions_update_center=http://updates.jmonkeyengine.org/contrib/3.1/updates.xml
#jMP update centers
Services/AutoupdateType/com_jme3_gde_core_update_center_nightly.instance=jMonkeyEngine SDK Nightly (Breaks!)
diff --git a/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/JmeKeyStoreProvider.java b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/JmeKeyStoreProvider.java
new file mode 100644
index 000000000..d94e548bd
--- /dev/null
+++ b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/JmeKeyStoreProvider.java
@@ -0,0 +1,47 @@
+package com.jme3.gde.core.updatecenters.keystore;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import org.netbeans.spi.autoupdate.KeyStoreProvider;
+import org.openide.util.Exceptions;
+
+/**
+ * Loads the jMonkeyEngine SDK Plugins certificates into the AutoUpdate system.
+ *
+ * @author Kirill Vainer
+ */
+public class JmeKeyStoreProvider implements KeyStoreProvider {
+
+ @Override
+ public KeyStore getKeyStore() {
+ InputStream in = null;
+ try {
+ in = JmeKeyStoreProvider.class.getResourceAsStream("trustedcerts.jks");
+ KeyStore store = KeyStore.getInstance("JKS");
+ store.load(in, "trustedcerts".toCharArray());
+ return store;
+ } catch (KeyStoreException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (IOException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (NoSuchAlgorithmException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (CertificateException ex) {
+ Exceptions.printStackTrace(ex);
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/trustedcerts.jks b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/trustedcerts.jks
new file mode 100644
index 000000000..fef5a315c
Binary files /dev/null and b/sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/trustedcerts.jks differ
diff --git a/sdk/jme3-obfuscate/nbproject/project.properties b/sdk/jme3-obfuscate/nbproject/project.properties
index 93b5b7a4b..d16349a4f 100644
--- a/sdk/jme3-obfuscate/nbproject/project.properties
+++ b/sdk/jme3-obfuscate/nbproject/project.properties
@@ -1,6 +1,7 @@
#Thu, 25 Aug 2011 20:26:50 +0200
javac.source=1.6
javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
nbm.homepage=http\://proguard.sourceforge.net/
nbm.module.author=Normen Hansen
nbm.needs.restart=true
diff --git a/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties b/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties
index 189077573..c5264da33 100644
--- a/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties
+++ b/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties
@@ -1,7 +1,7 @@
# 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.
-
+LBL_CreateProjectStep=Name and Location
JmeTestsPanelVisual.projectNameLabel.text=Project &Name:
JmeTestsPanelVisual.projectLocationLabel.text=Project &Location:
JmeTestsPanelVisual.browseButton.actionCommand=BROWSE
diff --git a/sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml b/sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml
index 6b25635be..f15304e39 100644
--- a/sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml
+++ b/sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml
@@ -54,6 +54,7 @@ is divided into following sections:
+
@@ -71,16 +72,20 @@ is divided into following sections:
-
+
-
-
+
+
+
-
-
-
+
+
+
+
+
+
@@ -91,12 +96,6 @@ is divided into following sections:
-
-
-
-
-
-
@@ -115,24 +114,12 @@ is divided into following sections:
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
@@ -186,7 +173,15 @@ is divided into following sections:
-
+
+
+
+
+
+
+
+
+
@@ -275,6 +270,7 @@ is divided into following sections:
+
@@ -314,6 +310,7 @@ is divided into following sections:
+
@@ -370,6 +367,11 @@ is divided into following sections:
+
+
+
+
+
@@ -393,7 +395,7 @@ is divided into following sections:
-
+
@@ -407,6 +409,9 @@ is divided into following sections:
+
+
+
@@ -438,7 +443,7 @@ is divided into following sections:
-
+
@@ -534,7 +539,7 @@ is divided into following sections:
-
+
@@ -548,6 +553,9 @@ is divided into following sections:
+
+
+
@@ -826,8 +834,8 @@ is divided into following sections:
-
-
+
+
@@ -839,7 +847,7 @@ is divided into following sections:
-
+
@@ -894,6 +902,7 @@ is divided into following sections:
+
@@ -927,7 +936,7 @@ is divided into following sections:
-
+
@@ -962,41 +971,25 @@ is divided into following sections:
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
-
-
-
-
-
- java -cp "${run.classpath.with.dist.jar}" ${main.class}
-
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -1004,23 +997,41 @@ is divided into following sections:
-
+
To run this application from the command line without Ant, try:
java -jar "${dist.jar.resolved}"
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
-
-
-
-
-
- java -cp "${run.classpath.with.dist.jar}" ${main.class}
-
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -1004,23 +997,41 @@ is divided into following sections:
-
+
To run this application from the command line without Ant, try:
java -jar "${dist.jar.resolved}"
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
-
-
-
-
-
- java -cp "${run.classpath.with.dist.jar}" ${main.class}
-
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -1004,23 +997,41 @@ is divided into following sections:
-
+
To run this application from the command line without Ant, try:
java -jar "${dist.jar.resolved}"
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- To run this application from the command line without Ant, try:
-
-
-
-
-
-
- java -cp "${run.classpath.with.dist.jar}" ${main.class}
-
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -1004,23 +997,41 @@ is divided into following sections:
-
+
To run this application from the command line without Ant, try:
java -jar "${dist.jar.resolved}"
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+