Data Sources Selection and Morphing
Chart Guru 3D uses the shared ChartDataSource pipeline. A source publishes a frame; the host's definition and layers compile it into spatial marks. Put ManualChartDataSource, MockChartDataSource or a file or web source on the host or an inherited parent.
Input situation | Definition-driven 3D mapping |
|---|---|
Single-series points | Bind X, Y and Z channels to numeric, date or category columns. An automatic layer uses row index and depth lanes when the data has no explicit spatial positions. |
Multi-series data | Bind several value columns for wide-series data, or a Series column for long data. Without explicit Z, supported marks use series depth lanes. |
Surface3D grid | Bind grid X, Z and height columns for a sampled surface, or use a Surface function layer. Missing grid values remain holes. |
Pie3D / Donut3D | Values form extruded sectors. Pie and Donut fill their host footprint while preserving the intended data proportions. |
Radar3D | Categories define the spokes; values set the radial distances and series occupy depth levels. The radial domain controls the rings and marks consistently. |
Range entries | Rectangle3D and Rule3D can use X/Y/Z start and end values. |
Binding Data Sources
The host chooses runtime SetData first, then its enabled resolved source, a ChartDataAsset, and the definition's inline table. A source on a parent is inherited only by charts without their own data. Configure mapping in the chart's Marks layers; there is no Target Chart3DComponent field.
Chart3DComponent host = gameObject.AddComponent<Chart3DComponent>();
host.Definition.Type = ChartType.Bar3D;
MockChartDataSource mock = gameObject.AddComponent<MockChartDataSource>();
mock.Regenerate();
host.Rebuild();
// The host resolves the source on its GameObject and compiles its frame.
3D Selection and Morphing
ChartRaycaster routes scene pointer events through Chart3DHitTester. The hit includes the selected mark and X/Y/Z values; Canvas and UI Toolkit outputs use their own view for the same interaction. Enable selection and hover in Behavior, and use Orbit for drag rotation.
- MorphTo changes a definition-driven 3D host to another 3D chart family and retargets compatible channels.
- Value-only SetData(frame, shapeChanged: false) updates compatible marks while columns, row count and categories stay fixed; unsupported shapes rebuild safely.
- A custom ChartDataSource can overwrite the values of its published columns and call PublishValueChange once for all changed columns.
- PlayLift(0f) flattens a spatial chart and PlayLift(1f) lifts it into depth without changing its data; the shared Designer uses this for dimension transitions.
- Chart3DImage, Chart3DTexture and Chart3DElement expose the same lift and view controls while preserving their independent output views.
- Function surfaces and sampled grids keep their supported update paths; do not label a changed row count, columns or categories as a value-only change.
Shared chart workflows also apply to 3D data: semantic selection links can propagate point and X/Y/Z range state, and accessibility descriptors, audio graphs and semantic CSV/JSON exports can consume 3D values through the shared chart model. See the base Chart Guru manual for setup and ownership. Configure the 3D host's screen-space frames when bridging accessibility, and choose a semantic point match when linked charts use different mark orders.