diff --git a/trunk/src/com/jpexs/asdec/SWF.java b/trunk/src/com/jpexs/asdec/SWF.java
index 007ff01cc..c63c93a88 100644
--- a/trunk/src/com/jpexs/asdec/SWF.java
+++ b/trunk/src/com/jpexs/asdec/SWF.java
@@ -19,10 +19,10 @@ package com.jpexs.asdec;
import SevenZip.Compression.LZMA.Encoder;
import com.jpexs.asdec.action.TagNode;
import com.jpexs.asdec.helpers.Highlighting;
-import com.jpexs.asdec.tags.ASMSource;
+import com.jpexs.asdec.tags.base.ASMSource;
import com.jpexs.asdec.tags.DoABCTag;
import com.jpexs.asdec.tags.Tag;
-import com.jpexs.asdec.tags.TagName;
+import com.jpexs.asdec.tags.base.TagName;
import com.jpexs.asdec.types.RECT;
import java.io.*;
import java.util.ArrayList;
diff --git a/trunk/src/com/jpexs/asdec/SWFInputStream.java b/trunk/src/com/jpexs/asdec/SWFInputStream.java
index 706c3e803..b7d167272 100644
--- a/trunk/src/com/jpexs/asdec/SWFInputStream.java
+++ b/trunk/src/com/jpexs/asdec/SWFInputStream.java
@@ -516,40 +516,40 @@ public class SWFInputStream extends InputStream {
ret = new DefineButton2Tag(data, version, pos);
break;
case 69:
- ret = new FileAttributes(data, version, pos);
+ ret = new FileAttributesTag(data, version, pos);
break;
case 77:
- ret = new Metadata(data, pos);
+ ret = new MetadataTag(data, pos);
break;
case 65:
- ret = new ScriptLimits(data, version, pos);
+ ret = new ScriptLimitsTag(data, version, pos);
break;
case 9:
- ret = new SetBackgroundColor(data, pos);
+ ret = new SetBackgroundColorTag(data, pos);
break;
case 41:
- ret = new ProductInfo(data, version, pos);
+ ret = new ProductInfoTag(data, version, pos);
break;
case 43:
- ret = new FrameLabel(data, version, pos);
+ ret = new FrameLabelTag(data, version, pos);
break;
case 36:
- ret = new DefineBitsLossless2(data, version, pos);
+ ret = new DefineBitsLossless2Tag(data, version, pos);
break;
case 76:
- ret = new SymbolClass(data, version, pos);
+ ret = new SymbolClassTag(data, version, pos);
break;
case 32:
ret = new DefineShape3(data, version, pos);
break;
case 28:
- ret = new RemoveObject2(data, version, pos);
+ ret = new RemoveObject2Tag(data, version, pos);
break;
case 78:
- ret = new DefineScalingGrid(data, version, pos);
+ ret = new DefineScalingGridTag(data, version, pos);
break;
case 2:
- ret = new DefineShape(data, version, pos);
+ ret = new DefineShapeTag(data, version, pos);
break;
case 22:
ret = new DefineShape2(data, version, pos);
@@ -558,34 +558,34 @@ public class SWFInputStream extends InputStream {
ret = new DefineShape4(data, version, pos);
break;
case 20:
- ret = new DefineBitsLossless(data, version, pos);
+ ret = new DefineBitsLosslessTag(data, version, pos);
break;
case 35:
- ret = new DefineBitsJPEG3(data, version, pos);
+ ret = new DefineBitsJPEG3Tag(data, version, pos);
break;
case 87:
- ret = new DefineBinaryData(data, version, pos);
+ ret = new DefineBinaryDataTag(data, version, pos);
break;
case 8:
- ret = new JPEGTables(data, pos);
+ ret = new JPEGTablesTag(data, pos);
break;
case 6:
- ret = new DefineBits(data, version, pos);
+ ret = new DefineBitsTag(data, version, pos);
break;
case 21:
- ret = new DefineBitsJPEG2(data, version, pos);
+ ret = new DefineBitsJPEG2Tag(data, version, pos);
break;
case 75:
- ret = new DefineFont3(data, version, pos);
+ ret = new DefineFont3Tag(data, version, pos);
break;
case 73:
- ret = new DefineFontAlignZones(data, version, pos);
+ ret = new DefineFontAlignZonesTag(data, version, pos);
break;
case 88:
- ret = new DefineFontName(data, version, pos);
+ ret = new DefineFontNameTag(data, version, pos);
break;
case 91:
- ret = new DefineFont4(data, version, pos);
+ ret = new DefineFont4Tag(data, version, pos);
break;
default:
ret = new Tag(tagID, data, pos);
@@ -884,6 +884,32 @@ public class SWFInputStream extends InputStream {
alignByte();
return ret;
}
+
+ /**
+ * Reads one CXFORM value from the stream
+ *
+ * @return CXFORM value
+ * @throws IOException
+ */
+ public CXFORM readCXFORM() throws IOException {
+ CXFORM ret = new CXFORM();
+ ret.hasAddTerms = readUB(1) == 1;
+ ret.hasMultTerms = readUB(1) == 1;
+ int Nbits = (int) readUB(4);
+ ret.nbits = Nbits;
+ if (ret.hasMultTerms) {
+ ret.redMultTerm = (int) readSB(Nbits);
+ ret.greenMultTerm = (int) readSB(Nbits);
+ ret.blueMultTerm = (int) readSB(Nbits);
+ }
+ if (ret.hasAddTerms) {
+ ret.redAddTerm = (int) readSB(Nbits);
+ ret.greenAddTerm = (int) readSB(Nbits);
+ ret.blueAddTerm = (int) readSB(Nbits);
+ }
+ alignByte();
+ return ret;
+ }
/**
* Reads one CLIPEVENTFLAGS value from the stream
diff --git a/trunk/src/com/jpexs/asdec/SWFOutputStream.java b/trunk/src/com/jpexs/asdec/SWFOutputStream.java
index 13ff36703..e0b4865ed 100644
--- a/trunk/src/com/jpexs/asdec/SWFOutputStream.java
+++ b/trunk/src/com/jpexs/asdec/SWFOutputStream.java
@@ -504,6 +504,40 @@ public class SWFOutputStream extends OutputStream {
}
+ /**
+ * Writes CXFORM value to the stream
+ *
+ * @param value CXFORM value
+ * @throws IOException
+ */
+ public void writeCXFORM(CXFORM value) throws IOException {
+ writeUB(1, value.hasAddTerms ? 1 : 0);
+ writeUB(1, value.hasMultTerms ? 1 : 0);
+ int Nbits = 1;
+ if (value.hasMultTerms) {
+ Nbits = enlargeBitCountS(Nbits, value.redMultTerm);
+ Nbits = enlargeBitCountS(Nbits, value.greenMultTerm);
+ Nbits = enlargeBitCountS(Nbits, value.blueMultTerm);
+ }
+ if (value.hasAddTerms) {
+ Nbits = enlargeBitCountS(Nbits, value.redAddTerm);
+ Nbits = enlargeBitCountS(Nbits, value.greenAddTerm);
+ Nbits = enlargeBitCountS(Nbits, value.blueAddTerm);
+ }
+ writeUB(4, Nbits);
+ if (value.hasMultTerms) {
+ writeSB(Nbits, value.redMultTerm);
+ writeSB(Nbits, value.greenMultTerm);
+ writeSB(Nbits, value.blueMultTerm);
+ }
+ if (value.hasAddTerms) {
+ writeSB(Nbits, value.redAddTerm);
+ writeSB(Nbits, value.greenAddTerm);
+ writeSB(Nbits, value.blueAddTerm);
+ }
+ alignByte();
+ }
+
/**
* Writes CXFORMWITHALPHA value to the stream
*
diff --git a/trunk/src/com/jpexs/asdec/action/TagNode.java b/trunk/src/com/jpexs/asdec/action/TagNode.java
index 228c45908..34ccc8479 100644
--- a/trunk/src/com/jpexs/asdec/action/TagNode.java
+++ b/trunk/src/com/jpexs/asdec/action/TagNode.java
@@ -16,8 +16,8 @@
*/
package com.jpexs.asdec.action;
-import com.jpexs.asdec.tags.ASMSource;
-import com.jpexs.asdec.tags.Container;
+import com.jpexs.asdec.tags.base.ASMSource;
+import com.jpexs.asdec.tags.base.Container;
import com.jpexs.asdec.tags.DefineButton2Tag;
import com.jpexs.asdec.tags.DefineButtonTag;
import com.jpexs.asdec.tags.DefineSpriteTag;
diff --git a/trunk/src/com/jpexs/asdec/action/gui/MainFrame.java b/trunk/src/com/jpexs/asdec/action/gui/MainFrame.java
index 23840fd1f..d45e31fba 100644
--- a/trunk/src/com/jpexs/asdec/action/gui/MainFrame.java
+++ b/trunk/src/com/jpexs/asdec/action/gui/MainFrame.java
@@ -25,7 +25,7 @@ import com.jpexs.asdec.action.parser.ParseException;
import com.jpexs.asdec.gui.LoadingPanel;
import com.jpexs.asdec.gui.View;
import com.jpexs.asdec.helpers.Highlighting;
-import com.jpexs.asdec.tags.ASMSource;
+import com.jpexs.asdec.tags.base.ASMSource;
import com.jpexs.asdec.tags.Tag;
import java.awt.BorderLayout;
import java.awt.Container;
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBinaryData.java b/trunk/src/com/jpexs/asdec/tags/DefineBinaryDataTag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/DefineBinaryData.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBinaryDataTag.java
index fe168d823..dbb43ff47 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBinaryData.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBinaryDataTag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineBinaryData extends Tag {
+public class DefineBinaryDataTag extends Tag {
- public DefineBinaryData(byte[] data, int version, long pos) {
+ public DefineBinaryDataTag(byte[] data, int version, long pos) {
super(87, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java
index f170797cc..d3fe9dcb8 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG2Tag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineBitsJPEG2 extends Tag {
+public class DefineBitsJPEG2Tag extends Tag {
- public DefineBitsJPEG2(byte[] data, int version, long pos) {
+ public DefineBitsJPEG2Tag(byte[] data, int version, long pos) {
super(21, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java
index 603ed4001..5dce6b58c 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsJPEG3Tag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineBitsJPEG3 extends Tag {
+public class DefineBitsJPEG3Tag extends Tag {
- public DefineBitsJPEG3(byte[] data, int version, long pos) {
+ public DefineBitsJPEG3Tag(byte[] data, int version, long pos) {
super(35, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java
similarity index 84%
rename from trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java
index 88d770eb8..6cc53c478 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless2Tag.java
@@ -18,9 +18,9 @@ package com.jpexs.asdec.tags;
import java.io.IOException;
-public class DefineBitsLossless2 extends Tag {
+public class DefineBitsLossless2Tag extends Tag {
- public DefineBitsLossless2(byte[] data, int version, long pos) throws IOException {
+ public DefineBitsLossless2Tag(byte[] data, int version, long pos) throws IOException {
super(36, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java
similarity index 85%
rename from trunk/src/com/jpexs/asdec/tags/DefineBitsLossless.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java
index b42a738c3..38e100f53 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBitsLossless.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsLosslessTag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineBitsLossless extends Tag {
+public class DefineBitsLosslessTag extends Tag {
- public DefineBitsLossless(byte[] data, int version, long pos) {
+ public DefineBitsLosslessTag(byte[] data, int version, long pos) {
super(20, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineBits.java b/trunk/src/com/jpexs/asdec/tags/DefineBitsTag.java
similarity index 87%
rename from trunk/src/com/jpexs/asdec/tags/DefineBits.java
rename to trunk/src/com/jpexs/asdec/tags/DefineBitsTag.java
index 71395a3f0..e2284feec 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineBits.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineBitsTag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineBits extends Tag {
+public class DefineBitsTag extends Tag {
- public DefineBits(byte[] data, int version, long pos) {
+ public DefineBitsTag(byte[] data, int version, long pos) {
super(6, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineButton2Tag.java b/trunk/src/com/jpexs/asdec/tags/DefineButton2Tag.java
index b6fd979e5..c9ac3afdd 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineButton2Tag.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineButton2Tag.java
@@ -16,6 +16,8 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.TagName;
+import com.jpexs.asdec.tags.base.Container;
import com.jpexs.asdec.Main;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineButtonTag.java b/trunk/src/com/jpexs/asdec/tags/DefineButtonTag.java
index 5897a756c..7542649ca 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineButtonTag.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineButtonTag.java
@@ -16,6 +16,8 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.TagName;
+import com.jpexs.asdec.tags.base.ASMSource;
import com.jpexs.asdec.Main;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineFont3.java b/trunk/src/com/jpexs/asdec/tags/DefineFont3Tag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/DefineFont3.java
rename to trunk/src/com/jpexs/asdec/tags/DefineFont3Tag.java
index 6e35d14b5..063759f97 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineFont3.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineFont3Tag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineFont3 extends Tag {
+public class DefineFont3Tag extends Tag {
- public DefineFont3(byte[] data, int version, long pos) {
+ public DefineFont3Tag(byte[] data, int version, long pos) {
super(75, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineFont4.java b/trunk/src/com/jpexs/asdec/tags/DefineFont4Tag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/DefineFont4.java
rename to trunk/src/com/jpexs/asdec/tags/DefineFont4Tag.java
index 904c5c8b4..b898ccc78 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineFont4.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineFont4Tag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineFont4 extends Tag {
+public class DefineFont4Tag extends Tag {
- public DefineFont4(byte[] data, int version, long pos) {
+ public DefineFont4Tag(byte[] data, int version, long pos) {
super(91, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineFontAlignZones.java b/trunk/src/com/jpexs/asdec/tags/DefineFontAlignZonesTag.java
similarity index 85%
rename from trunk/src/com/jpexs/asdec/tags/DefineFontAlignZones.java
rename to trunk/src/com/jpexs/asdec/tags/DefineFontAlignZonesTag.java
index 3bfd155cd..d152d579e 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineFontAlignZones.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineFontAlignZonesTag.java
@@ -16,9 +16,9 @@
*/
package com.jpexs.asdec.tags;
-public class DefineFontAlignZones extends Tag {
+public class DefineFontAlignZonesTag extends Tag {
- public DefineFontAlignZones(byte[] data, int version, long pos) {
+ public DefineFontAlignZonesTag(byte[] data, int version, long pos) {
super(73, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineFontName.java b/trunk/src/com/jpexs/asdec/tags/DefineFontNameTag.java
similarity index 87%
rename from trunk/src/com/jpexs/asdec/tags/DefineFontName.java
rename to trunk/src/com/jpexs/asdec/tags/DefineFontNameTag.java
index bfed708c8..88ff7a988 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineFontName.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineFontNameTag.java
@@ -20,13 +20,13 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class DefineFontName extends Tag {
+public class DefineFontNameTag extends Tag {
private int fontId;
private String fontName;
private String fontCopyright;
- public DefineFontName(byte[] data, int version, long pos) throws IOException {
+ public DefineFontNameTag(byte[] data, int version, long pos) throws IOException {
super(88, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
fontId = sis.readUI16();
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineScalingGrid.java b/trunk/src/com/jpexs/asdec/tags/DefineScalingGridTag.java
similarity index 87%
rename from trunk/src/com/jpexs/asdec/tags/DefineScalingGrid.java
rename to trunk/src/com/jpexs/asdec/tags/DefineScalingGridTag.java
index 49e3436f0..bd8cd6ee1 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineScalingGrid.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineScalingGridTag.java
@@ -21,12 +21,12 @@ import com.jpexs.asdec.types.RECT;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class DefineScalingGrid extends Tag {
+public class DefineScalingGridTag extends Tag {
private int characterId;
private RECT splitter;
- public DefineScalingGrid(byte[] data, int version, long pos) throws IOException {
+ public DefineScalingGridTag(byte[] data, int version, long pos) throws IOException {
super(78, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
characterId = sis.readUI16();
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineShape.java b/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java
similarity index 85%
rename from trunk/src/com/jpexs/asdec/tags/DefineShape.java
rename to trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java
index 541c3cf50..24e361bbb 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineShape.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineShapeTag.java
@@ -18,9 +18,9 @@ package com.jpexs.asdec.tags;
import java.io.IOException;
-public class DefineShape extends Tag {
+public class DefineShapeTag extends Tag {
- public DefineShape(byte[] data, int version, long pos) throws IOException {
+ public DefineShapeTag(byte[] data, int version, long pos) throws IOException {
super(2, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/DefineSpriteTag.java b/trunk/src/com/jpexs/asdec/tags/DefineSpriteTag.java
index ceb66340b..be3cb0c92 100644
--- a/trunk/src/com/jpexs/asdec/tags/DefineSpriteTag.java
+++ b/trunk/src/com/jpexs/asdec/tags/DefineSpriteTag.java
@@ -16,6 +16,8 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.TagName;
+import com.jpexs.asdec.tags.base.Container;
import com.jpexs.asdec.Main;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/DoActionTag.java b/trunk/src/com/jpexs/asdec/tags/DoActionTag.java
index e390c3e79..1e0697b23 100644
--- a/trunk/src/com/jpexs/asdec/tags/DoActionTag.java
+++ b/trunk/src/com/jpexs/asdec/tags/DoActionTag.java
@@ -16,6 +16,7 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.ASMSource;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.action.Action;
import java.io.ByteArrayInputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/DoInitActionTag.java b/trunk/src/com/jpexs/asdec/tags/DoInitActionTag.java
index 72b4b8072..a960b61f4 100644
--- a/trunk/src/com/jpexs/asdec/tags/DoInitActionTag.java
+++ b/trunk/src/com/jpexs/asdec/tags/DoInitActionTag.java
@@ -16,6 +16,8 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.TagName;
+import com.jpexs.asdec.tags.base.ASMSource;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
import com.jpexs.asdec.action.Action;
diff --git a/trunk/src/com/jpexs/asdec/tags/FileAttributes.java b/trunk/src/com/jpexs/asdec/tags/FileAttributesTag.java
similarity index 89%
rename from trunk/src/com/jpexs/asdec/tags/FileAttributes.java
rename to trunk/src/com/jpexs/asdec/tags/FileAttributesTag.java
index 3fad26bdf..a166f137b 100644
--- a/trunk/src/com/jpexs/asdec/tags/FileAttributes.java
+++ b/trunk/src/com/jpexs/asdec/tags/FileAttributesTag.java
@@ -20,7 +20,7 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class FileAttributes extends Tag {
+public class FileAttributesTag extends Tag {
private boolean useDirectBlit;
private boolean useGPU;
@@ -28,7 +28,7 @@ public class FileAttributes extends Tag {
private boolean actionScript3;
private boolean useNetwork;
- public FileAttributes(byte[] data, int version, long pos) throws IOException {
+ public FileAttributesTag(byte[] data, int version, long pos) throws IOException {
super(69, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
sis.readUB(1); // reserved
diff --git a/trunk/src/com/jpexs/asdec/tags/FrameLabel.java b/trunk/src/com/jpexs/asdec/tags/FrameLabelTag.java
similarity index 87%
rename from trunk/src/com/jpexs/asdec/tags/FrameLabel.java
rename to trunk/src/com/jpexs/asdec/tags/FrameLabelTag.java
index 095d1b18e..af7c8fdb3 100644
--- a/trunk/src/com/jpexs/asdec/tags/FrameLabel.java
+++ b/trunk/src/com/jpexs/asdec/tags/FrameLabelTag.java
@@ -20,11 +20,11 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class FrameLabel extends Tag {
+public class FrameLabelTag extends Tag {
private String name;
- public FrameLabel(byte[] data, int version, long pos) throws IOException {
+ public FrameLabelTag(byte[] data, int version, long pos) throws IOException {
super(43, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
name = sis.readString();
diff --git a/trunk/src/com/jpexs/asdec/tags/JPEGTables.java b/trunk/src/com/jpexs/asdec/tags/JPEGTablesTag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/JPEGTables.java
rename to trunk/src/com/jpexs/asdec/tags/JPEGTablesTag.java
index f21bc1827..e4bbd5dd2 100644
--- a/trunk/src/com/jpexs/asdec/tags/JPEGTables.java
+++ b/trunk/src/com/jpexs/asdec/tags/JPEGTablesTag.java
@@ -18,9 +18,9 @@ package com.jpexs.asdec.tags;
import java.io.IOException;
-public class JPEGTables extends Tag {
+public class JPEGTablesTag extends Tag {
- public JPEGTables(byte[] data, long pos) throws IOException {
+ public JPEGTablesTag(byte[] data, long pos) throws IOException {
super(8, data, pos);
// TODO Auto-generated constructor stub
}
diff --git a/trunk/src/com/jpexs/asdec/tags/Metadata.java b/trunk/src/com/jpexs/asdec/tags/MetadataTag.java
similarity index 89%
rename from trunk/src/com/jpexs/asdec/tags/Metadata.java
rename to trunk/src/com/jpexs/asdec/tags/MetadataTag.java
index 35b10ec70..b13aa98da 100644
--- a/trunk/src/com/jpexs/asdec/tags/Metadata.java
+++ b/trunk/src/com/jpexs/asdec/tags/MetadataTag.java
@@ -18,11 +18,11 @@ package com.jpexs.asdec.tags;
import java.io.UnsupportedEncodingException;
-public class Metadata extends Tag {
+public class MetadataTag extends Tag {
private String xmlMetadata;
- public Metadata(byte[] data, long pos) {
+ public MetadataTag(byte[] data, long pos) {
super(77, data, pos);
try {
xmlMetadata = new String(data, "UTF-8");
diff --git a/trunk/src/com/jpexs/asdec/tags/PlaceObject2Tag.java b/trunk/src/com/jpexs/asdec/tags/PlaceObject2Tag.java
index b78da76e0..0582d82e9 100644
--- a/trunk/src/com/jpexs/asdec/tags/PlaceObject2Tag.java
+++ b/trunk/src/com/jpexs/asdec/tags/PlaceObject2Tag.java
@@ -16,6 +16,7 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.Container;
import com.jpexs.asdec.Main;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/PlaceObject3Tag.java b/trunk/src/com/jpexs/asdec/tags/PlaceObject3Tag.java
index 5ee84ff37..0be6a3870 100644
--- a/trunk/src/com/jpexs/asdec/tags/PlaceObject3Tag.java
+++ b/trunk/src/com/jpexs/asdec/tags/PlaceObject3Tag.java
@@ -16,6 +16,7 @@
*/
package com.jpexs.asdec.tags;
+import com.jpexs.asdec.tags.base.Container;
import com.jpexs.asdec.Main;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.SWFOutputStream;
diff --git a/trunk/src/com/jpexs/asdec/tags/PlaceObjectTag.java b/trunk/src/com/jpexs/asdec/tags/PlaceObjectTag.java
new file mode 100644
index 000000000..1d91ec46d
--- /dev/null
+++ b/trunk/src/com/jpexs/asdec/tags/PlaceObjectTag.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2010-2011 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.asdec.tags;
+
+import com.jpexs.asdec.SWFInputStream;
+import com.jpexs.asdec.SWFOutputStream;
+import com.jpexs.asdec.types.CXFORM;
+import com.jpexs.asdec.types.MATRIX;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Extends the functionality of the PlaceObject2Tag
+ *
+ * @author JPEXS
+ */
+public class PlaceObjectTag extends Tag {
+
+ /**
+ * ID of character to place
+ */
+ public int characterId;
+ /**
+ * Depth of character
+ */
+ public int depth;
+ /**
+ * Transform matrix data
+ */
+ public MATRIX matrix;
+ /**
+ * Color transform data
+ */
+ public CXFORM colorTransform;
+
+ /**
+ * Gets data bytes
+ *
+ * @param version SWF version
+ * @return Bytes of data
+ */
+ @Override
+ public byte[] getData(int version) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ OutputStream os = baos;
+ SWFOutputStream sos = new SWFOutputStream(os, version);
+ try {
+ sos.writeUI16(characterId);
+ sos.writeUI16(depth);
+ sos.writeMatrix(matrix);
+ if (colorTransform != null) {
+ sos.writeCXFORM(colorTransform);
+ }
+ } catch (IOException e) {
+ }
+ return baos.toByteArray();
+ }
+
+ /**
+ * Constructor
+ *
+ * @param data Data bytes
+ * @param version SWF version
+ * @throws IOException
+ */
+ public PlaceObjectTag(byte data[], int version, long pos) throws IOException {
+ super(4, data, pos);
+ SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
+ characterId = sis.readUI16();
+ depth = sis.readUI16();
+ matrix = sis.readMatrix();
+ if (sis.available() > 0) {
+ colorTransform = sis.readCXFORM();
+ }
+ }
+
+ /**
+ * Returns string representation of the object
+ *
+ * @return String representation of the object
+ */
+ @Override
+ public String toString() {
+ return "PlaceObjectTag";
+ }
+}
diff --git a/trunk/src/com/jpexs/asdec/tags/ProductInfo.java b/trunk/src/com/jpexs/asdec/tags/ProductInfoTag.java
similarity index 90%
rename from trunk/src/com/jpexs/asdec/tags/ProductInfo.java
rename to trunk/src/com/jpexs/asdec/tags/ProductInfoTag.java
index 266cb7a57..ccc7e012a 100644
--- a/trunk/src/com/jpexs/asdec/tags/ProductInfo.java
+++ b/trunk/src/com/jpexs/asdec/tags/ProductInfoTag.java
@@ -20,7 +20,7 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class ProductInfo extends Tag {
+public class ProductInfoTag extends Tag {
private long productID;
private long edition;
@@ -30,7 +30,7 @@ public class ProductInfo extends Tag {
private long buildHigh;
private long compilationDate;
- public ProductInfo(byte[] data, int version, long pos) throws IOException {
+ public ProductInfoTag(byte[] data, int version, long pos) throws IOException {
super(41, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
/*
diff --git a/trunk/src/com/jpexs/asdec/tags/RemoveObject2.java b/trunk/src/com/jpexs/asdec/tags/RemoveObject2Tag.java
similarity index 86%
rename from trunk/src/com/jpexs/asdec/tags/RemoveObject2.java
rename to trunk/src/com/jpexs/asdec/tags/RemoveObject2Tag.java
index 807d2f742..fa7113676 100644
--- a/trunk/src/com/jpexs/asdec/tags/RemoveObject2.java
+++ b/trunk/src/com/jpexs/asdec/tags/RemoveObject2Tag.java
@@ -20,11 +20,11 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class RemoveObject2 extends Tag {
+public class RemoveObject2Tag extends Tag {
private int depth;
- public RemoveObject2(byte[] data, int version, long pos) throws IOException {
+ public RemoveObject2Tag(byte[] data, int version, long pos) throws IOException {
super(28, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
depth = sis.readUI16();
diff --git a/trunk/src/com/jpexs/asdec/tags/RemoveObjectTag.java b/trunk/src/com/jpexs/asdec/tags/RemoveObjectTag.java
new file mode 100644
index 000000000..0e12b53de
--- /dev/null
+++ b/trunk/src/com/jpexs/asdec/tags/RemoveObjectTag.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2010-2011 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.asdec.tags;
+
+import com.jpexs.asdec.SWFInputStream;
+import com.jpexs.asdec.SWFOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Extends the functionality of the PlaceObject2Tag
+ *
+ * @author JPEXS
+ */
+public class RemoveObjectTag extends Tag {
+
+ /**
+ * ID of character to place
+ */
+ public int characterId;
+ /**
+ * Depth of character
+ */
+ public int depth;
+
+ /**
+ * Gets data bytes
+ *
+ * @param version SWF version
+ * @return Bytes of data
+ */
+ @Override
+ public byte[] getData(int version) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ OutputStream os = baos;
+ SWFOutputStream sos = new SWFOutputStream(os, version);
+ try {
+ sos.writeUI16(characterId);
+ sos.writeUI16(depth);
+ } catch (IOException e) {
+ }
+ return baos.toByteArray();
+ }
+
+ /**
+ * Constructor
+ *
+ * @param data Data bytes
+ * @param version SWF version
+ * @throws IOException
+ */
+ public RemoveObjectTag(byte data[], int version, long pos) throws IOException {
+ super(5, data, pos);
+ SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
+ characterId = sis.readUI16();
+ depth = sis.readUI16();
+ }
+
+ /**
+ * Returns string representation of the object
+ *
+ * @return String representation of the object
+ */
+ @Override
+ public String toString() {
+ return "RemoveObjectTag";
+ }
+}
diff --git a/trunk/src/com/jpexs/asdec/tags/ScriptLimits.java b/trunk/src/com/jpexs/asdec/tags/ScriptLimitsTag.java
similarity index 87%
rename from trunk/src/com/jpexs/asdec/tags/ScriptLimits.java
rename to trunk/src/com/jpexs/asdec/tags/ScriptLimitsTag.java
index 64ddbdcc3..f4484fba1 100644
--- a/trunk/src/com/jpexs/asdec/tags/ScriptLimits.java
+++ b/trunk/src/com/jpexs/asdec/tags/ScriptLimitsTag.java
@@ -20,12 +20,12 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class ScriptLimits extends Tag {
+public class ScriptLimitsTag extends Tag {
private int maxRecursionDepth;
private int scriptTimeoutSeconds;
- public ScriptLimits(byte[] data, int version, long pos) throws IOException {
+ public ScriptLimitsTag(byte[] data, int version, long pos) throws IOException {
super(65, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
maxRecursionDepth = sis.readUI16();
diff --git a/trunk/src/com/jpexs/asdec/tags/SetBackgroundColor.java b/trunk/src/com/jpexs/asdec/tags/SetBackgroundColorTag.java
similarity index 88%
rename from trunk/src/com/jpexs/asdec/tags/SetBackgroundColor.java
rename to trunk/src/com/jpexs/asdec/tags/SetBackgroundColorTag.java
index 84c7d8ee7..ea9f23191 100644
--- a/trunk/src/com/jpexs/asdec/tags/SetBackgroundColor.java
+++ b/trunk/src/com/jpexs/asdec/tags/SetBackgroundColorTag.java
@@ -18,11 +18,11 @@ package com.jpexs.asdec.tags;
import com.jpexs.asdec.types.RGB;
-public class SetBackgroundColor extends Tag {
+public class SetBackgroundColorTag extends Tag {
private RGB backgroundColor;
- public SetBackgroundColor(byte[] data, long pos) {
+ public SetBackgroundColorTag(byte[] data, long pos) {
super(9, data, pos);
backgroundColor = new RGB();
backgroundColor.red = data[0] & 0xff;
diff --git a/trunk/src/com/jpexs/asdec/tags/StubTag.java b/trunk/src/com/jpexs/asdec/tags/StubTag.java
new file mode 100644
index 000000000..e0a017290
--- /dev/null
+++ b/trunk/src/com/jpexs/asdec/tags/StubTag.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2010-2011 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.asdec.tags;
+
+import com.jpexs.asdec.SWFInputStream;
+import com.jpexs.asdec.SWFOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Extends the functionality of the PlaceObject2Tag
+ *
+ * @author JPEXS
+ */
+public class StubTag extends Tag {
+
+ /**
+ * Gets data bytes
+ *
+ * @param version SWF version
+ * @return Bytes of data
+ */
+ @Override
+ public byte[] getData(int version) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ OutputStream os = baos;
+ SWFOutputStream sos = new SWFOutputStream(os, version);
+ /*try {
+ //sos.write
+ } catch (IOException e) {
+ }*/
+ return baos.toByteArray();
+ }
+
+ /**
+ * Constructor
+ *
+ * @param data Data bytes
+ * @param version SWF version
+ * @throws IOException
+ */
+ public StubTag(byte data[], int version, long pos) throws IOException {
+ super(0, data, pos);
+ SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
+
+ }
+
+ /**
+ * Returns string representation of the object
+ *
+ * @return String representation of the object
+ */
+ @Override
+ public String toString() {
+ return "PlaceObjectTag";
+ }
+}
diff --git a/trunk/src/com/jpexs/asdec/tags/SymbolClass.java b/trunk/src/com/jpexs/asdec/tags/SymbolClassTag.java
similarity index 89%
rename from trunk/src/com/jpexs/asdec/tags/SymbolClass.java
rename to trunk/src/com/jpexs/asdec/tags/SymbolClassTag.java
index 4e78ba7a1..391c04b36 100644
--- a/trunk/src/com/jpexs/asdec/tags/SymbolClass.java
+++ b/trunk/src/com/jpexs/asdec/tags/SymbolClassTag.java
@@ -20,12 +20,12 @@ import com.jpexs.asdec.SWFInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
-public class SymbolClass extends Tag {
+public class SymbolClassTag extends Tag {
private int tagIDs[];
private String classNames[];
- public SymbolClass(byte[] data, int version, long pos) throws IOException {
+ public SymbolClassTag(byte[] data, int version, long pos) throws IOException {
super(76, data, pos);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
int numSymbols = sis.readUI16();
diff --git a/trunk/src/com/jpexs/asdec/tags/ASMSource.java b/trunk/src/com/jpexs/asdec/tags/base/ASMSource.java
similarity index 94%
rename from trunk/src/com/jpexs/asdec/tags/ASMSource.java
rename to trunk/src/com/jpexs/asdec/tags/base/ASMSource.java
index abc2dd284..0f51429f9 100644
--- a/trunk/src/com/jpexs/asdec/tags/ASMSource.java
+++ b/trunk/src/com/jpexs/asdec/tags/base/ASMSource.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.jpexs.asdec.tags;
+package com.jpexs.asdec.tags.base;
import com.jpexs.asdec.action.Action;
import java.util.List;
diff --git a/trunk/src/com/jpexs/asdec/tags/Container.java b/trunk/src/com/jpexs/asdec/tags/base/Container.java
similarity index 93%
rename from trunk/src/com/jpexs/asdec/tags/Container.java
rename to trunk/src/com/jpexs/asdec/tags/base/Container.java
index 634357581..9323e8021 100644
--- a/trunk/src/com/jpexs/asdec/tags/Container.java
+++ b/trunk/src/com/jpexs/asdec/tags/base/Container.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.jpexs.asdec.tags;
+package com.jpexs.asdec.tags.base;
import java.util.List;
diff --git a/trunk/src/com/jpexs/asdec/tags/TagName.java b/trunk/src/com/jpexs/asdec/tags/base/TagName.java
similarity index 92%
rename from trunk/src/com/jpexs/asdec/tags/TagName.java
rename to trunk/src/com/jpexs/asdec/tags/base/TagName.java
index f767edbd3..b5d8d68ce 100644
--- a/trunk/src/com/jpexs/asdec/tags/TagName.java
+++ b/trunk/src/com/jpexs/asdec/tags/base/TagName.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.jpexs.asdec.tags;
+package com.jpexs.asdec.tags.base;
/**
*
diff --git a/trunk/src/com/jpexs/asdec/types/BUTTONCONDACTION.java b/trunk/src/com/jpexs/asdec/types/BUTTONCONDACTION.java
index 8b3900555..62b8abd9b 100644
--- a/trunk/src/com/jpexs/asdec/types/BUTTONCONDACTION.java
+++ b/trunk/src/com/jpexs/asdec/types/BUTTONCONDACTION.java
@@ -18,7 +18,7 @@ package com.jpexs.asdec.types;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.action.Action;
-import com.jpexs.asdec.tags.ASMSource;
+import com.jpexs.asdec.tags.base.ASMSource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/trunk/src/com/jpexs/asdec/types/CLIPACTIONRECORD.java b/trunk/src/com/jpexs/asdec/types/CLIPACTIONRECORD.java
index 19e92ae83..1a1eaeeae 100644
--- a/trunk/src/com/jpexs/asdec/types/CLIPACTIONRECORD.java
+++ b/trunk/src/com/jpexs/asdec/types/CLIPACTIONRECORD.java
@@ -18,7 +18,7 @@ package com.jpexs.asdec.types;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.action.Action;
-import com.jpexs.asdec.tags.ASMSource;
+import com.jpexs.asdec.tags.base.ASMSource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/trunk/src/com/jpexs/asdec/types/CXFORM.java b/trunk/src/com/jpexs/asdec/types/CXFORM.java
new file mode 100644
index 000000000..f1320daa7
--- /dev/null
+++ b/trunk/src/com/jpexs/asdec/types/CXFORM.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2010-2011 JPEXS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.jpexs.asdec.types;
+
+/**
+ * Defines a transform that can be applied to the color space of a graphic
+ * object.
+ *
+ * @author JPEXS
+ */
+public class CXFORM {
+
+ /**
+ * Has color addition values
+ */
+ public boolean hasAddTerms;
+ /**
+ * Has color multiply values
+ */
+ public boolean hasMultTerms;
+
+ public int nbits;
+
+ /**
+ * Red multiply value
+ */
+ public int redMultTerm;
+ /**
+ * Green multiply value
+ */
+ public int greenMultTerm;
+ /**
+ * Blue multiply value
+ */
+ public int blueMultTerm;
+
+ /**
+ * Red addition value
+ */
+ public int redAddTerm;
+ /**
+ * Green addition value
+ */
+ public int greenAddTerm;
+ /**
+ * Blue addition value
+ */
+ public int blueAddTerm;
+
+}