ADDED Requirements
Requirement: Render a WebGL 3D pie chart
The system SHALL provide a PieChartArt dynamic component that renders an extruded beveled 3D pie chart using three.js WebGL-compatible APIs.
Scenario: Default render
- GIVEN the component is rendered with default props
- WHEN the host scene mounts it
- THEN it SHALL display the default Market Share dataset as multiple colored extruded pie slices with in-scene labels
Scenario: WebGL compatibility
- GIVEN the component builds its materials
- WHEN it renders the pie chart
- THEN it SHALL avoid WebGPU and TSL APIs and use WebGL-compatible three.js materials/shaders
Requirement: JSON data updates rebuild the chart
The component SHALL accept chart data from JSON text and directly rebuild to the new slice layout when the JSON data changes.
Scenario: Valid JSON data
- GIVEN a user supplies valid JSON with slice labels and numeric values
- WHEN the JSON is applied
- THEN the component SHALL rebuild slice angles, heights, labels, and palette colors to match the new chart without per-frame geometry transition work
Scenario: Invalid JSON data
- GIVEN a user supplies invalid JSON
- WHEN the component attempts to parse it
- THEN it SHALL keep the previous chart data and log a scoped warning without throwing into the host scene
Requirement: Limited requested controls
The component SHALL expose only the requested chart, gradient, material, and data JSON controls through src/dcsConfig.ts.
Scenario: Config controls are available
- GIVEN the dynamic component service reads
src/dcsConfig.ts
- WHEN the
PieChartArt config pane is built
- THEN it SHALL include Chart controls for height, radius, inner radius, gap, bevel, side segments, bevel segments, smooth shading, crease angle, and label font size
- AND it SHALL include Gradient controls for direction, from Y, to Y, curve power, and automatic color scheme
- AND it SHALL include Material controls for roughness, metalness, and environment map intensity
Requirement: Component service integration
The component SHALL be registered through src/dcsConfig.ts without modifying generic preview infrastructure.
Scenario: Component appears in service list
- GIVEN the dynamic component service builds its component list
- WHEN the list includes registered components
- THEN
PieChartArt SHALL be available with default props, default object transform, and preview metadata