C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
Templates and Serializations Library
+ Collaboration diagram for Templates and Serializations Library:

Modules

 Containers
 
 Smart Pointers
 
 Work with Strings
 
 Work with Streams
 
 Graph Library
 

Classes

class  c3d::StrHash
 Hash with a string type. More...
 
class  MbAccurateTimer
 High resolution timer. More...
 
class  MbAverageTimer
 Average timer. More...
 
class  BalanceTreeNode< Type >
 Node of balanced tree. More...
 
class  BalanceTree< Type >
 Balanced tree. More...
 
class  BalanceTreeIterator< Type >
 Iterator of balanced tree. More...
 
class  PriorityQueue< Index, Weight >
 Priority queue using a heap. More...
 
class  KdTree< Scalar >
 K-d tree. More...
 
class  Visitor
 Abstract base class of the visitor. More...
 
class  VisitorImpl< T >
 A generallized declaration of support of the object visit by a concrete visitor. More...
 
class  ExceptionMode
 Definition of mode for exception handling. More...
 
class  ScopedExceptionMode
 Alter mode for exception handling in a scope. More...
 
class  FatalErrorHandler
 Handler of fatal errors. More...
 
class  c3d::LogHelper
 Logging switch in a scope. More...
 
class  CacheCleaner
 Base class for objects which require a garbage collection. More...
 
class  MbGarbageCollection
 Garbage collector in objects which use data caching. More...
 
class  AuxiliaryData
 Parent class of data for manager of parallel processing. More...
 
class  CommonMutex
 Lock class. More...
 
class  ParallelRegionGuard
 Scoped guard of parallel region. More...
 
class  ScopedLock
 Scoped lock. Can accept a null pointer to a mutex. Locking occurs if the pointer to the mutex is nonzero and the code runs in parallel. More...
 
class  ScopedRecursiveLock
 Recursive scoped lock. Can accept a null pointer to a mutex. Locking occurs if the pointer to the mutex is nonzero and the code runs in parallel. More...
 
class  MbSyncItem
 Base synchronization object with lazy initialization. More...
 
class  MbNestSyncItem
 Base synchronization object with lazy initialization which supports nested locks. More...
 
class  MbPersistentSyncItem
 Base object providing means of synchronization. More...
 
class  MbPersistentNestSyncItem
 Base synchronization object with support of nested locks. More...
 
struct  IfProgressIndicator
 A run progress indicator. More...
 

Macros

#define C3D_IO_CATCH_START    try {
 Start try-catch region for I/O operations.
 
#define C3D_IO_CATCH_END(iostrm)
 Complete try-catch region for I/O operations (argument iostrm - reading or writing stream).
 
#define PRECONDITION(expr)   ((void)0)
 The PRECONDITION definition.
 
#define CALL_DECLARATION
 The CALL_DECLARATION definition. More...
 
#define EXPORT_DECLARATION
 The EXPORT_DECLARATION definition. More...
 
#define OBVIOUS_PRIVATE_COPY(ClassName)
 The declaration of assignment operator and copy constructor. More...
 
#define COUNTOF(array)   (sizeof(array)/sizeof(array[0]))
 Get the number of array elements.
 
#define MATH_CLASS   __attribute__ ((visibility ("default")))
 The declaration of export or import classes. More...
 
#define MATH_5_11_R03_VERSION   0x0590005CL
 The file version - 5.11.
 
#define MATH_5_BC_VERSION   0x0590005FL
 The file version - 5.0.
 
#define MATH_6_0_VERSION   0x06000009L
 The file version - 6.0.
 
#define MATH_6_PLUS_VERSION   0x06000032L
 The file version - 6.1.
 
#define MATH_7_0_VERSION   0x07000005L
 The file version - 7.0.
 
#define MATH_7_PLUS_VERSION   0x0701012CL
 The file version - 7.1.
 
#define MATH_8_0_VERSION   0x0800001AL
 The file version - 8.0.
 
#define MATH_8_PLUS_VERSION   0x08000133L
 The file version - 8.1.
 
#define MATH_9_0_VERSION   0x09000005L
 The file version - 9.0.
 
