22 #ifndef OPENRAVE_ENVIRONMENTBASE_H
23 #define OPENRAVE_ENVIRONMENTBASE_H
40 virtual void Destroy()=0;
45 virtual void Reset()=0;
133 virtual bool HasRegisteredCollisionCallbacks()
const = 0;
138 virtual void GetRegisteredCollisionCallbacks(std::list<CollisionCallbackFn>&)
const = 0;
152 virtual void StepSimulation(
dReal timeStep) = 0;
161 virtual void StartSimulation(
dReal fDeltaTime,
bool bRealTime=
true) = 0;
166 virtual void StopSimulation() = 0;
171 virtual bool IsSimulationRunning()
const = 0;
176 virtual uint64_t GetSimulationTime() = 0;
194 SO_AllExceptBody = 5,
195 TO_AllExceptBody = 5,
221 return LoadData(data,atts);
237 virtual void Save(
const std::string& filename, SelectionOptions options=SO_Everything,
const AttributesList& atts =
AttributesList()) = 0;
242 atts.push_back(std::make_pair(std::string(
"target"),selectname));
243 Save(filename,options,atts);
254 return ReadRobotURI(robot,filename,atts);
262 return ReadRobotURI(filename);
273 return ReadRobotData(robot,data,atts);
284 return ReadKinBodyURI(body,filename,atts);
292 return ReadKinBodyURI(filename);
303 return ReadKinBodyData(body,data,atts);
314 return ReadInterfaceURI(pinterface,type,filename,atts);
319 return ReadInterfaceURI(filename,atts);
330 return ReadInterfaceData(pinterface,type,data,atts);
338 virtual boost::shared_ptr<TriMesh> ReadTrimeshURI(boost::shared_ptr<TriMesh> ptrimesh,
const std::string& filename,
const AttributesList& atts =
AttributesList()) = 0;
340 return ReadTrimeshURI(ptrimesh,filename,atts);
358 virtual void Add(
InterfaceBasePtr pinterface,
bool bAnonymous=
false,
const std::string& cmdargs=
"") = 0;
362 RAVELOG_WARN(
"EnvironmentBase::AddKinBody deprecated, please use EnvironmentBase::Add\n");
363 Add(body,bAnonymous);
367 RAVELOG_WARN(
"EnvironmentBase::AddRobot deprecated, please use EnvironmentBase::Add\n");
368 Add(robot,bAnonymous);
373 RAVELOG_WARN(
"EnvironmentBase::AddSensor deprecated, please use EnvironmentBase::Add\n");
374 Add(sensor,bAnonymous);
382 virtual void GetSensors(std::vector<SensorBasePtr>& sensors, uint64_t timeout=0)
const = 0;
396 virtual KinBodyPtr GetKinBody(
const std::string& name)
const =0;
400 virtual SensorBasePtr GetSensor(
const std::string& name)
const =0;
404 virtual RobotBasePtr GetRobot(
const std::string& name)
const =0;
412 virtual void GetBodies(std::vector<KinBodyPtr>& bodies, uint64_t timeout=0)
const = 0;
419 virtual void GetRobots(std::vector<RobotBasePtr>& robots, uint64_t timeout=0)
const = 0;
427 virtual void GetPublishedBodies(std::vector<KinBody::BodyState>& vbodies, uint64_t timeout=0) = 0;
436 virtual void UpdatePublishedBodies(uint64_t timeout=0) = 0;
439 virtual KinBodyPtr GetBodyFromEnvironmentId(
int id) = 0;
454 virtual void TriangulateScene(
TriMesh& trimesh, SelectionOptions options,
const std::string& selectname) = 0;
458 virtual int AddModule(
ModuleBasePtr module,
const std::string& cmdargs) = 0;
462 return AddModule(module,cmdargs);
471 virtual void GetModules(std::list<ModuleBasePtr>& listModules, uint64_t timeout=0)
const = 0;
475 GetModules(listModules);
506 virtual ViewerBasePtr GetViewer(
const std::string& name=
"")
const = 0;
511 virtual void GetViewers(std::list<ViewerBasePtr>& listViewers)
const = 0;
522 virtual OpenRAVE::GraphHandlePtr plot3(
const float* ppoints,
int numPoints,
int stride,
float fPointSize,
const RaveVector<float>& color = RaveVector<float>(1,0.5,0.5,1),
int drawstyle = 0) = 0;
533 virtual OpenRAVE::GraphHandlePtr plot3(
const float* ppoints,
int numPoints,
int stride,
float fPointSize,
const float* colors,
int drawstyle = 0,
bool bhasalpha =
false) = 0;
540 virtual OpenRAVE::GraphHandlePtr drawlinestrip(
const float* ppoints,
int numPoints,
int stride,
float fwidth,
const RaveVector<float>& color = RaveVector<float>(1,0.5,0.5,1)) = 0;
546 virtual OpenRAVE::GraphHandlePtr drawlinestrip(
const float* ppoints,
int numPoints,
int stride,
float fwidth,
const float* colors) = 0;
553 virtual OpenRAVE::GraphHandlePtr drawlinelist(
const float* ppoints,
int numPoints,
int stride,
float fwidth,
const RaveVector<float>& color = RaveVector<float>(1,0.5,0.5,1)) = 0;
559 virtual OpenRAVE::GraphHandlePtr drawlinelist(
const float* ppoints,
int numPoints,
int stride,
float fwidth,
const float* colors) = 0;
565 virtual OpenRAVE::GraphHandlePtr drawarrow(
const RaveVector<float>& p1,
const RaveVector<float>& p2,
float fwidth,
const RaveVector<float>& color = RaveVector<float>(1,0.5,0.5,1)) = 0;
579 virtual OpenRAVE::GraphHandlePtr drawplane(
const RaveTransform<float>& tplane,
const RaveVector<float>& vextents,
const boost::multi_array<float,3>& vtexture) = 0;
581 virtual OpenRAVE::GraphHandlePtr drawtrimesh(
const float* ppoints,
int stride,
const int* pIndices,
int numTriangles,
const RaveVector<float>& color) = 0;
592 virtual OpenRAVE::GraphHandlePtr drawtrimesh(
const float* ppoints,
int stride,
const int* pIndices,
int numTriangles,
const boost::multi_array<float,2>& colors) = 0;
601 virtual void SetDebugLevel(
int level) = 0;
602 virtual int GetDebugLevel()
const = 0;