public void write(SpoutOutputStream output) throws IOException {
   if (reset) {
     output.writeString(resetString);
     return;
   }
   output.writeString(textureURL);
   output.writeString(texturePlugin);
   PacketUtil.writeDoubleArray(output, xPos);
   PacketUtil.writeDoubleArray(output, yPos);
   PacketUtil.writeDoubleArray(output, zPos);
   PacketUtil.writeDoubleArray(output, textXPos);
   PacketUtil.writeDoubleArray(output, textYPos);
   output.writeFloat(lowXBound);
   output.writeFloat(lowYBound);
   output.writeFloat(lowZBound);
   output.writeFloat(highXBound);
   output.writeFloat(highYBound);
   output.writeFloat(highZBound);
   output.writeFloat(maxBrightness);
   output.writeFloat(minBrightness);
   output.writeInt(renderPass);
   PacketUtil.writeIntArray(output, lightSourceXOffset);
   PacketUtil.writeIntArray(output, lightSourceYOffset);
   PacketUtil.writeIntArray(output, lightSourceZOffset);
 }
 public void read(SpoutInputStream input) throws IOException {
   textureURL = input.readString();
   if (textureURL.equals(resetString)) {
     reset = true;
     return;
   }
   reset = false;
   texturePlugin = input.readString();
   xPos = PacketUtil.readDoubleArray(input);
   yPos = PacketUtil.readDoubleArray(input);
   zPos = PacketUtil.readDoubleArray(input);
   textXPos = PacketUtil.readDoubleArray(input);
   textYPos = PacketUtil.readDoubleArray(input);
   lowXBound = input.readFloat();
   lowYBound = input.readFloat();
   lowZBound = input.readFloat();
   highXBound = input.readFloat();
   highYBound = input.readFloat();
   highZBound = input.readFloat();
   maxBrightness = input.readFloat();
   minBrightness = input.readFloat();
   renderPass = input.readInt();
   lightSourceXOffset = PacketUtil.readIntArray(input);
   lightSourceYOffset = PacketUtil.readIntArray(input);
   lightSourceZOffset = PacketUtil.readIntArray(input);
 }