#define MATH_9_SP1_VERSION   0x09000008L
 The file version - 9.1.
 
#define LAST_NOUNICODE_VERSION   0x0A000018L
 The file version - 10.0 NoUnicode.
 
#define UNICODE_VERSION   0x0A001000L
 The file version - 10.0 Unicode.
 
#define MATH_10_VERSION   0x0A001021L
 The file version - 10.0.
 
#define MATH_10_SP1_VERSION   0x0A001023L
 The file version - 10.1.
 
#define MATH_11_VERSION   0x0B000031L
 The file version - 11.0.
 
#define MATH_11_SP1_VERSION   0x0B000032L
 The file version - 11.1.
 
#define MATH_12_VERSION   0x0C00004DL
 The file version - 12.0.
 
#define MATH_12_SP1_VERSION   0x0C00004EL
 The file version - 12.1.
 
#define MATH_13_START_VERSION   0x0D000000L
 The file version - 13.0 (start of version).
 
#define MATH_13_VERSION   0x0D000060L
 The file version - 13.0.
 
#define MATH_13_SP1_VERSION   0x0D001016L
 The file version - 13.1.
 
#define MATH_13_SP2_VERSION   0x0D002004L
 The file version - 13.2.
 
#define MATH_13_SP3_START_VERSION   0x0D003000L
 The file version - 13.3 (start of version).
 
#define MATH_13_SP3_VERSION   0x0D003001L
 The file version - 13.3.
 
#define MATH_14_START_VERSION   0x0E000000L
 The file version - 14.0 (start of version).
 
#define MATH_14_VERSION   0x0E000021L
 The file version - 14.0.
 
#define MATH_14_SP1_START_VERSION   0x0E001000L
 The file version - 14.1 (start of version).
 
#define MATH_14_SP1_VERSION   0x0E001011L
 The file version - 14.1.
 
#define MATH_14_SP2_START_VERSION   0x0E002000L
 The file version - 14.2 (start of version).
 
#define MATH_14_SP2_VERSION   0x0E002001L
 The file version - 14.2.
 
#define MATH_15_START_VERSION   0x0F000000L
 The file version - 15.0 (start of version).
 
#define MATH_15_VERSION   0x0F000014L
 The file version - 15.0.
 
#define MATH_15_SP1_START_VERSION   0x0F001000L
 The file version - 15.1 (start of version).
 
#define MATH_15_SP1_VERSION   0x0F001010L
 The file version - 15.1.
 
#define MATH_15_SP2_START_VERSION   0x0F002000L
 The file version - 15.2 (start of version).
 
#define MATH_15_SP2_VERSION   0x0F002010L
 The file version - 15.2.
 
#define MATH_16_START_VERSION   0x10000000L
 The file version - 16.0 (start of version).
 
#define C3D_16_VERSION   0x10000008L
 The file version - C3D 16.0.
 
#define MATH_16_VERSION   0x1000000DL
 The file version - 16.0.
 
#define MATH_16_SP1_START_VERSION   0x10001000L
 The file version - 16.1 (start of version).
 
#define MATH_16_SP1_VERSION   0x10001002L
 The file version - 16.1.
 
#define MATH_17_START_VERSION   0x11000000L
 The file version - 17.0 (start of version).
 
#define C3D_2016_VERSION   0x1100000FL
 The file version - C3D 2016.
 
#define MATH_17_VERSION   0x1100001FL
 The file version - 17.0.
 
#define C3D_2017_VERSION   MATH_17_VERSION
 The file version - C3D 2017.
 
#define MATH_17_SP1_VERSION   0x11001001L
 The file version - 17.1.
 
#define MATH_18_START_VERSION   0x12000000L
 The file version - 18.0 (start of version).
 
#define C3D_2018_VERSION   0x1200000DL
 The file version - C3D 2018.
 
#define MATH_18_VERSION   0x12000010L
 The file version - 18.0.
 
#define MATH_19_START_VERSION   0x13000000L
 The file version - 19.0 (start of version).
 
#define MATH_18_SP1_VERSION   0x13000005L
 The file version - 18.1.
 
#define C3D_2019_VERSION   0x1300000FL
 The file version - C3D 2019.
 
