public IActionResult ForControl() { DPModel date = new DPModel(); date.Date = date.DateTime = date.Time = DateTime.Now; return(View(date)); }
public IActionResult ForControl(DPModel dpmodel) { ViewData["Date"] = dpmodel.Date; ViewData["Time"] = dpmodel.Time; ViewData["DateTime"] = dpmodel.DateTime; return(View()); }
private static void DrawMesh(Effect effect, DPModel model, GraphicsDevice graphicsDevice) { graphicsDevice.SetVertexBuffer(model.VertexBuffer); graphicsDevice.Indices = model.IndexBuffer; foreach (var pass in effect.CurrentTechnique.Passes) { pass.Apply(); //TODO: Maybe use vertex-offsets to loading a model, so a smaller amount of vertex-buffers have to be used. graphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, model.VertexBuffer.VertexCount, 0, model.PrimitiveCount); } }
public static DPModel ConvertDProjectModelFormatToModel(string pathToFile, GraphicsDevice graphicsDevice) { var fileStream = new FileStream(Game1.RootDirectory + pathToFile + ".dpm", FileMode.Open); var binaryReader = new BinaryReader(fileStream); var objectName = binaryReader.ReadString(); var vertexCount = binaryReader.ReadUInt32(); var indexCount = binaryReader.ReadUInt32(); var indexIsThirtyTwoBits = binaryReader.ReadBoolean(); var vertexDeclarationMask = binaryReader.ReadByte(); var useUvCoords = (vertexDeclarationMask & (1 << 0)) != 0; var useVertexColor = (vertexDeclarationMask & (1 << 1)) != 0; var useSpecularPower = (vertexDeclarationMask & (1 << 2)) != 0; var useSpecularIntensity = (vertexDeclarationMask & (1 << 3)) != 0; var useEmission = (vertexDeclarationMask & (1 << 4)) != 0; var pointList = new Vector3[vertexCount]; var vertices = new VertexPositionNormalTextureColorLight[vertexCount]; for (var i = 0; i < vertexCount; i++) { var vertex = new VertexPositionNormalTextureColorLight(); var x = binaryReader.ReadSingle(); var y = binaryReader.ReadSingle(); var z = binaryReader.ReadSingle(); vertex.Position = new Vector3(x, y, z); pointList[i] = vertex.Position; var nx = binaryReader.ReadSingle(); var ny = binaryReader.ReadSingle(); var nz = binaryReader.ReadSingle(); vertex.Normal = new Vector3(nx, ny, nz); vertex.TextureCoordinate = Vector2.Zero; vertex.Color = Color.Black; vertex.LightingInfo = Color.Black; if (useUvCoords) { var uv_u = binaryReader.ReadSingle(); var uv_v = binaryReader.ReadSingle(); vertex.TextureCoordinate = new Vector2(uv_u, uv_v); } if (useVertexColor) { var red = binaryReader.ReadByte(); var green = binaryReader.ReadByte(); var blue = binaryReader.ReadByte(); vertex.Color = new Color(red, green, blue); } byte specular_power, specular_intensity, emission; specular_power = specular_intensity = emission = 0; if (useSpecularPower) { specular_power = binaryReader.ReadByte(); } if (useSpecularIntensity) { specular_intensity = binaryReader.ReadByte(); } if (useEmission) { emission = binaryReader.ReadByte(); } vertex.LightingInfo = new Color(specular_power, specular_intensity, emission); vertices[i] = vertex; } var vertexBuffer = new VertexBuffer(graphicsDevice, typeof(VertexPositionNormalTextureColorLight), (int)vertexCount, BufferUsage.WriteOnly); vertexBuffer.SetData(vertices); IndexBuffer indexBuffer; if (indexIsThirtyTwoBits) { var indicies = new uint[indexCount]; for (var i = 0; i < indexCount; i++) { indicies[i] = binaryReader.ReadUInt32(); } indexBuffer = new IndexBuffer(graphicsDevice, IndexElementSize.ThirtyTwoBits, (int)indexCount, BufferUsage.WriteOnly); indexBuffer.SetData(indicies); } else { var indicies = new ushort[indexCount]; for (var i = 0; i < indexCount; i++) { indicies[i] = binaryReader.ReadUInt16(); } indexBuffer = new IndexBuffer(graphicsDevice, IndexElementSize.SixteenBits, (int)indexCount, BufferUsage.WriteOnly); indexBuffer.SetData(indicies); } binaryReader.Close(); fileStream.Close(); var model = new DPModel(objectName, vertexBuffer, indexBuffer, (int)indexCount / 3, BoundingBox.CreateFromPoints(pointList)); return(model); }