int WChart3DImplementation::numberOfCategories(Axis axis) const { if (chart_->dataSeries().size() == 0) return 10; WAbstractGridData *first; if (axis == Axis::X3D) { first = dynamic_cast<WAbstractGridData*>(chart_->dataSeries()[0]); if (first == nullptr) { throw WException("WChart3DImplementation: can only count the categories in WAbstractGridData"); } else { return first->nbXPoints(); } } else if (axis == Axis::Y3D) { first = dynamic_cast<WAbstractGridData*>(chart_->dataSeries()[0]); if (first == nullptr) { throw WException("WChart3DImplementation: can only count the categories in WAbstractGridData"); } else { return first->nbYPoints(); } } else { throw WException("WChart3DImplementation: don't know this type of axis"); } }