示例#1
0
        public static IVisual GetVisual(string topic, string rosMessageName, MessageSubtopic subtopic)
        {
            IVisualFactory factory = VisualFactoryRegistry.GetVisualFactory(topic, rosMessageName, subtopic);

            if (factory == null)
            {
                return(null);
            }

            return(factory.GetOrCreateVisual(topic));
        }
示例#2
0
        public IVisualFactory GetVisualFactory()
        {
            if (m_CachedRosMessageName != RosMessageName)
            {
                // if the topic has changed, discard our cached data
                m_VisualFactory            = null;
                m_NoVisualFactoryAvailable = false;
            }

            if (m_VisualFactory == null && !m_NoVisualFactoryAvailable)
            {
                SetVisualFactory(VisualFactoryRegistry.GetVisualFactory(Topic, RosMessageName, Subtopic));
            }
            return(m_VisualFactory);
        }
示例#3
0
        public static IVisual GetVisual(string topic, MessageSubtopic subtopic = MessageSubtopic.Default)
        {
            RosTopicState topicState = ROSConnection.GetOrCreateInstance().GetTopic(topic);

            if (topicState != null && subtopic == MessageSubtopic.Response)
            {
                topicState = topicState.ServiceResponseTopic;
            }

            if (topicState == null)
            {
                return(null);
            }

            IVisualFactory factory = VisualFactoryRegistry.GetVisualFactory(topic, topicState.RosMessageName, subtopic);

            if (factory == null)
            {
                return(null);
            }

            return(factory.GetOrCreateVisual(topic));
        }