#define MATH_19_VERSION   0x13000101L
 The file version - 19.0.
 
#define C3D_2020_VERSION   0x13001004L
 The file version - C3D 2020.
 
#define MATH_20_TR_VERSION   0x14000012L
 The file version - 20.0 TR.
 
#define MATH_20_VERSION   0x14001026L
 The file version - 20.0.
 
#define C3D_2021_VERSION   0x14002001L
 The file version - C3D 2021.
 
#define MATH_21_VERSION   0x15000001L
 The file version - 21.0.
 
#define MATH_21_UHF_VERSION   0x15000011L
 The file version - 21.0 UHF (Upper Hot Fix).
 
#define C3D_2022_VERSION   0x15001001L
 The file version - C3D 2022.
 
#define MATH_22_VERSION   0x16000001L
 The file version - 22.0.
 
#define MATH_22_HF1_VERSION   0x16000002L
 The file version - 22.0 HF1.
 
#define MATH_22_HF2_VERSION   0x16000003L
 The file version - 22.0 HF2.
 
#define MATH_22_HF3_VERSION   0x16000004L
 The file version - 22.0 HF3.
 
#define MATH_22_UHF_VERSION   0x16000011L
 The file version - 22.0 UHF (Upper Hot Fix).
 
#define C3D_2023_VERSION   0x16001001L
 The file version - C3D 2023.
 
#define VISITING_CLASS(Class)
 Implementation of a function initializing a visit of an object. More...
 
#define C3D_CONTROLED_THROW_EX(expt)   if( ExceptionMode::IsEnabled() ) throw expt;
 Throw the specified exception if allowed by the exception mode.
 
#define C3D_CONTROLED_THROW   if( ExceptionMode::IsEnabled() ) throw;
 Throw exception if allowed by the mode for exception handling.
 
#define CommonRecursiveMutex   CommonMutex
 Same implementation of CommonMutex and CommonRecursiveMutex.
 

Typedefs

typedef uint32 SimpleName
 Definition of simple name. More...
 
typedef uint32 VERSION
 Version.
 

Enumerations

enum  MbeWritableReleaseVersion {
  wrv_FirstRelease = MATH_17_SP1_VERSION , wrv_MATH_17_SP1 = MATH_17_SP1_VERSION , wrv_C3D_2018 = C3D_2018_VERSION , wrv_MATH_18 = MATH_18_VERSION ,
  wrv_MATH_18_SP1 = MATH_18_SP1_VERSION , wrv_C3D_2019 = C3D_2019_VERSION , wrv_MATH_19 = MATH_19_VERSION , wrv_C3D_2020 = C3D_2020_VERSION ,
  wrv_MATH_20_TR = MATH_20_TR_VERSION , wrv_MATH_20 = MATH_20_VERSION , wrv_C3D_2021 = C3D_2021_VERSION , wrv_MATH_21 = MATH_21_VERSION ,
  wrv_C3D_2022 = C3D_2022_VERSION , wrv_MATH_22 = MATH_22_VERSION , wrv_C3D_2023 = C3D_2023_VERSION , wrv_PrevRelease = wrv_MATH_22 ,
  wrv_LastRelease = wrv_C3D_2023 , wrv_MaxPossible = SYS_MAX_INT32
}
 List of potentially writable previous releases. More...
 
enum  DelType { defDelete , noDelete , Delete }
 Types of elemets deletion. More...
 
enum  ThreeStates { ts_negative = -1 , ts_neutral = 0 , ts_positive = 1 }
 Tree-position flag. More...
 

Functions

int SimpleNameCompare (const SimpleName &h1, const SimpleName &h2)
 Compare simple names.
 
bool IsGoodSimpleName (const SimpleName &s)
 Check the simple name correctness.
 
SimpleName c3d::Hash32 (uint8 *k, size_t length, SimpleName _c=INIT_HASH32_VAL)
 Hash-function. More...
 
template<typename T >
SimpleName c3d::Hash32Ptr (T *k)
 Hash of the pointer. More...
 
SimpleName c3d::HashStr (const c3d::string_t &str)
 Hash of the string. More...
 
