#include "prepare_ogm.hpp" namespace senior { namespace guardian { namespace prepare { std::string PrepareOgm::Name() { return "Prepare Ogm Element"; } void PrepareOgm::Initiate() {} void PrepareOgm::Process(data::DataFrame& his, data::DataFrame& cur) { if (cur.source_ogm_points_.is_invalid()) return; if (cur.source_visual_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_visual_ogm_points_.begin(), cur.source_visual_ogm_points_.end()); } if (cur.source_higher_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_higher_ogm_points_.begin(), cur.source_higher_ogm_points_.end()); } auto& predict_path = cur.monitor_data_.mutable_predict_path(); predict_path.GenerateBoundary(cur); cur.AABox2d_ = predict_path.vehicle_AABox2d_; // if (!his.monitor_data_.is_need_to_take_over()) { // LOG(INFO)<<"1"; cur.AABox2d_.SetWidth(cur.AABox2d_.width() + 1.0); cur.AABox2d_.SetLength(cur.AABox2d_.length() + 1.0); // } std::vector<math::Vec2d> corner_points_; cur.AABox2d_.GetAllCorners(&corner_points_); auto& polygon2d = predict_path.tractor_polygon2d_; math::Vec2d temp; VoxelGrid filter_; common::Time now = common::Time::Now(); for (auto& point : cur.source_ogm_points_) { temp.set_x(point.x()); temp.set_y(-point.y()); if (cur.AABox2d_.IsPointIn(temp)) { cur.AABB_ogm_points_.emplace_back(point); } } cur.guardian_diagnose_["Prepare_PrepareOgm_AABox_filter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); now = common::Time::Now(); filter_.VoxelGrid_ApplyFilter( cur.AABB_ogm_points_, cur.ogm_points_, corner_points_, 0.1, 0.1, 0); cur.guardian_diagnose_["Prepare_PrepareOgm_VoxelGrid_ApplyFilter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); cur.ogm_points_.set_stamp(cur.source_ogm_points_.stamp()); cur.ogm_points_.set_time(cur.source_ogm_points_.time()); cur.ogm_points_.set_delay_time(cur.source_ogm_points_.delay_time()); cur.ogm_points_.set_valid(); } } // namespace prepare } // namespace guardian } // namespace senior 改变为C语言程序
时间: 2024-03-28 07:40:16 浏览: 52
这段代码无法直接转换为C语言程序,因为涉及到了C++特有的语法和库。例如命名空间(namespace)、类(class)、std::string、std::vector、auto关键字、模板等等,这些在C语言中都没有对应的语法和库。
如果需要将这段代码改写成C语言程序,需要根据实际需求重新设计程序结构和数据结构,并使用C语言的语法和库重新实现功能。这个过程需要根据具体情况进行逐步转换和重构,不是简单的替换和删除操作。
相关问题
package com.study.neo4j.config; import org.neo4j.ogm.config.ClasspathConfigurationSource; import org.neo4j.ogm.config.ConfigurationSource; import org.neo4j.ogm.session.SessionFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories; import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableNeo4jRepositories(sessionFactoryRef = "neo4jSessionFactory", transactionManagerRef="neo4jTransactionManager", basePackages = "com.study.neo4j.dao") @EnableTransactionManagement public class Neo4jConfiguration { @Bean public SessionFactory neo4jSessionFactory() { // with domain entity base package(s) return new SessionFactory(configuration(), "com.study.neo4j.bean"); } @Bean public org.neo4j.ogm.config.Configuration configuration() { ConfigurationSource properties = new ClasspathConfigurationSource("neo4j.properties"); org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder(properties).build(); return configuration; } @Bean public Neo4jTransactionManager neo4jTransactionManager() { return new Neo4jTransactionManager(neo4jSessionFactory()); } }
这段代码是一个 Neo4j 的配置类,其中使用了 Spring Data Neo4j 库提供的注解 @EnableNeo4jRepositories 和 @EnableTransactionManagement 来启用 Neo4j 的 Repository 和事务管理功能。具体解释如下:
- @Configuration:声明该类为 Spring 配置类。
- @EnableNeo4jRepositories:启用 Spring Data Neo4j 库中的 Repository 功能。其中 sessionFactoryRef 属性指定了该配置类中的 neo4jSessionFactory() 方法返回的 SessionFactory 实例作为 Neo4j 的操作会话工厂,transactionManagerRef 属性指定了该配置类中的 neo4jTransactionManager() 方法返回的 Neo4jTransactionManager 实例作为事务管理器,basePackages 属性指定了 Repository 接口所在的包名。
- @EnableTransactionManagement:启用 Spring 的事务管理功能。
- neo4jSessionFactory() 方法返回一个 SessionFactory 实例,用于创建 Neo4j 的操作会话对象。其中通过指定 "com.study.neo4j.bean" 包名来扫描领域实体类。
- configuration() 方法返回一个 org.neo4j.ogm.config.Configuration 实例,用于配置 Neo4j 的连接信息和映射规则。其中通过 ClasspathConfigurationSource 类加载了一个名为 "neo4j.properties" 的配置文件,该文件中定义了 Neo4j 的连接信息和映射规则。
- neo4jTransactionManager() 方法返回一个 Neo4jTransactionManager 实例,用于将 Neo4j 的操作会话对象和 Spring 的事务管理器整合起来,从而支持 Neo4j 的事务管理功能。
MATCH p=(n:person)-[r:`关系`]-(m) where n.name=aName RETURN p" ^.; nested exception is org.neo4j.ogm.exception.CypherException: Cypher execution failed with code 'Neo.ClientError.Statement.SyntaxError': Variable
这条Cypher查询语句中的变量aName没有定义。请确保aName已经被定义并且赋值了一个合法的字符串。如果aName是一个变量,请在查询之前先定义并给它赋值。如果aName是一个字符串,请将其用引号括起来,例如:
MATCH p=(n:person)-[r:`关系`]-(m) WHERE n.name='aName' RETURN p
阅读全文