| 69 | }; |
| 70 | |
| 71 | class Surface : public ChartRenderableBase<detail::surface_impl> { |
| 72 | public: |
| 73 | Surface(const unsigned pNumXPoints, const unsigned pNumYPoints, |
| 74 | const forge::dtype pDataType, const forge::PlotType pPlotType=FG_PLOT_SURFACE, |
| 75 | const forge::MarkerType pMarkerType=FG_MARKER_NONE) { |
| 76 | switch(pPlotType){ |
| 77 | case(FG_PLOT_SURFACE): |
| 78 | mShrdPtr = std::make_shared<detail::surface_impl>(pNumXPoints, pNumYPoints, pDataType, pMarkerType); |
| 79 | break; |
| 80 | case(FG_PLOT_SCATTER): |
| 81 | mShrdPtr = std::make_shared<detail::scatter3_impl>(pNumXPoints, pNumYPoints, pDataType, pMarkerType); |
| 82 | break; |
| 83 | default: |
| 84 | mShrdPtr = std::make_shared<detail::surface_impl>(pNumXPoints, pNumYPoints, pDataType, pMarkerType); |
| 85 | }; |
| 86 | } |
| 87 | |
| 88 | Surface(const fg_surface pOther) |
| 89 | : ChartRenderableBase<detail::surface_impl>( |
| 90 | reinterpret_cast<Surface*>(pOther)->impl()) { |
| 91 | } |
| 92 | }; |
| 93 | |
| 94 | class VectorField : public ChartRenderableBase<detail::vector_field_impl> { |
| 95 | public: |