SimpleName c3d::HashStr (const char *c_str)
 Hash of the string. More...
 
SimpleName c3d::HashStr (const wchar_t *w_str)
 Hash of the string. More...
 
const StrHash c3d::NullStrHash (0, StrHash::htp_undef)
 Hash of the empty string. More...
 
const StrHash c3d::UndefStrHash (SimpleName(-1), StrHash::htp_undef)
 Hash for the string absence. More...
 
SimpleName c3d::Hash32SN (SimpleName k1, SimpleName k2)
 Hash of two simple names. More...
 
template<class ItemPtr >
bool c3d::IsNullPointer (const ItemPtr *itemPtr)
 Null pointer check . More...
 
template<class ElementsVector >
void c3d::UniqueSortVector (ElementsVector &items)
 Sorting an array with removing duplicates. More...
 
template<class ElementsVector , class Element >
size_t c3d::DirectSearch (const ElementsVector &items, const Element &item)
 Finding an element in a unsorted array. More...
 
template<class ElementsVector , class Element >
size_t c3d::BinarySearch (const ElementsVector &items, const Element &item)
 Finding an element in a sorted array. More...
 
template<class T >
T::iterator c3d::older_stl_support::erase (T &obj, typename T::iterator pos)
 "iterator erase( iterator pos )" surrogate for older versions of std:map and std:: set.. More...
 
bool IsVersion16bit (VERSION version)
 Whether there is a 16-bit file version.
 
bool IsVersion32bit (VERSION version)
 Whether there is a 32-bit file version.
 
bool IsVersion64bit (VERSION version)
 Whether there is a 64-bit file version.
 
VERSION GetCurrentMathFileVersion ()
 The current version.
 
bool CanWriteToMathFileVersion (VERSION dstVertsion, bool *canUseWriterEx=nullptr)
 Can it be saved to this math version?
 
VERSION GetPrevReleaseMathFileVersion ()
 The previous release version.
 
VERSION GetLastReleaseMathFileVersion ()
 The last release version.
 
double c3d::ACos (double x)
 Secure acos function. More...
 
bool c3d::IsFinite (double val)
 Function to check whether the given number is finite. More...
 
uint16 MkUint16 (uint8 lo, uint8 hi)
 Create uint16 by two uint8.
 
uint32 MkUint32 (uint16 lo, uint16 hi)
 Create uint32 by two uint16.
 
uint64 MkUint64 (uint32 lo, uint32 hi)
 Create uint64 by two uint32.
 
uint32 LoUint32 (uint64 u64)
 Get lower uint32 word from uint64.
 
int32 LoInt32 (uint64 u64)
 Get lower int32 word from int64.
 
uint32 HiUint32 (uint64 u64)
 Get upper uint32 word from uint64.
 
int32 HiInt32 (uint64 u64)
 Get upper int32 word from int64.
 
uint16 LoUint16 (uint32 u32)
 Get lower int16 word from int32.
 
int16 LoInt16 (uint32 u32)
 Get lower int16 word from uint32.
 
uint16 HiUint16 (uint32 u32)
 Get upper uint16 word from uint32.
 
int16 HiInt16 (uint32 u32)
 Get upper int16 word from uint32.
 
uint8 LoUint8 (uint16 u16)
 Get lower uint8 word from uint16.
 
int8 LoInt8 (uint16 u16)
 Get lower int8 word from uint16.
 
uint8 HiUint8 (uint16 u16)
 Get upper uint8 word from uint16.
 
int8 HiInt8 (uint16 u16)
 Get upper int8 word from uint16.
 
template<class SignedType >
SignedType abs_t (const SignedType x)
 Absolute value. More...
 
void EnableMathModules (const char *name, int nameLength, const char *key, int keyLength)
 Enable kernel modules. More...
 
bool VerifyLicenseKey (const char *name, const char *key, const char *pub_key)
 Verify key. More...
 
bool IsMathModelerEnable ()
 Check the controller of the Modeler. More...
 
bool IsMathConverterEnable ()
 Check the controller of the Converter. More...
 
bool IsMathSolverEnable ()
 Check the controller of the Solver. More...
 
