Пример #1
0
        public BoneVisual3d(TransformPtrViewModel transform, SkeletonVisual3d skeleton, string name)
        {
            this.ViewModel = transform;
            this.Skeleton  = skeleton;

            this.rotation = new RotateTransform3D();
            this.position = new TranslateTransform3D();

            Transform3DGroup transformGroup = new Transform3DGroup();

            transformGroup.Children.Add(this.rotation);
            transformGroup.Children.Add(this.position);

            this.Transform = transformGroup;

            PaletteHelper ph = new PaletteHelper();
            ITheme        t  = ph.GetTheme();

            this.defaultMaterial  = new DiffuseMaterial(new SolidColorBrush(WinColor.FromArgb(64, 0, 0, 0)));
            this.hoverMaterial    = new EmissiveMaterial(new SolidColorBrush(t.PrimaryDark.Color));
            this.selectedMaterial = new EmissiveMaterial(new SolidColorBrush(t.PrimaryMid.Color));

            System.Windows.Media.Color c1 = System.Windows.Media.Color.FromArgb(200, 255, 255, 255);
            this.sphere          = new Sphere();
            this.sphere.Radius   = 0.02;
            this.sphere.Material = this.defaultMaterial;
            this.Children.Add(this.sphere);

            this.OriginalBoneName = name;
            this.BoneName         = name;

            this.Skeleton.PropertyChanged += this.OnSkeletonPropertyChanged;
        }
Пример #2
0
        public static async Task <SkeletonVisual3d> GetVisual(ActorViewModel actor)
        {
            SkeletonVisual3d skeleton;

            if (actorSkeletons.ContainsKey(actor))
            {
                skeleton = actorSkeletons[actor];
                skeleton.Clear();
                actorSkeletons.Remove(actor);
            }

            // TODO: Why does a new skeleton work, but clearing an old one gives us "not a child of the specified visual" when writing?
            ////else
            {
                skeleton = new SkeletonVisual3d(actor);
                actorSkeletons.Add(actor, skeleton);
            }

            skeleton.Clear();
            await skeleton.GenerateBones();

            return(skeleton);
        }
Пример #3
0
        public BoneVisual3d(TransformViewModel transform, SkeletonVisual3d skeleton)
        {
            this.ViewModel = transform;
            this.Skeleton  = skeleton;

            this.rotation = new RotateTransform3D();
            this.position = new TranslateTransform3D();

            Transform3DGroup transformGroup = new Transform3DGroup();

            transformGroup.Children.Add(this.rotation);
            transformGroup.Children.Add(this.position);

            this.Transform = transformGroup;

            PaletteHelper ph = new PaletteHelper();

            Sphere sphere = new Sphere();

            sphere.Radius = 0.005;
            System.Windows.Media.Color c1 = System.Windows.Media.Color.FromArgb(200, 255, 255, 255);
            sphere.Material = new EmissiveMaterial(new SolidColorBrush(c1));
            this.Children.Add(sphere);
        }