예제 #1
0
        public void AddMarkerMedia(ResourceActivationContext context, VisualMarkerMedia resource)
        {
            if (!CheckAdapter())
            {
                return;
            }

            if (resource.MediaElement == null ||
                resource.MediaElement.MediaUrl == null ||
                resource.Markers == null)
            {
                return;
            }

            foreach (var marker in resource.Markers.OfType <IVisualMarker>())
            {
                if (marker != null)
                {
                    var media = new MarkerMedia
                    {
                        ActivationContext = context,
                        Marker            = marker,
                        MediaLayout       = resource.MediaElement.Layout,
                        MediaType         = resource.MediaElement.MediaItem.MediaType,
                        MediaUrl          = resource.MediaElement.MediaUrl,
                        Color             = resource.MediaElement.Color,
                        ObjectId          = context.InstanceId,
                        OnOpen            = () =>
                        {
                            context.Open();
                        },
                        OnSelect = () =>
                        {
                            context.FireEvent("select");
                        },
                        OnClose = () =>
                        {
                            context.Close();
                        }
                    };

                    AddMarkerMedia(media);
                }
            }
        }
예제 #2
0
        internal void RemoveMarkerMedia(ResourceActivationContext context, VisualMarkerMedia resource)
        {
            if (resource.MediaElement == null ||
                resource.MediaElement.MediaUrl == null ||
                resource.Markers == null)
            {
                return;
            }

            foreach (var marker in resource.Markers.OfType <IVisualMarker>())
            {
                if (marker != null)
                {
                    m_activeResourceMedia.RemoveWhere(marker.GetIdentifier(), c => c.ObjectId == context.InstanceId);
                }
            }

            RemoveResourceObjects(context.InstanceId);
        }
예제 #3
0
        internal void RemoveMarkerMedia(ResourceActivationContext context, VisualMarkerMedia resource)
        {
            if (resource.MediaElement == null ||
                resource.MediaElement.MediaUrl == null ||
                resource.Markers == null)
            {
                return;
            }

            foreach (var marker in resource.Markers)
            {
                var vumark = marker as IVuforiaMarker;

                if (vumark != null)
                {
                    m_activeResourceMedia.RemoveWhere(vumark.Identifier, c => c.ObjectId == context.InstanceId);
                }
            }

            RemoveResourceObjects(context.InstanceId);
        }