import UIKit import SceneKit import PlaygroundSupport
class BlueprintScene: SCNScene { override init() { super.init()
// Create motor body node
let motorBodyGeometry = SCNBox(width: 2, height: 3, length: 4, chamferRadius: 0.1)
let motorBodyNode = SCNNode(geometry: motorBodyGeometry)
motorBodyNode.position = SCNVector3(0, 0, 0)
rootNode.addChildNode(motorBodyNode)
// Create plasma density input node
let plasmaDensityGeometry = SCNBox(width: 0.5, height: 0.3, length: 0.2, chamferRadius: 0.05)
let plasmaDensityNode = SCNNode(geometry: plasmaDensityGeometry)
plasmaDensityNode.position = SCNVector3(-1, 1, 0)
rootNode.addChildNode(plasmaDensityNode)
// Create magnetic field strength input node
let magneticFieldGeometry = SCNBox(width: 0.5, height: 0.3, length: 0.2, chamferRadius: 0.05)
let magneticFieldNode = SCNNode(geometry: magneticFieldGeometry)
magneticFieldNode.position = SCNVector3(1, 1, 0)
rootNode.addChildNode(magneticFieldNode)
// Create power output node
let powerGeometry = SCNBox(width: 0.5, height: 0.3, length: 0.2, chamferRadius: 0.05)
let powerNode = SCNNode(geometry: powerGeometry)
powerNode.position = SCNVector3(-1, -1, 0)
rootNode.addChildNode(powerNode)
// Create thrust output node
let thrustGeometry = SCNBox(width: 0.5, height: 0.3, length: 0.2, chamferRadius: 0.05)
let thrustNode = SCNNode(geometry: thrustGeometry)
thrustNode.position = SCNVector3(1, -1, 0)
rootNode.addChildNode(thrustNode)
// Add labels
let labelFont = UIFont.systemFont(ofSize: 0.2)
let densityLabel = createLabelNode(text: "Plasma Density", font: labelFont)
densityLabel.position = SCNVector3(-1, 1.4, 0)
rootNode.addChildNode(densityLabel)
let magneticFieldLabel = createLabelNode(text: "Magnetic Field", font: labelFont)
magneticFieldLabel.position = SCNVector3(1, 1.4, 0)
rootNode.addChildNode(magneticFieldLabel)
let powerLabel = createLabelNode(text: "Power Output", font: labelFont)
powerLabel.position = SCNVector3(-1, -1.4, 0)
rootNode.addChildNode(powerLabel)
let thrustLabel = createLabelNode(text: "Thrust Output", font: labelFont)
thrustLabel.position = SCNVector3(1, -1.4, 0)
rootNode.addChildNode(thrustLabel)
// Set up camera
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(0, 0, 8)
rootNode.addChildNode(cameraNode)
// Set up lighting
let ambientLightNode = SCNNode()
ambientLightNode.light = SCNLight