|
From: <tre...@us...> - 2007-10-17 23:49:54
|
Revision: 506
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=506&view=rev
Author: trevorolio
Date: 2007-10-17 16:49:58 -0700 (Wed, 17 Oct 2007)
Log Message:
-----------
THIS CHECKIN BREAKS THE DB FORMAT. Drop and rebuild upon update.
Added several fields to templates to hold information about whether avatars can sit on them.
(not that the UI reflects this or the client actually supports it yet)
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplatePersistTasks.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplateRecord.java
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/xml/server/DocumentFactory.java
maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml
maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplatePersistTasks.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplatePersistTasks.java 2007-10-17 23:49:54 UTC (rev 505)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplatePersistTasks.java 2007-10-17 23:49:58 UTC (rev 506)
@@ -15,6 +15,9 @@
import java.util.Date;
+import javax.vecmath.Point3d;
+import javax.vecmath.Quat4d;
+
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
@@ -112,7 +115,27 @@
dirty = true;
record.setDisplayName(newDoc.getDisplayName().trim());
}
-
+
+ if(newDoc.isSeat() != record.isSeat()){
+ dirty = true;
+ record.setSeat(newDoc.isSeat());
+ }
+ Point3d seatPosition = newDoc.getSeatPosition();
+ if(seatPosition.x != record.getSeatX() || seatPosition.y != record.getSeatY() || seatPosition.z != record.getSeatZ()){
+ dirty = true;
+ record.setSeatX(seatPosition.x);
+ record.setSeatY(seatPosition.y);
+ record.setSeatZ(seatPosition.z);
+ }
+ Quat4d seatRotation = newDoc.getSeatRotation();
+ if(seatRotation.w != record.getSeatRW() || seatRotation.x != record.getSeatRX() || seatRotation.y != record.getSeatRY() || seatRotation.z != record.getSeatRZ()){
+ dirty = true;
+ record.setSeatRW(seatRotation.w);
+ record.setSeatRX(seatRotation.x);
+ record.setSeatRY(seatRotation.y);
+ record.setSeatRZ(seatRotation.z);
+ }
+
if(dirty) {
return update(record, sessionFactory);
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplateRecord.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplateRecord.java 2007-10-17 23:49:54 UTC (rev 505)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/persist/TemplateRecord.java 2007-10-17 23:49:58 UTC (rev 506)
@@ -17,22 +17,29 @@
import java.util.Iterator;
import java.util.Set;
+import javax.vecmath.Point3d;
+import javax.vecmath.Quat4d;
+
import com.ogoglio.util.ArgumentUtils;
public class TemplateRecord {
private long templateID = -1;
-
+
private String ownerUsername = null;
-
+
private String displayName = null;
-
+
private String description = null;
- //private boolean scriptFile = false;
-
+ private boolean seat = false;
+
+ private double seatX = 0, seatY = 0, seatZ = 0;
+
+ private double seatRW = 1, seatRX = 0, seatRY = 0, seatRZ = 0;
+
private Set supportFiles = new HashSet();
-
+
public TemplateRecord() {
}
@@ -54,22 +61,21 @@
public String getOwnerUsername() {
return ownerUsername;
}
-
+
//hibernate access
private void setOwnerUsername(String ownerUsername) {
this.ownerUsername = ownerUsername;
}
-
+
//hibernate access
private void setTemplateID(long templateID) {
this.templateID = templateID;
}
-
+
public long getTemplateID() {
return templateID;
}
-
public String getDescription() {
return description;
}
@@ -77,91 +83,183 @@
public void setDescription(String description) {
this.description = description;
}
-
- public boolean hasScriptFile()
- {
- return findScriptFileRec()!=null;
+
+ public boolean hasScriptFile() {
+ return findScriptFileRec() != null;
}
+
public Set getSupportFiles() {
- return supportFiles;
+ return supportFiles;
}
+
public void setSupportFiles(Set newMaterials) {
- supportFiles=newMaterials;
+ supportFiles = newMaterials;
}
- public void addTemplateSupportFileRecord(TemplateSupportFileRecord sf) {
- supportFiles.add(sf);
- }
- public String scriptLastChanged() {
- TemplateSupportFileRecord scriptRec = findScriptFileRec();
- if (scriptRec==null) {
- return null;
- }
- return scriptRec.getLastChangedAsUTC();
- }
+ public void addTemplateSupportFileRecord(TemplateSupportFileRecord sf) {
+ supportFiles.add(sf);
+ }
+ public String scriptLastChanged() {
+ TemplateSupportFileRecord scriptRec = findScriptFileRec();
+ if (scriptRec == null) {
+ return null;
+ }
+ return scriptRec.getLastChangedAsUTC();
+ }
- private void sanityCheck(int lod) {
- int script=0, geom=0;
-
- Iterator iter=getSupportFiles().iterator();
- while (iter.hasNext()) {
- TemplateSupportFileRecord record = (TemplateSupportFileRecord) iter.next();
- if (record.isGeometryAtLevelOfDetail(lod)) {
- ++geom;
- }
- if (record.getScript()) {
- ++script;
- }
- }
- if (geom>1) {
- throw new IllegalArgumentException("Bogus TSF because there are "+geom+" geoms at LOD "+lod);
- }
- if (script>1) {
- throw new IllegalArgumentException("Bogus TSF because there are "+script+" scipts!");
- }
-
- }
- class TemplateSupportFileRecordFinder {
- public boolean find(TemplateSupportFileRecord record) {
- return false;
- }
- }
+ private void sanityCheck(int lod) {
+ int script = 0, geom = 0;
- private TemplateSupportFileRecord walkAndFindRecord(TemplateSupportFileRecordFinder finder) {
- sanityCheck(0);
- Iterator iter=getSupportFiles().iterator();
- while (iter.hasNext()) {
- TemplateSupportFileRecord record = (TemplateSupportFileRecord) iter.next();
- if (finder.find(record)) {
- return record;
- }
- }
- return null;
- }
- public TemplateSupportFileRecord findGeometryFileRec(final int lod) {
- TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
- public boolean find(TemplateSupportFileRecord record) {
- return record.isGeometryAtLevelOfDetail(lod);
- }
- };
- return walkAndFindRecord(finder);
- }
+ Iterator iter = getSupportFiles().iterator();
+ while (iter.hasNext()) {
+ TemplateSupportFileRecord record = (TemplateSupportFileRecord) iter.next();
+ if (record.isGeometryAtLevelOfDetail(lod)) {
+ ++geom;
+ }
+ if (record.getScript()) {
+ ++script;
+ }
+ }
+ if (geom > 1) {
+ throw new IllegalArgumentException("Bogus TSF because there are " + geom + " geoms at LOD " + lod);
+ }
+ if (script > 1) {
+ throw new IllegalArgumentException("Bogus TSF because there are " + script + " scipts!");
+ }
- public TemplateSupportFileRecord findSupportFile(final String name) {
- TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
- public boolean find(TemplateSupportFileRecord record) {
- return ((record.getSupportFile()!=null)&& (record.getSupportFile().equals(name)));
- }
- };
- return walkAndFindRecord(finder);
- }
- public TemplateSupportFileRecord findScriptFileRec() {
- TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
- public boolean find(TemplateSupportFileRecord record) {
- return record.getScript();
- }
- };
- return walkAndFindRecord(finder);
- }
+ }
+
+ class TemplateSupportFileRecordFinder {
+ public boolean find(TemplateSupportFileRecord record) {
+ return false;
+ }
+ }
+
+ private TemplateSupportFileRecord walkAndFindRecord(TemplateSupportFileRecordFinder finder) {
+ sanityCheck(0);
+ Iterator iter = getSupportFiles().iterator();
+ while (iter.hasNext()) {
+ TemplateSupportFileRecord record = (TemplateSupportFileRecord) iter.next();
+ if (finder.find(record)) {
+ return record;
+ }
+ }
+ return null;
+ }
+
+ public TemplateSupportFileRecord findGeometryFileRec(final int lod) {
+ TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
+ public boolean find(TemplateSupportFileRecord record) {
+ return record.isGeometryAtLevelOfDetail(lod);
+ }
+ };
+ return walkAndFindRecord(finder);
+ }
+
+ public TemplateSupportFileRecord findSupportFile(final String name) {
+ TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
+ public boolean find(TemplateSupportFileRecord record) {
+ return ((record.getSupportFile() != null) && (record.getSupportFile().equals(name)));
+ }
+ };
+ return walkAndFindRecord(finder);
+ }
+
+ public TemplateSupportFileRecord findScriptFileRec() {
+ TemplateSupportFileRecordFinder finder = new TemplateSupportFileRecordFinder() {
+ public boolean find(TemplateSupportFileRecord record) {
+ return record.getScript();
+ }
+ };
+ return walkAndFindRecord(finder);
+ }
+
+ public double getSeatX() {
+ return seatX;
+ }
+
+ public void setSeatX(double seatX) {
+ this.seatX = seatX;
+ }
+
+ public double getSeatY() {
+ return seatY;
+ }
+
+ public void setSeatY(double seatY) {
+ this.seatY = seatY;
+ }
+
+ public double getSeatZ() {
+ return seatZ;
+ }
+
+ public void setSeatZ(double seatZ) {
+ this.seatZ = seatZ;
+ }
+
+ public double getSeatRW() {
+ return seatRW;
+ }
+
+ public void setSeatRW(double seatRW) {
+ this.seatRW = seatRW;
+ }
+
+ public double getSeatRX() {
+ return seatRX;
+ }
+
+ public void setSeatRX(double seatRX) {
+ this.seatRX = seatRX;
+ }
+
+ public double getSeatRY() {
+ return seatRY;
+ }
+
+ public void setSeatRY(double seatRY) {
+ this.seatRY = seatRY;
+ }
+
+ public double getSeatRZ() {
+ return seatRZ;
+ }
+
+ public void setSeatRZ(double seatRZ) {
+ this.seatRZ = seatRZ;
+ }
+
+ public void getSeatPosition(Point3d point){
+ point.x = seatX;
+ point.y = seatY;
+ point.z = seatZ;
+ }
+
+ public void setSeatPosition(Point3d point){
+ seatX = point.x;
+ seatY = point.y;
+ seatZ = point.z;
+ }
+
+ public void getSeatQuat(Quat4d quat){
+ quat.set(seatRX, seatRY, seatRZ, seatRW);
+ }
+
+ public void setSeatQuat(Quat4d quat){
+ seatRW = quat.w;
+ seatRX = quat.x;
+ seatRY = quat.y;
+ seatRZ = quat.z;
+
+ }
+
+ public boolean isSeat() {
+ return seat;
+ }
+
+ public void setSeat(boolean seat) {
+ this.seat = seat;
+ }
}
Modified: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/xml/server/DocumentFactory.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/xml/server/DocumentFactory.java 2007-10-17 23:49:54 UTC (rev 505)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/xml/server/DocumentFactory.java 2007-10-17 23:49:58 UTC (rev 506)
@@ -56,7 +56,7 @@
TemplateSupportFileDocument doc = documentFromRecord(rec);
supportSet.add(doc);
}
- return new TemplateDocument(templateRecord.getTemplateID(), templateRecord.getDisplayName(), templateRecord.getOwnerUsername(), templateRecord.getDescription(), supportSet);
+ return new TemplateDocument(templateRecord.getTemplateID(), templateRecord.getDisplayName(), templateRecord.getOwnerUsername(), templateRecord.getDescription(), supportSet, templateRecord.isSeat(), templateRecord.getSeatX(), templateRecord.getSeatY(), templateRecord.getSeatZ(), templateRecord.getSeatRW(), templateRecord.getSeatRX(), templateRecord.getSeatRY(), templateRecord.getSeatRZ());
}
public static TemplateSupportFileDocument documentFromRecord(TemplateSupportFileRecord rec) {
Modified: maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml 2007-10-17 23:49:54 UTC (rev 505)
+++ maven/trunk/ogoglio-server/src/main/resources/hibernate/migration-1.xml 2007-10-17 23:49:58 UTC (rev 506)
@@ -102,6 +102,7 @@
<property name="ownerUsername" not-null="true" />
<property name="displayName" not-null="true" />
<property name="description" />
+ <property name="seat" />
<set name="supportFiles" table="TemplateTemplateSupportFiles"
cascade="all">
@@ -109,6 +110,14 @@
<many-to-many column="templateSupportFileID" unique="true"
class="com.ogoglio.persist.TemplateSupportFileRecord" />
</set>
+
+ <property name="seatX" />
+ <property name="seatY" />
+ <property name="seatZ" />
+ <property name="seatRX" />
+ <property name="seatRY" />
+ <property name="seatRZ" />
+ <property name="seatRW" />
</class>
<class name="com.ogoglio.appdev.migrate.DBVersionRecord"
Modified: maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java
===================================================================
--- maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java 2007-10-17 23:49:54 UTC (rev 505)
+++ maven/trunk/ogoglio-server/src/test/java/com/ogoglio/sim/script/test/ScriptTest.java 2007-10-17 23:49:58 UTC (rev 506)
@@ -33,7 +33,7 @@
spaceSimulator = new SpaceSimulator(spaceDocument, listener);
spaceSimulator.startSim();
- TemplateDocument templateDoc1 = new TemplateDocument(1, "Template 1", "trevor", "A cool template", null);
+ TemplateDocument templateDoc1 = new TemplateDocument(1, "Template 1", "trevor", "A cool template", null, false, 0, 0, 0, 1, 0, 0, 0);
listener.templateMap.put(new Long(1), templateDoc1);
listener.scriptMap.put(new Long(1), simplestScript);
listener.objMap.put(new Long(1), "templates/TestCube.obj");
@@ -41,7 +41,7 @@
ThingDocument thingDoc = spaceSimulator.addThing(templateDoc1.getTemplateID(), templateDoc1.getOwnerUsername(), templateDoc1.getDisplayName(), "trevor", 1, new Transform3D());
assertTrue(spaceSimulator.removeThing(thingDoc.getThingID()));
- TemplateDocument templateDoc2 = new TemplateDocument(2, "Template 2", "trevor", "Another cool template", null);
+ TemplateDocument templateDoc2 = new TemplateDocument(2, "Template 2", "trevor", "Another cool template", null, false, 0, 0, 0, 1, 0, 0, 0);
listener.templateMap.put(new Long(2), templateDoc2);
listener.scriptMap.put(new Long(2), constructorScript);
listener.objMap.put(new Long(2), "templates/TestCube.obj");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|