#pragma once #include "../../DNACommon/DNACommon.hpp" #include "IScriptObject.hpp" #include "Parameters.hpp" namespace DataSpec::DNAMP1 { struct SpindleCamera : IScriptObject { AT_DECL_DNA_YAMLV String<-1> name; Value location; Value orientation; Value active; /* * 0x1: Look toward hint * 0x2: Flat look delta * 0x8: force minimum-clamp ball-to-cam azimuth * 0x10: minimum-clamp ball-to-cam azimuth * 0x20: Enable clampedAzimuthFromHintDir * 0x40: Enable distOffsetFromBallDist * 0x80: Use ball pos for cam pos Z (vs. hint pos) * 0x100: Enable deltaAngleScaleWithCamDist * 0x200: Use ball pos for look pos Z (vs. hint pos) * 0x400: unused * 0x800: Variable hint-to-ball direction * 0x1000: Damp look azimuth with hint ball-to-cam azimuth < 10-degrees * 0x2000: Enable deleteHintBallDist * 0x4000: Ignore ball-to-cam azimuth sign */ PropertyFlags flags; Value hintToCamDistMin; Value hintToCamDistMax; Value hintToCamVOffMin; Value hintToCamVOffMax; struct SpindleCameraParameters : BigDNA { AT_DECL_DNA_YAML Value input; PropertyFlags flags; // high reflect, low reflect Value lowOut; Value highOut; Value lowIn; Value highIn; }; SpindleCameraParameters targetHintToCamDeltaAngleVel; SpindleCameraParameters deltaAngleScaleWithCamDist; SpindleCameraParameters hintToCamDist; SpindleCameraParameters distOffsetFromBallDist; SpindleCameraParameters hintBallToCamAzimuth; SpindleCameraParameters unused; SpindleCameraParameters maxHintBallToCamAzimuth; SpindleCameraParameters camLookRelAzimuth; SpindleCameraParameters lookPosZOffset; SpindleCameraParameters camPosZOffset; SpindleCameraParameters clampedAzimuthFromHintDir; SpindleCameraParameters dampingAzimuthSpeed; SpindleCameraParameters targetHintToCamDeltaAngleVelRange; SpindleCameraParameters deleteHintBallDist; SpindleCameraParameters recoverClampedAzimuthFromHintDir; }; } // namespace DataSpec::DNAMP1