C3D Kernel  104598
Classes | Typedefs | Enumerations | Functions
Object-oriented interface
Geometric Constraint Solver in Three-Dimensional Space
Collaboration diagram for Object-oriented interface:


struct  ItGCBlackbox
 Blackbox. More...
struct  GCM_geom_axis
 Axis of a planar angle. More...
struct  GCM_c_params
 Structure of constraint parameters. More...
struct  ItConstraintItem
 Geometric constraint. More...
struct  ItMateTransmission
 Interface "Mechanical transmission for two solids". More...
struct  ItCamMechanism
 Interface "Cam mechanism". More...
struct  ItGeom
 Geometrical object. More...
class  MtGeomVariant
 Geometric object, argument of geometric constraint. More...
class  MtMatingGeometry
 Data structure for matched geometry. More...
struct  GCM_undefined< T >
 Undefined value of some datatype. More...
class  MtParVariant
 Numeric or enumerated parameter of constraint. More...
class  MtArgument
 Geometric argument of constraint. More...
class  MtGeomSolver
 Geometric constraint solver. More...
struct  ItPositionManager
 Abstract for control of geom position in the assembly. More...


typedef GCM_geom MtGeomId
typedef GCM_constraint MtConstraintId
typedef GCM_geom MtPatternId
typedef GCM_g_type MtGeomType
typedef GCM_c_type MtMateType


enum  MtStateOfFreedom { sof_Zero = 0, sof_WellConstrained = sof_Zero, sof_UnderConstrained = 1, sof_Unknown = 2 }
 State of the solid freedom. More...
enum  MtRepositionMode {
  rep_FreeRotation, rep_FreeMoving, rep_MovingToPoint, rep_RotationAboutAxis,
 Variant of behavior for manipulating the underdetermined system of conjugations. More...


int AlignmentSign (GCM_alignment aVal)
 Get three-valued orientation {-1,0,+1}.
bool Orient (GCM_alignment aVal)
 Get two-valued orientation.
bool TangVariant (GCM_alignment aVal)
 Get two-valued variant of tangency.
bool TangSubVariant (GCM_alignment aVal)
 Get two-valued subvariant of tangency.
GCM_alignment AlignOption (bool axisOrient, bool tangOrient, bool tangSubvariant=false)
 Get code of alignment condition by three two-valued flags of orientation, variant and subvariant of tangency.
void NextSolution (GCM_alignment &)
 Get the next variant of alignment.
void PrevSolution (GCM_alignment &)
 Get the previous variant of alignment.
GCM_system GCM_CreateSystem (ItPositionManager *)
 Create a simple constraint system.
MtGeomVariant ItConstraintItem::GeomArgument (int geomN) const
int ItConstraintItem::Arity () const
 Number of geoms involved in the constraint.
void ItConstraintItem::GetParams (GCM_c_params &) const
ItGeomPtr ItConstraintItem::DependentGeom () const
 Dependent geom of type GCM_DEPENDENT, it is always first geom item.
template<typename _EnumType >
_EnumType MtParVariant::AsEnum () const
template<typename _EnumType >
bool MtParVariant::GetEnum (_EnumType &) const
bool MtParVariant::operator== (const MtParVariant &) const
GCM_alignment MtParVariant::AlignType () const
GCM_c_arg MtParVariant::CArg () const
 Give as an argument of constraint.
bool MtArgument::operator== (const ItGeom *) const
 Equality operator.

Functions for interactive manipulation of the constraint system

MtResultCode3D MtGeomSolver::PrepareReposition (ItGeom &rotGeom, const MbCartPoint3D &org, const MbVector3D &axis)
 Initialize mode of component rotation around a fixed point of axis.

Function of revolution surface.

MbAxis3D MbRevolutionSurface::GetAxis () const
 Rotation axis.

Enumeration Type Documentation


Fully-specified or fixed solid (zero degree of freedom).


Fully-specified or fixed solid (zero degree of freedom).


Underconstrained solid, i.e. having a degree of freedom.


No information about the degree of freedom.


Arbitrary reposition with predominant rotation.


Arbitrary reposition with predominant moving.


Shift in the plane of the screen dragging the cursor by the point.


Rotation around fixed axis.

Shift only one solid.

This mode have been intended for insertion processes of a new solid in the CAD assembly.

Function Documentation

GCM_system GCM_CreateSystem ( ItPositionManager )

The call creates an empty constraint system. Besides, there are created internal data structures of geometric solver maintaining the system of constraints. The function returns a special descriptor by which the constraint system is available for various manipulations: addition and deletion of geometric objects, constraints, variation of sizes, dragging underdetermined objects etc.

Descriptor of constraint system.
ItMateTransmission::GetAxis ( ) const

The axis is specified in LCS of the solid returned in function ItGeom * ItMateTransmission::GetDirectionGeom( short nb ) const

MtGeomSolver::PrepareReposition ( ItGeom g_item,
const MbCartPoint3D org,
const MbVector3D axis 
g_item- Component, part on which is directed at impact;
org,axis- Point and vector in the GCS which define constant axis of rotation;
Error code, enum #MtResultCode3D
The function runs once before running the rotation mode which is controlled by command int SolveReposition( double alpha ), where "alpha" - input parameter, defines the position of the component and given in radians. Mode is stopped by calling any other command except for these two. There is the special function to exit this mode - void FinishReposition().
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines