CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
ModelerMarkers.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef MODELERMARKERS_H
25#define MODELERMARKERS_H
27#define kSubentTypeStep 4
28#define kFirstFaceMarker (OdDb::kFaceSubentType + kSubentTypeStep)
29#define kFirstEdgeMarker (OdDb::kEdgeSubentType + kSubentTypeStep)
30#define kFirstVertexMarker (OdDb::kVertexSubentType + kSubentTypeStep)
31
32#define getFaceIndex(gsMarker) (((gsMarker) - OdDb::kFaceSubentType) / kSubentTypeStep)
33#define getEdgeIndex(gsMarker) (((gsMarker) - OdDb::kEdgeSubentType) / kSubentTypeStep)
34#define getVertexIndex(gsMarker) (((gsMarker) - OdDb::kVertexSubentType) / kSubentTypeStep)
35
36#define getTypedIndex(gsMarker, type) (((gsMarker) - (type)) / kSubentTypeStep)
37
38#define getFaceMarker(nIndex) ((nIndex) * kSubentTypeStep + OdDb::kFaceSubentType)
39#define getEdgeMarker(nIndex) ((nIndex) * kSubentTypeStep + OdDb::kEdgeSubentType)
40#define getVertexMarker(nIndex) ((nIndex) * kSubentTypeStep + OdDb::kVertexSubentType)
41
42#define getTypedMarker(nIndex, type) ((nIndex) * kSubentTypeStep + (type))
43
44#define isIndexValid(nIndex) ((nIndex)>0)
45#define isMarkerInvalid(gsMarker) ((gsMarker) < kFirstFaceMarker || 0 == (gsMarker)%kSubentTypeStep)
46
47#define isValidFaceMarker(gsMarker) ((gsMarker) >= kFirstFaceMarker && ((((gsMarker) - kFirstFaceMarker) % kSubentTypeStep) == 0))
48#define isValidEdgeMarker(gsMarker) ((gsMarker) >= kFirstEdgeMarker && ((((gsMarker) - kFirstEdgeMarker) % kSubentTypeStep) == 0))
49#define isValidVertexMarker(gsMarker) ((gsMarker) >= kFirstVertexMarker && ((((gsMarker) - kFirstVertexMarker) % kSubentTypeStep) == 0))
50
51#endif //MODELERMARKERS_H