FreeCAD C++
Public Member Functions | Static Public Member Functions | List of all members
App::GeoFeatureGroupExtension Class Reference

#include <App/GeoFeatureGroupExtension.h>

Detailed Description

The base class for placeable group of DocumentObjects. It represents a local coordnate system.

This class is the FreeCAD way of representing local coordinate systems. It groups its children beneath it and transforms them all with the GeoFeatureGroup placement. A few important properties:

Public Member Functions

virtual void transformPlacement (const Base::Placement &transform)
 transformPlacement applies transform to placement of this shape. Override this function to propagate the change of placement to base features. More...
 
 GeoFeatureGroupExtension (void)
 Constructor.
 
Base::Placement globalGroupPlacement ()
 Calculates the global placement of this group. More...
 

Static Public Member Functions

static DocumentObjectgetGroupOfObject (const DocumentObject *obj)
 
static bool isNonGeoGroup (const DocumentObject *obj)
 Returns true if the given DocumentObject is DocumentObjectGroup but not GeoFeatureGroup.
 
static std::vector< App::DocumentObject * > getCSRelevantLinks (const App::DocumentObject *obj)
 
static bool areLinksValid (const App::DocumentObject *obj)
 
static bool isLinkValid (App::Property *link)
 

Member Function Documentation

◆ areLinksValid()

static bool App::GeoFeatureGroupExtension::areLinksValid ( const App::DocumentObject obj)
static

Checks if the links of the given object comply with all GeoFeatureGroup requirements, that means if normal links are only within the parent GeoFeatureGroup.

◆ getCSRelevantLinks()

static std::vector<App::DocumentObject*> App::GeoFeatureGroupExtension::getCSRelevantLinks ( const App::DocumentObject obj)
static

Collects all links that are relevant for the coordinate system, meaning all recursive links to obj and from obj excluding expressions and stopping the recursion at other geofeaturegroups. The result is the combination of CSOutList and CSInList.

◆ getGroupOfObject()

static DocumentObject* App::GeoFeatureGroupExtension::getGroupOfObject ( const DocumentObject obj)
static

Returns the geo feature group which contains this object. In case this object is not part of any geoFeatureGroup 0 is returned. Unlike DocumentObjectGroup::getGroupOfObject serches only for GeoFeatureGroups

Parameters
objthe object to search for

◆ globalGroupPlacement()

Base::Placement App::GeoFeatureGroupExtension::globalGroupPlacement ( )

Calculates the global placement of this group.

The returned placement describes the transformation from the global reference coordinate system to the local coordinate system of this geo feature group. If this group has a no parent GeoFeatureGroup the returned placement is the one of this group. For multiple stacked GeoFeatureGroups the returned Placement is the combination of all parent placements including the one of this group.

Returns
Base::Placement The transformation from global reference system to the groups local system

◆ isLinkValid()

static bool App::GeoFeatureGroupExtension::isLinkValid ( App::Property link)
static

Checks if the given link complies with all GeoFeatureGroup requirements, that means if normal links are only within the parent GeoFeatureGroup.

◆ transformPlacement()

virtual void App::GeoFeatureGroupExtension::transformPlacement ( const Base::Placement transform)
virtual

transformPlacement applies transform to placement of this shape. Override this function to propagate the change of placement to base features.

Parameters
transform(input).