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