Holidays 12.10. -> 25.10.2020
~ Moved code around in files. SM.Base: + PostProcessing-system + OnInitialization() for Scenes. + Shader-Extensions + Added option to not react while unfocused to the window. + Added Screenshots to the window. + Connected the log system to the SM.OGL-action system. ~ Replaced IShader with abstract MaterialShader. ~ When a log compression folder doesn't exist, it will create one. SM.OGL: + Added support for UniformArrays + Added ShaderPreProcessing + Added Shader Extensions. + Added Debug actions. + SM.OGL settings ~ Framebuffer Size is automaticly changed, when the window and scale is set. SM2D: + Added easy shader drawing.
This commit is contained in:
parent
2c00dbd31a
commit
03b3942732
102 changed files with 2683 additions and 1398 deletions
|
|
@ -1,52 +1,39 @@
|
|||
using System;
|
||||
using System.Configuration.Assemblies;
|
||||
#region usings
|
||||
|
||||
using OpenTK;
|
||||
using SM.Base.Scene;
|
||||
using SM.Base.Types;
|
||||
using SM.Utility;
|
||||
|
||||
#endregion
|
||||
|
||||
namespace SM2D.Types
|
||||
{
|
||||
public class Transformation : GenericTransformation
|
||||
{
|
||||
private float _eulerRotation = 0;
|
||||
private CVector2 _position = new CVector2(0);
|
||||
private CVector2 _scale = new CVector2(50);
|
||||
public CVector2 Position { get; set; } = new CVector2(0);
|
||||
|
||||
public CVector2 Position
|
||||
{
|
||||
get => _position;
|
||||
set => _position = value;
|
||||
}
|
||||
public CVector2 Size { get; set; } = new CVector2(50);
|
||||
|
||||
public CVector2 Size
|
||||
{
|
||||
get => _scale;
|
||||
set => _scale = value;
|
||||
}
|
||||
public float Rotation
|
||||
{
|
||||
get => _eulerRotation;
|
||||
set => _eulerRotation = value;
|
||||
}
|
||||
public float Rotation { get; set; }
|
||||
|
||||
protected override Matrix4 RequestMatrix()
|
||||
{
|
||||
return Matrix4.CreateScale(_scale.X, _scale.Y, 1) *
|
||||
Matrix4.CreateRotationZ(MathHelper.DegreesToRadians(_eulerRotation)) *
|
||||
Matrix4.CreateTranslation(_position.X, _position.Y, 0);
|
||||
return Matrix4.CreateScale(Size.X, Size.Y, 1) *
|
||||
Matrix4.CreateRotationZ(MathHelper.DegreesToRadians(Rotation)) *
|
||||
Matrix4.CreateTranslation(Position.X, Position.Y, 0);
|
||||
}
|
||||
|
||||
public void TurnTo(Vector2 v)
|
||||
{
|
||||
_eulerRotation = RotationUtility.TurnTowards(Position, v);
|
||||
Rotation = RotationUtility.TurnTowards(Position, v);
|
||||
}
|
||||
|
||||
public Vector2 LookAtVector()
|
||||
{
|
||||
if (_modelMatrix.Determinant < 0.0001) return new Vector2(0);
|
||||
|
||||
Vector3 vec = Vector3.TransformNormal(Vector3.UnitX, _modelMatrix);
|
||||
var vec = Vector3.TransformNormal(Vector3.UnitX, _modelMatrix);
|
||||
vec.Normalize();
|
||||
return vec.Xy;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue