1 package vrml.external.field;
2 import java.math.BigInteger;
13 StringTokenizer tokens;
15 private void takeapart() {
18 if (RLreturn == null) {
19 rep = Browser.SendEventOut (nodeptr, offset, datasize, datatype,
command);
20 if (rep.length() > 2) {
22 rep = rep.substring (1,rep.length()-1);
26 tokens =
new StringTokenizer (rep);
29 tokens =
new StringTokenizer (RLreturn);
32 width = Integer.valueOf(tokens.nextToken()).intValue();
33 height = Integer.valueOf(tokens.nextToken()).intValue();
34 numComponents = Integer.valueOf(tokens.nextToken()).intValue();
37 public int getWidth() {
42 public int getHeight () {
47 public int getNumComponents() {
52 public byte[] getPixels () {
63 retval =
new byte [width*height*numComponents];
67 for (count = 0; count < width*height; count++) {
68 nextStr = tokens.nextToken();
72 nextVal =
new BigInteger(nextStr);
73 }
catch (Exception e) {
74 nextStr = nextStr.substring (2,nextStr.length());
75 nextVal =
new BigInteger(nextStr,16);
78 if (numComponents == 1) {
79 tmp = nextVal.intValue();
81 retval[byteptr] =(byte) (tmp); byteptr++;
83 if (numComponents == 2) {
84 bigTmp = nextVal.shiftRight(8);
85 tmp = bigTmp.intValue();
87 retval[byteptr] =(byte) (tmp); byteptr++;
89 tmp = nextVal.intValue();
91 retval[byteptr] =(byte) (tmp); byteptr++;
93 if (numComponents == 3) {
94 bigTmp = nextVal.shiftRight(16);
95 tmp = bigTmp.intValue();
97 retval[byteptr] =(byte) (tmp); byteptr++;
99 bigTmp = nextVal.shiftRight(8);
100 tmp = bigTmp.intValue();
102 retval[byteptr] =(byte) (tmp); byteptr++;
104 tmp = nextVal.intValue();
106 retval[byteptr] =(byte) (tmp); byteptr++;
108 if (numComponents == 4) {
109 bigTmp = nextVal.shiftRight(24);
110 tmp = bigTmp.intValue();
112 retval[byteptr] =(byte) (tmp); byteptr++;
114 bigTmp = nextVal.shiftRight(16);
115 tmp = bigTmp.intValue();
117 retval[byteptr] =(byte) (tmp); byteptr++;
119 bigTmp = nextVal.shiftRight(8);
120 tmp = bigTmp.intValue();
122 retval[byteptr] =(byte) (tmp); byteptr++;
124 tmp = nextVal.intValue();
126 retval[byteptr] =(byte) (tmp); byteptr++;