mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-26 18:35:32 +00:00
88 lines
2.1 KiB
C#
88 lines
2.1 KiB
C#
|
#region --- License ---
|
|||
|
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
|
|||
|
* See license.txt for license info
|
|||
|
*/
|
|||
|
#endregion
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
using OpenTK.Math;
|
|||
|
|
|||
|
namespace Examples.Shapes
|
|||
|
{
|
|||
|
public abstract class Shape
|
|||
|
{
|
|||
|
private Vector3[] vertices, normals;
|
|||
|
private Vector2[] texcoords;
|
|||
|
private int[] indices;
|
|||
|
unsafe int* index_ptr;
|
|||
|
unsafe float* vertex_ptr, normal_ptr, texcoord_ptr;
|
|||
|
|
|||
|
public Vector3[] Vertices
|
|||
|
{
|
|||
|
get { return vertices; }
|
|||
|
protected set
|
|||
|
{
|
|||
|
unsafe
|
|||
|
{
|
|||
|
vertices = value;
|
|||
|
//fixed (float* ptr = (float*)vertices[0])
|
|||
|
{
|
|||
|
vertex_ptr = (float*)vertices[0];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public Vector3[] Normals
|
|||
|
{
|
|||
|
get { return normals; }
|
|||
|
protected set
|
|||
|
{
|
|||
|
unsafe
|
|||
|
{
|
|||
|
normals = value;
|
|||
|
//fixed (float* ptr = (float*)normals[0])
|
|||
|
{
|
|||
|
normal_ptr = (float*)normals[0];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public Vector2[] Texcoords
|
|||
|
{
|
|||
|
get { return texcoords; }
|
|||
|
protected set
|
|||
|
{
|
|||
|
unsafe
|
|||
|
{
|
|||
|
texcoords = value;
|
|||
|
//fixed (float* ptr = (float*)texcoords[0])
|
|||
|
{
|
|||
|
texcoord_ptr = (float*)texcoords[0];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public int[] Indices
|
|||
|
{
|
|||
|
get { return indices; }
|
|||
|
protected set
|
|||
|
{
|
|||
|
unsafe
|
|||
|
{
|
|||
|
indices = value;
|
|||
|
fixed (int* ptr = indices)
|
|||
|
{
|
|||
|
index_ptr = ptr;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|