OpenLexocad  27.1
OpenLxApp::Product Class Reference

The Product is an abstract representation of any object that relates to a geometric or spatial context. Subtypes of Product usually hold a shape representation and an object placement within the project structure. More...

#include <Product.h>

Inheritance diagram for OpenLxApp::Product:
OpenLxApp::Object Core::DocObjectObserver OpenLxApp::ObjectDefinition OpenLxApp::Root OpenLxApp::DocObject OpenLxApp::Element OpenLxApp::SpatialElement OpenLxApp::Beam OpenLxApp::BuildingElementProxy OpenLxApp::Chimney OpenLxApp::Column OpenLxApp::Covering OpenLxApp::CurtainWall OpenLxApp::DiscreteAccessory OpenLxApp::Door OpenLxApp::ElementAssembly OpenLxApp::Footing OpenLxApp::Member OpenLxApp::OpeningElement OpenLxApp::Pile OpenLxApp::PipeSegment OpenLxApp::Plate OpenLxApp::Railing OpenLxApp::Ramp OpenLxApp::RampFlight OpenLxApp::ReinforcingBar OpenLxApp::Roof OpenLxApp::Slab OpenLxApp::Stair OpenLxApp::StairFlight OpenLxApp::TerrainElement OpenLxApp::Wall OpenLxApp::Window OpenLxApp::ExternalSpatialStructureElement OpenLxApp::SpatialStructureElement OpenLxApp::SpatialZone

Public Member Functions

virtual ~Product (void)
 
Representation
virtual bool setGeometry (std::shared_ptr< Geometry > geo)
 
std::shared_ptr< GeometrygetGeometry () const
 
Geom::Trsf getGeometryToWorldTransform () const
 
Geom::Bnd_Box getBoundingBox () const
 
Placement
Geom::Ax2 getLocalPlacement () const
 
void setLocalPlacement (const Geom::Ax2 &pos)
 
Geom::Trsf getTransform () const
 
Geom::Trsf getLocalToWorldTransform () const
 
void setTransform (const Geom::Trsf &t)
 
void translate (const Geom::Vec &aVec, Geom::CoordSpace aCoordSpace=Geom::CoordSpace::WCS)
 
void rotate (const Geom::Ax1 &axis, double angle, Geom::CoordSpace aCoordSpace=Geom::CoordSpace::WCS)
 
bool getLocalAxes (Geom::Ax2 &localAxes)
 
void setLocalAxes (const Geom::Dir &zHeight, const Geom::Dir &xLength)
 
Topology
pConstShape getShape () const
 
pConstShape getLocalShape () const
 
Rendering
void setOglMaterial (const Draw::OglMaterial &mat, int faceIndex=-1)
 
Draw::OglMaterial getOglMaterial () const
 
void setAmbientColor (const Base::Color &aCol)
 
void setDiffuseColor (const Base::Color &aCol)
 
void setSpecularColor (const Base::Color &aCol)
 
void setEmissiveColor (const Base::Color &aCol)
 
void setReflectiveColor (const Base::Color &aCol)
 
void setShininess (int aVal)
 
void setTransparency (int aVal)
 
void setDrawStyle (const Draw::DrawStyle &ds)
 
Draw::DrawStyle getDrawStyle () const
 
void setLineWidth (float width)
 
void setTexture (const Draw::Texture2 &tex, int faceIndex=-1)
 
void setLengthAndCrossTexture (const Draw::Texture2 &lengthTexture, const Draw::Texture2 &crossTexture, const Draw::Texture2Transform &lengthTextureTrsf=Draw::Texture2Transform(), const Draw::Texture2Transform &crossTextureTrsf=Draw::Texture2Transform())
 
Spatial Structure
std::shared_ptr< SpatialStructureElementgetSpatialStructure () const
 
void setSpatialStructure (std::shared_ptr< SpatialStructureElement > aSpatialStructureElement)
 
Attributes
void setPositionNb (long value)
 
long getPositionNb () const
 
bool isVisible () const
 
void setVisible (bool onoff)
 
Python
bool registerPythonClass (const std::string &aClassName, const std::string &aParentClassName)
 