bool IsMathVisionEnable ()
 Check the controller of the Vision. More...
 
bool IsMathBShaperEnable ()
 Check the controller of the BShaper. More...
 
bool IsMathCollisionEnable ()
 Check the controller of the Collision Detection. More...
 
bool IsMathFairCurveEnable ()
 Check the controller of the FairCurve modeler. More...
 
void FreeMathModulesChecker ()
 Free the controller of the kernel modules work. More...
 
void c3d::EnableMemoryLeakDump ()
 Enable memory leakage control. More...
 
bool IsSafeMultithreading ()
 Whether is enabled a safe multithreading mode (used in CacheManager).
 
bool LocksEnabled ()
 Whether locks are enabled (multithreading is on and code is executed in parallel).
 

Variables

const SimpleName c3d::SIMPLENAME_MAX = size_t(SYS_MAX_UINT32)
 Maximum allowable simple name.
 
const SimpleName c3d::UNDEFINED_SNAME = size_t(SYS_MAX_UINT32)
 A value is used as "undefined", not yet assigned name.
 
const SimpleName c3d::INIT_HASH32_VAL = size_t( 31415926 )
 The initial value for the hash-function.
 
constexpr uint32 c3d::GOLDENRATIO = 0x9e3779b9
 Golden section - an arbitrary number for hash-function.
 
constexpr uint SYS_MAX_UINT = 0xffffffff
 Maximum value of uint.
 
constexpr size_t SYS_MAX_T = 0xffffffff
 Maximum value of size_t.
 
constexpr ptrdiff_t SYS_MAX_ST = 0x7fffffff
 Maximum value of ptrdiff_t.
 
constexpr ptrdiff_t SYS_MIN_ST = 0x80000000
 Minimum value of ptrdiff_t.
 
constexpr uint8 SYS_MAX_UINT8 = 0xFF
 Maximum value of uint8.
 
constexpr uint16 SYS_MAX_UINT16 = 0xFFFF
 Maximum value of uint16.
 
constexpr uint32 SYS_MAX_UINT32 = 0xFFFFFFFF
 Maximum value of uint32.
 
constexpr uint64 SYS_MAX_UINT64 = 0xFFFFFFFFFFFFFFFF
 Maximum value of uint64.
 
constexpr int16 SYS_MAX_INT16 = 0x7FFF
 Maximum value of int16.
 
constexpr int32 SYS_MAX_INT32 = 0x7FFFFFFF
 Maximum value of int32.
 
constexpr int64 SYS_MAX_INT64 = 0x7FFFFFFFFFFFFFFF
 Maximum value of int64.
 
constexpr int16 SYS_MIN_INT16 = static_cast<int16>( static_cast<uint16>(0x8000) )
 Minimum value of int16.
 
constexpr int32 SYS_MIN_INT32 = static_cast<int32>( static_cast<uint32>(0x80000000) )
 Minimum value of int32.
 
constexpr int64 SYS_MIN_INT64 = static_cast<int64>( static_cast<uint64>(0x8000000000000000) )
 Minimum value of int64.
 
constexpr size_t NSIZE = SYS_MAX_T
 Undefined size.
 
constexpr uint NPOS32 = static_cast<uint>(SYS_MAX_UINT32)
 Undefined position (for 32-bit data).
 
constexpr size_t SIZE_OF_POINTER = sizeof(char *)
 Size of pointer in bytes. More...
 

Detailed Description

Macro Definition Documentation

◆ CALL_DECLARATION

#define CALL_DECLARATION

The CALL_DECLARATION definition.

The CALL_DECLARATION definition.

◆ EXPORT_DECLARATION

#define EXPORT_DECLARATION

The EXPORT_DECLARATION definition.

The EXPORT_DECLARATION definition.

◆ OBVIOUS_PRIVATE_COPY

#define OBVIOUS_PRIVATE_COPY (   ClassName)
Value:
private: \
ClassName & operator = ( const ClassName & ); \
ClassName( const ClassName & );

The declaration of assignment operator and copy constructor.

The declaration of private assignment operator and copy constructor. This is used to prohibit an implicit implementation of this functionality because if there is no an explicit copy constructor or an assignment operator implicit copy constructor and assigment operator are generated automatically mostly by copying of memory, that can lead to incorrect behaviour of the system.

