For Developers - C3D Toolkit

As software developers ourselves we tend to provide the best possible support and training materials for you to achieve your goals faster and deliver better products to your customers.

Getting Started

Getting Started

Complete a series of video tutorials and training courses to learn the basics of programming with geometric modeling kernel and jump-start the development of your software using C3D Toolkit.

Learn more
Developer Manual

Developer Manual

Check the developer manual to get a brief overview of C3D Toolkit functionality. This document is intended for new users and those who are choosing a geometric modeling kernel for their software.

Documentation on Native Components of C3D Toolkit

Documentation on Native Components of C3D Toolkit

Understand the details with full technical documentation of C3D Toolkit elements, including geometric modeling kernel, constraint solver, visualization and model import/export.

Documentation on C3D Web Vision

Documentation on C3D Web Vision

Read the technical documentation on Web Vision "Viewer API" module.



What’s New in C3D Toolkit

02/07/2024 [rev 118002]
The possibility of wire frame extension, basing on earlier created curve extension algorithm, has been added. See MbResultType ExtendWireFrame(...) function in the file action_wireframe.h.
The class MbExtendCurveCreator does not support storing the source (extended) curve. Consequently, the constructor with curve in input parameter has been declared as deprecated.
The function CreateExtendedCurve(...), returning SPtr of creator, has been declared as deprecated. New API does not have any alternative.
The constructor of MbSimpleWireFrameCreator has been modified. Now it applies c3d::ConstWireEdgesSPtrVector instead of c3d::WireEdgesSPtrVector.
28/06/2024 [rev 118002]
The conversion to shared ownership of data in the tree of mathematical expressions has been made (node ​​BTreeNode and user function MbUserFunc);
these changes were made in the function for creating a mathematical expression tree CreateBTreeForEquation() (std::unique_ptr<BTreeNode> -> SPtr<BTreeNode>).
26/06/2024 [rev 118002]
A new class MbPolymesh was added. It represnts a polygonal object storing a topopology through MbPolymeshTopo class. As realization
a new way of topology reporesentation was added. This representation in widely known as halfedge. Classes support this representation
are MbHalfedge, MbHalfedgeVertex, MbHalfedgeEdge, MbHalfedgeFacet, MbSegmentationLoop, MbSegmentationSubRegion. To store data
associated with topology classes MbHalfedgeAttrBoolFacet, MbHalfedgeAttrBoolEdge, MbHalfedgeAttrBoolVertex, MbHalfedgeAttrUintVertex,
MbHalfedgeAttrUintEdge, MbHalfedgeAttrUintFacet, MbHalfedgeAttrIntVertex, MbHalfedgeAttrIntEdge, MbHalfedgeAttrIntFacet,
MbHalfedgeAttrSizetEdge, MbHalfedgeAttrSizetFacet, MbHalfedgeAttrSizetVertex, MbHalfedgeAttrDoubleEdge, MbHalfedgeAttrDoubleFacet,
MbHalfedgeAttrDoubleVertex, MbHalfedgeAttrFloatEdge, MbHalfedgeAttrFloatFacet, MbHalfedgeAttrFloatVertex, MbHalfedgeAttrPoint3D,
MbHalfedgeAttrParameters, MbHalfedgeAttrNormalsVertex, MbHalfedgeAttrNormalsFacet, MbHalfedgeAttrDihedralAngles,
MbHalfedgeAttrSharpEdge, MbHalfedgeAttrCurvaturesVertex, MbHalfedgeAttrDensityVertex, MbHalfedgeAttrDirectionEdge3D,
MbHalfedgeAttrDirectionVertex3D, MbHalfedgeAttrSurfaces, MbHalfedgeAttrParamByEdge, MbHalfedgeAttrStrains were added.
To traverse this topology iterators EdgeFanIterator, EdgeFacetIterator, EdgeLoopIterator, EdgeEdgesIterator, SubregionRegionIterator,
LoopSubregionIterator were added.
To work with topology as a whole object functions GetConnectedFacetGroups,
GetConnectedRegionGroups, GetPolymeshRegions, GetPolymeshRegion, GetPolymeshRegionBorders, GetPolymeshOpenBorders,
GetSegmOpenBorders, GetPolymeshEdgePolyline, GetPolymeshLoopPolyline, PolymeshSection, CutPolymeshByPlane, CopyPolymeshPart were
added into action_polymesh.h file. All mentioned classes and fuctions are part of c3d namespace.
13/06/2024 [rev 117998]
An output field has been added to the ExtensionValues ​​structure that specifies options for representing the resulting body. ( op_shell_parameter.h ).
03/06/2024 [rev 117995]
MakeSTEPEntities signature has changed - bool MakeSTEPEntities( MbSolid const &solid, std::vector<std::shared_ptr<const converter::SeBase>>& enitites ).

Supported Platforms

C3D Toolkit: Modeler, Solver, Converter, B-Shaper

OS Architecture Compiler Character set
FreeBSD 12.2 x64 CLANG 10.0.1 Unicode, Multi-Byte
Ubuntu 18.04 x64 gcc 7.5 Unicode, Multi-Byte
Ubuntu 22.04 x64, arm64
gcc 11.3.0 Unicode, Multi-Byte
Scientific 7.2 x64 gcc 8.3.0 Unicode, Multi-Byte
Windows 10 x86, x64 MS Visual C/C++ 2015 - 2022 Unicode, Multi-Byte
MacOS 11.3 x64, arm64 CLANG Unicode
IOS 14.5 arm64
CLANG Unicode
Debian 9 x64 gcc 7.2 Unicode, Multi-Byte
Astra Linux Common Edition
gcc 7.2
Unicode, Multi-Byte

C3D Toolkit: Vision

OS Architecture Compiler Character set
Ubuntu 18.04 x64 gcc 7.2 Unicode
Ubuntu 22.04 x64 gcc 11.3.0 Unicode
Windows 10 x86, x64 MS Visual C/C++ 2015 - 2019 Unicode, Multi-Byte

.Net binding (.Net Framerwork 4.52 and above)

  Architecture Character set
NetC3D (C3D Toolkit : kernel .Net binding) x86, x64 Unicode
NetC3dToolkit (C3D Toolkit .Net binding) x86, x64 Unicode