virtual Base::GlobalId getGlobalClassId () const
 
Developer Properties
std::shared_ptr< PropertyIntegerregisterPropertyInteger (const std::string &aName, int aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyEnumregisterPropertyEnum (const std::string &aName, int aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyDoubleregisterPropertyDouble (const std::string &aName, double aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyButtonregisterPropertyButton (const std::string &aName, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyBoolregisterPropertyBool (const std::string &aName, bool aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyStringregisterPropertyString (const std::string &aName, Base::String aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyColorregisterPropertyColor (const std::string &aName, Base::Color aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< OpenLxApp::PropertygetProperty (const std::string &aName) const
 
std::map< std::string, std::shared_ptr< Property > > getPropertyMap () const
 
std::shared_ptr< PropertyIntegergetPropertyInteger (const std::string &aName) const
 
std::shared_ptr< PropertyEnumgetPropertyEnum (const std::string &aName) const
 
std::shared_ptr< PropertyDoublegetPropertyDouble (const std::string &aName) const
 
std::shared_ptr< PropertyButtongetPropertyButton (const std::string &aName) const
 
std::shared_ptr< PropertyBoolgetPropertyBool (const std::string &aName) const
 
std::shared_ptr< PropertyStringgetPropertyString (const std::string &aName) const
 
std::shared_ptr< PropertyColorgetPropertyColor (const std::string &aName) const
 
bool isRegisteredProperty (const std::string &aName) const
 
virtual void onPropertyChanged (const std::string &aPropertyName)
 
virtual void onScaling (const Geom::Vec &aVec, const Geom::Pnt &aScaleBasePnt)
 
virtual void translateAfterScaled (const Geom::Vec &aVec, const Geom::Pnt &aScaleBasePnt)
 
void setStandardManipulatorPolicy (const Core::StandardManipulatorPolicy &aPolicy)
 
void setPropertyHeader (const Base::String &aDefaultName, int aTranslationId)
 
void setPropertyHeader (const Base::String &aDefaultName)
 
void setPropertyGroupName (const Base::String &aDefaultName, int aTranslationId)
 
void setPropertyGroupName (const Base::String &aDefaultName)
 
Base::String getPropertyHeader () const
 
Base::String getPropertyGroupName () const
 
Lexocad User Properties and PropertySets
std::shared_ptr< PropertyUsergetPropertyUser (const std::string &aName) const
 
std::vector< std::shared_ptr< PropertyUser > > getPropertyUser () const
 
std::vector< Base::StringgetPropertySetNames () const
 
std::shared_ptr< PropertySetgetPropertySetByName (const Base::String &aName) const
 
Deprecated
ExternalPythonTypeObjectgetExternalPythonTypeObject () const
 
void setExternalPythonTypeObject (ExternalPythonTypeObject *aObj)
 
void removeExternalTypeObject ()
 
- Public Member Functions inherited from OpenLxApp::Object
virtual ~Object (void)
 
- Public Member Functions inherited from OpenLxApp::ObjectDefinition
virtual ~ObjectDefinition (void)
 
std::vector< std::shared_ptr< ObjectDefinition > > getDecompositionObjects () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllDecompositionObjects () const
 
std::shared_ptr< ObjectDefinitiongetDecomposedObject () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllDecomposedObjects () const
 
void addAggregationObject (std::shared_ptr< ObjectDefinition > aObject)
 
void addAggregationObjects (const std::vector< std::shared_ptr< ObjectDefinition >> &aObjects)
 
void removeAggregationObject (std::shared_ptr< ObjectDefinition > aObject)
 
void removeAggregationObjects ()
 
std::vector< std::shared_ptr< ObjectDefinition > > getAggregationObjects () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllAggregationObjects () const
 
std::shared_ptr< ObjectDefinitiongetAggregatedObject () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllAggregatedObjects () const
 
void addAssociationObject (std::shared_ptr< Root > aObject)
 
std::vector< std::shared_ptr< Root > > getAssociationObjects () const
 
std::shared_ptr< LxIfcBase::LxIfcProperty > getIfcPropertySets () const
 
- Public Member Functions inherited from OpenLxApp::Root
void setUserName (const Base::String &aName)
 
Base::String getUserName () const
 
virtual ~Root (void)
 
Base::GlobalId getGlobalId () const
 
bool setGlobalId (const Base::GlobalId &aGlobalId)
 
- Public Member Functions inherited from OpenLxApp::DocObject
std::shared_ptr< DocumentgetDocument () const
 
bool isNew () const
 
bool isUpdated () const
 
bool isValid () const
 
bool hasErrors () const
 
void touch ()
 
LxIfc4::LxIfc4EntityEnum getEntityType () const
 
std::string getEntityTypeAsString () const
 
std::shared_ptr< Core::DbgInfogetDbgInfo () const
 
 DocObject (Core::DocObject *aObject)
 
virtual ~DocObject (void)
 
Core::DocObject__getObj__ () const
 
- Public Member Functions inherited from Core::DocObjectObserver
virtual ~DocObjectObserver ()
 

Protected Member Functions

void onChange (Core::DocObject *aCaller, const Core::DocObjectObserverMsg &aReason) override
 
 Product ()
 
- Protected Member Functions inherited from OpenLxApp::Object
 Object ()
 
- Protected Member Functions inherited from OpenLxApp::ObjectDefinition
 ObjectDefinition ()
 
- Protected Member Functions inherited from OpenLxApp::Root
 Root ()
 
- Protected Member Functions inherited from OpenLxApp::DocObject
 DocObject ()
 

Additional Inherited Members

- Protected Attributes inherited from OpenLxApp::DocObject
Core::DocObject_coreObj = nullptr
 

Detailed Description

The Product is an abstract representation of any object that relates to a geometric or spatial context. Subtypes of Product usually hold a shape representation and an object placement within the project structure.

Constructor & Destructor Documentation

◆ ~Product()

virtual OpenLxApp::Product::~Product ( void  )
virtual

◆ Product()

OpenLxApp::Product::Product ( )
protected

Member Function Documentation

◆ getBoundingBox()

Geom::Bnd_Box OpenLxApp::Product::getBoundingBox ( ) const

◆ getDrawStyle()

Draw::DrawStyle OpenLxApp::Product::getDrawStyle ( ) const

◆ getExternalPythonTypeObject()

ExternalPythonTypeObject* OpenLxApp::Product::getExternalPythonTypeObject ( ) const

◆ getGeometry()

std::shared_ptr<Geometry> OpenLxApp::Product::getGeometry ( ) const

◆ getGeometryToWorldTransform()

Geom::Trsf OpenLxApp::Product::getGeometryToWorldTransform ( ) const

◆ getGlobalClassId()

virtual Base::GlobalId OpenLxApp::Product::getGlobalClassId ( ) const
virtual

◆ getLocalAxes()

bool OpenLxApp::Product::getLocalAxes ( Geom::Ax2 localAxes)

◆ getLocalPlacement()

Geom::Ax2 OpenLxApp::Product::getLocalPlacement ( ) const

◆ getLocalShape()

pConstShape OpenLxApp::Product::getLocalShape ( ) const

◆ getLocalToWorldTransform()

Geom::Trsf OpenLxApp::Product::getLocalToWorldTransform ( ) const

◆ getOglMaterial()

Draw::OglMaterial OpenLxApp::Product::getOglMaterial ( ) const

◆ getPositionNb()

long OpenLxApp::Product::getPositionNb ( ) const

◆ getProperty()

std::shared_ptr<OpenLxApp::Property> OpenLxApp::Product::getProperty ( const std::string &  aName) const

◆ getPropertyBool()

std::shared_ptr<PropertyBool> OpenLxApp::Product::getPropertyBool ( const std::string &  aName) const

◆ getPropertyButton()

std::shared_ptr<PropertyButton> OpenLxApp::Product::getPropertyButton ( const std::string &  aName) const

◆ getPropertyColor()

std::shared_ptr<PropertyColor> OpenLxApp::Product::getPropertyColor ( const std::string &  aName) const

◆ getPropertyDouble()

std::shared_ptr<PropertyDouble> OpenLxApp::Product::getPropertyDouble ( const std::string &  aName) const

◆ getPropertyEnum()

std::shared_ptr<PropertyEnum> OpenLxApp::Product::getPropertyEnum ( const std::string &  aName) const

◆ getPropertyGroupName()

Base::String OpenLxApp::Product::getPropertyGroupName ( ) const

◆ getPropertyHeader()

Base::String OpenLxApp::Product::getPropertyHeader ( ) const

◆ getPropertyInteger()

std::shared_ptr<PropertyInteger> OpenLxApp::Product::getPropertyInteger ( const std::string &  aName) const

◆ getPropertyMap()

std::map<std::string, std::shared_ptr<Property> > OpenLxApp::Product::getPropertyMap ( ) const

◆ getPropertySetByName()

std::shared_ptr<PropertySet> OpenLxApp::Product::getPropertySetByName ( const Base::String aName) const

◆ getPropertySetNames()

std::vector<Base::String> OpenLxApp::Product::getPropertySetNames ( ) const

◆ getPropertyString()

std::shared_ptr<PropertyString> OpenLxApp::Product::getPropertyString ( const std::string &  aName) const

◆ getPropertyUser() [1/2]

std::shared_ptr<PropertyUser> OpenLxApp::Product::getPropertyUser ( const std::string &  aName) const

◆ getPropertyUser() [2/2]

std::vector<std::shared_ptr<PropertyUser> > OpenLxApp::Product::getPropertyUser ( ) const

◆ getShape()

pConstShape OpenLxApp::Product::getShape ( ) const

◆ getSpatialStructure()

std::shared_ptr<SpatialStructureElement> OpenLxApp::Product::getSpatialStructure ( ) const

◆ getTransform()

Geom::Trsf OpenLxApp::Product::getTransform ( ) const

◆ isRegisteredProperty()

bool OpenLxApp::Product::isRegisteredProperty ( const std::string &  aName) const

◆ isVisible()

bool OpenLxApp::Product::isVisible ( ) const

◆ onChange()

void OpenLxApp::Product::onChange ( Core::DocObject aCaller,
const Core::DocObjectObserverMsg aReason 
)
overrideprotectedvirtual

Reimplemented from Core::DocObjectObserver.

◆ onPropertyChanged()

virtual void OpenLxApp::Product::onPropertyChanged ( const std::string &  aPropertyName)
virtual

◆ onScaling()

virtual void OpenLxApp::Product::onScaling ( const Geom::Vec aVec,
const Geom::Pnt aScaleBasePnt 
)
virtual

◆ registerPropertyBool()

std::shared_ptr<PropertyBool> OpenLxApp::Product::registerPropertyBool ( const std::string &  aName,
bool  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyButton()

std::shared_ptr<PropertyButton> OpenLxApp::Product::registerPropertyButton ( const std::string &  aName,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyColor()

std::shared_ptr<PropertyColor> OpenLxApp::Product::registerPropertyColor ( const std::string &  aName,
Base::Color  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyDouble()

std::shared_ptr<PropertyDouble> OpenLxApp::Product::registerPropertyDouble ( const std::string &  aName,
double  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyEnum()

std::shared_ptr<PropertyEnum> OpenLxApp::Product::registerPropertyEnum ( const std::string &  aName,
int  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyInteger()

std::shared_ptr<PropertyInteger> OpenLxApp::Product::registerPropertyInteger ( const std::string &  aName,
int  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPropertyString()

std::shared_ptr<PropertyString> OpenLxApp::Product::registerPropertyString ( const std::string &  aName,
Base::String  aDefaultValue,
Property::Visible  aVisible = Property::VISIBLE,
Property::Editable  aEditable = Property::EDITABLE,
int  aTranslationId = -1 
)

◆ registerPythonClass()

bool OpenLxApp::Product::registerPythonClass ( const std::string &  aClassName,
const std::string &  aParentClassName 
)

◆ removeExternalTypeObject()

void OpenLxApp::Product::removeExternalTypeObject ( )

◆ rotate()

void OpenLxApp::Product::rotate ( const Geom::Ax1 axis,
double  angle,
Geom::CoordSpace  aCoordSpace = Geom::CoordSpace::WCS 
)

◆ setAmbientColor()

void OpenLxApp::Product::setAmbientColor ( const Base::Color aCol)

◆ setDiffuseColor()

void OpenLxApp::Product::setDiffuseColor ( const Base::Color aCol)

◆ setDrawStyle()

void OpenLxApp::Product::setDrawStyle ( const Draw::DrawStyle &  ds)

◆ setEmissiveColor()

void OpenLxApp::Product::setEmissiveColor ( const Base::Color aCol)

◆ setExternalPythonTypeObject()

void OpenLxApp::Product::setExternalPythonTypeObject ( ExternalPythonTypeObject aObj)

◆ setGeometry()

virtual bool OpenLxApp::Product::setGeometry ( std::shared_ptr< Geometry geo)
virtual

◆ setLengthAndCrossTexture()

void OpenLxApp::Product::setLengthAndCrossTexture ( const Draw::Texture2 &  lengthTexture,
const Draw::Texture2 &  crossTexture,
const Draw::Texture2Transform &  lengthTextureTrsf = Draw::Texture2Transform(),
const Draw::Texture2Transform &  crossTextureTrsf = Draw::Texture2Transform() 
)

◆ setLineWidth()

void OpenLxApp::Product::setLineWidth ( float  width)

◆ setLocalAxes()

void OpenLxApp::Product::setLocalAxes ( const Geom::Dir zHeight,
const Geom::Dir xLength 
)

◆ setLocalPlacement()

void OpenLxApp::Product::setLocalPlacement ( const Geom::Ax2 pos)

◆ setOglMaterial()

void OpenLxApp::Product::setOglMaterial ( const Draw::OglMaterial &  mat,
int  faceIndex = -1 
)

◆ setPositionNb()

void OpenLxApp::Product::setPositionNb ( long  value)

◆ setPropertyGroupName() [1/2]

void OpenLxApp::Product::setPropertyGroupName ( const Base::String aDefaultName,
int  aTranslationId 
)

◆ setPropertyGroupName() [2/2]

void OpenLxApp::Product::setPropertyGroupName ( const Base::String aDefaultName)

◆ setPropertyHeader() [1/2]

void OpenLxApp::Product::setPropertyHeader ( const Base::String aDefaultName,
int  aTranslationId 
)

◆ setPropertyHeader() [2/2]

void OpenLxApp::Product::setPropertyHeader ( const Base::String aDefaultName)

◆ setReflectiveColor()

void OpenLxApp::Product::setReflectiveColor ( const Base::Color aCol)

◆ setShininess()

void OpenLxApp::Product::setShininess ( int  aVal)

◆ setSpatialStructure()

void OpenLxApp::Product::setSpatialStructure ( std::shared_ptr< SpatialStructureElement aSpatialStructureElement)

◆ setSpecularColor()

void OpenLxApp::Product::setSpecularColor ( const Base::Color aCol)

◆ setStandardManipulatorPolicy()

void OpenLxApp::Product::setStandardManipulatorPolicy ( const Core::StandardManipulatorPolicy aPolicy)

◆ setTexture()

void OpenLxApp::Product::setTexture ( const Draw::Texture2 &  tex,
int  faceIndex = -1 
)

◆ setTransform()

void OpenLxApp::Product::setTransform ( const Geom::Trsf t)

◆ setTransparency()

void OpenLxApp::Product::setTransparency ( int  aVal)

◆ setVisible()

void OpenLxApp::Product::setVisible ( bool  onoff)

◆ translate()

void OpenLxApp::Product::translate ( const Geom::Vec aVec,
Geom::CoordSpace  aCoordSpace = Geom::CoordSpace::WCS 
)

◆ translateAfterScaled()

virtual void OpenLxApp::Product::translateAfterScaled ( const Geom::Vec aVec,
const Geom::Pnt aScaleBasePnt 
)
virtual

The documentation for this class was generated from the following file: