00001 00009 using System; 00010 using System.Collections.Generic; 00011 using System.Text; 00012 00013 namespace Objects3D 00014 { 00022 public class ServerCube 00023 { 00024 protected Cube FCube = null; 00025 protected Coordinate FRotSpeed = null; 00026 00027 public ServerCube() 00028 { 00029 FCube = new Cube(); 00030 FRotSpeed = new Coordinate(0.0F, 0.0F, 0.0F); 00031 } 00032 00040 public static int ByteSize 00041 { 00042 get 00043 { 00044 return ((Cube.ByteSize * 1) + (Coordinate.ByteSize * 1)); 00045 } 00046 } 00047 00057 public byte[] GetBytes() 00058 { 00059 byte[] LResult = new byte[ByteSize]; 00060 00061 byte[] LCube = FCube.GetBytes(); 00062 byte[] LRotSpeed = FRotSpeed.GetBytes(); 00063 00064 LCube.CopyTo(LResult, (Cube.ByteSize * 0)); 00065 LRotSpeed.CopyTo(LResult, (Cube.ByteSize * 1)); 00066 00067 return LResult; 00068 } 00069 00082 public bool SetBytes(byte[] ABytes, int AOffset) 00083 { 00084 bool LResult = false; 00085 00086 if (((ABytes.Length - AOffset) >= ByteSize) && (AOffset >= 0)) 00087 { 00088 FCube.SetBytes(ABytes, (Cube.ByteSize * 0) + AOffset); 00089 FRotSpeed.SetBytes(ABytes, (Cube.ByteSize * 1) + AOffset); 00090 00091 LResult = true; 00092 } 00093 00094 return LResult; 00095 } 00096 00104 public Cube Cube 00105 { 00106 get 00107 { 00108 return FCube; 00109 } 00110 00111 set 00112 { 00113 FCube.Assign(value); 00114 } 00115 } 00116 00124 public Coordinate RotSpeed 00125 { 00126 get 00127 { 00128 return FRotSpeed; 00129 } 00130 00131 set 00132 { 00133 FRotSpeed.Assign(value); 00134 } 00135 } 00136 00148 public bool Assign(ServerCube AServerCube) 00149 { 00150 bool LResult = false; 00151 00152 if (AServerCube != null) 00153 { 00154 LResult = FCube.Assign(AServerCube.Cube); 00155 LResult = (LResult && FRotSpeed.Assign(AServerCube.RotSpeed)); 00156 } 00157 00158 return LResult; 00159 } 00160 } 00161 }
1.5.6