public PlaneBoard(RenderContext context, ShaderResourceView resView, Vector2 size) { this.context = context; _resView = resView; Visibility = true; SpriteEffect = CGHelper.CreateEffectFx5FromResource("MMF.Resource.Shader.SpriteShader.fx", context.DeviceManager.Device); VertexInputLayout = new InputLayout(context.DeviceManager.Device, SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(0).Description.Signature, SpriteVertexLayout.InputElements); renderPass = SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(0); float width = size.X / 2, height = size.Y / 2; List <byte> vertexBytes = new List <byte>(); CGHelper.AddListBuffer(new Vector3(-width, height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(0, 0), vertexBytes); CGHelper.AddListBuffer(new Vector3(width, height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(1, 0), vertexBytes); CGHelper.AddListBuffer(new Vector3(-width, -height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(0, 1), vertexBytes); CGHelper.AddListBuffer(new Vector3(width, height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(1, 0), vertexBytes); CGHelper.AddListBuffer(new Vector3(width, -height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(1, 1), vertexBytes); CGHelper.AddListBuffer(new Vector3(-width, -height, 0), vertexBytes); CGHelper.AddListBuffer(new Vector2(0, 1), vertexBytes); using (DataStream ds = new DataStream(vertexBytes.ToArray(), true, true)) { BufferDescription bufDesc = new BufferDescription() { BindFlags = BindFlags.VertexBuffer, SizeInBytes = (int)ds.Length }; VertexBuffer = new SlimDX.Direct3D11.Buffer(context.DeviceManager.Device, ds, bufDesc); } Transformer = new BasicTransformer(); Transformer.Scale = new Vector3(0.2f); }
public TransformController(RenderContext context, TexturedBufferHitChecker hitChecker) { _hitChecker = hitChecker; _type = TransformType.All; TransformRotationSensibility = 1.0f; TransformScalingSensibility = 1.0f; TransformTranslationSensibility = 1.0f; Transformer = new BasicTransformer(); //回転コントロール xRotater = new RotateRingController(context, this, new Vector4(1, 0, 0, 0.7f), new Vector4(1, 1, 0, 0.7f), new SilinderShape.SilinderShapeDescription(0.02f, 30)); yRotater = new RotateRingController(context, this, new Vector4(0, 1, 0, 0.7f), new Vector4(1, 1, 0, 0.7f), new SilinderShape.SilinderShapeDescription(0.02f, 30)); zRotater = new RotateRingController(context, this, new Vector4(0, 0, 1, 0.7f), new Vector4(1, 1, 0, 0.7f), new SilinderShape.SilinderShapeDescription(0.02f, 30)); cross = new CenterCrossLine(context); xRotater.Transformer.Rotation *= Quaternion.RotationAxis(Vector3.UnitZ, (float)(Math.PI / 2)); zRotater.Transformer.Rotation *= Quaternion.RotationAxis(-Vector3.UnitX, -(float)(Math.PI / 2)); xRotater.Transformer.Scale = yRotater.Transformer.Scale = zRotater.Transformer.Scale = new Vector3(1f, 0.1f, 1f) * 20; xRotater.Transformer.Scale *= 0.998f; zRotater.Transformer.Scale *= 0.990f; xRotater.Initialize(); yRotater.Initialize(); zRotater.Initialize(); xRotater.OnRotated += RotationChanged; yRotater.OnRotated += RotationChanged; zRotater.OnRotated += RotationChanged; controllers.Add(xRotater); controllers.Add(yRotater); controllers.Add(zRotater); //平衡移動コントロール xTranslater = new TranslaterConeController(context, this, new Vector4(1, 0, 0, 0.7f), new Vector4(1, 1, 0, 0.7f)); yTranslater = new TranslaterConeController(context, this, new Vector4(0, 1, 0, 0.7f), new Vector4(1, 1, 0, 0.7f)); zTranslater = new TranslaterConeController(context, this, new Vector4(0, 0, 1, 0.7f), new Vector4(1, 1, 0, 0.7f)); xTranslater.Initialize(); yTranslater.Initialize(); zTranslater.Initialize(); xTranslater.Transformer.Scale = yTranslater.Transformer.Scale = zTranslater.Transformer.Scale = new Vector3(2f); xTranslater.Transformer.Rotation *= Quaternion.RotationAxis(Vector3.UnitZ, (float)(Math.PI / 2)); zTranslater.Transformer.Rotation *= Quaternion.RotationAxis(-Vector3.UnitX, -(float)(Math.PI / 2)); MoveTranslater(xTranslater); MoveTranslater(yTranslater); MoveTranslater(zTranslater); xTranslater.OnTranslated += OnTranslated; yTranslater.OnTranslated += OnTranslated; zTranslater.OnTranslated += OnTranslated; controllers.Add(xTranslater); controllers.Add(yTranslater); controllers.Add(zTranslater); scaler = new ScalingCubeController(context, this, new Vector4(0, 1, 1, 0.7f), new Vector4(1, 1, 0, 1)); scaler.Initialize(); scaler.Transformer.Scale = new Vector3(3); scaler.OnScalingChanged += OnScaling; controllers.Add(scaler); hitChecker.CheckTargets.AddRange(controllers); Visibility = true; }
public ShapeBase(RenderContext context, Vector4 color) { _color = color; this.RenderContext = context; Visibility = true; SubsetCount = 1; Transformer = new BasicTransformer(); RenderContext = context; }
private void Initialize() { Transformer = new BasicTransformer(); for (int i = 0; i < modelScene.Meshes.Count; i++) { subsets.Add(new AssimpSubset(context, loader, this, modelScene, i)); } effectManager = MMEEffectManager.LoadFromResource(@"MMF.Resource.Shader.DefaultShader.fx", this, context, loader); layout = new InputLayout(context.DeviceManager.Device, effectManager.EffectFile.GetTechniqueByIndex(1).GetPassByIndex(0).Description.Signature, BasicInputLayout.VertexElements); }
/// <summary> /// Initializes a new instance of the <see cref="PMXModel"/> class. /// </summary> /// <param name="modeldata">The modeldata.</param> /// <param name="subResourceLoader">The sub resource loader.</param> /// <param name="filename">The filename.</param> public PMXModel(ModelData modeldata, ISubresourceLoader subResourceLoader, string filename) { Model = modeldata; SubresourceLoader = subResourceLoader; Transformer = new BasicTransformer(); SubsetManager = new PMXSubsetManager(this, modeldata); //PhongConstantBuffer = new PhongShadingConstantBufferManager(); ToonManager = new PMXToonTextureManager(); SelfShadowColor = new Vector4(0, 0, 0, 1); GroundShadowColor = new Vector4(0, 0, 0, 1); FileName = filename; Visibility = true; }
/// <summary> /// コンストラクタ /// </summary> public TargetCross() { Transformer = new BasicTransformer(); }
/// <summary> /// コンストラクタ /// </summary> public BasicGrid() { Transformer = new BasicTransformer(); Visibility = true; FileName = "@MMF.CG.Model.Grid.BasicGrid@"; }