public Vector3 normal; // Vector orthogonal to plane (Nx,Ny,Nz) #endregion Fields #region Methods // Distance from (0,0,0) to the plane public void Read(System.IO.BinaryReader source) { normal.X = source.ReadSingle(); normal.Y = source.ReadSingle(); normal.Z = source.ReadSingle(); dist = source.ReadSingle(); }
public MovementFall(System.IO.BinaryReader reader) { sinAngle = reader.ReadSingle(); cosAngle = reader.ReadSingle(); xyspeed = reader.ReadSingle(); velocity = reader.ReadSingle(); }
public override void Deserialize(System.IO.BinaryReader reader) { base.Deserialize(reader); Type = (RoutingType)reader.ReadInt32(); AddVector = new Vector2(reader.ReadSingle(), reader.ReadSingle()); }
public Sprite(System.IO.BinaryReader r) { // 2 Load texture //ushort width = r.ReadUInt16(); //ushort height = r.ReadUInt16(); //byte[] colorData = r.ReadBytes(width * height * 4); //texture = new Texture2D(Game1.graphics.GraphicsDevice, width, height); //texture.SetData(colorData); // 3 Load position position.X = r.ReadSingle(); position.Y = r.ReadSingle(); // 4 Load rotation rotation = r.ReadSingle(); // 5 Load textureKey byte length = r.ReadByte(); textureKey = new string(r.ReadChars(length)); baseTexture = Repainter.GetTextureCopy(Library.textures[textureKey]); texture = baseTexture; // 6 Load layer layer = r.ReadSingle(); // Set other data baseOrigin = new Vector2(baseTexture.Width / 2, baseTexture.Height / 2); origin = baseOrigin; needsRedraw = true; identifier = SaveFileManager.SaveTypeIdentifier.Sprite; color = Color.White; IsDead = false; Console.WriteLine(ToString() + " loaded at position: " + position.ToString()); }
public override void Deserialize(System.IO.BinaryReader reader) { base.Deserialize(reader); AddVelocity = new Vector2(reader.ReadSingle(), reader.ReadSingle()); Mode = (BouncerMode)reader.ReadInt32(); }
public void Load(System.IO.BinaryReader br) { br.ReadByte();//version Bitrate = br.ReadSingle(); var count = br.ReadInt32(); Values = new float[count]; for (int i = 0; i < count; i++) Values[i] = br.ReadSingle(); }
public override void Deserialize(System.IO.BinaryReader reader) { Position.Deserialize(reader); fX = reader.ReadSingle(); fY = reader.ReadSingle(); fZ = reader.ReadSingle(); rotZ = reader.ReadSingle(); rotX = reader.ReadSingle(); }
/// <summary> /// Loads the specified br. /// </summary> /// <param name="br">The br.</param> public void Load(System.IO.BinaryReader br) { BitRate = br.ReadSingle(); var count = br.ReadInt32(); Values = new float[count]; for (int i = 0; i < count; i++) { Values[i] = br.ReadSingle(); } }
public int width, height; // source image #endregion Fields #region Methods public void Read(System.IO.BinaryReader source) { reflectivity.X = source.ReadSingle(); reflectivity.Y = source.ReadSingle(); reflectivity.Z = source.ReadSingle(); nameStringTableID = source.ReadInt32(); width = source.ReadInt32(); height = source.ReadInt32(); view_width = source.ReadInt32(); view_height = source.ReadInt32(); }
public Vector3 origin; // origin of model, usually (0,0,0) #endregion Fields #region Methods public void Read(System.IO.BinaryReader source) { bound.Read(source); origin.X = source.ReadSingle(); origin.Y = source.ReadSingle(); origin.Z = source.ReadSingle(); node_id0 = source.ReadUInt32(); node_id1 = source.ReadUInt32(); node_id2 = source.ReadUInt32(); node_id3 = source.ReadUInt32(); numleafs = source.ReadUInt32(); face_id = source.ReadUInt32(); face_num = source.ReadUInt32(); }
public override void Deserialize(System.IO.BinaryReader reader) { base.Deserialize(reader); Speed = reader.ReadSingle(); FirstMarker = reader.ReadString(); }
protected internal override void Deserialize(System.IO.BinaryReader br) { Subtype = br.ReadByte(); CarId = br.ReadByte(); if (Subtype == (byte)ACSProtocol.MessageType.ACSP_CE_COLLISION_WITH_CAR) OtherCarId = br.ReadByte(); RelativeVelocity = br.ReadSingle(); WorldPosition = readVector3f(br); RelativePosition = readVector3f(br); }
public Vector3 vectorT; // T vector, vertical in texture space #endregion Fields #region Methods public void Read(System.IO.BinaryReader source) { vectorS.X = source.ReadSingle(); vectorS.Y = source.ReadSingle(); vectorS.Z = source.ReadSingle(); distS = source.ReadSingle(); vectorT.X = source.ReadSingle(); vectorT.Y = source.ReadSingle(); vectorT.Z = source.ReadSingle(); distT = source.ReadSingle(); texture_id = source.ReadUInt32(); animated = source.ReadUInt32(); }
public Vector2 vTextureCoord; // (u, v) texture coordinate #endregion Fields #region Methods public void Read(System.IO.BinaryReader source) { vPosition.X = source.ReadSingle(); vPosition.Y = source.ReadSingle(); vPosition.Z = source.ReadSingle(); vTextureCoord.X = source.ReadSingle(); vTextureCoord.Y = source.ReadSingle(); vLightmapCoord.X = source.ReadSingle(); vLightmapCoord.Y = source.ReadSingle(); if (vLightmapCoord.X < 0) vLightmapCoord.X = 0; if (vLightmapCoord.X > 1) vLightmapCoord.X = 1; if (vLightmapCoord.Y < 0) vLightmapCoord.Y = 0; if (vLightmapCoord.Y > 1) vLightmapCoord.Y = 1; vNormal.X = source.ReadSingle(); vNormal.Y = source.ReadSingle(); vNormal.Z = source.ReadSingle(); if (vNormal.LengthSquared < 0.9f || vNormal.LengthSquared > 1.1f) throw new ApplicationException("Probably wrong format of vertex"); color = source.ReadBytes(4); }
public override void Deserialize(System.IO.BinaryReader reader) { base.Deserialize(reader); ParticleTemplate = new Particle(); ParticleTemplate.Template = true; ParticleTemplate.Color = new Color(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte()); ParticleTemplate.Texture = Texture2D.FromStream(Engine.graphicsDevice, System.IO.File.OpenRead(reader.ReadString())); ParticleTemplate.Velocity = new Vector2(reader.ReadSingle(), reader.ReadSingle()); ParticleTemplate.FadeColor = new Color(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte()); ParticleTemplate.FadeStartTime = reader.ReadInt32(); ParticleTemplate.FadeTime = reader.ReadInt32(); ParticleTemplate.Rotation = reader.ReadInt32(); ParticleTemplate.RotationSpeed = reader.ReadInt32(); InitialVelocity = new Vector2(reader.ReadSingle(), reader.ReadSingle()); InitialRandom = new Vector2(reader.ReadSingle(), reader.ReadSingle()); Time = reader.ReadInt32(); Amount = reader.ReadInt32(); StartEnabled = reader.ReadBoolean(); }
/// <summary> /// Creates a scene node from a stream /// </summary> /// <param name="_Owner"></param> /// <param name="_Parent"></param> /// <param name="_Reader"></param> internal Node( Scene _Owner, Node _Parent, System.IO.BinaryReader _Reader ) { m_Owner = _Owner; // m_NodeType = _Reader.ReadInt32(); // Don't read back the node type as it has already been consumed by the parent m_ID = _Reader.ReadInt32(); m_Owner.RegisterNodeID( this ); m_Name = _Reader.ReadString(); m_Parent = _Parent; if ( _Parent != null ) m_Parent.AddChild( this ); // Read the matrix m_Local2Parent.m[0,0] = _Reader.ReadSingle(); m_Local2Parent.m[0,1] = _Reader.ReadSingle(); m_Local2Parent.m[0,2] = _Reader.ReadSingle(); m_Local2Parent.m[0,3] = _Reader.ReadSingle(); m_Local2Parent.m[1,0] = _Reader.ReadSingle(); m_Local2Parent.m[1,1] = _Reader.ReadSingle(); m_Local2Parent.m[1,2] = _Reader.ReadSingle(); m_Local2Parent.m[1,3] = _Reader.ReadSingle(); m_Local2Parent.m[2,0] = _Reader.ReadSingle(); m_Local2Parent.m[2,1] = _Reader.ReadSingle(); m_Local2Parent.m[2,2] = _Reader.ReadSingle(); m_Local2Parent.m[2,3] = _Reader.ReadSingle(); m_Local2Parent.m[3,0] = _Reader.ReadSingle(); m_Local2Parent.m[3,1] = _Reader.ReadSingle(); m_Local2Parent.m[3,2] = _Reader.ReadSingle(); m_Local2Parent.m[3,3] = _Reader.ReadSingle(); // Read specific data LoadSpecific( _Reader ); // Read children int ChildrenCount = _Reader.ReadInt32(); for ( int ChildIndex=0; ChildIndex < ChildrenCount; ChildIndex++ ) { NODE_TYPE ChildType = (NODE_TYPE) _Reader.ReadByte(); switch ( ChildType ) { case NODE_TYPE.NODE: new Node( _Owner, this, _Reader ); break; case NODE_TYPE.MESH: new Mesh( _Owner, this, _Reader ); break; case NODE_TYPE.LIGHT: new Light( _Owner, this, _Reader ); break; case NODE_TYPE.CAMERA: new Camera( _Owner, this, _Reader ); break; } } }
public void Read(System.IO.BinaryReader source) { vectorS.X = source.ReadSingle(); vectorS.Y = source.ReadSingle(); vectorS.Z = source.ReadSingle(); distS = source.ReadSingle(); vectorT.X = source.ReadSingle(); vectorT.Y = source.ReadSingle(); vectorT.Z = source.ReadSingle(); distT = source.ReadSingle(); flags = source.ReadUInt32(); value = source.ReadUInt32(); name = Encoding.ASCII.GetString(source.ReadBytes(32)).Trim(new char[] { ' ', '\0' }); next_texinfo = source.ReadUInt32(); }
public void Read(System.IO.BinaryReader source) { min.X = source.ReadSingle(); min.Y = source.ReadSingle(); min.Z = source.ReadSingle(); max.X = source.ReadSingle(); max.Y = source.ReadSingle(); max.Z = source.ReadSingle(); }
public static FullAnimation FullAnimationFromStream(System.IO.BinaryReader stream) { FullAnimation result = new FullAnimation(); result.BonesCount = stream.ReadInt32(); result.length = stream.ReadInt32(); DecomposedMatrix[][] res; int length = stream.ReadInt32(); res = new DecomposedMatrix[length][]; for (int i = 0; i < length; i++) { int length2 = stream.ReadInt32(); res[i] = new DecomposedMatrix[length2]; for (int j = 0; j < length2; j++) { res[i][j] = new DecomposedMatrix(); float W = stream.ReadSingle(); float X = stream.ReadSingle(); float Y = stream.ReadSingle(); float Z = stream.ReadSingle(); res[i][j].rotation = new Quaternion(X, Y, Z, W); res[i][j].translation = stream.ReadVector3(); res[i][j].scale = stream.ReadVector3(); } } result.matrices = res; result.animlength = result.matrices.Length; return result; }
public override void Deserialize(System.IO.BinaryReader br) { arraySize = br.ReadInt32(); array = new float[arraySize]; for (int i = 0; i < arraySize; i++) { array[i] = br.ReadSingle(); } }
private void Mod_LoadSubmodels(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br) { List<SDModel> DModel = new List<SDModel>(); List<CModel.SMModel> MModel = new List<CModel.SMModel>(); br.BaseStream.Seek(header.lumps[LUMP_MODELS].fileofs, System.IO.SeekOrigin.Begin); while (br.BaseStream.Position < (header.lumps[LUMP_MODELS].fileofs + header.lumps[LUMP_MODELS].filelen)) { SDModel _DModel; _DModel.mins = new float[3]; _DModel.mins[0] = br.ReadSingle(); _DModel.mins[1] = br.ReadSingle(); _DModel.mins[2] = br.ReadSingle(); _DModel.maxs = new float[3]; _DModel.maxs[0] = br.ReadSingle(); _DModel.maxs[1] = br.ReadSingle(); _DModel.maxs[2] = br.ReadSingle(); _DModel.origin = new float[3]; _DModel.origin[0] = br.ReadSingle(); _DModel.origin[1] = br.ReadSingle(); _DModel.origin[2] = br.ReadSingle(); _DModel.headnode = br.ReadInt32(); _DModel.firstface = br.ReadInt32(); _DModel.numfaces = br.ReadInt32(); DModel.Add(_DModel); } for (int i = 0; i < DModel.Count; i++) { CModel.SMModel _MModel; _MModel.bounds.Min.X = DModel[i].mins[0] - 1; _MModel.bounds.Min.Y = DModel[i].mins[1] - 1; _MModel.bounds.Min.Z = DModel[i].mins[2] - 1; _MModel.bounds.Max.X = DModel[i].maxs[0] + 1; _MModel.bounds.Max.Y = DModel[i].maxs[1] + 1; _MModel.bounds.Max.Z = DModel[i].maxs[2] + 1; _MModel.origin.X = DModel[i].origin[0]; _MModel.origin.Y = DModel[i].origin[1]; _MModel.origin.Z = DModel[i].origin[2]; _MModel.radius = RadiusFromBounds(_MModel.bounds); _MModel.headnode = DModel[i].headnode; _MModel.firstface = DModel[i].firstface; _MModel.numfaces = DModel[i].numfaces; _MModel.visleafs = 0; MModel.Add(_MModel); } _SModel.numsubmodels = MModel.Count; _SModel.submodels = MModel.ToArray(); }
private void Mod_LoadPlanes(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br) { int bits; float[] normal = new float[3]; List<CShared.SCPlane> CPlane = new List<CShared.SCPlane>(); br.BaseStream.Seek(header.lumps[LUMP_PLANES].fileofs, System.IO.SeekOrigin.Begin); while (br.BaseStream.Position < (header.lumps[LUMP_PLANES].fileofs + header.lumps[LUMP_PLANES].filelen)) { CShared.SCPlane _CPlane; normal[0] = 0.0f; normal[1] = 0.0f; normal[2] = 0.0f; bits = 0; for (int j = 0; j < 3; j++) { normal[j] = br.ReadSingle(); if (normal[j] < 0) bits |= 1 << j; } _CPlane.normal.X = normal[0]; _CPlane.normal.Y = normal[1]; _CPlane.normal.Z = normal[2]; _CPlane.dist = br.ReadSingle(); _CPlane.type = (byte)br.ReadInt32(); _CPlane.signbits = (byte)bits; _CPlane.pad = new byte[2]; CPlane.Add(_CPlane); } _SModel.planes = CPlane.ToArray(); _SModel.numplanes = _SModel.planes.Length; }
private void Mod_LoadTexinfo(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br) { List<CModel.SMTexInfo> MTexInfo = new List<CModel.SMTexInfo>(); br.BaseStream.Seek(header.lumps[LUMP_TEXINFO].fileofs, System.IO.SeekOrigin.Begin); while (br.BaseStream.Position < (header.lumps[LUMP_TEXINFO].fileofs + header.lumps[LUMP_TEXINFO].filelen)) { CModel.SMTexInfo _MTexInfo; string texture; int next; _MTexInfo.vecs = new Microsoft.Xna.Framework.Vector4[2]; for (int i = 0; i < 2; i++) { _MTexInfo.vecs[i].X = br.ReadSingle(); _MTexInfo.vecs[i].Y = br.ReadSingle(); _MTexInfo.vecs[i].Z = br.ReadSingle(); _MTexInfo.vecs[i].W = br.ReadSingle(); } _MTexInfo.flags = (ESurface)br.ReadInt32(); br.ReadInt32(); // value texture = CShared.Com_ToString(br.ReadChars(32)); texture = "textures/" + texture; next = br.ReadInt32(); if (next > 0) _MTexInfo.next = next; else _MTexInfo.next = 0; _MTexInfo.image = CProgram.gQ2Game.gCMain.gCImage.FindImage(texture, out _MTexInfo.Width, out _MTexInfo.Height, CImage.EImageType.IT_WALL); // TODO //out->image = GL_FindImage (name, it_wall); //if (!out->image) //{ // ri.Con_Printf (PRINT_ALL, "Couldn't load %s\n", name); // out->image = r_notexture; //} _MTexInfo.numframes = 0; MTexInfo.Add(_MTexInfo); } // count animation frames for (int i = 0; i < MTexInfo.Count; i++) { CModel.SMTexInfo _MTexInfo = MTexInfo[i]; _MTexInfo.numframes = 1; for (int step = _MTexInfo.next; step != 0 && step != i; step = MTexInfo[step].next) { _MTexInfo.numframes++; } MTexInfo[i] = _MTexInfo; } _SModel.numtexinfo = MTexInfo.Count; _SModel.texinfo = MTexInfo.ToArray(); }
public void Load( System.IO.BinaryReader _Reader ) { m_Usage = (USAGE) _Reader.ReadInt32(); m_FieldType = (FIELD_TYPE) _Reader.ReadInt32(); m_Index = _Reader.ReadInt32(); int ArraySize = _Reader.ReadInt32(); switch ( m_FieldType ) { case FIELD_TYPE.FLOAT: { float[] T = new float[ArraySize]; m_Content = T; for ( int i=0; i < ArraySize; i++ ) { T[i] = _Reader.ReadSingle(); } } break; case FIELD_TYPE.FLOAT2: { Vector2D[] T = new Vector2D[ArraySize]; m_Content = T; for ( int i=0; i < ArraySize; i++ ) { T[i].X = _Reader.ReadSingle(); T[i].Y = _Reader.ReadSingle(); } } break; case FIELD_TYPE.FLOAT3: { Vector[] T = new Vector[ArraySize]; m_Content = T; for ( int i=0; i < ArraySize; i++ ) { T[i].X = _Reader.ReadSingle(); T[i].Y = _Reader.ReadSingle(); T[i].Z = _Reader.ReadSingle(); } } break; case FIELD_TYPE.FLOAT4: { Vector4D[] T = new Vector4D[ArraySize]; m_Content = T; for ( int i=0; i < ArraySize; i++ ) { T[i].X = _Reader.ReadSingle(); T[i].Y = _Reader.ReadSingle(); T[i].Z = _Reader.ReadSingle(); T[i].W = _Reader.ReadSingle(); } } break; case FIELD_TYPE.UINT32: { UInt32[] T = new UInt32[ArraySize]; m_Content = T; for ( int i=0; i < ArraySize; i++ ) { T[i] = _Reader.ReadUInt32(); } } break; } }
protected override void LoadSpecific( System.IO.BinaryReader _Reader ) { // Read bounding-box m_BoundingBox.m_Min.X = _Reader.ReadSingle(); m_BoundingBox.m_Min.Y = _Reader.ReadSingle(); m_BoundingBox.m_Min.Z = _Reader.ReadSingle(); m_BoundingBox.m_Max.X = _Reader.ReadSingle(); m_BoundingBox.m_Max.Y = _Reader.ReadSingle(); m_BoundingBox.m_Max.Z = _Reader.ReadSingle(); // Read bounding-sphere m_BoundingSphere.Center.X = _Reader.ReadSingle(); m_BoundingSphere.Center.Y = _Reader.ReadSingle(); m_BoundingSphere.Center.Z = _Reader.ReadSingle(); m_BoundingSphere.Radius = _Reader.ReadSingle(); // Write shadow states m_bCastShadow = _Reader.ReadBoolean(); m_bReceiveShadow = _Reader.ReadBoolean(); // Read primitives m_Primitives.Clear(); int PrimitivesCount = _Reader.ReadInt32(); for ( int PrimitiveIndex=0; PrimitiveIndex < PrimitivesCount; PrimitiveIndex++ ) { Primitive P = new Primitive( this, _Reader ); m_Primitives.Add( P ); } }
public Baine(System.IO.BinaryReader r) : base(r) { // Get Baine-data hasDoubleJumped = r.ReadBoolean(); isOnLadder = r.ReadBoolean(); health = r.ReadSingle(); stance = (Stance)r.ReadByte(); isHidden = r.ReadBoolean(); LivesLeft = r.ReadInt32(); // Other idle = Library.textures["BaineIdle"]; idleOrigin = new Vector2(idle.Width / 2, idle.Height / 2); standing = Library.textures["BaineStanding"]; standingOrigin = new Vector2(standing.Width / 2, standing.Height / 2); crouching = Library.textures["BaineCrouching"]; crouchOrigin = new Vector2(crouching.Width / 2, crouching.Height / 2); jumping = Library.textures["BaineJumping"]; jumpingOrigin = new Vector2(jumping.Width / 2, jumping.Height / 2); climbing = Library.textures["BaineClimbing"]; climbingOrigin = new Vector2(climbing.Width / 2, climbing.Height / 2); identifier = SaveFileManager.SaveTypeIdentifier.Baine; this.layer = Level.BaineLayer; }
public GATCell(System.IO.BinaryReader br) { try { m_TopLeft = br.ReadSingle(); m_TopRight = br.ReadSingle(); m_BottomLeft = br.ReadSingle(); m_BottomRight = br.ReadSingle(); m_Type = br.ReadInt32(); } catch (Exception ex) { } }
public Vector3 vNormal; // The face normal. #endregion Fields #region Methods public void Read(System.IO.BinaryReader source) { texinfo_id = source.ReadInt32(); effect = source.ReadInt32(); type = source.ReadInt32(); vertexIndex = source.ReadInt32(); numOfVerts = source.ReadInt32(); meshVertIndex = source.ReadInt32(); numMeshVerts = source.ReadInt32(); lightmapID = source.ReadInt32(); lMapCornerX = source.ReadInt32(); lMapCornerY = source.ReadInt32(); lMapSizeX = source.ReadInt32(); lMapSizeY = source.ReadInt32(); lMapPos.X = source.ReadSingle(); lMapPos.Y = source.ReadSingle(); lMapPos.Z = source.ReadSingle(); lMapBitsetsS.X = source.ReadSingle(); lMapBitsetsS.Y = source.ReadSingle(); lMapBitsetsS.Z = source.ReadSingle(); lMapBitsetsT.X = source.ReadSingle(); lMapBitsetsT.Y = source.ReadSingle(); lMapBitsetsT.Z = source.ReadSingle(); vNormal.X = source.ReadSingle(); vNormal.Y = source.ReadSingle(); vNormal.Z = source.ReadSingle(); sizeX = source.ReadInt32(); sizeY = source.ReadInt32(); }
public static JSONNode Deserialize (System.IO.BinaryReader aReader) { JSONBinaryTag type = (JSONBinaryTag)aReader.ReadByte (); switch (type) { case JSONBinaryTag.Array: { int count = aReader.ReadInt32 (); JSONArray tmp = new JSONArray (); for (int i = 0; i < count; i++) tmp.Add (Deserialize (aReader)); return tmp; } case JSONBinaryTag.Class: { int count = aReader.ReadInt32 (); JSONClass tmp = new JSONClass (); for (int i = 0; i < count; i++) { string key = aReader.ReadString (); var val = Deserialize (aReader); tmp.Add (key, val); } return tmp; } case JSONBinaryTag.Value: { return new JSONData (aReader.ReadString ()); } case JSONBinaryTag.IntValue: { return new JSONData (aReader.ReadInt32 ()); } case JSONBinaryTag.DoubleValue: { return new JSONData (aReader.ReadDouble ()); } case JSONBinaryTag.BoolValue: { return new JSONData (aReader.ReadBoolean ()); } case JSONBinaryTag.FloatValue: { return new JSONData (aReader.ReadSingle ()); } default: { throw new Exception ("Error deserializing JSON. Unknown tag: " + type); } } }
private void Mod_LoadVertexes(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br) { List<CModel.SMVertex> MVertex = new List<CModel.SMVertex>(); br.BaseStream.Seek(header.lumps[LUMP_VERTEXES].fileofs, System.IO.SeekOrigin.Begin); while (br.BaseStream.Position < (header.lumps[LUMP_VERTEXES].fileofs + header.lumps[LUMP_VERTEXES].filelen)) { CModel.SMVertex _MVertex; _MVertex.Position.X = br.ReadSingle(); _MVertex.Position.Y = br.ReadSingle(); _MVertex.Position.Z = br.ReadSingle(); MVertex.Add(_MVertex); } _SModel.numvertexes = MVertex.Count; _SModel.vertexes = MVertex.ToArray(); }