| 641 | } |
| 642 | |
| 643 | void afxChoreographer::addObjectConstraint(SceneObject* object, const char* cons_name) |
| 644 | { |
| 645 | if (!object || !cons_name) |
| 646 | return; |
| 647 | |
| 648 | dynConstraintDef dyn_def; |
| 649 | dyn_def.cons_name = StringTable->insert(cons_name); |
| 650 | dyn_def.cons_type = OBJECT_CONSTRAINT; |
| 651 | dyn_def.cons_obj.object = object; |
| 652 | dyn_cons_defs->push_back(dyn_def); |
| 653 | |
| 654 | #if defined(AFX_CAP_SCOPE_TRACKING) |
| 655 | if (isServerObject() && object->isScopeable()) |
| 656 | constraint_mgr->addScopeableObject(object); |
| 657 | #endif |
| 658 | |
| 659 | constraint_mgr->defineConstraint(OBJECT_CONSTRAINT, dyn_def.cons_name); |
| 660 | deleteNotify(object); |
| 661 | } |
| 662 | |
| 663 | void afxChoreographer::addObjectConstraint(U16 scope_id, const char* cons_name, bool is_shape) |
| 664 | { |
nothing calls this directly
no test coverage detected