setColorGroups(aResult);
}
- // create Materiel group
+ // create Material group
if (anMaterialsGroupSelected){
setMaterielGroup(aResult,theMaterialShape);
}
//load result
theResultBody->store(theGeomShape);
+ // to store color of higher-level shape
+ std::wstring aName = theResultBody->findShapeName(theGeomShape);
+ if (!aName.empty())
+ {
+ std::vector<int> aColor = theResultBody->findShapeColor(aName);
+ if (!aColor.empty())
+ ModelAPI_Tools::setColor(theResultBody, aColor);
+ }
+
std::string aNameMS = "Shape";
theResultBody->loadFirstLevel(theGeomShape, aNameMS);
}
return L"material not found" ;
}
+const std::vector<int>& Model_ResultBody::findShapeColor(const std::wstring& theShapeName)
+{
+ std::map<std::wstring, std::vector<int> >::iterator aColor = myColorsShape.find(theShapeName);
+ if (aColor != myColorsShape.end())
+ return aColor->second;
+ static std::vector<int> anEmptyVector;
+ return anEmptyVector;
+}
+
void Model_ResultBody::setShapeName(
std::map< std::wstring, std::shared_ptr<GeomAPI_Shape>>& theShapeName,
std::map< std::wstring, std::vector<int>>& theColorsShape)
/// sets the texture file
MODEL_EXPORT virtual bool hasTexture() override;
+ /// Find the imported color by the construction name of a shape.
+ /// Returns empty vector if not found.
+ MODEL_EXPORT virtual const std::vector<int>& findShapeColor(const std::wstring& theShapeName);
protected:
/// Makes a body on the given feature
std::map< std::wstring,
std::vector<int>>& theColorsShape) override;
- /// find the name of shapp read in step file
+ /// Find the name of shape read in step file
std::wstring findShapeName(std::shared_ptr<GeomAPI_Shape> theShape) override;
/// Clear the map of name and color read shape in step file
/// map with the name read in step file and shape
std::map< std::wstring, std::shared_ptr<GeomAPI_Shape> > myNamesShape;
- /// map with the name contruct and color read
+ /// map from the construction name to the imported color
std::map< std::wstring, std::vector<int>> myColorsShape;
};
/// Add shape Name for read shape in step file
MODELAPI_EXPORT virtual std::wstring addShapeName
- (std::shared_ptr<GeomAPI_Shape>,const std::wstring& theName) = 0;
+ (std::shared_ptr<GeomAPI_Shape>, const std::wstring& theName) = 0;
/// Add color for shape Name read shape in step file
MODELAPI_EXPORT virtual void addShapeColor
- (const std::wstring& theName,std::vector<int>& theColor) = 0;
+ (const std::wstring& theName, std::vector<int>& theColor) = 0;
/// Set the map of name and color read shape in step file
MODELAPI_EXPORT virtual void setShapeName
/// Clear the map of name and color read shape in step file
MODELAPI_EXPORT virtual void clearShapeNameAndColor() = 0;
- /// find the name of shapp read in step file
+ /// Find the name of shape read in step file
MODELAPI_EXPORT virtual std::wstring findShapeName(std::shared_ptr<GeomAPI_Shape> theShape) = 0;
+ /// Find the imported color by the construction name of a shape.
+ /// Returns empty vector if not found.
+ MODELAPI_EXPORT virtual const std::vector<int>& findShapeColor(
+ const std::wstring& theShapeName) = 0;
+
protected:
/// Default constructor accessible only from Model_Objects