sk_stroke_cap_t sk_paint_get_stroke_cap(const sk_paint_t* cpaint) { sk_stroke_cap_t ccap; if (find_c(AsPaint(*cpaint).getStrokeCap(), &ccap)) { ccap = BUTT_SK_STROKE_CAP; } return ccap; }
sk_stroke_join_t sk_paint_get_stroke_join(const sk_paint_t* cpaint) { sk_stroke_join_t cjoin; if (find_c(AsPaint(*cpaint).getStrokeJoin(), &cjoin)) { cjoin = MITER_SK_STROKE_JOIN; } return cjoin; }
void TestEditorInterface::SwitchToFile(const std::wstring& path) { for (auto view : enum_range<ViewType>()) { auto& data = m_viewData[view]; auto opt_it = find_c(data.fileList, path); if (opt_it) { data.activeFile = opt_it; m_activeView = view; return; } } }
double c_correction(float mass, int snapnum) { double c_original, c_new, Omega_new, Omega_original, ratio; c_original = 5 * pow(mass/10000., -0.1); Omega_new = Omega * 1./pow3(AA[snapnum]) / (Omega * 1./pow3(AA[snapnum]) + OmegaLambda); Omega_original = Omega_OriginalCosm * 1./pow3(AA_OriginalCosm[snapnum]) / (Omega_OriginalCosm * 1./pow3(AA_OriginalCosm[snapnum]) + OmegaLambda_OriginalCosm); ratio = Omega_original/ Omega_new; c_new = find_c(c_original, ratio); return func_c(c_new) / func_c(c_original); }
bool TestEditorInterface::OpenDocument(std::wstring filename) { filename = fs::canonical(filename); if (!fs::is_regular_file(filename)) return false; for (auto view : enum_range<ViewType>()) { auto opt_it = find_c(m_viewData[view].fileList, filename); if (opt_it) return true; } auto& data = ActiveViewData(); auto p = data.fileList.insert(fs::canonical(filename)); if (!data.activeFile) data.activeFile = p.first; return true; }
void TestEditorInterface::ActivateDocument(const std::wstring& filepath, ViewType view) { auto& data = m_viewData[view]; auto opt_it = find_c(data.fileList, filepath); if (opt_it) data.activeFile = opt_it; }
// Propagate light through media light_rays propagate(light_rays ray_diagram, double step_size, double max_vel, dimensions origin, double radius, std::ofstream &output){ double index_p, theta, theta_p; double iratio, dotprod; // move simulation every timestep for (size_t i = 0; i < time_res; i++){ for (size_t j = 0; j < lightnum; j++){ ray_diagram.ray[j].x += ray_diagram.ray_vel[j].x * step_size; ray_diagram.ray[j].y += ray_diagram.ray_vel[j].y * step_size; if (ray_diagram.index[j] != check_n(ray_diagram.ray[j].x, ray_diagram.ray[j].y, origin, radius)){ index_p = check_n(ray_diagram.ray[j].x, ray_diagram.ray[j].y, origin, radius); std::cout << index_p << '\t' << i << '\t' << j << '\n'; /* // Non vector form theta = atan2(ray_diagram.ray_vel[j].y, ray_diagram.ray_vel[j].x); theta_p = asin((ray_diagram.index[j] / index_p) * sin(theta)); ray_diagram.ray_vel[j].y = max_vel * sin(theta_p); ray_diagram.ray_vel[j].x = max_vel * cos(theta_p); */ // Vector form -- Solution by Gustorn! double r = ray_diagram.index[j] / index_p; double mag = std::sqrt(ray_diagram.ray_vel[j].x * ray_diagram.ray_vel[j].x + ray_diagram.ray_vel[j].y * ray_diagram.ray_vel[j].y); double ix = ray_diagram.ray_vel[j].x / mag; double iy = ray_diagram.ray_vel[j].y / mag; // c for later; Normal was: [-1, 0] double c = find_c(ix, iy, origin, radius); double k = 1.0 - r * r * (1.0 - c * c); if (k < 0.0) { // Do whatever } else { double k1 = std::sqrt(k); ray_diagram.ray_vel[j].x = r * ix - (r * c - k1); ray_diagram.ray_vel[j].y = r * iy; } ray_diagram.index[j] = index_p; } } /* output << ray_diagram.ray[5].x <<'\t'<< ray_diagram.ray[5].y << '\t' << ray_diagram.ray_vel[5].x <<'\t'<< ray_diagram.ray_vel[5].y << '\n'; */ for (size_t q = 0; q < lightnum; q++){ output << ray_diagram.ray[q].x <<'\t'<< ray_diagram.ray[q].y << '\t' << ray_diagram.ray_vel[q].x <<'\t'<< ray_diagram.ray_vel[q].y << '\n'; } output << '\n' << '\n'; } return ray_diagram; }