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 + -
显示快捷键?