1 /*
2  * $RCSfile: GeometryStripArrayState.java,v $
3  *
4  * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * - Redistribution of source code must retain the above copyright
11  *   notice, this list of conditions and the following disclaimer.
12  *
13  * - Redistribution in binary form must reproduce the above copyright
14  *   notice, this list of conditions and the following disclaimer in
15  *   the documentation and/or other materials provided with the
16  *   distribution.
17  *
18  * Neither the name of Sun Microsystems, Inc. or the names of
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * This software is provided "AS IS," without a warranty of any
23  * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
24  * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
25  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
26  * EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL
27  * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
28  * USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
29  * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR
30  * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
31  * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
32  * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
33  * INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGES.
35  *
36  * You acknowledge that this software is not designed, licensed or
37  * intended for use in the design, construction, operation or
38  * maintenance of any nuclear facility.
39  *
40  * $Revision: 1.4 $
41  * $Date: 2007/02/09 17:20:34 $
42  * $State: Exp $
43  */
44 
45 package com.sun.j3d.utils.scenegraph.io.state.javax.media.j3d;
46 
47 import java.io.*;
48 import javax.media.j3d.GeometryStripArray;
49 import javax.media.j3d.SceneGraphObject;
50 import javax.vecmath.*;
51 import com.sun.j3d.utils.scenegraph.io.retained.Controller;
52 import com.sun.j3d.utils.scenegraph.io.retained.SymbolTableData;
53 
54 public abstract class GeometryStripArrayState extends GeometryArrayState {
55 
56     protected int[] stripVertexCounts;
57 
GeometryStripArrayState( SymbolTableData symbol, Controller control )58     public GeometryStripArrayState( SymbolTableData symbol, Controller control ) {
59 	super( symbol, control );
60     }
61 
writeConstructorParams( DataOutput out )62     protected void writeConstructorParams( DataOutput out ) throws
63 								IOException {
64         super.writeConstructorParams( out );
65 
66 	stripVertexCounts = new int[((GeometryStripArray)node).getNumStrips()];
67         ((GeometryStripArray)node).getStripVertexCounts( stripVertexCounts );
68 
69 	out.writeInt(stripVertexCounts.length);
70         for(int i=0; i<stripVertexCounts.length; i++)
71             out.writeInt( stripVertexCounts[i] );
72     }
73 
readConstructorParams( DataInput in )74     protected void readConstructorParams( DataInput in ) throws
75 							IOException {
76        super.readConstructorParams( in );
77        stripVertexCounts = new int[in.readInt()];
78        for(int i=0; i<stripVertexCounts.length; i++)
79            stripVertexCounts[i] = in.readInt();
80     }
81 }
82