void ArrowSplineComp::Uninterpret (Command* cmd) { if (cmd->IsA(ARROW_CMD)) { ArrowOpenBSpline* amline = GetArrowOpenBSpline(); if (amline != nil) { _ArrowData* ad = (_ArrowData*) cmd->Recall(this); if (ad != nil) { amline->SetArrows(ad->_head, ad->_tail); Notify(); } } } else { SplineComp::Uninterpret(cmd); } }
void ArrowSplineComp::Interpret (Command* cmd) { if (cmd->IsA(ARROW_CMD)) { ArrowOpenBSpline* amline = GetArrowOpenBSpline(); if (amline != nil) { ArrowCmd* arrowCmd = (ArrowCmd*) cmd; cmd->Store(this, new _ArrowData(amline->Head(), amline->Tail())); amline->SetArrows(arrowCmd->Head(), arrowCmd->Tail()); Notify(); } } else if (cmd->IsA(PATTERN_CMD)) { GraphicComp::Interpret(cmd); } else { SplineComp::Interpret(cmd); } }