◆ MATH_CLASS

#define MATH_CLASS   __attribute__ ((visibility ("default")))

The declaration of export or import classes.

The declaration of export in this module or import in other plugged modules.

◆ VISITING_CLASS

#define VISITING_CLASS (   Class)
Value:
public: \
void Accept( Visitor & visitor ) override \
{ \
VisitorImpl<Class> * impl = dynamic_cast<VisitorImpl<Class> *>(&visitor); \
if( impl ) \
impl->Visit( *this ); \
}
Abstract base class of the visitor.
Definition: templ_visitor.h:25
A generallized declaration of support of the object visit by a concrete visitor.
Definition: templ_visitor.h:44
virtual void Visit(T &)=0
A function processing a visit of an object.

Implementation of a function initializing a visit of an object.

Implementation of a function initializing a visit of an object.
It is made by the dynamic cast in order to implement an asymmetric visitor (see Alexandrescu "Modern C++ Design"). There is necessary to declare this in every class which supports a visitor.

Typedef Documentation

◆ SimpleName

typedef uint32 SimpleName

Definition of simple name.

Definition of simple name.

Enumeration Type Documentation

◆ MbeWritableReleaseVersion

List of potentially writable previous releases.

Enumerator
wrv_FirstRelease 

Version of the first valid release.

wrv_MATH_17_SP1 

The file version - 17.1.

wrv_C3D_2018 

The file version - C3D 2018.

wrv_MATH_18 

The file version - 18.0.

wrv_MATH_18_SP1 

The file version - 18.1.

wrv_C3D_2019 

The file version - C3D 2019.

wrv_MATH_19 

The file version - 19.0.

wrv_C3D_2020 

The file version - C3D 2020.

wrv_MATH_20_TR 

The file version - 20.0 TR2.

wrv_MATH_20 

The file version - 20.0.

wrv_C3D_2021 

The file version - C3D 2021.

wrv_MATH_21 

The file version - 21.0.

wrv_C3D_2022 

The file version - C3D 2022.

wrv_MATH_22 

The file version - 22.0.

wrv_C3D_2023 

The file version - C3D 2023.

wrv_PrevRelease 

The previous release version.

wrv_LastRelease 

The last release version.

wrv_MaxPossible 

Use current working version.

◆ DelType

enum DelType

Types of elemets deletion.

Types of elements deletion while the deletion from an array.

Enumerator
defDelete 

Delete an object by default.

noDelete 

Do not delete an object.

Delete 

Delete an object.

◆ ThreeStates

Tree-position flag.

A flag of three states.

Enumerator
ts_negative 

The state NO.

ts_neutral 

The state UNKNOWN.

ts_positive 

The state YES.

Function Documentation

◆ Hash32()

SimpleName c3d::Hash32 ( uint8 *  k,
size_t  length,
SimpleName  _c = INIT_HASH32_VAL 
)
inline

Hash-function.

Hash by sequence of bytes and the previous hash.
Each byte k influences on the return value.
The function is bad for use in the cryptography.
k - A pointer to the beginning of the bytes sequence.
length - Number of bytes in the sequence.
_c - The previous hash or an arbitrary value.

Note
The algorithm is based on Bob Jenkins hash function.
Returns
Returns 32-bit number.

◆ Hash32Ptr()

template<typename T >
SimpleName c3d::Hash32Ptr ( T *  k)

Hash of the pointer.

Hash of the pointer.

◆ HashStr() [1/3]

SimpleName c3d::HashStr ( const c3d::string_t str)
inline

Hash of the string.

Hash of the string.

◆ HashStr() [2/3]

SimpleName c3d::HashStr ( const char *  c_str)
inline

Hash of the string.

Hash of the string.

◆ HashStr() [3/3]

SimpleName c3d::HashStr ( const wchar_t *  w_str)
inline

Hash of the string.

Hash of the string.

◆ NullStrHash()

const StrHash c3d::NullStrHash ( ,
StrHash::htp_undef   
)

Hash of the empty string.

Hash of the empty string.

