Copyright (c) 2023 Singular Inversions Inc. (facegen.com)
사용, 수정 및 배포는 MIT 라이선스에 따라 허용됩니다.
자세한 내용은 첨부된 LICENSE.txt 파일 또는 facegen.com/base_library_license.txt를 참조하세요.
간단한 크로스 플랫폼 C++17 라이브러리로, 3D 그래픽 애플리케이션을 개발하기 위한 도구를 제공합니다.
기능(Features)
- 3D 메시: IO(입출력), 조작, 하드웨어 및 소프트웨어 렌더링
- 이미지 처리: IO 및 조작
- 선형대수학: 다양한 해법(solvers) 포함
- 초간단 선언형 GUI: (현재 Windows만 지원)
- 크로스 플랫폼 빌드 파일 생성 도구
- 명령줄 인터페이스 도구: 보기 좋은 출력(pretty-print) 지원
- 기타 기능: 유니코드, 파일시스템, 진단 도구, 데이터 패키징 등
- 지원 환경: Windows의 VS2019 및 VS2022, Ubuntu와 MacOS의 gcc 및 clang
(-Wall 옵션에서도 경고 없이 컴파일 가능)
설계(Design)
- 명확하고 정확한 코드를 지향하며, 지나친 최적화를 피함
- 가능한 경우, 함수형 및 선언형 설계를 사용
- 반환 값 생략(return value elision) 활용
- 선언형 GUI 레이아웃 및 데이터 흐름 그래프 설계
- 최소한의 객체지향 프로그래밍(OOP) 사용
- 일부 멤버 함수와 생성자 사용
- 제한된 private 멤버
- 구현 상속(inheritance)은 사용하지 않음
- 템플릿은 명확한 이점이 있을 때만 사용하며, 복잡한 템플릿 메타프로그래밍은 피함
- 예외 처리 및 RAII(Resource Acquisition Is Initialization) 전반에 활용
- 간편한 컴파일 환경: 별도의 의존성, 설치 스크립트, 특별한 메이크 패키지 없이 바로 컴파일 가능
- 서로 다른 컴파일러 및 설정에 따라 오브젝트 파일을 다른 디렉터리에 저장해 빠른 전환 가능
- 코딩 컨벤션:
- 카멜케이스(camelCase)와 K&R 스타일 중괄호 사용
- "왜(Why)"가 아닌 "무엇(What)"에 집중하는 주석 작성
- 네임스페이스(Fg):
varNoun (변수명), funcVerb (함수명), cNoun (예: calcNoun, StructName, FG_MACRO)과 같은 규칙 사용
- 코드는 적을수록 더 좋다
FaceGen 기본 라이브러리
Copyright (c) 2023 Singular Inversions Inc. (facegen.com)
사용, 수정 및 배포는 MIT 라이선스에 따라 허용됩니다.
자세한 내용은 첨부된
LICENSE.txt파일 또는 facegen.com/base_library_license.txt를 참조하세요.간단한 크로스 플랫폼 C++17 라이브러리로, 3D 그래픽 애플리케이션을 개발하기 위한 도구를 제공합니다.
기능(Features)
(-Wall 옵션에서도 경고 없이 컴파일 가능)
설계(Design)
varNoun(변수명),funcVerb(함수명),cNoun(예: calcNoun, StructName, FG_MACRO)과 같은 규칙 사용