GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
mesh_edgebreaker_encoder_impl_interface.h
Go to the documentation of this file.
1// Copyright 2016 The Draco Authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15#ifndef DRACO_COMPRESSION_MESH_MESH_EDGEBREAKER_ENCODER_IMPL_INTERFACE_H_
16#define DRACO_COMPRESSION_MESH_MESH_EDGEBREAKER_ENCODER_IMPL_INTERFACE_H_
17
21
22namespace draco {
23
24// Forward declaration is necessary here to avoid circular dependencies.
26
27// Abstract interface used by MeshEdgebreakerEncoder to interact with the actual
28// implementation of the edgebreaker method. The implementations are in general
29// specializations of a template class MeshEdgebreakerEncoderImpl where the
30// template arguments control encoding of the connectivity data. Because the
31// choice of the implementation is done in run-time, we need to hide it behind
32// the abstract interface MeshEdgebreakerEncoderImplInterface.
34 public:
36 virtual bool Init(MeshEdgebreakerEncoder *encoder) = 0;
37
39 int att_id) const = 0;
41 int att_id) const = 0;
42 virtual bool GenerateAttributesEncoder(int32_t att_id) = 0;
43 virtual bool EncodeAttributesEncoderIdentifier(int32_t att_encoder_id) = 0;
45
46 // Returns corner table of the encoded mesh.
47 virtual const CornerTable *GetCornerTable() const = 0;
48
49 // Returns true if a given face has been already encoded.
50 virtual bool IsFaceEncoded(FaceIndex fi) const = 0;
51
52 virtual MeshEdgebreakerEncoder *GetEncoder() const = 0;
53};
54
55} // namespace draco
56
57#endif // DRACO_COMPRESSION_MESH_MESH_EDGEBREAKER_ENCODER_IMPL_INTERFACE_H_
Definition corner_table.h:53
Definition mesh_attribute_corner_table.h:30
Definition mesh_edgebreaker_encoder_impl_interface.h:33
virtual const CornerTable * GetCornerTable() const =0
virtual const MeshAttributeIndicesEncodingData * GetAttributeEncodingData(int att_id) const =0
virtual bool Init(MeshEdgebreakerEncoder *encoder)=0
virtual bool IsFaceEncoded(FaceIndex fi) const =0
virtual const MeshAttributeCornerTable * GetAttributeCornerTable(int att_id) const =0
virtual ~MeshEdgebreakerEncoderImplInterface()=default
virtual bool EncodeAttributesEncoderIdentifier(int32_t att_encoder_id)=0
virtual MeshEdgebreakerEncoder * GetEncoder() const =0
virtual bool GenerateAttributesEncoder(int32_t att_id)=0
Definition mesh_edgebreaker_encoder.h:30
Definition status.h:25
Definition attribute_octahedron_transform.cc:21
FaceIndex FaceIndex
Definition mesh_edgebreaker_encoder_impl.cc:36
Definition mesh_attribute_indices_encoding_data.h:27