Collision Checker
serialize_container_cc_obj.cc
Go to the documentation of this file.
1 
3 
4 #if ENABLE_SERIALIZER
6 
7 namespace collision {
8 namespace serialize {
11  const test::BroadphaseFailureCCObj &object) {
12  m_object = object;
13 }
15 const test::BroadphaseFailure *BroadphaseFailure_cc_objExport::getFailure(
16  void) const {
17  return &m_object;
18 }
19 
21  s11nlite::node_type &dest) const {
22  typedef s11nlite::node_traits TR;
23  TR::class_name(dest, "BroadphaseFailure_cc_objExport");
24  if (!m_object.cc.get() || !m_object.obj.get()) {
25  return false;
26  }
27  std::shared_ptr<CollisionCheckerExport> cc_exp(
28  static_cast<CollisionCheckerExport *>(m_object.cc->exportThis()));
29  std::shared_ptr<ICollisionObjectExport_s11> obj_exp(
30  static_cast<ICollisionObjectExport_s11 *>(m_object.obj->exportThis()));
31  if (!cc_exp.get() || !obj_exp.get()) {
32  return false;
33  }
34  bool res = true;
35  res = res && s11nlite::serialize_subnode(dest, "cc", cc_exp.get());
36  res = res && s11nlite::serialize_subnode(dest, "obj", obj_exp.get());
37 
38  return res;
39 }
41  const s11nlite::node_type &src) {
42  typedef s11nlite::node_traits TR;
43 
44  const s11nlite::node_type *cc_node = s11n::find_child_by_name(src, "cc");
45  const s11nlite::node_type *obj_node = s11n::find_child_by_name(src, "obj");
46  if (!cc_node || !obj_node) {
47  // CERR << "Deser of 'base' member failed: node not found!\n";
48  return false;
49  }
50 
51  std::shared_ptr<CollisionCheckerExport> cc_exp(
52  s11nlite::deserialize<CollisionCheckerExport>(*cc_node));
53  std::shared_ptr<ICollisionObjectExport_s11> obj_exp(
54  s11nlite::deserialize<ICollisionObjectExport_s11>(*obj_node));
55 
56  if (!cc_exp.get() || !obj_exp.get()) {
57  return false;
58  }
59  collision::CollisionCheckerConstPtr cc_ptr(cc_exp.get()->loadObject());
60  collision::CollisionObjectConstPtr obj_ptr(obj_exp.get()->loadObject());
61 
62  if (!cc_ptr.get() || !obj_ptr.get()) {
63  return false;
64  }
65 
66  m_object.cc = cc_ptr;
67  m_object.obj = obj_ptr;
68 
69  return true;
70 }
71 } // namespace serialize
72 } // namespace collision
73 #endif
std::shared_ptr< const CollisionChecker > CollisionCheckerConstPtr
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
int serialize(const test::BroadphaseFailureCCObj &bf_object, std::ostream &output_stream, const char *format=SERIALIZER_DEFAULT_FORMAT)
virtual bool operator()(s11nlite::node_type &dest) const
const test::BroadphaseFailure * getFailure(void) const