public SdlOrthographicCamera DefaultCamera() { var camera = new SdlOrthographicCamera() { Location = SdlUtils.SdlVector(300, 100, 200), LookAt = SdlUtils.SdlVector(0) }; return(camera); }
public SdlCsgObject Vector(double ox, double oy, double oz, double dx, double dy, double dz, double thickness) { var thicknessScalar = thickness.SdlScalar(); var vectorLength = dx * dx + dy * dy + dz * dz; var arrowLength = thickness * 24; var axisLength = vectorLength - arrowLength; var axisToVectorRatio = axisLength / vectorLength; var headToVectorRatio = arrowLength / vectorLength; var axisStartPoint = SdlUtils.SdlVector(ox, oy, oz); var axisEndPoint = axisStartPoint + axisToVectorRatio * SdlUtils.SdlVector(dx, dy, dz); var arrowEndPoint = axisStartPoint + SdlUtils.SdlVector(dx, dy, dz); var axis = new SdlCylinder() { BasePoint = axisStartPoint, CapPoint = axisEndPoint, Radius = thicknessScalar }; var axisStartSphere = new SdlSphere() { Center = axisStartPoint, Radius = thicknessScalar }; var axisEndSphere = new SdlSphere() { Center = axisEndPoint, Radius = thicknessScalar }; var arrow = new SdlCone() { BasePoint = axisEndPoint, BaseRadius = (arrowLength / 6).SdlScalar(), CapPoint = arrowEndPoint, CapRadius = SdlUtils.SdlScalar(0) }; var vector = new SdlCsgObject() { CsgOperation = SdlCsgOperation.Union }; vector.ChildObjects.Add(axis, axisStartSphere, axisEndSphere, arrow); return(vector); }