Hide menu
Loading...
Searching...
No Matches
exploring/pmi/main.cxx

Refer to the PMI Example.

// ****************************************************************************
// $Id$
//
// Copyright (C) 2008-2014, Roman Lygin. All rights reserved.
// Copyright (C) 2014-2025, CADEX. All rights reserved.
//
// This file is part of the Manufacturing Toolkit software.
//
// You may use this file under the terms of the BSD license as follows:
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ****************************************************************************
#include <cadex/LicenseManager_Activate.h>
#include <cadex/ModelData/Assembly.hxx>
#include <cadex/ModelData/Instance.hxx>
#include <cadex/ModelData/Model.hxx>
#include <cadex/ModelData/ModelReader.hxx>
#include <cadex/ModelData/ModelReaderParameters.hxx>
#include <cadex/ModelData/Part.hxx>
#include <cadex/PMI/Data.hxx>
#include <cadex/PMI/Element.hxx>
#include <cadex/PMI/GraphicalComponent.hxx>
#include <cadex/PMI/GraphicalComponentVisitor.hxx>
#include <cadex/PMI/OutlineVisitor.hxx>
#include <cadex/PMI/SemanticAttribute.hxx>
#include <cadex/PMI/SemanticAttributeVisitor.hxx>
#include <cadex/PMI/SemanticComponent.hxx>
#include <cadex/PMI/SemanticComponentVisitor.hxx>
#include <iostream>
#include "../../mtk_license.cxx"
using namespace cadex;
using namespace std;
class TabulatedOutput
{
public:
template <typename T> std::ostream& operator<< (const T& theObject)
{
PrintTabulation();
cout << theObject;
return cout;
}
void IncreaseIndent()
{
++myNestingLevel;
}
void DecreaseIndent()
{
--myNestingLevel;
}
protected:
void PrintTabulation()
{
if (myNestingLevel <= 0) {
return;
}
// Emulate tabulation like tree.
for (int i = 0; i < myNestingLevel - 1; i++) {
if (i < 2 || i == 3) {
cout << "| ";
} else {
cout << " ";
}
}
cout << "|__";
if (myNestingLevel > 3) {
cout << " ";
}
}
int myNestingLevel = 0;
};
static TabulatedOutput theOutput;
class PMISemanticAttributeVisitor : public PMI::SemanticAttributeVisitor
{
public:
void operator() (const PMI::ModifierAttribute& theAttribute) override
{
theOutput << "Modifier: " << theAttribute.Modifier() << endl;
}
void operator() (const PMI::ModifierWithValueAttribute& theAttribute) override
{
theOutput << "ModifierWithValue: modifier=" << theAttribute.Modifier() << ", value=" << theAttribute.Value()
<< endl;
}
void operator() (const PMI::QualifierAttribute& theAttribute) override
{
theOutput << "Qualifier: " << theAttribute.Qualifier() << endl;
}
void operator() (const PMI::PlusMinusBoundsAttribute& theAttribute) override
{
theOutput << "PlusMinusBounds: (" << theAttribute.LowerBound() << ", " << theAttribute.UpperBound() << ")"
<< endl;
}
void operator() (const PMI::RangeAttribute& theAttribute) override
{
theOutput << "Range: (" << theAttribute.LowerLimit() << ", " << theAttribute.UpperLimit() << ")" << endl;
}
void operator() (const PMI::LimitsAndFitsAttribute& theAttribute) override
{
theOutput << "LimitsAndFits: value=" << theAttribute.Value() << ", type=" << theAttribute.Type() << endl;
}
void operator() (const PMI::DatumTargetAttribute& theAttribute) override
{
theOutput << "DatumTarget: index=" << theAttribute.Index() << ", description=" << theAttribute.Description()
<< endl;
}
void operator() (const PMI::DatumRefAttribute& theAttribute) override
{
theOutput << "DatumRef: precedence=" << theAttribute.Precedence()
<< ", targetLabel=" << theAttribute.TargetLabel() << endl;
}
void operator() (const PMI::DatumRefCompartmentAttribute& theAttribute) override
{
theOutput << "DatumRefCompartment:" << endl;
theOutput.IncreaseIndent();
const size_t aNumberOfReferences = theAttribute.NumberOfReferences();
if (aNumberOfReferences > 0) {
theOutput << "References:" << endl;
theOutput.IncreaseIndent();
for (size_t i = 0; i < aNumberOfReferences; i++) {
theAttribute.Reference (i).Accept (*this);
}
theOutput.DecreaseIndent();
}
const size_t aNumberOfModifierAttributes = theAttribute.NumberOfModifierAttributes();
if (aNumberOfModifierAttributes > 0) {
theOutput << "Modifiers:" << endl;
theOutput.IncreaseIndent();
for (size_t i = 0; i < aNumberOfModifierAttributes; i++) {
theAttribute.ModifierAttribute (i).Accept (*this);
}
theOutput.DecreaseIndent();
}
theOutput.DecreaseIndent();
}
void operator() (const PMI::MaximumValueAttribute& theAttribute) override
{
theOutput << "MaximumValue: " << theAttribute.MaxValue() << endl;
}
void operator() (const PMI::DisplacementAttribute& theAttribute) override
{
theOutput << "Displacement: " << theAttribute.Displacement() << endl;
}
void operator() (const PMI::LengthUnitAttribute& theAttribute) override
{
theOutput << "LengthUnit: " << static_cast<int> (theAttribute.Unit()) << endl;
}
void operator() (const PMI::AngleUnitAttribute& theAttribute) override
{
theOutput << "AngleUnit: " << static_cast<int> (theAttribute.Unit()) << endl;
}
void operator() (const PMI::MachiningAllowanceAttribute& theAttribute) override
{
theOutput << "Machining allowance" << endl;
theOutput.IncreaseIndent();
theOutput << "Value: " << theAttribute.Value() << endl;
theOutput << "Upper bound: " << theAttribute.UpperBound() << endl;
theOutput << "Lower bound: " << theAttribute.LowerBound() << endl;
theOutput.DecreaseIndent();
}
void operator() (const PMI::SurfaceTextureRequirementAttribute& theAttribute) override
{
theOutput << "Surface texture requirement #" << theAttribute.Precedence() << endl;
theOutput.IncreaseIndent();
theOutput << "Specification limit: " << static_cast<int> (theAttribute.SpecificationLimit()) << endl;
theOutput << "Filter name: " << theAttribute.FilterName() << endl;
theOutput << "Short wave filter: " << theAttribute.ShortWaveFilter() << endl;
theOutput << "Long wave filter: " << theAttribute.LongWaveFilter() << endl;
theOutput << "Surface parameter: " << static_cast<int> (theAttribute.SurfaceParameter()) << endl;
theOutput << "Evaluation length: " << theAttribute.EvaluationLength() << endl;
theOutput << "Comparison rule: " << static_cast<int> (theAttribute.ComparisonRule()) << endl;
theOutput << "Limit value: " << theAttribute.LimitValue() << endl;
theOutput.DecreaseIndent();
}
};
class PMISemanticVisitor : public PMI::SemanticComponentVisitor
{
public:
void operator() (const PMI::DatumComponent& theComponent) override
{
theOutput << "Datum" << endl;
theOutput.IncreaseIndent();
theOutput << "Label: " << theComponent.Label() << endl;
printAttributes (theComponent);
theOutput.DecreaseIndent();
}
void operator() (const PMI::DimensionComponent& theComponent) override
{
theOutput << "Dimension" << endl;
theOutput.IncreaseIndent();
theOutput << "Nominal Value: " << theComponent.NominalValue() << endl;
theOutput << "Type of dimension: " << static_cast<int> (theComponent.TypeOfDimension()) << endl;
printAttributes (theComponent);
theOutput.DecreaseIndent();
}
void operator() (const PMI::GeometricToleranceComponent& theComponent) override
{
theOutput << "Geometric tolerance" << endl;
theOutput.IncreaseIndent();
theOutput << "Magnitude: " << theComponent.Magnitude() << endl;
theOutput << "Type of tolerance: " << static_cast<int> (theComponent.TypeOfTolerance()) << endl;
theOutput << "Tolerance zone form: " << static_cast<int> (theComponent.ToleranceZoneForm()) << endl;
printAttributes (theComponent);
theOutput.DecreaseIndent();
}
void operator() (const PMI::SurfaceFinishComponent& theComponent) override
{
theOutput << "Surface Finish" << endl;
theOutput.IncreaseIndent();
theOutput << "Material removal: " << static_cast<int> (theComponent.MaterialRemoval()) << endl;
theOutput << "Lay direction: " << static_cast<int> (theComponent.LayDirection()) << endl;
theOutput << "All around flag: " << theComponent.IsAllAround() << endl;
theOutput << "Manufacturing method: " << theComponent.ManufacturingMethod() << endl;
printAttributes (theComponent);
theOutput.DecreaseIndent();
}
void printAttributes (const PMI::SemanticComponent& theComponent)
{
if (theComponent.HasAttributes()) {
PMISemanticAttributeVisitor aVisitor;
theComponent.Accept (aVisitor);
}
}
};
class PMIOutlineVisitor : public PMI::OutlineVisitor
{
public:
void operator() (const PMI::PolyOutline& theOutline) override
{
theOutput << "PolyLine set [" << theOutline.LineSet().NumberOfPolylines() << " polylines]" << endl;
}
void operator() (const PMI::Poly2dOutline& theOutline) override
{
theOutput << "PolyLine2d set [" << theOutline.LineSet().NumberOfPolylines() << " polylines]" << endl;
}
void operator() (const PMI::CurveOutline& theOutline) override
{
theOutput << "Curve set [" << theOutline.NumberOfCurves() << " curves]" << endl;
}
void operator() (const PMI::Curve2dOutline& theOutline) override
{
theOutput << "Curve2d set [" << theOutline.NumberOfCurves() << " curves]" << endl;
}
bool VisitEnter (const PMI::CompositeOutline& /*theOutline*/) override
{
theOutput << "Outline set:" << endl;
theOutput.IncreaseIndent();
return true;
}
void VisitLeave (const PMI::CompositeOutline& /*theOutline*/) override
{
theOutput.DecreaseIndent();
}
};
class PMIGraphicalVisitor : public PMI::GraphicalComponentVisitor
{
public:
void operator() (const PMI::OutlinedComponent& theComponent) override
{
theOutput << "Outline" << endl;
theOutput.IncreaseIndent();
PMIOutlineVisitor aVisitor;
theComponent.Outline().Accept (aVisitor);
theOutput.DecreaseIndent();
}
void operator() (const PMI::TextComponent& theComponent) override
{
theOutput << "Text [" << theComponent.Text() << "]" << endl;
}
void operator() (const PMI::TriangulatedComponent& theComponent) override
{
theOutput << "Triangulation [" << theComponent.TriangleSet().NumberOfTriangles() << " triangles]" << endl;
}
};
class SceneGraphVisitor : public ModelData::ModelElementVisitor
{
public:
void operator() (const ModelData::Part& thePart) override
{
PrintName ("Part", thePart.Name());
ExplorePMI (thePart);
}
bool VisitEnter (const ModelData::Instance& theInstance) override
{
theOutput.IncreaseIndent();
PrintName ("Instance", theInstance.Name());
ExplorePMI (theInstance);
return true;
}
bool VisitEnter (const ModelData::Assembly& theAssembly) override
{
theOutput.IncreaseIndent();
PrintName ("Assembly", theAssembly.Name());
ExplorePMI (theAssembly);
return true;
}
void VisitLeave (const ModelData::Instance& /*theInstance*/) override
{
theOutput.DecreaseIndent();
}
void VisitLeave (const ModelData::Assembly& /*theAssembly*/) override
{
theOutput.DecreaseIndent();
}
private:
void ExplorePMI (ModelData::ModelElement theSGE)
{
PMI::Data aPMIData = theSGE.PMI();
if (aPMIData) {
theOutput << "PMI Data:" << endl;
theOutput.IncreaseIndent();
for (const auto& anElement : aPMIData.Elements()) {
theOutput << "PMI Element: " << anElement.Name() << endl;
theOutput.IncreaseIndent();
PMI::SemanticRepresentation aSemanticRepresentation = anElement.SemanticRepresentation();
if (aSemanticRepresentation) {
theOutput << "Semantic Representation:" << endl;
theOutput.IncreaseIndent();
PMISemanticVisitor aVisitor;
aSemanticRepresentation.Accept (aVisitor);
theOutput.DecreaseIndent();
}
PMI::GraphicalRepresentation aGraphicalRepresentation = anElement.GraphicalRepresentation();
if (aGraphicalRepresentation) {
theOutput << "Graphical Representation:" << endl;
theOutput.IncreaseIndent();
PMIGraphicalVisitor aVisitor;
aGraphicalRepresentation.Accept (aVisitor);
theOutput.DecreaseIndent();
}
theOutput.DecreaseIndent();
}
theOutput.DecreaseIndent();
}
}
void PrintName (string theSGElement, UTF16String theName)
{
if (!theName.IsEmpty()) {
theOutput << theSGElement << ": " << theName << endl;
} else {
theOutput << theSGElement << ": <noname>" << endl;
}
}
};
int main (int argc, char* argv[])
{
auto aKey = MTKLicenseKey::Value();
// Activate the license (aKey must be defined in mtk_license.cxx)
if (!CADExLicense_Activate (aKey)) {
cerr << "Failed to activate Manufacturing Toolkit license." << endl;
return 1;
}
if (argc != 2) {
cerr << "Usage: " << argv[0] << " <input_file>, where:" << endl;
cerr << " <input_file> is a name of the file to be read" << endl;
return 1;
}
const char* aSource = argv[1];
// Set parameters to read PMI
aParameters.SetReadPMI (true);
aReader.SetParameters (aParameters);
// Reading the file
if (!aReader.Read (aSource, aModel)) {
cerr << "Failed to read the file " << aSource << endl;
return 1;
}
cout << "Model: " << aModel.Name() << "\n" << endl;
// processing
SceneGraphVisitor aVisitor;
aModel.Accept (aVisitor);
return 0;
}
Defines a group of model element.
Definition Assembly.hxx:33
size_t NumberOfTriangles() const
Returns a number of triangles.
Definition IndexedTriangleSet.cxx:326
Defines an occurrence of assembly or part in a scene graph.
Definition Instance.hxx:31
Base class for part, instance and assembly.
Definition ModelElement.hxx:38
PMI::Data PMI() const
Returns the object PMI.
Definition ModelElement.cxx:96
UTF16String Name() const
Returns a name.
Definition ModelElement.cxx:55
Defines a visitor of the scene graph elements.
Definition ModelElementVisitor.hxx:53
Provides MTK data model.
Definition Model.hxx:40
UTF16String Name() const
Returns a model name.
Definition Model.cxx:250
void Accept(ModelElementVisitor &theVisitor) const
Accepts a visitor.
Definition Model.cxx:270
Reads STEP and native format.
Definition ModelReader.hxx:31
void SetParameters(const ModelReaderParameters &theParameters)
Sets reader parameters.
Definition ModelReader.cxx:222
bool Read(const UTF16String &theFilePath, ModelData::Model &theModel)
Reads the file at the specified path into the specified model.
Definition ModelReader.cxx:248
Defines parameters of the ModelReader.
Definition ModelReaderParameters.hxx:29
void SetReadPMI(bool theReadPMI)
Specifies whether Product and Manufacturing Information (PMI) should be read from the file.
Definition ModelReaderParameters.cxx:66
Defines a leaf node in the scene graph hiearchy.
Definition Part.hxx:34
size_t NumberOfPolylines() const
Returns a number of polylines in polyline set.
Definition Polyline2dSet.cxx:70
size_t NumberOfPolylines() const
Returns a number of polylines in polyline set.
Definition PolylineSet.cxx:72
Defines an angle unit.
Definition SemanticAttribute.hxx:260
ModelData::AngleUnit Unit() const
Returns the unit.
Definition SemanticAttribute.cxx:639
Defines a collection of outlines.
Definition Outline.hxx:121
Defines an outline consist of 2d curves.
Definition Outline.hxx:102
size_t NumberOfCurves() const
Returns the number of the added curves.
Definition Outline.cxx:302
Defines an outline consist of curves.
Definition Outline.hxx:83
size_t NumberOfCurves() const
Returns the number of the added curves.
Definition Outline.cxx:231
Defines a container storing a PMI data.
Definition Data.hxx:36
Defines a component represented by a datum, datum feature symbol or datum target.
Definition SemanticComponent.hxx:147
UTF16String Label() const
Returns the label of the datum.
Definition SemanticComponent.cxx:300
Defines a datum reference.
Definition SemanticAttribute.hxx:172
size_t Precedence() const
Returns the precedence value.
Definition SemanticAttribute.cxx:420
const UTF16String & TargetLabel() const
Returns the target lable.
Definition SemanticAttribute.cxx:432
Defines a compartment of datum references or compartments.
Definition SemanticAttribute.hxx:191
size_t NumberOfReferences() const
Returns the number of the datum compartment references.
Definition SemanticAttribute.cxx:470
const PMI::ModifierAttribute & ModifierAttribute(size_t theIndex) const
Returns the specific modifier attribute.
Definition SemanticAttribute.cxx:494
size_t NumberOfModifierAttributes() const
Returns the number of the modifier attributes.
Definition SemanticAttribute.cxx:488
const SemanticAttribute & Reference(size_t theIndex) const
Returns the specific datum compartment reference.
Definition SemanticAttribute.cxx:476
Defines a datum target data.
Definition SemanticAttribute.hxx:153
size_t Index() const
Returns the index.
Definition SemanticAttribute.cxx:368
const UTF16String & Description() const
Returns the description.
Definition SemanticAttribute.cxx:380
Defines a component represented by a dimensional tolerance.
Definition SemanticComponent.hxx:54
double NominalValue() const
Returns the nominal value of the dimension.
Definition SemanticComponent.cxx:157
DimensionType TypeOfDimension() const
Returns the type of the dimension.
Definition SemanticComponent.cxx:173
Defines a displacement value for an unequally disposed geometric tolerance.
Definition SemanticAttribute.hxx:228
double Displacement() const
Returns the displacement value.
Definition SemanticAttribute.cxx:568
Defines a component represented by a geometric tolerance.
Definition SemanticComponent.hxx:91
double Magnitude() const
Returns the magnitude value of the tolerance.
Definition SemanticComponent.cxx:226
ToleranceZoneFormType ToleranceZoneForm() const
Returns the tolerance zone form.
Definition SemanticComponent.cxx:242
ToleranceType TypeOfTolerance() const
Returns the type of the tolerance.
Definition SemanticComponent.cxx:258
Defines a visitor of the components.
Definition GraphicalComponentVisitor.hxx:34
Defines a PMI graphical element.
Definition GraphicalRepresentation.hxx:34
Defines a length unit.
Definition SemanticAttribute.hxx:244
ModelData::LengthUnit Unit() const
Returns the unit.
Definition SemanticAttribute.cxx:604
Defines a kind of a tolerance class dimension.
Definition SemanticAttribute.hxx:134
const UTF16String & Value() const
Returns the value.
Definition SemanticAttribute.cxx:327
const UTF16String & Type() const
Returns the type.
Definition SemanticAttribute.cxx:315
Defines a machining allowance and its bound (deviations).
Definition SemanticAttribute.hxx:276
double Value() const
Returns the machining allowance value.
Definition SemanticAttribute.cxx:679
double UpperBound() const
Returns upper bound.
Definition SemanticAttribute.cxx:692
double LowerBound() const
Returns the lower bound.
Definition SemanticAttribute.cxx:705
Defines a maximum value.
Definition SemanticAttribute.hxx:212
double MaxValue() const
Returns the maximum value.
Definition SemanticAttribute.cxx:531
Defines a type of the modification.
Definition SemanticAttribute.hxx:48
Defines the type of the modification with additional value.
Definition SemanticAttribute.hxx:64
double Value() const
Returns the value.
Definition SemanticAttribute.cxx:138
Defines the visitor of the outline elements.
Definition OutlineVisitor.hxx:35
Defines a component represented by an outline.
Definition GraphicalComponent.hxx:50
PMI::Outline Outline() const
Returns the outline.
Definition GraphicalComponent.cxx:226
Defines a plus and minus bounds (deviations) of a tolerance.
Definition SemanticAttribute.hxx:96
double UpperBound() const
Returns the upper bound.
Definition SemanticAttribute.cxx:213
double LowerBound() const
Returns lower bound.
Definition SemanticAttribute.cxx:226
Defines an outline consist of 2d polylines.
Definition Outline.hxx:67
ModelData::Polyline2dSet LineSet() const
Returns the line set.
Definition Outline.cxx:184
Defines an outline consist of polylines.
Definition Outline.hxx:51
ModelData::PolylineSet LineSet() const
Returns the line set.
Definition Outline.cxx:141
Defines the type of a qualifier.
Definition SemanticAttribute.hxx:80
const UTF16String & Qualifier() const
Retruns the qualifier.
Definition SemanticAttribute.cxx:176
Defines the range of a value.
Definition SemanticAttribute.hxx:115
double UpperLimit() const
Returns the upper limit.
Definition SemanticAttribute.cxx:263
double LowerLimit() const
Returns the lower limit.
Definition SemanticAttribute.cxx:276
Defines a visitor of the attributes.
Definition SemanticAttributeVisitor.hxx:45
The base class for various component types.
Definition SemanticComponent.hxx:34
void Accept(SemanticAttributeVisitor &theVisitor) const
Accepts an attribute visitor.
Definition SemanticComponent.cxx:101
bool HasAttributes() const
Returns true if semantic attributes were added and false otherwise.
Definition SemanticComponent.cxx:70
Defines a visitor of the components.
Definition SemanticComponentVisitor.hxx:34
Defines a PMI semantic representation.
Definition SemanticRepresentation.hxx:32
void Accept(SemanticComponentVisitor &theVisitor) const
Accepts the visitor.
Definition SemanticRepresentation.cxx:119
Defines a component represented by a suface texture.
Definition SemanticComponent.hxx:159
LayDirectionType LayDirection() const
Returns the type of the lay direction.
Definition SemanticComponent.cxx:368
bool IsAllAround() const
Returns true if the same surface texture is required on all surfaces around a workpiece outline and f...
Definition SemanticComponent.cxx:383
MaterialRemovalType MaterialRemoval() const
Returns the type of the material removal.
Definition SemanticComponent.cxx:353
UTF16String ManufacturingMethod() const
Returns the manufacturing method.
Definition SemanticComponent.cxx:398
Defines a surface texture requirement.
Definition SemanticAttribute.hxx:299
double LongWaveFilter() const
Returns the long wave filter value.
Definition SemanticAttribute.cxx:821
SurfaceParameterType SurfaceParameter() const
Returns the surface parameter.
Definition SemanticAttribute.cxx:833
double LimitValue() const
Returns the limit value.
Definition SemanticAttribute.cxx:874
double EvaluationLength() const
Returns the evaluation length value.
Definition SemanticAttribute.cxx:846
size_t Precedence() const
Returns the precedence value.
Definition SemanticAttribute.cxx:769
SpecificationLimitType SpecificationLimit() const
Returns the specification limit.
Definition SemanticAttribute.cxx:782
ComparisonRuleType ComparisonRule() const
Returns the comparison rule.
Definition SemanticAttribute.cxx:859
const UTF16String & FilterName() const
Returns filter name.
Definition SemanticAttribute.cxx:795
double ShortWaveFilter() const
Returns short wave filter value.
Definition SemanticAttribute.cxx:808
Defines a component represented by text.
Definition GraphicalComponent.hxx:62
UTF16String Text() const
Returns the text component.
Definition GraphicalComponent.cxx:273
Defines a component represented by a triangulation.
Definition GraphicalComponent.hxx:86
ModelData::IndexedTriangleSet TriangleSet() const
Returns the triangle set.
Definition GraphicalComponent.cxx:388
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.hxx:30
bool IsEmpty() const
Returns true if the string is empty.
Definition UTF16String.cxx:336
Defines classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition LicenseManager_LicenseError.hxx:30