/*************************************************************** * Adds a lifeform with the specified pattern at the mouse coords ***************************************************************/ void Cellular_Automata :: add_lifeform(CA_PATTERN pattern,int mx,int my){ // Round the mouse coordinates to a multiple of the cell diameter int x = to_nearest_multiple(mx-x_offset, diameter); int y = to_nearest_multiple(my-y_offset, diameter); // Create a new lifeform at the rounded coords and // draw it on the grid CA_Lifeform lifeform(pattern, x, y, diameter); draw_lifeform(lifeform); }
/* * Create a new person from the provided stamped pose and point cloud, and insert them into the map. */ Person& PersonDetector::create_person(const geometry_msgs::Pose& pose, const sensor_msgs::PointCloud2& cloud) { // Make a new person with the trivial person classifier, for now, and then give them an initial pose. Person lifeform(_current_uid++); lifeform.push_pose(pose); // boost::shared_ptr<PersonClassifier> classifier(new ShirtColorPersonClassifier(cloud, 30.0)); boost::shared_ptr<PersonClassifier> classifier(new TrivialPersonClassifier); // Then insert them. tracked()[lifeform.uid()] = lifeform; classifiers()[lifeform.uid()] = classifier; // Return a reference to the person in the map. return tracked()[lifeform.uid()]; }