Ejemplo n.º 1
0
        public async System.Threading.Tasks.Task <bool> PreViewSimMeshAsync(CSimGeom simgeom)
        {
            if (simgeom.MaxVertices == 0)
            {
                MessageBox.Show("MaxVertices is Null error");
                return(false);
            }

            return(await CEngine.Instance.EventPoster.Post(() =>
            {
                if (simgeom.IsChange)
                {
                    simgeom.IsChange = false;
                    //var test = BuildTriMeshAsync();
                    simgeom.BuildTriMesh(CEngine.Instance.RenderContext, simgeom.Mesh.MeshPrimitives, ref simgeom.CCDD);
                    simgeom.MeshPrimitives = simgeom.CreateMesh(CEngine.Instance.RenderContext);
                }
                if (simgeom.MeshPrimitives != null)
                {
                    GActor actor = NewMeshActor(CEngine.Instance.MeshManager.CreateMesh(CEngine.Instance.RenderContext, simgeom.MeshPrimitives));
                    actor.Placement.SetMatrix(ref mPreviewActor.Placement.mDrawTransform);
                    var test = actor.GetComponent <EngineNS.GamePlay.Component.GMeshComponent>().SetMaterialInstanceAsync(CEngine.Instance.RenderContext, 0, CEngine.Instance.MaterialInstanceManager.DefaultMaterialInstance, null);
                    mPreviewSceneControl.AddUniqueActor(actor);
                }
                return true;
            }, EngineNS.Thread.Async.EAsyncTarget.AsyncEditor));//, EngineNS.Thread.Async.EAsyncTarget.AsyncEditor)
        }
Ejemplo n.º 2
0
 protected override bool SetCondition(GActor pa)
 {
     if (!pa.GetComponent <CAgentComponent>())
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 3
0
        void SetAnimationSequence2PreviewActor()
        {
            if (mPreviewActor == null)
            {
                return;
            }
            var rc = EngineNS.CEngine.Instance.RenderContext;

            EngineNS.GamePlay.Component.GAnimationComponent animationCom = null;
            var meshComp = mPreviewActor.GetComponent <EngineNS.GamePlay.Component.GMeshComponent>();

            if (meshComp != null)
            {
                var skinModifier = meshComp.SceneMesh.MdfQueue.FindModifier <EngineNS.Graphics.Mesh.CGfxSkinModifier>();
                animationCom = new EngineNS.GamePlay.Component.GAnimationComponent(RName.GetRName(skinModifier.SkeletonAsset));
            }
            animationCom.Animation = mPreviewClip;
            mPreviewActor.AddComponent(animationCom);
            mPreviewClip.Bind(animationCom.Pose);
        }