예제 #1
0
        internal void Add3DAsset(ResourceActivationContext context, VisualMarker3DAsset resource)
        {
            if (!CheckAdapter())
            {
                return;
            }

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

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

                if (vumark != null)
                {
                    var asset = new MarkerAsset
                    {
                        ActivationContext = context,
                        AssetInstance     = resource.AssetInstance,
                        Marker            = vumark,
                        MediaLayout       = resource.FallbackImage == null ? null : resource.FallbackImage.Layout,
                        MediaUrl          = resource.FallbackImage == null ? null : resource.FallbackImage.MediaUrl,
                        ObjectId          = context.InstanceId,
                        OnOpen            = () =>
                        {
                            context.Open();
                        },
                        OnSelect = () =>
                        {
                            context.FireEvent("select");
                        },
                        OnClose = () =>
                        {
                            context.Close();
                        }
                    };

                    Add3DAsset(asset);
                }
            }
        }
예제 #2
0
        internal void Remove3DAsset(ResourceActivationContext context, VisualMarker3DAsset resource)
        {
            if (resource.AssetInstance == null ||
                resource.AssetInstance.Asset == null ||
                resource.Markers == null)
            {
                return;
            }

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

            RemoveResourceObjects(context.InstanceId);
        }
예제 #3
0
        internal void Remove3DAsset(ResourceActivationContext context, VisualMarker3DAsset resource)
        {
            if (resource.AssetInstance == null ||
                resource.AssetInstance.Asset == null ||
                resource.Markers == null)
            {
                return;
            }

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

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

            RemoveResourceObjects(context.InstanceId);
        }