#ifndef _KDCREATE_VIS_H
#define _KDCREATE_VIS_H

#include "visman.h"
#include "kdtreelog.h"

class KDCreateVis : public Vis {
protected:
  const LogEntry *_start;
public:
  KDCreateVis (const Vis *parent, const LogEntry *someevent) : Vis (parent, someevent) {_start = VisManager::FindVisStart (this, someevent); strcpy (_type, "KDCreateVis");}

  const LogEntry *GetStartEntry (void) const {return _start;}

  void Display (const LogEntry *current) const {KDTreeCreate_Start_Entry *e = (KDTreeCreate_Start_Entry *)_start->_data; e->_kdtree->DrawCells();}

  char *StatusLine (const LogEntry *ours) const  {char *newline = new char [strlen (ours->_name) + 1]; strcpy (newline, ours->_name); return newline;}

  //int IsOurs (const LogEntry *en) const { return (en->_event == KDTreeSubdivide_Start || en->_event == KDTreeSubdivide_End || en->_event == KDTreeSubdivide_Reject || en->_event == KDTreeSubdivide_TryPlane || IsStartEvent (en) || IsEndEvent (en));}

  int IsOurs (const LogEntry *en) const { return (IsStartEvent (en) || IsEndEvent (en));}

  int IsStartEvent (const LogEntry *en) const {return (en->_event == KDTreeCreate_Start);}
  int IsEndEvent (const LogEntry *en) const {return (en->_event == KDTreeCreate_End);}
};

#endif