◆ UndefStrHash()

const StrHash c3d::UndefStrHash ( SimpleName(-1)  ,
StrHash::htp_undef   
)

Hash for the string absence.

Hash for the string absence.

◆ Hash32SN()

SimpleName c3d::Hash32SN ( SimpleName  k1,
SimpleName  k2 
)
inline

Hash of two simple names.

Hash of two simple names.
Frequently occurring combination - hash of two SimpleName (uint32).

◆ IsNullPointer()

template<class ItemPtr >
bool c3d::IsNullPointer ( const ItemPtr *  itemPtr)

Null pointer check .

Null pointer check.

◆ UniqueSortVector()

template<class ElementsVector >
void c3d::UniqueSortVector ( ElementsVector &  items)

Sorting an array with removing duplicates.

Sorting an array with removing duplicates.

◆ DirectSearch()

template<class ElementsVector , class Element >
size_t c3d::DirectSearch ( const ElementsVector &  items,
const Element &  item 
)

Finding an element in a unsorted array.

Finding an element in a unsorted array.

◆ BinarySearch()

template<class ElementsVector , class Element >
size_t c3d::BinarySearch ( const ElementsVector &  items,
const Element &  item 
)

Finding an element in a sorted array.

Finding an element in a sorted array.

◆ erase()

template<class T >
T::iterator c3d::older_stl_support::erase ( T &  obj,
typename T::iterator  pos 
)
inline

"iterator erase( iterator pos )" surrogate for older versions of std:map and std:: set..

To unify the code with support for STD:map and std::set versions that do not implement iterator erase( iterator pos).

Parameters
[in]obj- Container that the item is being removed from.
[in]pos- Iterator to the element to remove.
Returns
Iterator following the removed element.

◆ ACos()

double c3d::ACos ( double  x)
inline

Secure acos function.

Secure acos function. The function puts the parameter x into the range [-1, +1].

◆ IsFinite()

bool c3d::IsFinite ( double  val)
inline

Function to check whether the given number is finite.

Function to check whether the given number is finite.
If given number is MB_INFINITY or MB_QNAN then it is not finite.

◆ abs_t()

template<class SignedType >
SignedType abs_t ( const SignedType  x)

Absolute value.

Absolute value.

◆ EnableMathModules()

void EnableMathModules ( const char *  name,
int  nameLength,
const char *  key,
int  keyLength 
)

Enable kernel modules.

Enable the corresponding kernel modules.

◆ VerifyLicenseKey()

bool VerifyLicenseKey ( const char *  name,
const char *  key,
const char *  pub_key 
)

Verify key.

Verify key.

◆ IsMathModelerEnable()

bool IsMathModelerEnable ( )

Check the controller of the Modeler.

Check the controller of the Modeler.

◆ IsMathConverterEnable()

bool IsMathConverterEnable ( )

Check the controller of the Converter.

Check the controller of the Converter.

◆ IsMathSolverEnable()

bool IsMathSolverEnable ( )

Check the controller of the Solver.

Check the controller of the Solver.

◆ IsMathVisionEnable()

bool IsMathVisionEnable ( )

Check the controller of the Vision.

Check the controller of the Vision.

◆ IsMathBShaperEnable()

bool IsMathBShaperEnable ( )

Check the controller of the BShaper.

Check the controller of the BShaper.

◆ IsMathCollisionEnable()

bool IsMathCollisionEnable ( )

Check the controller of the Collision Detection.

Check the controller of the Collision Detection.

◆ IsMathFairCurveEnable()

bool IsMathFairCurveEnable ( )

Check the controller of the FairCurve modeler.

Check the controller of the FairCurve modeler.

◆ FreeMathModulesChecker()

void FreeMathModulesChecker ( )

Free the controller of the kernel modules work.

Free the controller of the kernel modules work.

◆ EnableMemoryLeakDump()

void c3d::EnableMemoryLeakDump ( )

Enable memory leakage control.

Enable memory leakage control.

Variable Documentation

◆ SIZE_OF_POINTER

constexpr size_t SIZE_OF_POINTER = sizeof(char *)
constexpr

Size of pointer in bytes.

Size of pointer in bytes.