Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 public ShapeBase(RenderContext context, Vector4 color)
 {
     _color             = color;
     this.RenderContext = context;
     Visibility         = true;
     SubsetCount        = 1;
     Transformer        = new BasicTransformer();
     RenderContext      = context;
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 /// <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;
 }
Ejemplo n.º 6
0
 /// <summary>
 ///     コンストラクタ
 /// </summary>
 public TargetCross()
 {
     Transformer = new BasicTransformer();
 }
Ejemplo n.º 7
0
 /// <summary>
 ///     コンストラクタ
 /// </summary>
 public BasicGrid()
 {
     Transformer = new BasicTransformer();
     Visibility  = true;
     FileName    = "@MMF.CG.Model.Grid.BasicGrid@";
 }