System::Drawing::Drawing2D::CustomLineCap Class Reference

Represents a user-defined line cap. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. More...

#include "custom_line_cap.h"

Inherits System::Object.

Inherited by System::Drawing::Drawing2D::AdjustableArrowCap.

Public Member Functions

ASPOSECPP_SHARED_API CustomLineCap (const SharedPtr< GraphicsPath > &fillPath, const SharedPtr< GraphicsPath > &strokePath, LineCap baseCap=LineCap::Flat, float baseInset=0)
 Constructs a new instance of CustomLineCap class that represents a user-defined line cap with the specified properties. More...
 
ASPOSECPP_SHARED_API void SetStrokeCaps (LineCap startCap, LineCap endCap)
 Sets the start and end line caps of the custom cap represented by the current object. More...
 
ASPOSECPP_SHARED_API void GetStrokeCaps (LineCap &startCap, LineCap &endCap)
 Gets the start and end line caps of the custom cap represented by the current object. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< CustomLineCapClone ()
 Returns a copy of the current object. More...
 
ASPOSECPP_SHARED_API LineCap get_BaseCap () const
 Returns the base line cap from which this custom cap is created. More...
 
ASPOSECPP_SHARED_API void set_BaseCap (LineCap value)
 Sets the base line cap value for this custom cap. More...
 
ASPOSECPP_SHARED_API float get_BaseInset () const
 Returns the distance between the line and the cap. More...
 
ASPOSECPP_SHARED_API void set_BaseInset (float value)
 Sets the distance between the line and the cap. More...
 
ASPOSECPP_SHARED_API LineJoin get_StrokeJoin () const
 Returns the LineJoin value which determines how lines of this custom cap are joined. More...
 
ASPOSECPP_SHARED_API void set_StrokeJoin (LineJoin value)
 Sets the LineJoin value which determines how lines of this custom cap are joined. More...
 
ASPOSECPP_SHARED_API float get_WidthScale () const
 Returns the scale of this custom cap. More...
 
ASPOSECPP_SHARED_API void set_WidthScale (float value)
 Sets the scale value of this custom cap. More...
 
void Dispose ()
 Releases all operating system resources acquired by the current object. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Protected Member Functions

 CustomLineCap ()
 Default constructor for subclass creation. More...
 
void Init (const SharedPtr< GraphicsPath > &fillPath, const SharedPtr< GraphicsPath > &strokePath, bool fit_to_line_width, LineCap baseCap, float baseInset)
 

Protected Attributes

bool m_is_filled
 Indicates in this cap is filled. More...
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Detailed Description

Represents a user-defined line cap. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Constructor & Destructor Documentation

◆ CustomLineCap() [1/2]

ASPOSECPP_SHARED_API System::Drawing::Drawing2D::CustomLineCap::CustomLineCap ( const SharedPtr< GraphicsPath > &  fillPath,
const SharedPtr< GraphicsPath > &  strokePath,
LineCap  baseCap = LineCap::Flat,
float  baseInset = 0 
)

Constructs a new instance of CustomLineCap class that represents a user-defined line cap with the specified properties.

Parameters
fillPathSpecifies a fill for the custom cap
strokePathSpecifies an outline of the custom cap
baseCapThe base line cap from which the custom cap is created
baseInsetSpecifies the distance between the line and the cap

◆ CustomLineCap() [2/2]

System::Drawing::Drawing2D::CustomLineCap::CustomLineCap ( )
protected

Default constructor for subclass creation.

Member Function Documentation

◆ Clone()

virtual ASPOSECPP_SHARED_API SharedPtr<CustomLineCap> System::Drawing::Drawing2D::CustomLineCap::Clone ( )
virtual

Returns a copy of the current object.

◆ Dispose()

void System::Drawing::Drawing2D::CustomLineCap::Dispose ( )
inline

Releases all operating system resources acquired by the current object.

◆ get_BaseCap()

ASPOSECPP_SHARED_API LineCap System::Drawing::Drawing2D::CustomLineCap::get_BaseCap ( ) const

Returns the base line cap from which this custom cap is created.

◆ get_BaseInset()

ASPOSECPP_SHARED_API float System::Drawing::Drawing2D::CustomLineCap::get_BaseInset ( ) const

Returns the distance between the line and the cap.

◆ get_StrokeJoin()

ASPOSECPP_SHARED_API LineJoin System::Drawing::Drawing2D::CustomLineCap::get_StrokeJoin ( ) const

Returns the LineJoin value which determines how lines of this custom cap are joined.

◆ get_WidthScale()

ASPOSECPP_SHARED_API float System::Drawing::Drawing2D::CustomLineCap::get_WidthScale ( ) const

Returns the scale of this custom cap.

◆ GetStrokeCaps()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::GetStrokeCaps ( LineCap startCap,
LineCap endCap 
)

Gets the start and end line caps of the custom cap represented by the current object.

Parameters
startCapThe output argument; Contains the start cap
endCapThe output argument; Contains the end cap

◆ Init()

void System::Drawing::Drawing2D::CustomLineCap::Init ( const SharedPtr< GraphicsPath > &  fillPath,
const SharedPtr< GraphicsPath > &  strokePath,
bool  fit_to_line_width,
LineCap  baseCap,
float  baseInset 
)
protected

◆ set_BaseCap()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::set_BaseCap ( LineCap  value)

Sets the base line cap value for this custom cap.

Parameters
valueNew base line cap value

◆ set_BaseInset()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::set_BaseInset ( float  value)

Sets the distance between the line and the cap.

Parameters
valueNew distance value

◆ set_StrokeJoin()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::set_StrokeJoin ( LineJoin  value)

Sets the LineJoin value which determines how lines of this custom cap are joined.

Parameters
valueNew stroke join value

◆ set_WidthScale()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::set_WidthScale ( float  value)

Sets the scale value of this custom cap.

Parameters
valueNew scale value

◆ SetStrokeCaps()

ASPOSECPP_SHARED_API void System::Drawing::Drawing2D::CustomLineCap::SetStrokeCaps ( LineCap  startCap,
LineCap  endCap 
)

Sets the start and end line caps of the custom cap represented by the current object.

Parameters
startCapThe start cap to set
endCapThe end cap to set

Member Data Documentation

◆ m_is_filled

bool System::Drawing::Drawing2D::CustomLineCap::m_is_filled
protected

Indicates in this cap is filled.