#include <OCCViewer_ViewWindow.h>
#include <OCCViewer_ViewPort3d.h>
+#include <OCCViewer_Utilities.h>
// OCCT Includes
#include <AIS_Drawer.hxx>
return aMap;
}
- //===========================================================================
- // Function : imageToPixmap
- // Purpose : Concert QImage to OCCT pixmap
- //===========================================================================
- static inline Handle(Image_PixMap) imageToPixmap( const QImage& anImage )
- {
- Handle(Image_PixMap) aPixmap = new Image_PixMap();
- if ( !anImage.isNull() ) {
- aPixmap->InitTrash( Image_PixMap::ImgBGRA, anImage.width(), anImage.height() );
- aPixmap->SetTopDown( Standard_True );
-
- const uchar* aImageBytes = anImage.bits();
-
- for ( int aLine = anImage.height() - 1; aLine >= 0; --aLine ) {
-#if OCC_VERSION_LARGE > 0x06070100
- // convert pixels from ARGB to renderer-compatible RGBA
- for ( int aByte = 0; aByte < anImage.width(); ++aByte ) {
- Image_ColorBGRA& aPixmapBytes = aPixmap->ChangeValue<Image_ColorBGRA>(aLine, aByte);
-
- aPixmapBytes.b() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes.g() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes.r() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes.a() = (Standard_Byte) *aImageBytes++;
- }
-#else
- Image_ColorBGRA* aPixmapBytes = aPixmap->EditData<Image_ColorBGRA>().ChangeRow(aLine);
-
- // convert pixels from ARGB to renderer-compatible RGBA
- for ( int aByte = 0; aByte < anImage.width(); ++aByte ) {
- aPixmapBytes->b() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes->g() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes->r() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes->a() = (Standard_Byte) *aImageBytes++;
- aPixmapBytes++;
- }
-#endif
- }
- }
- return aPixmap;
- }
-
//===========================================================================
// Function : getDefaultTexture
// Purpose : Get default texture
// set display vectors flag
AISShape->SetDisplayVectors( propMap.value( GEOM::propertyName( GEOM::EdgesDirection ) ).toBool() );
+ // set display vertices flag
+ bool isVerticesMode = propMap.value( GEOM::propertyName( GEOM::Vertices ) ).toBool();
+ AISShape->SetDisplayVertices( isVerticesMode );
+
// set transparency
if( HasTransparency() ) {
AISShape->SetTransparency( GetTransparency() );
AISShape->setTopLevel( propMap.value( GEOM::propertyName( GEOM::TopLevel ) ).toBool() );
// set point marker (for vertex / compound of vertices only)
- if ( onlyVertex ) {
+ if ( onlyVertex || isVerticesMode ) {
QStringList aList = propMap.value( GEOM::propertyName( GEOM::PointMarker ) ).toString().split( GEOM::subSectionSeparator() );
if ( aList.size() == 2 ) {
// standard marker string contains "TypeOfMarker:ScaleOfMarker"
// set display vectors flag
actor->SetVectorMode( propMap.value( GEOM::propertyName( GEOM::EdgesDirection ) ).toBool() );
+ // set display vertices flag
+ actor->SetVerticesMode( propMap.value( GEOM::propertyName( GEOM::Vertices ) ).toBool() );
+
// set display mode
int displayMode = HasDisplayMode() ?
// predefined display mode, manually set to displayer via GEOM_Displayer::SetDisplayMode() function
// - show edges direction flag (false by default)
propMap.insert( GEOM::propertyName( GEOM::EdgesDirection ), false );
+ // - show vertices flag (false by default)
+ propMap.insert( GEOM::propertyName( GEOM::Vertices ), false );
+
// - shading color (take default value from preferences)
propMap.insert( GEOM::propertyName( GEOM::ShadingColor ),
colorFromResources( "shading_color", QColor( 255, 255, 0 ) ) );