qsizectl.h
来自「算断裂的」· C头文件 代码 · 共 103 行
H
103 行
// ------------------------------------------------------------------// qsizecontrol.h//// This file contains the class SizeControl that holds the size// control information and curve control information that guides// mesh generation.// ------------------------------------------------------------------// Author: Stephen A. Vavasis// Copyright (c) 1999 by Cornell University. All rights reserved.// // See the accompanying file 'Copyright' for authorship information,// the terms of the license governing this software, and disclaimers// concerning this software.// ------------------------------------------------------------------// This file is part of the QMG software. // Version 2.0 of QMG, release date September 3, 1999.// ------------------------------------------------------------------#ifndef QSIZECTL_H#define QSIZECTL_H#include "qsmall.h"#include "qbrep.h"#include "qancestor.h"#include "qlog.h"#include "qpatchtab.h"namespace QMG { namespace FrontEnd { using namespace QMG; class Interpreter; }}// ------------------------------------------------------------------// Class Sizecontrol is created twice by mesh generation,// once for the size control and once for the curve control.// The eval functions are then invoked in an inner loop of// mesh generation to see if boxes are too large.class QMG::MG::SizeControl {private: const Brep& g_; string default_size_; Real default_const_sizefunc_; string user_data_; string extern_funcname_; Brep::Ancestor_Lookup lca_lookup_; Brep::Face_Labeling<string> sizefuncs_; Brep::Face_Labeling<Real> const_sizefunc_; QMG::FrontEnd::Interpreter& interp_; Logstream& logstr_; int di_; const PatchTable& patchtable_; // workspaces: mutable vector<PatchTable::Index> dfs_stack_; mutable vector<Point> dfs_stack_param_; mutable Brep::Face_Labeling<int> is_on_stack_; mutable int serial_number_; void fe_initialize(); void fe_terminate(); Real fe_invoke_sizefunc(const Point& realpoint, const Point& parampoint, const Brep::Face_Spec& sourcespec, Brep::PatchIndex patchind, const string& sizefunc) const; Real fe_invoke_sizefunc_interior(const Point& realpoint, const Brep::Face_Spec& sourcespec, const string& sizefunc) const; SizeControl(const SizeControl& o) : g_(o.g_), default_size_(""), user_data_(""), lca_lookup_(o.g_), sizefuncs_(o.g_,""), const_sizefunc_(o.g_,0), interp_(o.interp_), logstr_(o.logstr_), patchtable_(o.patchtable_), is_on_stack_(o.g_) { } void operator=(const SizeControl& o) { }public: SizeControl(const Brep& g, const PatchTable& patchtable, const string& property_name, const string& external_funcname, const string& default_size, const string& user_data, QMG::FrontEnd::Interpreter& interp, Logstream& logfile); ~SizeControl(); pair<Real,bool> eval(const Point& realpoint, const Point& parampoint, PatchTable::Index patchind) const; pair<Real,bool> eval_interior(const Point& realpoint, const Brep::Face_Spec& fspec) const;};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?