19 template <
typename Real>
    33         std::function<Real(Real)> 
const& radial, 
bool closed,
    37     inline std::shared_ptr<ParametricCurve<3, Real>> 
const& 
GetMedial() 
const;
    38     inline std::function<Real(Real)> 
const& 
GetRadial() 
const;
    47     std::shared_ptr<ParametricCurve<3, Real>> 
mMedial;
    53     std::function<std::array<Vector3<Real>, 4>(Real)> 
mFSampler;
    54     std::unique_ptr<FrenetFrame3<Real>> 
mFrenet;
    62 template <
typename Real>
    65     std::function<Real(Real)> 
const& radial, 
bool closed, 
bool sampleByArcLength,
    84         LogWarning(
"A nonnull medial curve is required.");
   114         factor = 
mMedial->GetTotalLength() * invDenom;
   133             std::array<Vector3<Real>, 4> frame;
   137             frame[2] = 
UnitCross(frame[3], frame[1]);
   146             std::array<Vector3<Real>, 4> frame;
   147             (*mFrenet)(
t, frame[0], frame[1], frame[2], frame[3]);
   186 template <
typename Real>
   192 template <
typename Real>
   198 template <
typename Real>
   204 template <
typename Real>
   210 template <
typename Real>
   216 template <
typename Real>
   231 template <
typename Real>
   234     uint32_t 
row, col, 
v, save;
   240         std::array<Vector3<Real>, 4> frame = 
mFSampler(t);
 std::shared_ptr< ParametricCurve< 3, Real > > mMedial
 
MeshDescription mDescription
 
std::vector< Vector2< Real > > mDefaultTCoords
 
std::vector< Real > mCosAngle
 
Vector3< Real > mUpVector
 
virtual void UpdateNormals()
 
Vector< N, Real > UnitCross(Vector< N, Real > const &v0, Vector< N, Real > const &v1, bool robust=false)
 
std::shared_ptr< ParametricCurve< 3, Real > > const & GetMedial() const 
 
GLenum GLenum GLsizei void * row
 
bool wantDynamicTangentSpaceUpdate
 
std::unique_ptr< FrenetFrame3< Real > > mFrenet
 
Vector3< Real > * mNormals
 
std::function< Real(unsigned int)> mTSampler
 
#define LogWarning(message)
 
virtual void UpdateFrame()
 
virtual void UpdatePositions() override
 
std::vector< Real > mSinAngle
 
Vector2< Real > & TCoord(uint32_t i)
 
Vector2< Real > * mTCoords
 
bool hasTangentSpaceVectors
 
std::function< std::array< Vector3< Real >, 4 >Real)> mFSampler
 
Vector3< Real > & Position(uint32_t i)
 
TubeMesh(MeshDescription const &description, std::shared_ptr< ParametricCurve< 3, Real >> const &medial, std::function< Real(Real)> const &radial, bool closed, bool sampleByArcLength, Vector3< Real > upVector)
 
std::function< Real(Real)> const & GetRadial() const 
 
bool IsSampleByArcLength() const 
 
std::function< Real(Real)> mRadial
 
Vector3< Real > const & GetUpVector() const